R7#clear ip bgp 184.108.40.206 soft out
this command is going to send out a route-refresh message and then send the ENTIRE best BGP routes in the BGP table again from R7 to R1 . but that is not a good option. if i want to resend only 220.127.116.11/32 because that`s what i changed and that is what i need to se-advertise again. how to do that ?
resend the entire 600,000 routes ?
maybe if we
re using ipv6 there are about 10 million routes . do you want to say resend the entire 10 million routes because ive changed only one route ?
So, there are three types of BGP reset.
- Hard Reset: This will tear down the neighbor relationship, clear the route table, and then reestablish everything. This is causes problems as it makes the router lose the routes until the neighbor is restored.
- Soft Reset: This tells your device to store a copy of all of the NLRI information from the neighbor before applying policy to it. So you have the BGP table and another table that shows what you would have received before filters, etc. This uses more memory, but allows you to make local policy changes, like changing the local preference on a prefix, without having to tear down the entire relationship. You can make the changes, it will check against the locally stored table, and then modify the BGP table without causing disruption. Keep in mind, it must keep a copy of the NLRI information for each neighbor. So if you have two ISPs sharing 600,000+ routes, you essentially need to store this information 3 times.
- Dynamic Soft Configuration: This is a “newer” version of the two above. What it says, is since storing multiple tables is problematic, and we don’t want to break the connection, why don’t we all just agree that I can send you a request, and you send me all of your prefixes again. I can then apply policy and update the table without ripping all of my current routes out of the RIB.
When you do a clear ip bpg * in, you’re typically performing a Dynamic Soft Configuration, requesting your neighbors to send you the tables again so you can apply new policies to them. When you perform it outbound, you are telling your router to push out a copy of all of the advertised routes to those neighbors. The reason you can’t just update a single route is because of all of the information I provided above. BGP is meant to be stable, it doesn’t like changes, and is one of the reasons it was chosen as the routing protocol of the Internet. Since changes aren’t supposed to happen often or quickly, the size of the routes we’re sending matters less. If BGP were to receive an update with a single route in it, it would assume all of the other routes are gone, and remove them.
I’m not saying it couldn’t have been designed better, but that’s why it behaves that way. Unfortunately, you will have to push all 10,000,000 routes to your neighbor to update a single prefix.