Using Routing Policies to Damp BGP Route Flapping
BGP route flapping describes the situation in which BGP systems send an excessive number of update messages to advertise network reachability information. BGP flap damping is a way to reduce the number of update messages sent between BGP peers, thereby reducing the load on these peers without adversely affecting the route convergence time.
Flap damping reduces the number of update messages by marking routes as ineligible for selection as the active or preferable route. Doing this leads to some delay, or suppression, in the propagation of route information, but the result is increased network stability. You typically apply flap damping to external BGP (EBGP) routes (that is, to routes in different ASs). You can also apply it within a confederation, between confederation member ASs. Because routing consistency within an AS is important, do not apply flap damping to IBGP routes. (If you do, it is ignored.)
BGP flap damping is defined in RFC 2439, BGP Route Flap Damping.
To effect changes to the default BGP flap damping values, you
define actions by creating a named set of damping parameters and including
it in a routing policy with the damping
action (described
in Configuring Actions That Manipulate Route Characteristics). For the damping routing policy to work, you also must enable BGP
route flap damping.
The following sections discuss the following topics:
Configuring BGP Flap Damping Parameters
To define damping parameters, include the damping
statement:
[edit policy-options] damping name { disable; half-life minutes; max-suppress minutes; reuse number; suppress number; }
The name identifies the group of damping parameters. It can contain letters, numbers, and hyphens (-) and can be up to 255 characters. To include spaces in the name, enclose the entire name in quotation marks (“ ”).
You can specify one or more of the damping parameters described in Table 1.
Damping Parameter |
Description |
Default |
Possible Values |
---|---|---|---|
|
Decay half-life, in minutes |
15 minutes |
1 through 45 minutes |
|
Maximum hold-down time, in minutes |
60 minutes |
1 through 720 minutes |
|
Reuse threshold |
750 (unitless) |
1 through 20,000 (unitless) |
|
Cutoff (suppression) threshold |
3000 (unitless) |
1 through 20,000 (unitless) |
If you do not specify one or more of the damping parameters, the default value of the parameter is used.
To understand how to configure these parameters, you need to understand how damping suppresses routes. How long a route can be suppressed is based on a figure of merit, which is a value that correlates to the probability of future instability of a route. Routes with higher figure-of-merit values are suppressed for longer periods of time. The figure-of-merit value decays exponentially over time.
A figure-of-merit value of zero is assigned to each new route. The value is increased each time the route is withdrawn or readvertised, or when one of its path attributes changes. With each incident of instability, the value increases as follows:
Route is withdrawn—1000
Route is readvertised—1000
Route’s path attributes change—500
Note:Other vendors’ implementations for figure-of-merit increase the value only when a route is withdrawn. The Junos OS implementation for figure-of-merit increases the value for both route withdrawal and route readvertisement. To accommodate other implementations for figure-of-merit, multiply the
reuse
andsuppress
threshold values by 2.
When a route’s figure-of-merit value reaches a particular
level, called the cutoff or suppression
threshold, the route is suppressed. If a route is suppressed,
the routing table no longer installs the route into the forwarding
table and no longer exports this route to any of the routing protocols.
By default, a route is suppressed when its figure-of-merit value reaches 3000.
To modify this default, include the suppress
option at
the [edit policy-options damping name]
hierarchy level.
If a route has flapped, but then becomes stable so that none
of the incidents listed previously occur within a configurable amount
of time, the figure-of-merit value for the route decays exponentially.
The default half-life is 15 minutes. For example, for a route
with a figure-of-merit value of 1500, if no incidents occur,
its figure-of-merit value is reduced to 750 after 15 minutes
and to 375 after another 15 minutes. To modify the default
half-life, include the half-life
option at the [edit
policy-options damping name]
hierarchy
level.
For the half-life, configure a value that is less than the max-suppress. If you do not, the configuration is rejected.
A suppressed route becomes reusable when its figure-of-merit
value decays to a value below a reuse threshold, thus allowing routes that experience transient instability to once
again be considered valid. The default reuse threshold is 750.
When the figure-of-merit value passes below the reuse threshold, the
route once again is considered usable and can be installed in the
forwarding table and exported from the routing table. To modify the
default reuse threshold, include the reuse
option at the [edit policy-options damping name]
hierarchy
level.
The maximum suppression time provides an upper bound on the
time that a route can remain suppressed. The default maximum suppression
time is 60 minutes. To modify the default, include the max-suppress
option at the [edit policy-options damping name]
hierarchy level.
For the max-suppress, configure a value that is greater than the half-life. If you do not, the configuration is rejected.
A route’s figure-of-merit value stops increasing when it reaches a maximum suppression threshold, which is determined based on the route’s suppression threshold level, half-life, reuse threshold, and maximum hold-down time.
The merit ceiling, εc, which is the maximum merit that a flapping route can collect, is calculated using the following formula:
εc ≤ εr e(t/λ) (ln 2)
εr is the figure-of-merit reuse threshold, t is the maximum hold-down time in minutes, and λ is the half-life in minutes. For example, if you use the default figure-of-merit values in this formula, but use a half-life of 30 minutes, the calculation is as follows:
εc ≤ 750 e(120/30) (ln 2)
εc ≤ 12000
The cutoff threshold, which you configure using the suppress
option, must be less than or equal to the merit ceiling, εc. If the configured cutoff threshold or the default cutoff threshold
is greater than the merit ceiling, the route is never suppressed and
damping never occurs.
To display figure-of-merit information, use the show policy
damping
command.
A route that has been assigned a figure of merit is considered
to have a damping state. To display the current damping information
on the routing device, use the show route detail
command.
Specifying BGP Flap Damping as the Action in Routing Policy Terms
To BGP flap damping as the action in a routing policy term,
include the damping
statement and the name of the configured
damping parameters either as an option of the route-filter
statement at the [edit policy-options policy-statement policy-name term term-name from]
hierarchy level:
[edit policy-options policy-statement policy-name term term-name from] route-filter destination-prefix match-type { damping damping-parameters; }
or at the [edit policy-options policy-statement policy-name term term-name then]
hierarchy level:
[edit policy-options policy-statement policy-name term term-name then] damping damping-parameters;
Disabling Damping for Specific Address Prefixes
Normally, you enable or disable damping on a per-peer basis.
However, you can disable damping for a specific prefix received from
a peer by including the disable
option:
[edit policy-options damping name] disable;
Disabling Damping for a Specific Address Prefix
In this routing policy example, although damping is enabled
for the peer, the damping none
statement specifies that
damping be disabled for prefix 10.0.0.0/8 in Policy-A
.
This route is not damped because the routing policy statement named Policy-A
filters on the prefix 10.0.0.0/8 and the action points
to the damping
statement named none
. The remaining
prefixes are damped using the default parameters.
[edit] policy-options { policy-statement Policy-A { from { route-filter 10.0.0.0/8 exact; } then damping none; } damping none { disable; } }
Configuring BGP Flap Damping
Enable BGP flap damping and configure damping parameters:
[edit] routing-options { autonomous-system 666; } protocols { bgp { damping; group group1 { traceoptions { file bgp-log size 1m files 10; flag damping; } import damp; type external; peer-as 10458; neighbor 192.168.2.30; } } } policy-options { policy-statement damp { from { route-filter 192.168.0.0/32 exact { damping high; accept; } route-filter 172.16.0.0/32 exact { damping medium; accept; } route-filter 10.0.0.0/8 exact { damping none; accept; } } } damping high { half-life 30; suppress 3000; reuse 750; max-suppress 60; } damping medium { half-life 15; suppress 3000; reuse 750; max-suppress 45; } damping none { disable; } }
To display damping parameters for
this configuration, use the show policy damping
command:
user@host> show policy damping Damping information for "high": Halflife: 30 minutes Reuse merit: 750 Suppress/cutoff merit: 3000 Maximum suppress time: 60 minutes Computed values: Merit ceiling: 3008 Maximum decay: 24933 Damping information for "medium": Halflife: 15 minutes Reuse merit: 750 Suppress/cutoff merit: 3000 Maximum suppress time: 45 minutes Computed values: Merit ceiling: 6024 Maximum decay: 12449 Damping information for "none": Damping disabled