BGP Synchronization

Consider the above example. AS 200 is serving as a transit between AS 10 and AS 300. BGP follows a synchronization rule that states that all router in a transit AS, including non-BGP routers, must learn of a route before BG can advertise it to an external peer.
Confused?
Consider the above example again. If RouterA advertises a BGP route to RouterB (an eBGP peer) for the 10.5.0.0/16 network, that same BGP route will eventually be forwarded to RouterD (an iBGP peer).
However, a blackhole would exist if RouterD then advertised that update to RouterE, as RouterC would not have the 10.5.0.0/16 network in its routing table. If RouterE attempts to reach the 10.5.0.0 network, RouterC will drop the packet.
BGP’s synchronization rule will force RouterD to wait until RouterC learns the 10.5.0.0/16 route, before forwarding that route to RouterE.
How will RouterD know when RouterC has learned the route?
Simple! When it receives an update from RouterC via an IGP (such as OSPF), containing that route.
BGP synchronization can be disabled under two circumstances:
1. the local AS is not a transit between two other AS’s;
2. all routers in the transit AS run iBGP and are fully meshed.
<Huawei> system-view[Huawei] bgp 100[Huawei-bgp] ipv4-family unicast[Huawei-bgp-af-ipv4] undo synchronization
*By default, synchronization between BGP and an IGP is disabled.