假设我内部有一个相当小的networking,但我有4个路由器,每个连接到不同的networking。 路由器通过交换机连接在一起。 每台路由器都使用BGP与外部networking通话。 每个路由器都有一个iBGP网格,用于在每个外部networking内部交换它所知道的路由。
通常的设置是使用OSPF分配连接的路由,因为通过iBGP的路由仍将下一跳设置为其原始值。
在这种情况下使用OSPF的优势是什么,而不是简单地在路由上使用“set nexthop self”?
OSPF对拓扑变化的反应比BGP更快,因此是避免环路/黑洞的基础。
为了获得最大的可扩展性,几乎所有的大型networking都使用IGP(OSPF或IS-IS或其他)来分发所有路由器的环回以及它们之间的所有路由链路。 然后,所有的“客户”或“外部”路由都通过BGP从一台路由器发送到另一台路由器。 这使IGP路由表很小,这意味着它快速收敛。
你的问题没有真正意义上的写作方式 – 设置nexthop自己有一个特定的方式,它应该被使用,你的例子是不是。
OSPF的好处是添加新路由器相对简单; 您不必每次都要在AS中的每个路由器上configuration一个新的IBGP对等体(因为您必须以全网状态运行) – 显然这可以使用联盟或路由reflection器服务器来取消,如果你想沿这条路走下去,很好。 next-hop-self通常是强制性的,除非你碰巧有多个路由器在同一个对等体上连接(例如你的两个路由器和一个BGP邻居位于一个/ 29)
另一点需要注意的是失败时间。 默认情况下,OSPF对拓扑变化的反应比BGP更快。 但是,调整BGP定时器也可以为您提供非常类似的故障转移时间。
在本质上; 如果你想保持你的IGP简单的pipe理开销和configuration方面,使用OSPF。
另一方面,如果您预期需要/想要执行exception/复杂的路由configuration,请使用BGP。