BGP Dampening Cyrus

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

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

最大抑制门限=重用门限×2(最大抑制时间÷半衰期)

由于最大抑制门限为公式算出来的,所以有可能最大抑制门限≤抑制门限,当这种情况发生时,dampening的设置是没有效果的。如重用门限=750,抑制门限=3000,半衰期=30分钟,最大抑制时间=60分钟。按照这样的配置,算出来的最大抑制门限为3000,与抑制门限一样,因为必须超过抑制门限,才能对路由进行dampening,所以这时dampening的设置没有效果。

BGP的dampening仅仅影响EBGP的路由。Dampening是基于每条路径的路由而操作的。如果一条前缀具有两条路径,并且其中一条被惩罚了,那么另一条前缀仍然是可用的,可以通告给BGP对等体。
命令:
bgp dampening [route-map XX] [{Half-life reuse-limit suppress-limit Maximum-time }]
如果挂了route-map,那么就在route-map里面匹配特定EBGP路由,来设置dampening值。
检查命令:
show ip protocol
sh ip bgp dampening ?
dampened-paths 只显示(清除)被抑制的路由。
flap-statistics 显示(清除)所有出现摆动的路由以及该路由出现摆动的次数。
parameters Display details of configured dampening parameters
show ip bgp neighbors 1.1.1.1 dampened-routes
show ip bgp neighbors 1.1.1.1 flap-statistics


 

原文地址:https://www.cnblogs.com/cyrusxx/p/12824202.html