BGP 更新源基础知识

网络工程 路由 BGP eigrp 环回
2022-02-13 06:12:58

我有以下测试实验室: 在此处输入图像描述

“王”的配置是:

King#sho ip int bri
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.122.1   YES NVRAM  up                    up
Serial1/0                  192.168.112.1   YES NVRAM  up                    up
Serial1/1                  unassigned      YES NVRAM  administratively down down
Serial1/2                  unassigned      YES NVRAM  administratively down down
Serial1/3                  unassigned      YES NVRAM  administratively down down
Loopback0                  1.1.1.1         YES manual up                    up
King#
King#
King#sho run | sec bgp
router bgp 100
 no synchronization
 bgp log-neighbor-changes
 neighbor 2.2.2.2 remote-as 100
 neighbor 2.2.2.2 update-source Loopback0
 no auto-summary
King#
King#sho run | sec eigrp
router eigrp 100
 network 0.0.0.0
 auto-summary
King#

“Kong”的配置是:

Kong#sho ip int bri
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.122.2   YES NVRAM  up                    up
Serial1/0                  192.168.112.2   YES NVRAM  up                    up
Serial1/1                  unassigned      YES NVRAM  administratively down down
Serial1/2                  unassigned      YES NVRAM  administratively down down
Serial1/3                  unassigned      YES NVRAM  administratively down down
Loopback0                  2.2.2.2         YES manual up                    up
Kong#
Kong#
Kong#sho run | sec bgp
router bgp 100
 no synchronization
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 100
 no auto-summary
Kong#
Kong#sho run | sec eigrp
router eigrp 100
 network 0.0.0.0
 auto-summary
Kong#

问题:根据我的阅读,我理解了以下内容:

要建立邻居关系,路由器 A 的更新源 IP 必须与路由器 B 上的邻居命令匹配,反之亦然。

但是,在我的情况下,更新源仅配置在“King”上,bgp 邻居船怎么会启动?

请根据数据包流进行解释。

2个回答

为了扩展@cown 的答案,之所以可行,是因为 King 发起了连接,向 2.2.2.2 发送了一个打开请求。Kong 在该接口上收到了请求,因此它从 2.2.2.2 响应。如果 Kong 发起了连接,它会查找最好的传出接口(serial1/0 或 1/1)并将其用作源。在这种情况下,King 会收到来自 192.168.122.2 的打开请求,并且 BGP 会话不会出现。

我将尝试解释该示例的工作原理。

neighbor 2.2.2.2 remote-as 100

2.2.2.2是 BGP 会话的预期目的地。

使用时:

neighbor 2.2.2.2 update-source Loopback0

我们告诉 BGP 使用 IP 源地址1.1.1.1和目标地址2.2.2.2

如果您不指定更新源,则源将是传出接口的源,2.2.2.2如本地节点(King)上的 IP 路由表中一样。

但是,BGP 无法知道您是否真的希望使用环回地址或仅使用用于到达该邻居的物理接口的地址与您的 iBGP 邻居对等。您的网络拓扑可能非常简单,以至于您只有一个接口通往您的 iBGP 邻居,因此在这种情况下,要求您配置和通告环回只是一种正式且无用的负担。

您可以通过指定任何可访问的现有 IP 地址来配置 iBGP 邻居。但是,当您(作为路由器)决定您的 BGP 数据包将通过哪个接口到达邻居时,该接口将被放入数据包的源 IP 地址字段。

至于“孔”:

只要存在到环回接口的路径(通过物理 FastEthernet 和串行),它们就始终可以访问。

默认情况下,BGP 将使用分配给环回接口的最高 IP 地址作为 BGP 路由器 ID。如果没有配置回送,BGP 将使用任何给定接口上的最高 IP 地址。

neighbor 1.1.1.1 remote-as 100

此处的目的地1.1.1.1将通过 BGP 会话到达,其中 BGP 为其提供源 IP 地址2.2.2.2

现在考虑这样一个事实,即您没有环回并且您的接口在 iBGP 会话期间启动或关闭或路由协议信息发生更改,您可能会开始从另一个传出接口向特定对等方发送 BGP 数据包而不是您最初用于建立BGP会话。

这将产生对等互连问题,因为对等互连绑定到邻居的 IP 地址,如果它们发生更改,则必须从头开始重新建立对等互连会话。此处的环回可帮助您维护一对稳定的通信 IP 地址,这些 IP 地址不依赖于实际物理接口的状态或通过互联网络的现有路由。当然,环回必须是可达的,即到它们的路径必须实际存在。

结论是,如果您愿意,在与对等方交谈时,您应该能够使用环回地址作为您的 IP 源地址,但绝对不应该被迫使用它。这种选择自由必然带来特殊的“邻居更新源”命令。