Just a quick question:
If I am disabling or enabling bgp synchronization, do I then need to clear the bgp neighborships for the change to take effect?
E.g. if bgp routes are not best routes because of synchronization, and I disable synchronization, do I need to clear the bgp process (clear ip bgp * etc) before the routes will be added?
Yes you need to clear the bgp neighbors for this to happen. One option is to configure all your neighbors for soft reconfiguration inbound, then you can do a 'clear ip bgp * soft [in | out]' to update the routes without hard dropping your neighbor relationships
I respectfully disagree - assuming that we both understand the word "synchronization" in the same way. The synchronization in BGP is an additional check that allows an iBGP-learned route to be advertised via eBGP only if the same route has also been learned by an IGP and placed into the routing table. Turning the synchronization on or off should not require any clearing of neighbors - the routes can be simply withdrawn or readvertised without requiring a peering reset, depending on whether the synchronization condition is met (or whether it is used at all).
In addition, it is plain wrong to suggest configuring the soft-reconfiguration inbound feature in these days. This leads to unnecessary waste of system resources. Since RFC 2918 (September 2000) there is a feature in BGP that allows a BGP speaker to ask its neighbor to resend all routes one more time so new inbound routing policies can be applied. No special feature is required for outbound updates. This topic has been discussed here on CSC a couple of times already. You may find these discussions interesting:
i agree with Peter. It does not require any clear because it is only related to the IGP synchronisation (internal routing protocol) and not to the BGP neighbours relationship. (Not directly at least)