IDC资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回IDC资讯列表

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

发布时间:2023-02-03

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

制约BGP扩大性的几个问题

BGP是目前利用在因特网上的IP网络互联协议,为运营商之间的互联提供了稳定而安全的路由协议,具有丰富的路由控制机制。为了更好地控制路由策略,当前大部份的运营商均将BGP部署到骨干路由器。随着网络的不断扩大、路由器数目的增多和路由信息条目的激增,解决BGP的扩大性问题变得愈来愈重要。

  目前BGP的扩大性面临以下几个问题。

  1、IBGP的FullMesh问题

BGP路由协议分为IBGP和EBGP两个部份。IBGP用于自治域内的路由器之间,EBGP用于自治域间的路由器之间。为了避免产生环回路由,BGP协议要求一个路由器通过IBGP学到的路由,不再向其他IBGP邻居广播,所以一个自治域内所有参加IBGP协议的路由器都要与其他路由器建立会话,从而保证路由信息能够正确地广播到每个路由器。依照这个原则,一个自治域内总的IBGP会话数为N×(N1)/2(N为运行IBGP的路由器数),当N不断增大时,这个数字会大得惊人:如100台路由器,则会话数为4950。这对网络装备而言是个非常大的负担,而且还将使网络的管理与配置变得异常复杂。而骨干网通常由大量的运行IBGP的路由器组成,因此,这个问题是否是能够解决,直接影响到网络范围的大小。

  2、更改路由策略时路由振荡的问题

BGP属于增量更新的路由协议,当有新的路由要发布时,路由器会向邻居发送Update信息,而如果要删除某条路由时,就会发送Withdraw信息。BGP路由的Flap的定义是:当一条路由在被收回(Withdraw)后,又被广播(Update)出来,视为一次Flap。由于任何一条路由的收回和更新都会致使一台路由器全部路由表重新计算,因此当Flap的情况比较多时,对路由器装备的负载将产生巨大的压力。根据笔者在实际工作中的经验,一般情况下,一台高端路由器在计算BGP路由的时候,CPU的负载基本上在80%~90%左右,有时乃至到达100%,占用了几近所有的CPU资源。虽然目前大部份的高端路由器都将路由计算的模块与转发模块散布在不同的硬件上,来减少主CPU忙致使的路由器性能降落的问题,但是路由表的频繁变化和更新,对全部装备的运行或有一定的影响的,而且这样的计算会随着路由的收回或广播,继续向自治域内部扩大,使内部的路由器产生一样的问题。

  3、其他需要斟酌的问题

除上面的两个问题会致使对路由器资源过量消耗以外,还有其他的一些因素,如路由的数目、BGP路由表的大小和路由计算的方式等,一样也会影响路由器的性能。

另外,网络越大,路由条目越多,配置和管理的工作也就越复杂,这就需要在网络设计的时候尽可能简化配置,下降管理人员的工作强度,避免人为缘由造成故障。

  4、怎样解决制约BGP扩大性的问题?

同盟的方法(Confederations)

同盟的工作原理是:将原来一个自治域的网络分成多个子自治域,通过Confederationsid将原AS号配置到每一个路由器上。这样有两个好处:一是可以保存原本的IBGP属性,包括LocalPreference、MED和NEXT_HOP;二是能在Confederations的功能中自动实现,无需管理员在网络的出口处配置过滤内部AS号信息的操作。

路由反射器(RouteReflector)

采取路由反射器是目前利用最广泛的方法,较之前面同盟的方法,具有更好的扩大性。路由反射器的工作原理是:将一个自治域内的路由器分成几个Cluster,每一个Cluster由Reflector和Client组成。Reflector之间构成FullMesh,运行常规的IBGP;Client只与Reflector运行IBGP,对Client来讲,Reflector只是普通的邻居而已,Reflector则扮演了路由集散地的角色,将从其他Reflector学到的IBGP路由转发给Client,同时,将从Client学到的IBGP路由转发给Cluster内的其他Clients和Cluster外的其他Reflector,再借由Reflectors广播到其所在的Cluster。在实际的网络中,为了提高冗余度,通常一个Client与多个Reflector建立邻居关系,而且不局限于Client所在Cluster的Reflector。

因而可知,Client上的IBGP会话数通常是1~2个,与同盟的方法相比,只要Reflector的性能足够高,Cluster就能够做得很大,而Client的负载不会随Cluster的变化有太大的变化。对前一种方法,由于一个子自治域的所有路由器或要做到FullMesh,所以最低性能的路由器决定了一个子自治域的大小;而路由反射器法则通常是一个或多个最高性能的路由器决定Cluster的大小,因此,具有更好的网络扩大性能。

另外,一个Reflector也能够成为另外一个Reflector的Client,构成层级结构,这特别适用于依照分层结构建设的网络,可以很容易地把平面的网络管理演化为分层管理。

固然,在使用路由反射器的时候,也有一些需要注意的地方,比如:Reflector其实不是纯洁的转发路由,所有收到的路由在Reflector上一样要经过最优计算,然后将优选路由向外广播,所以Reflector的选择要根据网络结构而定,尽可能使IBGP邻居关系与实际的电路连接关系相对应。

控制路由振荡

目前,控制RouteFlap主要采取Damping的方法:一个BGP路由器对收到的EBGP路由设定Penalty值,每次路由Flap都会使该路由的Penalty值增大,而路由稳定时,Penalty值会随时间而减小;当Penalty值超过预设的抑制限制时,该路由就不再被广播,而当Penalty减小至低于重用限制时,该路由才会被重新向外广播。这类方法主要是针对EBGP邻居而言的。这样,当一个网络内部产生路由振荡时,与之相连的其他网络通过Damping可以有效地防御对各自网络的影响。

在网络保护中,常常会遇到这样的情况:宁愿一条电路中断一段时间,也不希望它在不停地震荡。由于中断一段时间后,只要电路恢复,网络流量也会随之恢复;与此相反,振荡的电路恢复后,需要等待一段时间才能恢复正常的流量(其他网络都在抑制振荡的路由)。Damping则可以有效地保证因特网的稳定,但同时也会致使一些故障的延时恢复。

当前的装备基本都支持Damping的功能,而且提供可以配置的参数来精细控制Damping。一般情况下,装备提供的缺省配置能够满足大多数网络的需求,如果确有特殊需要,则一定要经过仔细计算,否则,不是没有效果,就是把他人的路由抑制后很长时间不能恢复。

以上对BGP扩大性相干的几个问题和相干的措施进行了论述,在实际的利用中还需要根据具体情况来部署。但是总的思路和原则都是一样的,即一方面要下降装备的资源消耗,另外一方面要简化保护管理,从硬件、软件两方面来提高网络的扩大性。

TikTok千粉号购买平台:https://tiktokusername.com/