I had a client last month, a small ISP with a Cisco 4451 router. Their BGP sessions to a transit provider went stable overnight, then at 8 AM, all routes from that provider vanished. No warning, no alerts. Just a black hole. Logs showed “BGP route flap damping triggered.” The routes were too unstable, so BGP froze them out. This happens when routes change fast – think flaky fiber, bad SFP, or even a crappy upstream that decides to withdraw and re-advertise the same prefix every 30 seconds.
What Causes BGP Route Flap Damping?
Flap damping is a Cisco feature that punishes routes that keep flapping – going up, down, up, down. BGP counts each change as a penalty. When the total penalty passes a threshold (usually 2000), the route is suppressed. The route stays hidden until the penalty decays below a reuse limit (like 750). But here's the kicker: modern networks change routes for legit reasons – like fast convergence after a link bounce. So damping can cut off perfectly good routes.
In the client's case, a bad SFP on the transit provider's side caused the BGP session to reset every few seconds. Each reset added penalty. Within a minute, all routes hit the suppress limit. The SFP was swapped later, but the routes were still dead because the penalty hadn't decayed yet. Damping worked as designed, but it was a false positive.
The Fix – Disable or Tune Damping
The real fix is either killing damping completely or making it less aggressive. Most small networks don't need it. Here's how I do it on Cisco IOS.
Step 1: Check if damping is active
show ip bgp dampening
If you see “dampening enabled” and a list of suppressed routes, you're in the right place.
Step 2: Clear suppressed routes (temporary fix)
clear ip bgp * dampening
This flushes all dampened routes. Routes come back immediately. But if the root cause isn't fixed (like a bad SFP), they'll get suppressed again.
Step 3: Disable damping per address family
router bgp 65000
address-family ipv4
no bgp dampening
exit-address-family
For IPv6, do the same under address-family ipv6. This kills damping entirely. Some networks with flapping transits see a 20% CPU drop after this, because BGP isn't tracking penalties.
Step 4: Or tune damping values (if you must keep it)
If your provider requires damping, set higher thresholds. I use these on production routers:
router bgp 65000
bgp dampening 30 1500 3000 60
That's: half-life 30 minutes, reuse 1500, suppress 3000, max suppress 60 minutes. This gives routes more time to recover. Don't use the default 15/750/2000/60 – it's too aggressive.
Step 5: Verify routes are back
show ip bgp summary
show ip route bgp
Look for your transit provider's routes in the table. If you see entries, you're good.
Pro tip: After disabling damping, watch your logs for actual flaps. If you see a route flapping every 30 seconds for 10 minutes, that's a real problem, not a damping issue.
What If It Still Fails?
If routes still don't show up after the fix, check these:
- BGP session state:
show ip bgp summary– if the session is down, damping wasn't the issue. Look at the neighbor's IP, maybe it's a routing problem between you and the provider. - Prefix filtering: Your inbound route-map might be blocking prefixes.
show route-map– check if any prefixes match a deny statement. - AS path issues: Some providers filter private AS numbers. Run
show ip bgp 8.8.8.0(or whatever prefix) to see the AS path. - Max prefix limit: If you set a max-prefix on the session, it might have been exceeded.
show ip bgp neighbor X.X.X.X | include max
In rare cases, the provider's router has damping enabled on their side. You can't control that. But you can ask them to disable it for your session. Most will if you explain the false positive.
One last thing: Don't confuse damping with BGP flapping itself. Flapping is the root cause (bad hardware, bad link). Damping is the symptom (routes hidden). Fix the flapping, and damping never triggers. But if you can't fix the flapping (like with a cheap upstream), just kill damping. It's a 30-year-old feature that doesn't fit modern networks where routes bounce for good reasons.