01-09-2009 10:31 PM - edited 03-04-2019 03:24 AM
One of our ISP clients, needs to control their outgoing and incoming internet traffic accurately. Currently traffic upload (outgoing) is controlled by implementing PBR since this ISP doesn't receive any BGP Full Routing table from any upstream and this is working fine, and traffic download (incoming) is controlled by limiting BGP advertisement for a set of subnets to only one upstream, this is giving them an accurate control of the return traffic per subnet, however there is no redundancy in such a setup, in an event of any international link failure, they need to manually change the BGP advertisement of this subnet from one upstream to another.
To solve this issue, we first configured AS prepending to affect BGP decision to chose one of the upstream and at the same time introduce redundancy but this didn't work when tested with PCCW, even with a maximum prepend of 10 ASes, PCCW is still preferred.
We need a solution, that is independant from the upstreams providers. We thought about BGP conditional Advertisement, which wil exactly meet the client requirement. Howerver BGP conditional advertisement, is somehow sensitive to BGP dampening, since it works by first advertising a subnet and then âwithdrawingâ it.
Does anyone have any experience to share with us regarding BGP conditional advertisement and BGP Dampening?
Or is there any other way to control BGP return traffic, independantly from the upstream providers, other than AS prepend and MED, that allows an accurate control of the return traffic, per subnet?
Thank you
Michel
CCIE #22725
01-10-2009 03:28 AM
Hello Michel,
my understanding of BGP conditional advertisement is different:
you can trigger the starting of a conditionated advertising based on the disappearing of some route:
so you need to monitor some ISPx route while you are advertising subnets to ISPx.
if that ISPx route disapper you start to advertise that subnets to ISPy because you consider this is a sign the eBGP session to ISPx has failed.
see
http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a0080094309.shtml#ex3
Dampening should tracks explicit changes of states of a route signalled over the BGP session by the peer:
the neigbor sending update/withdrawn of prefix A
For example, consider a network with three BGP autonomous systems: autonomous system 1, autonomous system 2, and autonomous system 3. Suppose the route to network A in autonomous system 1 flaps (it becomes unavailable). Under circumstances without route dampening, the eBGP neighbor of autonomous system 1 to autonomous system 2 sends a withdraw message to autonomous system 2. The border router in autonomous system 2, in turn, propagates the withdraw message to autonomous system 3. When the route to network A reappears, autonomous system 1 sends an advertisement message to autonomous system 2, which sends it to autonomous system 3. If the route to network A repeatedly becomes unavailable, then available, many withdrawal and advertisement messages are sent. This is a problem in an internetwork connected to the Internet because a route flap in the Internet backbone usually involves many routes.
see
http://www.cisco.com/en/US/docs/ios/12_2/ip/configuration/guide/1cfbgp.html#wp1002395
So I think the two features dampening and BGP conditional can coexist.
Hope to help
Giuseppe
01-10-2009 06:56 AM
Hi Giuseppe,
Thanks for your email.
Of course the 2 features can coexist, actually we have implemented them in an enterprise connected to 2 ISPs and it is working fine, howerver, the conditional advertisement feature is helping in dampening routes and that's why we are hesitating to deploy it in a Big ISP connected to more than 10 upstreams.
Let me explain what i mean: when you first enable the conditional advertisement feature, you automatically get on flap! simply because the route was initially advertised and then "WITHDRAWN". In the link you sent, if you consider that BGP dampening is enabled on R101, you will get the first penalty just because you enabled conditional advertisement:
*Mar 1 00:52:55.347: BPG(0): Condition NON-EXIST changes to Withdraw
R101#sh ip bgp dam fl
R101#
*Mar 1 00:52:18.039: BGP(0): 10.10.10.2 rcv UPDATE about 128.16.16.0/24 -- with
drawn
*Mar 1 00:52:18.043: BGP(0): no valid path for 128.16.16.0/24
*Mar 1 00:52:18.047: BGP(0): 10.10.10.2 rcvd UPDATE w/ attr: nexthop 10.10.10.2
, origin i, metric 0, path 2
*Mar 1 00:52:18.051: BGP(0): 10.10.10.2 rcvd 130.130.0.0/16...duplicate ignored
*Mar 1 00:52:18.055: BGP(0): 10.10.10.2 rcvd UPDATE w/ attr: nexthop 10.10.10.2
, origin i, path 2 3
*Mar 1 00:52:18.063: BGP(0): 10.10.10.2 rcvd 192.168.50.0/24...duplicate ignore
d
*Mar 1 00:52:18.071: BGP(0): nettable_walker 128.16.16.0/24 no best path
sh ip bgp dam fl
BGP table version is 14, local router ID is 200.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network From Flaps Duration Reuse Path
h 128.16.16.0/24 10.10.10.2 1 00:00:15 2
If for any reason, the cause that triggers BGP advertisement flaps 2 more times, the advertise route used by conditional advertisement is dampened.
R101#sh ip bgp dam flap
BGP table version is 23, local router ID is 200.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network From Flaps Duration Reuse Path
*d 128.16.16.0/24 10.10.10.2 3 00:13:25 00:02:09 2
R101#sh ip bgp damp
BGP table version is 23, local router ID is 200.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network From Reuse Path
*d 128.16.16.0/24 10.10.10.2 00:02:39 2 i
Conclusion: everytime the condition that triggers conditioanl advertisement (can be the interface to one upstream, tracked and redistributed to BGP to be used as non-exist map) the subnets used in the advertised map are withdrawn and thus getting a penalty. Knowing that these subnets are not the ones who originally flapped (up and down). I believe this is how conditional advertisement is designed and the best solution for my case it to implement it and TEST.
Regards,
Michel
01-10-2009 09:01 AM
Hello Michel,
>> Conclusion: everytime the condition that triggers conditioanl advertisement (can be the interface to one upstream, tracked and redistributed to BGP to be used as non-exist map) the subnets used in the advertised map are withdrawn and thus getting a penalty. Knowing that these subnets are not the ones who originally flapped (up and down). I believe this is how conditional advertisement is designed and the best solution for my case it to implement it and TEST
Now, it is more clear what you meant in the opening post.
Testing is often the best way to understand what happens in the interaction of two features.
I wonder if it is possible using a route-map to recover the initial penalty by giving better conditions to the subnets that are in the BGP conditional advertisements.
bgp dampening half-life reuse suppress max-suppress [route-map map-name]
Hope to help
Giuseppe
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide