假设我有一个相当小的内部网络,但我有 4 个路由器,每个都连接到不同的网络。这些路由器都彼此相邻,通过交换机连接。每个路由器都使用 BGP 与外部网络通信。每个路由器都有一个 iBGP 网格,用于在内部交换它所知道的来自每个外部网络的路由。
通常的设置是使用 OSPF 来分发连接的路由,因为通过 iBGP 的路由仍将下一跳设置为其原始值。
与在路由上简单地使用“set nexthop self”相比,在这种情况下使用 OSPF 有什么优势?
答案1
OSPF 对拓扑变化的反应比 BGP 快得多,因此它是避免环路/黑洞的基础。
答案2
为了实现最大的可扩展性,几乎所有大型网络都使用 IGP(OSPF 或 IS-IS 或其他)来分发所有路由器的环回以及它们之间的所有路由链路。然后,所有“客户”或“外部”路由都通过 BGP 从一个路由器发送到另一个路由器。这使 IGP 路由表保持较小,这意味着它可以快速收敛。
但是,您的问题的写法实际上没有任何意义 - set nexthop self 有一种特定的使用方式,而您的示例不是这样。
答案3
OSPF 的优点是添加新路由器相对简单;您不必每次都在 AS 中的每个路由器上配置新的 iBGP 对等体(因为您必须在完整网格中运行)- 显然这可以使用联盟或路由反射器服务器来否定,如果您希望沿着这条路线走,很好。除非您恰好有多个路由器与单个对等体链接在一起(例如,您的两个路由器与 BGP 邻居位于 /29 中),否则 next-hop-self 通常是强制性的
然而,另一个值得注意的点是故障时间;默认情况下,OSPF 对拓扑变化的反应速度比 BGP 更快。但是,调整 BGP 计时器也可以为您提供非常相似的故障转移时间。
本质上;如果您希望在管理开销和配置方面保持 IGP 简单,请使用 OSPF。
另一方面,如果您预计需要/想要进行奇特/复杂的路由配置,请使用 BGP。