image

R1与R2运行IGP协议,通过IGP可以学习到对方loopback0的路由,使用loopback0作为update-source建立邻居关系。

如果将R1和R2loopback地址使用network命令宣告进BGP进程,就会产生邻居的flapping现象。

当把loopback0地址宣告到BGP进程中时,会把这条路由传递给EBGP邻居,从EBGP邻居学到的路由的管理距离是20,小于IGP的默认管理距离,EBGP路由优,BGP路由替代IGP路由写入路由表,当BGP检测到neighbor后边的地址不可达时,会断掉BGP邻居会话,BGP路由被删除,IGP路由重新写入路由表。这样就产生了EBGP邻居flapping的现象。

R1:

interface Loopback0
ip address 1.1.1.1 255.255.255.255
!        
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
duplex auto
speed auto
!
router ospf 110
log-adjacency-changes
network 1.1.1.1 0.0.0.0 area 0
network 12.1.1.1 0.0.0.0 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
 network 1.1.1.1 mask 255.255.255.255
neighbor 2.2.2.2 remote-as 2
neighbor 2.2.2.2 ebgp-multihop 255
neighbor 2.2.2.2 update-source Loopback0
no auto-summary

R2:

interface Loopback0
ip address 2.2.2.2 255.255.255.255
!        
interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
duplex auto
speed auto
!
router ospf 110
log-adjacency-changes
network 2.2.2.2 0.0.0.0 area 0
network 12.1.1.2 0.0.0.0 area 0
!
router bgp 2
no synchronization
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 1
neighbor 1.1.1.1 ebgp-multihop 255
neighbor 1.1.1.1 update-source Loopback0
no auto-summary

查看BGP的flapping现象

解决方法:

1.EBGP建立邻居时不要把环回口引入BGP

注意:并不是EBGP使用环回口建立邻居就不能使用IGP协议学习环回口的路由,而是不能将环回口地址引入BGP中

2.使用静态路由

静态路由的管理距离小于EBGP路由的管理距离

3.network+backdoor

建立后门链路,使环回口的路由的管理距离为200,比IGP路由的管理距离大