IP骨干网BGP路由协议的扩展性( 二 )


由此可见,Client上的I-BGP会话数一般为1~2个,与联盟的方法相比,只要Reflector的性能足够高,Cluster就可以做得很大,而Client的负载不会随Cluster的变化有太大的变化 。对于前一种方法,由于一个子自治域的所有路由器还是要做到Full;Mesh,所以最低性能的路由器决定了一个子自治域的大小;而路由反射器法则通常是一个或多个最高性能的路由器决定Cluster的大小,因此,具有更好的网络扩展性能 。
另外,一个Reflector也可以成为另外一个Reflector的Client,形成层级结构,这非凡适用于按照分层结构建设的网络,可以很轻易地把平面的网络治理演变为分层治理 。
当然,在使用路由反射器的时候,也有一些需要注重的地方,比如:Reflector并不是纯粹的转发路由,所有收到的路由在Reflector上同样要经过最优计算,然后将优选路由向外广播,所以Reflector的选择要依据网络结构而定,尽量使I-BGP邻居关系与实际的电路连接关系相对应 。
(2)控制路由振荡
目前,控制Route;Flap主要采取Damping的方法:一个BGP路由器对收到的E-BGP路由设定Penalty值,每一次路由Flap都会使该路由的Penalty值增大,而路由稳定时,Penalty值会随时间而减小;当Penalty值超过预设的抑制限制时,该路由就不再被广播,而当Penalty减小至低于重用限制时,该路由才会被重新向外广播 。这种方法主要是针对E-BGP邻居而言的 。这样,当一个网络内部发生路由振荡时,与之相连的其他网络通过Damping可以有效地防御对各自网络的影响 。
在网络维护中,经常会碰到这样的情况:宁愿一条电路中断一段时间,也不希望它在不停地震荡 。因为中断一段时间后,只要电路恢复,网络流量也会随之恢复;与此相反,振荡的电路恢复后,需要等待一段时间才能恢复正常的流量(其他网络都在抑制振荡的路由) 。Damping则可以有效地保证因特网的稳定,但同时也会导致一些故障的延时恢复 。
当前的设备基本都支持Damping的功能,而且提供可以配置的参数来精细控制Damping 。一般情况下,设备提供的缺省配置能够满足大多数网络的需求,假如确有非凡需要,则一定要经过仔细计算,否则,不是没有效果,就是把别人的路由抑制后很长时间不能恢复 。
(3)Peer;Group的应用
在实际的网络中,有一种非常普遍的现象,即一个路由器会有多个属于一类的BGP;Peer 。这里的“属于一类”是指BGP的策略相同或类似,当Peer比较多时,BGP的配置会变得臃肿,同时,路由器的负载也会加重,因为一旦有路由的更新,路由器需要针对每个Peer做一次策略计算(虽然策略都相同) 。另外,应用Peer;Group还有一个好处,就是降低了对路由器设备的资源消耗,因为路由器对同一Group更新路由时,由于使用相同策略,因此只进行一次路由计算,从而大大减少了占用CPU的时间 。
在实际的网络维护中,即使当同一类的Peer很少时,一般也建议采用Peer;Group的方式,因为这样具有很好的扩展性 。Peer;Group不但适用于I-BGP的Peer,也适用于E-BGP的Peer 。
(4)关于route;refresh的措施
骨干网络维护中,经常会碰到修改BGP策略的情况,如更新某个Peer的as-path限制列表,在配置修改后需要使其生效,以前的做法是中断当前的BGP会话,然后重新建立,命令如下:
clear;ip;bgp;x.x.x.x;
这么做主要是因为路由器在收到对方的BGP路由表后,先进行策略运算,然后将最优路由存储在本机的BGP路由表中,而不是把原始的路由统统保存 。当策略改变时,必须重新建立连接来获得对方的全部路由,然后利用新策略再次计算 。这种方式的弊端显而易见,如网络阻断、大量消耗路由器的CPU资源等 。

推荐阅读