文档介绍:IP 骨干网中 BGP 路由协议扩展性介绍
刷钻/
BGP 是目前应用在因特网上的 IP 网络互联协议,为运
营商之间的互联提供了稳定而安全的路由协议,具有丰富的
路由控制机制。
为了更好地控制路由策略,当前大部分的运营商均将
BGP 部署到骨干路由器。随着网络的不断扩展、路由器数目
的增多以及路由信息条目的激增,解决 BGP 的扩展性问题变
得越来越重要。目前 BGP 的扩展性面临如下几个问题。
(1)I-BGP 的 Full-Mesh 问题
BGP 路由协议分为 I-BGP 和 E-BGP 两个部分。 I-BGP 用
于自治域内的路由器之间, E-BGP 用于自治域间的路由器之
间。为了防止产生环回路由, BGP 协议要求一个路由器通过
I-BGP 学到的路由,不再向其他 I-BGP 邻居广播,所以一个
自治域内所有参加 I-BGP 协议的路由器都要与其他路由器建
立会话,从而保证路由信息能够正确地广播到每一个路由
器。依照这个原则,一个自治域内总的 I-BGP 会话数为 N×
(N-1)/2(N 为运行 I-BGP 的路由器数),当 N 不断增大时,
这个数字会大得惊人:如 100 台路由器,则会话数为 4950.
这对网络设备而言是个非常大的负担,而且还将使网络的管
理与配置变得异常复杂。而骨干网通常由大量的运行 I-BGP
的路由器组成,因此,这个问题是否能够解决,直接影响到
网络规模的大小。
(2)更改路由策略时路由振荡的问题
BGP 属于增量更新的路由协议,当有新的路由要发布时,
路由器会向邻居发送 Update 信息,而如果要删除某条路由
时,就会发送 Withdraw 信息。BGP 路由的 Flap 的定义是:
当一条路由在被收回( Withdraw )后,又被广播( Update)
出来,视为一次
导致一台路由器整个路由表重新计算,因此当 Flap 的情况
比较多时,对路由器设备的负载将产生巨大的压力。根据笔
者在实际工作中的经验,一般情况下,一台高端路由器在计
算 BGP 路由的时候, CPU 的负载基本上在 80%~90%左右,有
时甚至达到 100%,占用了几乎所有的 CPU 资源。虽然目前
大部分的高端路由器都将路由计算的模块与转发模块分布
在不同的硬件上,来减少主 CPU 忙导致的路由器性能下降的
问题,但是路由表的频繁变化和更新,对整个设备的运行还
是有一定的影响的,而且这样的计算会随着路由的收回或广
播,继续向自治域内部扩展,使内部的路由器产生同样的问
题。
(3)其他需要考虑的问题
除了上面的两个问题会导致对路由器资源过量消耗之
外,还有其他的一些因素,如路由的数目、 BGP 路由表的大
小和路由计算的方式等,同样也会影响路由器的性能。
另外,网络越大,路由条目越多,配置和管理的工作也
就越复杂,这就需要在网络设计的时候尽量简化配置,降低
管理人员的工作强度,避免人为原因造成故障。
2 如何解决制约 BGP 扩展性的问题
针对以上问题,介绍一些相关的解决方法。
(1)解决 I-BGP 会话数瓶颈的方法
上面提到的 I-BGP 的会话数过多的问题,