BGP Synchronization





Before we discuss synchronization let us look at the following scenario. RTC in AS300 is sending updates about 170.10.0.0. RTA and RTB are running IBGP, so RTB will get the update and will be able to reach 170.10.0.0 via next hop 2.2.2.1 (remember that the next hop is carried via IBGP). In order to reach the next hop, RTB will have to send the traffic to RTE.

Assume that RTA has not redistributed network 170.10.0.0 into IGP, so at this point RTE has no idea that 170.10.0.0 even exists.

If RTB starts advertising to AS400 that he can reach 170.10.0.0 then traffic coming from RTD to RTB with destination 170.10.0.0 will flow in and get dropped at RTE.

Synchronization states: If your autonomous system is passing traffic from another AS to a third AS, BGP should not advertise a route before all routers in your AS have learned about the route via IGP.

BGP will wait until IGP has propagated the route within the AS and then will advertise it to external peers. This is called synchronization.

In the above example, RTB will wait to hear about 170.10.0.0 via IGP before it starts sending the update to RTD. We can fool RTB into thinking that IGP has propagated the information by adding a static route in RTB pointing to 170.10.0.0. Care should be taken to make sure that other routers can reach 170.10.0.0 otherwise we will have a problem reaching that network.

Disabling Synchronization

In some cases you do not need synchronization. If you will not be passing traffic from a different autonomous system through your AS, or if all routers in your AS will be running BGP, you can disable synchronization. Disabling this feature can allow you to carry fewer routes in your IGP and allow BGP to converge more quickly.

Disabling synchronization is not automatic, if you have all your routers in the AS running BGP and you are not running any IGP, the router has no way of knowing that, and your router will be waiting forever for an IGP update about a certain route before sending it to external peers. You have to disable synchronization manually in this case for routing to work correctly:

router bgp 100
no synchronization

(Make sure you do a clear ip bgp address to reset the session.)



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 it to
!−− RTD even if it 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