在介绍BGP Synchronization(BGP同步功能)之前,先看看以下拓扑图。AS300中的RTC发送关于170.10.0.0的路由更新包,RTA和RTB运行iBGP,所以RTB在更新包中学会了如何通过下一跳2.2.2.1到达170.10.0.0网络。同时,记住下一跳地址是通过iBGP传播的,为了到达下一跳地址,RTB一定要传送封包给RTE。
假设RTA没有将170.10.0.0这段网络重分布到IGP中,RTE则无法从任何途径知道如何到达170.10.0.0。这个时候,如果RTB向AS400宣告自己到达170.10.0.0的路由条目,那么从RTD传送到RTB的目标地址为170.10.0.0的报文将会在RTE这处丢弃(因为RTE不知道如何到达170.10.0.0)。
Synchronization 功能表明,如果你的AS是Transit AS(既要传输从一个AS到另一个AS的信息),BGP仅当所有路由器通过IGP学习到了这条路由的情况下,才会把这条路由通过BGP宣告给邻居。BGP会一直等待直到IGP在AS中有相应的路由进行传播,然后再将这条路由宣告给自己的外部邻居。
Synchronization states that, if your AS passes traffic from another AS to a third AS, BGP should not advertise a route before all the routers in your AS have learned about the route via IGP. BGP waits until IGP has propagated the route within the AS. Then, BGP advertises the route to external peers.
在本例子中,RTB一直等待通过IGP学习到关于170.10.0.0的路由条目。一旦学到了,RTB才会把该条目的路由更新发送给RTD。而因为本例子170.10.0.0不存在于IGP路由表中,因此RTB不会把170.10.0.0这条路由更新发送给RTD,RTD不会收到关于这条路由的任何信息。
当然,你可以通过在RTB中添加到170.10.0.0的静态路由来“欺骗”一下路由器,同时需要保证其他路由器(RTE)也有到达170.10.0.0的路由。
取消 BGP Synchronization
在某种情况下,你是不需要BGP同步功能的。如果你的AS不是一个Transit AS、如果AS中所有路由器都运行了BGP,都不需要使用到BGP Synchronization。关闭掉路由同步后,可以为你减少IGP路由条目,同时加快BGP收敛速度。
BGP Synchronization功能在 IOS ≥ 12.2(8)T 版本中是默认关闭的。关闭命令如下:
router bgp 100
no synchronization
Note: 确保之后输入 clear ip bgp address 清除原先的BGP会话
RTB#
router bgp 100
network 150.10.0.0
neighbor 1.1.1.2 remote-as 400
neighbor 3.3.3.3 remote-as 100
no synchronization
!--- RTB puts 170.10.0.0 in its IP routing table and advertises the network !--- to RTD, even if RTB does not have an IGP path to 170.10.0.0.
RTD#
router bgp 400
neighbor 1.1.1.1 remote-as 100
network 175.10.0.0
RTA#
router bgp 100
network 150.10.0.0
neighbor 3.3.3.4 remote-as 100
文章评论
了解了,努力!
说得挺好的,支持一下
看晕了。