Octet

What was BGP synchronization, and why is it off today?

Show the answer

Say this first

The synchronization rule said a router must not use, or advertise to eBGP peers, a route learned over iBGP until the same prefix was also known through the IGP. It protected transit networks where some routers in the path did not run BGP: without it, a non-BGP router in the middle would drop traffic for external prefixes it had never heard of. Today every transit router runs BGP or the core is MPLS, so the rule only gets in the way. Cisco has had it disabled by default since IOS 12.2(8)T.

Go deeper

The problem it solved

AS 64500 has R1, R2 and R3 in a line. R1 and R3 run BGP and peer over iBGP. R2 runs only OSPF. R3 learns 198.51.100.0/24 from R1 and forwards traffic toward R1 through R2. R2 has no route for 198.51.100.0/24 and drops it. Synchronization stopped R3 from using the route until OSPF also carried it, which in practice meant redistributing BGP into the IGP.

Why it went away

  • Redistributing internet routes into an IGP does not scale.
  • The real fix is to run BGP on every router in the transit path (with route reflectors), or to use an MPLS core where P routers only need labels to the PE loopbacks.

An old Cisco quirk

With OSPF as the IGP, synchronization only succeeded if the OSPF router ID of the router advertising the prefix matched its BGP router ID.

Traps

  • Describing synchronization as keeping BGP tables in sync between peers. It is about BGP and the IGP agreeing.