在没有 IGP 的情况下运行 iBGP

网络工程 路由 bgp
2021-07-19 01:01:27

鉴于以下设置: 网络布局

路由器的配置非常简单。路由器 BGP1:

interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Loopback9
 ip address 9.9.9.9 255.255.255.255
!
interface GigabitEthernet0/1
 ip address 10.0.0.1 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 10.0.0.2 remote-as 1
 neighbor 10.0.0.2 next-hop-self

路由器 BGP2:

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/1
 ip address 10.0.0.2 255.255.255.0
!
interface GigabitEthernet0/3
 ip address 20.0.0.1 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 10.0.0.1 remote-as 1
 neighbor 10.0.0.1 next-hop-self
 neighbor 20.0.0.2 remote-as 1
 neighbor 20.0.0.2 next-hop-self

路由器 BGP3:

interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface GigabitEthernet0/3
 ip address 20.0.0.2 255.255.255.0
!
router bgp 1
 bgp log-neighbor-changes
 redistribute connected
 neighbor 20.0.0.1 remote-as 1
 neighbor 20.0.0.1 next-hop-self

所以我将接口 loopback9 添加到路由器 BGP1 以查看它是否通过 BGP3。但这种情况并非如此。我可以看到从 BGP1 进入 BGP2 的路由:

BGP2#show ip route bgp | begin 1.0
      1.0.0.0/32 is subnetted, 1 subnets
B        1.1.1.1 [200/0] via 10.0.0.1, 00:10:07
      3.0.0.0/32 is subnetted, 1 subnets
B        3.3.3.3 [200/0] via 20.0.0.2, 00:10:07
      9.0.0.0/32 is subnetted, 1 subnets
B        9.9.9.9 [200/0] via 10.0.0.1, 00:10:07

但这不会被通告给路由器 BGP3:

BGP2#show ip bgp neighbors 20.0.0.2 advertised-routes | begin Networ
     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       0.0.0.0                  0         32768 ?
 *>  10.0.0.0/24      0.0.0.0                  0         32768 ?
 *>  20.0.0.0/24      0.0.0.0                  0         32768 ?

在所有设备上禁用 IGP 同步:

BGP2# show ip protocols | include synch
  IGP synchronization is disabled

那么我该如何解决这个问题?我知道您应该在 BGP 下运行 IGP,但让我们假设在这种情况下这是不可能的。我有哪些选择?

2个回答

iBGP 规则是 iBGP 路由器不能从 iBGP 邻居学习 iBGP 发起的前缀。如果 BGP2 通过 iBGP 从 BGP1 或 BGP3 获悉前缀,则无法将该前缀通告给其他路由器。

您必须为 iBGP 提供全网状网络,或者您可以使用缓解措施(路由反射器或联盟)。您可以在 BGP1 和 BGP3 之间创建隧道以创建全网状网络。您还可以将 BGP2 配置为路由反射器。

Ron Maupin 在这方面是正确的。您拥有的是 iBGP 对等体的部分网格。

iBGP 的行为是,当路由器向 iBGP 对等体通告路由时,该 iBGP 对等体不会向另一个 IBGP 对等体通告这些相同的前缀。

这个问题的两个解决方案是:

创建全网状 iBGP 对等体

或者

将您的 BGP 路由重新分配到您的 IGP(在您的 iBGP 对等方上启用 BGP 同步)