- BGP synchronization is not used very commonly today,
but there may still be rare cases
where this feature is needed.
There also maybe older devices that you run across,
which have that enabled.
By default in newer versions of Cisco iOS,
the synchronization rule is already disabled,
but if you're running an older version,
you would need to disable that in many cases.
The synchronization rule is a way to avoid
what we refer to as a traffic black hole,
where traffic would be inadvertently dropped
in an undesired manner.
BGP synchronization will only advertise
a route learned from an iBGP peer
to an eBGP peer.
when there is an exact match of that route
learned from an IGP in the routing table.
That's the synchronization rule.
Let's look at this in a lab environment.
This is our topology, we have three routers.
You can see that R1
is in AS 65,100
while R2 and R3
are in AS 65,200.
We're going to go in and explicitly configure
the no synchronization rule and also configure
our BGP relationships as we see listed here.
We'll see what effect the no synchronization rule has
on our lab topology.
So on router one,
and we have a blank configuration as far as BGP goes.
I do have all of the interfaces already configured,
but nothing as far as BGP.
So let's go under global configuration mode.
Let's say router BGP.
And we want to the autonomous system number 65,100.
We'll say BGP router-ID to set our ID.
I'm just going to make that the same
as the loop back address, which is
10.1.1.1
Now we can configure our neighbor, R2 by saying neighbor,
followed by the IP address of that neighbor, which is
1.1.1.2
And we want to call out the remote autonomous system
that it lies within, which is 65,200. And we'll hit enter.
Now again,
no synchronization is the default in newer iOS already,
but for completion sake,
in case you're running an older iOS,
I'll show you how to do that.
I want to specifically say no synchronization.
So now I want to advertise our attached and networks.
You can see that the 10.1.1.0 network is our loop back.
So let's say network,
10.1.1.0
I'll say mask. I'll make that,
255.255.255.0
And let's also advertise the interface connected to R2
by saying network,
1.1.1.0
and we'll use the same mask and hit enter there.
Now, the last thing we want to do is say no auto-summary.
So we have a really basic BGP configuration.
Let's go over to our R2
and let's do something really similar.
Let's go under a global configuration mode,
we say router BGP this time,
we want autonomous system number 65,200
We'll set the router ID to
20.1.1.1 on this one,
which is the loop back for a router 2.
We will say no synchronization.
We'll use our neighbor command
and we'll point to router 1 at 1.1.1.1
The remote autonomous system for that is 65,100
Let's also get our 3 as well.
So we'll say neighbor 2.2.2.2
And that is in the same autonomous system that we are in.
As you can see in our topology, 65,200.
You can see we had a BGP adjacency popup for router 1.
So that's a good sign.
So we'll go ahead and enter here.
Now we want to advertise our connected network,
our loop back network by saying, network 20.1.1.0
Same mask value that we've been using here.
And let's advertise our interfaces that connect
to our 1 and our 3.
So we'll say network 1.1.1.0 and network 2.2.2.0, same mask
Okay. We're all good there.
The last thing, no auto-summary.
So finally, let's go to router 3
and we'll do the same type of thing.
Router BGP. Again, we're in 65,200
set the router ID to 30.1.1.1
Same as our loop back address. We'll say no synchronization.
We will make a neighbor with router 2
which is in, oops, misspelled it.
The remote autonomous system that we are in,
which is 65,200,
let's advertise our attached network by saying 30.1.1.0
Again, that's our loop back address.
And we will also advertise the interface attached
to router 2 by saying network 2.2.2.0
and the same mask we've been using.
You can see on this router as well,
we had an adjacency form with router two again.
Really good sign. That's exactly what we would want to see.
And we'll say no auto-summary.
Again, pretty basic BGP configuration.
Let's go to R2 and let's break out of here.
And let's just do some verification.
Let's say show IP BGP.
Actually, hope I didn't go back far enough.
Let's say show IP BGP summary.
Let's take a look at that.
And we do see two neighbors here
just as we would expect to see.
We see the neighbor of R1 and R3.
So if we go to R1. Let's jump over here.
Break out of that and let's say show IP route BGP.
If we look here, we see the 30.1.1.0 network
is listed in our BGP table and we can see
the next hop is of course, router two.
So what exactly has happened?
Well, R3 has advertised this 30.1.1.0 network,
which is its loop back address.
It's advertised that to router 2.
And in turn, router 2 has advertised this network
over to router one and that's successful
because no synchronization has been enabled.
So even though this route is not advertised in an IGP,
it's still advertised over to router 1
because of the no synchronization command.
Now let's go back to router 2 and I'll tell you what,
let's go ahead and enable synchronization
so that you can see what happens when that rule is enabled.
So let's go back under global configuration mode.
We want to say router BGP 65,200
and we can use the simple keyword "synchronization"
to enable that. So if we say, let's break out of here,
let's say show IP BGP
and I'll say "show IP route BGP" to check the routing table.
We should not see the 30.1.1.0 route.
We do still see that.
So let's run clear IP BGP* to reset the BGP connection
and clear the BGP peering.
Let's go ahead and do that on our other two routers as well,
just to make sure that we're not looking at
old information in our tables.
We'll give that just a couple of moments to reset.
Go back to router 2 where we enabled synchronization.
So it looks like neighbor 1.1.1.1 is up
let's again, run that same command, Let's say
"show IP route BGP"
We don't see any routes just yet,
looks like we're probably still updating.
Give it a couple more moments.
Run our show command again.
Now we're starting to see some routes.
All right, there we go. Now we see the 10.1.1.0 network.
So we no longer see the 30.1.1.0 route.
That is not installed into the routing table.
And again, that's because of our synchronization rule
being enabled.
R2 will not use this route or advertise this route
to an external BGP neighbor.
Let's go back to R1 and let's again say show IP BGP.
And you can see that the 30.1.1.0 network
is no longer found in our table. If we don't see it there,
then we definitely won't see it in our specific BGP routes.
We'll just do that once more,
just as a further verification, if we say show IP route BGP,
we still don't see the 30.1.1.0 network.
So you can see the effect that synchronization has
on our BGP routes. So to correct this,
obviously we can just disable synchronization
or we could configure an IGP to advertise that route.
Either of those configurations
would install the 30.1.1.0 network
into our routing table as desired.
So let's also look at a BGP synchronization.