<Dampening>  

·为了防止路由频繁抖动。BGP利用Dampening机制,将这种频繁抖动的路由有条件的加以抑制。

·增强了路由的稳定性,但不牺牲表现良好的(well-behaved)路由的收敛时间。

·BGP默认不启用Dampening,需要手一启用。

·Dampening仅对EBGP邻居传来的路由起效。

·Dampening的原理:

   当在路由器上启用Dampening后,如果有一条路由up->down,路由器会对这条路由记录一个惩罚值,每down一次,惩罚值加1000,当惩罚值达到start suppress(开始抑制)值时,这条频繁抖动的路由被抑制。一条被抑制的路由不会被使用,也不会传递。

Dampening为每一条前缀维护了一个路由抖动的历史记录。

Dampening算法包含以下几个参数:

  1. 历史记录――――当一条路由flaping后,改路由就会被分配一个惩罚值,并且它的惩罚状态被设置为history。
  2. 惩罚值(penalty)――――路由每flaping一次,这个惩罚值就会增加。默认的路由flaping惩罚值为1000。如果只有路由属性发生了变化,那么惩罚值为500。这个值是硬件编码的。
  3. 抑制门限(suppress limit)――――如果惩罚值超过了抑制门限,改路由将被惩罚或dampen。路由状态将由history转变为damp状态。默认值的抑制门限是2000,它可以被设置。
  4. 惩罚状态(damp state)――――当路由处于惩罚状态时,路由器在最佳路径选择中将不考虑这条路径,因此也不会把这条前缀通告给它的对等体。
  5. 半衰期(half life)――――在一半的生命周期的时间内,路由的惩罚值将被减少,半衰期的缺省值是15分钟。路由的惩罚值每5秒钟减少一次。半衰期的值可以被设置。
  6. 重用门限(reuse limit)――――路由的惩罚值不断的递减。当惩罚值降到重用门限以下时,改路由将不再被抑制。缺省的重用门限为750。路由器每10秒钟检查一次那些不需要被抑制的前缀。重用门限时可以被配置的。当惩罚值达到了重用门限的一半时,这条前缀的历史记录(history)将被清除,以便更有效率的使用内存。
  7. 最大抑制门限/最大抑制时间――――如果路由在短时间内表现出极端的不稳定性,然后又稳定下来,那么累计的惩罚值可能会导致这条路由在过长的时间里一直处于惩罚状态。这就是设置最大抑制门限的基本目的。如果路由表现出连续的不稳定性,那么惩罚值就停留在它的上限上,使得路由保持在惩罚状态。最大抑制门限是用公式计算出来的。最大抑制时间为一条路由停留在惩罚状态的最长时间。默认为60分钟(半衰期的4倍)可以配置。
  8. 最大抑制门限=重用门限×2(最大抑制时间÷半衰期)   由于最大抑制门限为公式算出来的,所以有可能最大抑制门限≤抑制门限,当这种情况发生时,dampening的设置是没有效果的。如重用门限=750,抑制门限=3000,半衰期=30分钟,最大抑制时间=60分钟。按照这样的配置,算出来的最大抑制门限为3000,与抑制门限一样,因为必须超过抑制门限,才能对路由进行dampening,所以这时dampening的设置没有效果。

被抑制的路由不会传给本地,也不会传给其他EBGP邻居

·Half-life Time    : 15 m        半衰期(一个半衰期降为原来的一半)

·Reuse         : 750         降到这个值以下,重新开始启用路由

·Start Suppress    : 2000        升到这个值以上,开始抑制

·Max Suppress Time : 60 m (4×15)   最大抑制时间


例一:

R1:

router bgp 1

 bgp dampening                 //对所有从EBGP收到的路由启用Dampening

或bgp dampening 15 750 2000 60  //可这样修改默认参数,惩罚值不能更改

show ip bgp 1.1.1.0/24     //可查Dampening明细

 1, (suppressed due to dampening)

   12.1.1.1 from 12.1.1.1 (1.1.1.1)

     Origin IGP, metric 0, localpref 100, valid, external

     Dampinfo: penalty 2450, flapped 3 times in 00:11:40, reuse in 00:03:49

·正在翻动的路由会打上  h

·被惩罚的路由前面会打上  d

*d 1.1.1.0/24 (打d的路由,不会进入本地路由表,也不会传给其他BGP邻居)

clear ip bgp dampening   //本命令主动清除惩罚值

例二:

还可针对一个路由单独做dampening,针对一个路由单独做了,就不要再在全局下做

R2:

ip prefix-list 1 permit 1.1.1.0/24

route-map DAMP  

 match ip address prefix-list 1

 set dampening 15 750 2000 60

router bgp 2

 bgp dampening route-map DAMP    在进程下调用