BGP路由摆动抑制

2012-11-14

  1 前言
  由于路由器及其链路的失效和修复,到达或者经过此路由器的路由会相应的消失又产生。对于一个大的网络,这种情况可能经常出现。于是便产生了路由的不稳定。在 RFC2439中,这种路由的不稳定称为路由摆动(route flap)。如果不作任何限制,路由摆动会引起路由器不停地发送路由更新报文,同时也会不断的收到(当然还要处理)其它路由器发送过来的路由更新报文。如果路由更新报文非常大,这在一个大的网络中是完全可能的,很可能会导致网络拥塞和增加路由器CPU的负担,这又可能会导致新的不可达路由。BGP路由抑制(BGP Route Flap Damping)就是BGP用来解决路由摆动问题的一个方案。以VRP 1.74为例说明路由摆动抑制实现方法与配置。
  2 BGP路由摆动抑制算法
  BGP路由抑制的主要原理是这样的:BGP给每条路由设置一个值,称为惩罚值(penalty value)。当某条路由发生摆动时,就给予其惩罚——将其惩罚值增加一个量(固定值:1000)。当惩罚达到一个设定的抑制门限(cutoff value,以后简称cut)时,就将该路由抑制住(不向邻居路由器通告这条路由)。为了让被抑制的路由在不再摆动时能够解除抑制(向邻居路由器通告这条路由),惩罚值可随着时间推移按指数(半衰期法则)递减,当惩罚值下降到一个设定的再使用门限(reuse value,以后简称reuse)时,就解除对该路由的抑制,重新向其它路由器通告该路由。
  路由抑制的示意图


  路由在t1、t2、t3、t4时刻由于摆动而受到惩罚,而在t3时刻的惩罚值已经超出抑制门限,路由被抑制。t4后,路由不再摆动,随着时间的推移,惩罚值逐渐降低,在t5时刻已下降到再使用门限,路由抑制被解除,路由器又将其通告给邻居路由器。
  半衰期(half-time):衡量惩罚值衰减程度的指标,表示惩罚值衰减到一半时所经历的时间。与惩罚值的具体数值,以及从何时进行计算是没有关系的。
  惩罚值最高上限(ceiling):当某路由的可达、不可达信息在短时间内频繁出现时,惩罚值会非常高。当路由稳定后,惩罚值回到reuse门限的时间会非常长,为了避免这么长的时间,故设置了惩罚值最高上限。
  算法:
  1) 惩罚值的初值为f = 0
  2) 当收到该路由可达的信息时,f = f +1000
  3) 当收到该路由不可达的信息时,f = f +1000
  4) f 值按照以下算法递减
  f ( t ) = K * f ( t ? delta)
  其中
  0 < K < 1
  delta为计算时间间隔,为恒定值
  K = K1, 如果上次收到的是路由可达信息
  K = K2, 如果上次收到的是路由不可达信息
  K1 = e (- delta * ln( 2 ) / T1) , K2 = e (- delta * ln( 2 ) / T2)
  T1:half-time-reachable (路由可达半衰期)
  T2:half-time-unreachable (路由不可达半衰期)
  5) 当f >= cut值(cutoff value)时,抑制将该路由(不向邻居路由器通告这条路由)。cut的缺省值是2000。
  6) 当f > celling值时,f = ceiling。这是为了防止抑制时间过长而采取的限制。最大抑制时间可以根据ceiling,reuse,T1,T2算出来。Ceiling的缺省值是16000。
  7) 当f <= reuse值时,解除对该路由的抑制(向邻居路由器通告这条路由)。reuse的缺省值是750。
  关于路由抑制的详细原理及计算方法,可参考“RFC 2439 BGP Route Flap Damping”。
  3 配置BGP路由摆动抑制1 配置BGP路由摆动抑制(路由衰减)
  请在BGP视图下进行下列配置:
  dampening [ half-life-reachable half-life-unreachable reuse cut ceiling ] [ route-policy policy-name ]
  其中:
  ● half-life-reachable(可达半衰期):路由可达时,惩罚减少到一半的经历时间。缺省值:15(分钟)。
  ● half-life-unreachable(不可达半衰期):路由不可达时,惩罚减少到一半的经历时间。缺省值:15(分钟)。
  ● reuse(再使用门限):惩罚低于它,路由解除抑制。缺省值:750。
  ● cut(抑制门限):惩罚超过它,路由被抑制。缺省值:2000。
  ● ceiling(惩罚的最高限度):惩罚值的最高上限。缺省值:16000。
  缺省情况下,未配置BGP路由衰减。
  需要注意的是:命令中各参数相互依存的,只要配置了其中之一,就必须同时指定其它各项参数。
  BGP路由衰减其它配置

2 路由摆动信息的显示


  4 其他
  不同厂家和不同版本的路由器可能采用不同的配置参数,但大都遵循RFC2439。如有的路由器采用的是最大抑制时间参数(max_cut_time),而不是采用最大惩罚值(ceiling)。但他们之间存在换算关系(假设二者惩罚值的增量相同):
  max_cut_time = half_time * log2(ceiling / reuse)
  反过来计算:
  ceiling = reuse * 2 (max_cut_time / half_time)

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com