I have a couple of questions regarding this config of a router connected to a provider's MPLS network:
neighbor 22.214.171.124 remote-as 65000
neighbor 126.96.36.199 version 4
neighbor 188.8.131.52 soft-reconfiguration inbound
according to Cisco:
"Whenever there is a change in the routing policy, the BGP session must be cleared, or reset, for the new policy to take effect."
1. What is the meaning of "routing policy"?
Are they talking of route table changes?
2. The "soft-reconfig" allowes any inbound changes in this config, meaning from my MPLS provider to the router the above is configured on, to be dynamically updated without a hard (manual) reset of the process.
Is this correct?
Cisco is saying "soft-reconfig" is the old way and uses much more memory from the router
3. Why the "version 4" ? Do you always have to designate the version?
1. A routing policy is generally applied via a route-map, distribute-list and filter-list. These are used to accept, modify and reject routes that are advertised or received. So if any of the routing policy changes, you need to somehow force the updates to be resent either locally or from the remote peer, in order for these updates to be processed by the new routing policy.
2. This is correct. This configuration statement causes all updates received from a neighbor to be kept in local memory (which as you mentioned consumes additional memory) whether they are rejected or accepted by your routing policy. If the routing policy is changed, you can simply perform a soft clear, which will cause the updates that were previously kept in memory to be pushed through the new routing policy. Similarly, you could also perform a soft clear without the need for soft-reconfiguration as long as the IOS release supports the route refresh feature (all recent IOS releases do). Upon a soft clear command, route refresh actually sends a BGP route refresh message to the peer to request it to send a new copy of all previously sent updates, alleviating the need for keeping a copy of these updates in local memory.
3. Version 4 refers to the fourth generation of BGP. This configuration is not required anymore as this is the current default value and has been for a long time.
So, we are not talking about just general route table updates then correct?
For example, if a remote site in my MPLS network goes down, and all the other sites have their route tables updated to reflect this change,
"soft-reconfiguration" is not doing anything in this instance?
Only in the case of a policy change as in the case of me changing the filter list?
If so, if the "soft-reconfig" is a dynamic function, and I havce the memory, wouldn't I want this feature, rather than having to manually do a "soft clear"?
Also, is the memory usage of the "soft-reconfig" a funtion of how many routes you have in the table?
> So, we are not talking about just general route table updates then correct?
>For example, if a remote site in my MPLS network goes down, and all the other sites have their route tables updated to reflect this change,
That is correct.
> "soft-reconfiguration" is not doing anything in this instance?
"soft-reconfiguration" still keeps all the received updates in local memory.
> Only in the case of a policy change as in the case of me changing the filter list?
That is correct. Only in this case you would need to perform a soft clear.
> If so, if the "soft-reconfig" is a dynamic function, and I havce the memory, wouldn't I want this feature, rather than having to manually do a "soft clear"?
I probably didn't make myself clear. Both "soft-reconfiguration" and route refresh require a manual soft clear in a case of a change of routing policy. The advantage of route refresh is that it doesn't require additional memory as the BGP updates filtered by the routing policy don't need to be kept in local memory, as they are resent by the peer in case of a soft clear.
> Also, is the memory usage of the "soft-reconfig" a funtion of how many routes you have in the table?
Sorry Harold, but I am getting confused.
What exactly is the "soft-reconfig" doing other than keeping the routes in memory of the local router?
Is there any advantage to this?
Unless it has to do with the MPLS infrastructure and I have no access or controll over the PE routers that my CE routers peer with.
Not a problem.
You are quite correct that the only benefit of "soft-reconfiguration" is to keep received updates in local memory, which allow one to perform a soft clear.
Now given that route refresh provides the same functionality without the additional memory required by "soft-reconfiguration", I would say that I would only configure 'soft-reconfiguration" if the IOS version on the local router or the software on the remote router (IOS or OS from any other vendor) doesn't support route refresh.
It will be my pleasure to help if I can.
router bgp 65000
redistribute ospf 1 match internal external 2
distance bgp 150 200 201
1. According to the ios configuration guide, you can not redistribute network 0.0.0.0, you have to use "default-information originate"
The above is my basic BGP config, which is advertising the default route. I am understanding what they are talking about "redistributing" as advertising the default network.
Isnt that what I am doing here without using "default-information originate"?
2. "redistribute ospf 1 match internal external 2"
What determines wether an OSPF distributed route is an external 1 or external 2?
1. Bear in mind that using the network statement is different than redistribution. "network 0.0.0.0" is allowed without "default-information originate". Redistributing the default route from any other protocol (including connected and static) without "default-information originate" is not. The reason is that you have more control over what is originated into BGP using a network statement rather redistribution. The network statement is explicit and thus doesn't require the extra configuration to protect against accidentally injecting the default route into BGP.
2. When a route is redistributed from another protocol into ospf, the external type is set to 2 by default. You can change the default as follow:
redistribute static metric-type 1
redistribute static route-map setMetricType
route-map setMetricType permit 10
set metric-type type-1
That is correct indeed.