跳到主要内容

5.1. Choosing EBGP as the Routing Protocol (选择 EBGP 作为路由协议)

5.1. Choosing EBGP as the Routing Protocol (选择 EBGP 作为路由协议)​

REQ2 倾向于选择单一路由协议以降低复杂性和相互依赖性.虽然在这种情况下通常依赖 IGP, 有时在边界 WAN 的设备上添加 EBGP 或在整个网络中使用内部 BGP (Internal BGP, IBGP), 但本文档建议使用纯 EBGP 设计.

尽管 EBGP 是互联网中几乎所有域间路由使用的协议, 并且得到供应商和服务提供商社区的广泛支持, 但由于以下一些原因 (其中一些相互关联), 它通常不会作为数据中心内的主要路由协议部署:

  • BGP 被认为是 "仅用于 WAN 的协议", 通常不考虑用于企业或数据中心应用程序.

  • 与 IGP 相比, BGP 被认为具有 "慢得多" 的路由收敛速度.

  • 大规模 BGP 部署通常使用 IGP 进行 BGP 下一跳解析, 因为 IBGP 拓扑中的所有节点并非直接连接.

  • BGP 被认为需要大量配置开销, 并且不支持邻居自动发现.

本文档讨论了其中一些看法, 特别是适用于所提议设计的看法, 并强调了使用该协议的一些优势, 例如:

  • BGP 在其协议设计的某些部分具有较低的复杂性——与大多数链路状态 IGP (如 OSPF) 相比, 内部数据结构和状态机更简单.例如, BGP 不是实现邻接形成、邻接维护和/或流量控制, 而是简单地依赖 TCP 作为底层传输.这满足了 REQ2 和 REQ3.

  • 与链路状态 IGP 相比, BGP 信息泛洪开销更少.由于每个 BGP 路由器仅计算和传播所选的最佳路径, 一旦 BGP 发言者找到替代路径 (当高度对称的拓扑 (如 Clos) 与纯 EBGP 设计相结合时存在), 网络故障就会被屏蔽.相比之下, 链路状态 IGP 的事件传播范围是整个区域, 无论故障类型如何.通过这种方式, BGP 更好地满足 REQ3 和 REQ4.还值得一提的是, 所有广泛部署的链路状态 IGP 都具有路由信息的定期刷新功能, 而 BGP 不会使路由状态过期, 尽管这很少影响现代路由器控制平面.

  • BGP 支持第三方 (递归解析) 下一跳.这允许操纵多路径为非 ECMP 或基于应用程序定义的路径的转发, 通过与可以将路由信息注入系统的应用程序 "控制器" 建立对等会话, 满足 REQ5.OSPF 使用 "转发地址" 等概念提供类似功能, 但在实现上更困难, 并且对信息传播范围的控制要少得多.

  • 使用定义良好的自治系统号 (Autonomous System Number, ASN) 分配方案和标准 AS_PATH 循环检测, 可以控制 "BGP 路径搜索" (参见 [JAKMA2008]), 并且将忽略复杂的不需要的路径.有关工作 ASN 分配方案的示例, 请参见第 5.2 节.在链路状态 IGP 中, 实现相同目标需要多 (实例/拓扑/进程) 支持, 通常在所有数据中心设备中不可用, 并且配置和故障排除非常复杂.使用大多数数据中心设计使用的传统单泛洪域, 在某些故障条件下可能会选择不需要的冗长路径, 例如, 遍历多个第二层设备.

  • 使用最少路由策略实现的 EBGP 配置更容易排除网络可达性问题.在大多数实现中, 查看 BGP Loc-RIB 的内容并将其与路由器的路由信息库 (Routing Information Base, RIB) 进行比较非常简单.此外, 在大多数实现中, 操作员可以查看每个 BGP 邻居的 Adj-RIB-In 和 Adj-RIB-Out 结构, 因此可以轻松地在 BGP 会话的两侧关联传入和传出的网络层可达性信息 (Network Layer Reachability Information, NLRI) 信息.因此, BGP 满足 REQ3.