BGP 和 OSPF 路由器之间的通信

网络工程 路由 路由器 BGP ospf
2022-02-21 18:04:11

我将从一个场景开始。如果这是一个低级问题,请原谅。假设有 2 个 AS、AS 100 和 AS 200。*在 AS 100 中有 3 个路由器 R1、R2 和 R3 运行 OSPF,RB1 和 RB2 运行 BGP,其中 RB1 连接到 AS 200 中的另一个 BGP 路由器 RB3。

*AS 200 的路由器 R5、R6 和 R7 运行 ospf,RB3 和 RB4 运行 BGP。RB3 连接到 As 100 的 RB1,RB4 连接到其他一些 AS。

1)据我了解,r1、r2 和 r3 了解每个和连接的网络。r1、r2 和 r3 是否也将此信息传递给 RB1 和 RB2?同样,r5、r6 和 r7 是否将其链路和网络中继到 RB3 和 RB4?

因为,假设,如果连接到 AS 100 的 R1 的主机想要与连接到 AS 200 中的 R5 的主机通信,它会怎么做?

2)据我所知,RB1和RB2有一个ibgp会话,它们有相同的数据库。RB3 和 RB4 也是如此。

但是路由器 r1、r2、r3、r5、r6 和 r7 是否与 RB1、RB2、RB3 和 RB4 具有相同的数据库?如果不是这种情况,AS 100 中的主机如何知道它必须将其发送到哪个边界路由器(在本例中为 RB1 或 RB2)才能到达 AS 200。

最后一个问题,r1、r2 和 r3 知道多少?RB1 和 RB2 也一样?

1个回答

AS100 中的 RB1 和 RB2 不知道 R1、R2 和 R3 的 OSPF 路由,除非 RB1 和 RB2 也运行 OSPF,或者其他路由器之一运行 BGP,并且运行这两种协议的路由器在 OSPF 和 BGP 之间重新分配路由. 路由器不共享路由,除非它们之间运行共同的路由协议。

OSPF 和 BGP 维护自己的表。路由器将从正在运行的各种路由协议中选择最佳路由(或在路径相等的情况下使用像 AD 一样的仲裁)插入到其路由表中,但路由协议不共享路由。

除非 RB1 以某种方式获知 R1、R2 和 R3 的 OSPF 路由,否则它永远不会与 AS200 共享这些路由,反之亦然。

BGP 甚至不发布路由,除非路由在 BGP 路由器的路由表中,并且 BGP 路由器对路由使用 network 语句,或者路由已被重新分配到 BGP 中。人们经常犯的一个错误是假设您可以简单地添加一个网络语句来通告路由协议中的路由,但事实并非如此。BGP 必须在路由表中有确切的路由,而 network 语句只告诉 OSPF 哪些接口包含在路由过程中。