BGP同步
利用同步机制可以防止因IGP信息不足而使得数据包在转接AS中遇到路由黑洞。
BGP同步原理:如果BGP同步被开启,那么在BGP路由器将从iBGP邻居学习到的BGP路由(这些路由是去往其他AS的)通告给eBGP邻居时,将会首先检查IGP是否知道这些BGP路由,如果IGP路由表中没有这些BGP路由信息,那么BGP路由器将不会将这些BGP路由条目放入路由表,也不会将其通告给eBGP邻居。
即IGP表与BGP表必须保持同步状态,BGP知道的网络,IGP必须事先就知道怎么走。
BGP route-reflector-client
原理:
l 若从客户学习到的路由,则全部反射给自己的客户+非客户;
l 若从非客户学习到得路由,则仅反射给自己的客户;
l 所从eBGP邻居学习到得路由,则发射给全部BGP路由器(非客户+客户);
路由反射器及其客户被共同称为cluster。
为了防止可能出现的路由环路或其他路由差错,要求路由反射器不得更改其从客户接收到得路由的属性。
为了解决单点故障问题,一个cluster中可以有多个RR,客户与每台RR之间都有物理连接,而且RR之间也建立了对等关系。
路由反射器必须使用两种BGP路径属性:ORIGINATOR_ID和CLUSTER_LIST。
Cluster_list防环的机制:
当RR将来自客户的路由反射给非客户时,同时将其簇ID附加到Cluster_list中,如果cluster_list为空,则RR将创建一个Cluster_list。RR接收到Update消息后,就会检查cluster_list,如果发现其簇ID位于cluster_list中,就知道出现了路由环路,从而忽略该Update消息。
BGP confederation
联盟是另一种控制大量iBGP对等体的方法。
外部对等体将整个联盟视为单个AS,在整个联盟内部推荐使用保留的AS号(64512~65535)。
在BGP路由决策进程中有一条规则:联盟外部的eBGP路由优于联盟内部成员AS之间的eBGP路由,而成员AS之间的eBGP路由优于iBGP路由。
联盟与标准AS的另一个区别在于某些属性的处理方式不同,NEXT_HOP和MED属性可以不加修改的宣告给联盟其他AS的eBGP邻居,此外还可以传送LOCAL_PRE属性。
BGP路由阻尼
路由翻滚(route flaps)是Internet不稳定的首要因素。当有效路由被重复宣告为无效、有效时就会产生路由翻滚现象。很显然,每次路由状态发生变化时,都要通过互联网宣告该变化情况,进而每台路由器都要重新计算路由,从而消耗了大量的网络带宽和路由器的CPU资源。
路由阻尼(route dampening)是一种阻止不稳定路由传播到整个互联网络的方法。
开启路由阻尼机制的路由器会为每条路由分配一个动态的特征值,用以反映该路由的稳定的程度。当某条路由出现翻动时,将会给该路由分配一个惩罚值,翻动次数越多,累加的惩罚之就越大,惩罚值超出预设的阈值(抑制门限suppress limit),该路由就被抑制,不再对外宣告该路由。惩罚值会在一个半衰期内降低为当前初值的一半,当降低至另一个阈值(重用门限reuse limit)后,才会再次对外宣告该路由。
最大抑制门限使得某路由在非常短的时间内发动十几次之后,不会将惩罚值累加到很高,使路由始终保持被抑制状态。
cisco路由器默认的各种路由阻尼变量:
l 惩罚值:1000/路由翻滚
l 抑制门限:2000
l 重用门限:750
l 半衰期:15分钟
l 最大抑制时间:60分钟或半衰期的4倍