BGP synchronization rule refers to prefix synchronization between BGP and IGP. If it is enabled, BGP speakers will not advertise routes learned from an iBGP peer unless the destination described in the route is also reachable through the local IGP.
Below is the topology used for simulating BGP Synchronization rule by enabling command "SYNCHRONIZATION" under BGP process.
R7-R4-R5 and R6 is running OSPF as routing protocol. R6 and R7 is having iBGP peering with source address loopback 0. Loopback 100 is advertised on routers R6 and R7 and synchronization is enabled under BGP process.
R7 is learning R6 loopback 100 but that prefix is not considered as best prefix because it is not available in the routing table. (Read More About Different Types of BGP Tables)
Now check the output of routing table:-
This means, If a BGP learned prefix is not synchronized, the prefix will not be inserted into the routing table and will not be advertised to external peers. Now we will disable the synchronization rule and checks will routing table now install the iBGP advertised prefix or not. Below is the output of BGP table adter disabling synchronization rule:-
Below is the output of the routing table after disabling synchronization rule:-
We can verify now BGP is installing the prefix 100.100.100.6 as best route in the BGP table and the same prefix is available in routing table too. Now we have the iBGP learned routes in both the routers R6 and R7. Let's initiate the ping from R7 to R6 loopback 100. The ping packets are continuous dropped because R4 and R5 routing table doesn't has the R6 loopback-100 installed in their routing table.
To become the prefix reachable, BGP prefixes must be redistributed into OSPF. Once the redistribution is performed both iBGP prefixes become reachable to each other. This workaround is really painful as all the routes will get flooded into the core routers R4 and R5. Is there any other workaround is available? Wait for the next post to learn the workaround without redistributing the BGP into OSPF.