跳到主要内容

5. 错误处理 (Error Handling)

BGP speaker 禁止向不属于本地联盟的对等体传输包含 AS_CONFED_SET 或 AS_CONFED_SEQUENCE 属性的更新.

如果 BGP speaker 从不位于同一联盟中的邻居收到 UPDATE 消息, 且该消息的 AS_PATH 属性包含 AS_CONFED_SEQUENCE 或 AS_CONFED_SET 段, 这是错误. 如果 BGP speaker 收到这样的 UPDATE 消息, 它应按照 [BGP-4] 第 6.3 节 ("UPDATE Message Error Handling") 的过程, 将该消息视为具有格式错误的 AS_PATH.

如果 BGP speaker 从不在同一 Member-AS 中的联盟对等体收到更新消息, 且该消息未以 AS_CONFED_SEQUENCE 作为第一个段, 这是错误. 如果 BGP speaker 收到这样的 UPDATE 消息, 它应按照 [BGP-4] 第 6.3 节 ("UPDATE Message Error Handling") 的过程, 将该消息视为具有格式错误的 AS_PATH.

5.1. 常见管理问题 (Common Administrative Issues)

联盟中的 Member Autonomous Systems 共享整个联盟的共同管理和内部网关协议 (Interior Gateway Protocol, IGP) 信息是合理的. 每个 Member-AS 运行独立的 IGP 也同样合理. 在后一种情况下, 可能需要使用策略设置 NEXT_HOP, 也就是说, 默认情况下它保持不变.

5.2. MED 和 LOCAL_PREF 处理

BGP speaker 向本地联盟中相邻 Member-AS 的对等体通告未改变的 NEXT_HOP 和 MULTI_EXIT_DISC (MED) 属性是合法的.

只有当两条路由中第一个 AS_SEQUENCE 里的第一个自治系统相同时, 才应比较这两条路由的 MED, 也就是跳过 AS_CONFED_SET 和 AS_CONFED_SEQUENCE 中的所有自治系统. 实现可以提供配置路径选择的能力, 使得只要两条路由 AS_PATH 中的第一个自治系统相同, 就可以比较它们的 MED, 而不考虑 AS_PATH 中的 AS_SEQUENCE 或 AS_CONFED_SEQUENCE.

实现可以比较通过多条路径从某个 Member-AS 收到的 MED. 实现也可以比较同一联盟中不同 Member Autonomous Systems 的 MED.

此外, 禁止向同一联盟内相邻自治系统中的对等体发送 LOCAL_PREF 属性的限制被移除.

5.3. AS_PATH 和路径选择

对于从联盟内部成员收到的信息, 路径选择标准必须遵循与从同一自治系统内部成员收到的信息相同的规则, 如 [BGP-4] 所规定.

此外, 应适用以下规则:

  1. 如果 AS_PATH 位于本地联盟内部, 即只存在 AS_CONFED_* 段, 则将邻居 AS 视为本地 AS.

  2. 否则, 如果路径中第一个非 AS_CONFED_SEQUENCE 或 AS_CONFED_SET 的段是 AS_SEQUENCE, 则将邻居 AS 视为最左侧的 AS_SEQUENCE AS.

  3. 使用 AS_PATH 长度比较路由时, 不应计入 CONFED_SEQUENCE 和 CONFED_SET.

  4. 使用内部 (IBGP 学习) 与外部 (EBGP 学习) 规则比较路由时, 将从同一联盟中对等体学习到的路由视为 "internal", 即使该对等体不一定在同一 Member-AS 中.