5.BGP与IGP的互操作

BGP路由表是独立于IGP路由表的,但是这两个表之间可以进行信息的交换,这就是前面提到的“再分布”技术(Redistribution)。

信息的交换有两个方向:从BGP注入IGP,以及从IGP注入BGP。前者是将AS外部的路由信息传给AS内部的路由器,而后者是将AS内部的路由信息传到外部网络,这也是路由更新的来源。

把路由信息从BGP注入IGP涉及到一个重要概念——同步(Synchronization)。同步规则,是指当一个AS为另一个AS提供了过渡服务时,只有当本地AS内部所有的路由器都通过IGP的路由信息的传播收到这条路由信息以后,BGP才能向外发送这条路由信息。当路由器从IBGP收到一条路由更新信息时,在转发给其他EBGP对等体转之前,路由器会对同步性进行验证。只有IGP认识这个更新的目的时(即IGP路由表中有相应的条目),路由器才会将其通过EBGP转发;否则,路由器不会转发该更新信息。

同步规则的主要目的是为了保证AS内部的连通性,防止路由循环的黑洞。但是在实际的应用中,一般都会将同步功能禁用,而使用AS内IBGP的全网状连接结构来保证连通性,这样即可以避免向IGP中注入大量BGP路由,加快路由器处理速度,又可以保证数据包不丢失。要安全的禁用同步,需要满足以下两个条件之一:1,所处的AS是单口的,或者说是末端AS(Stub AS)――即是指只有一个点与外界网络连接。2,虽然所处的AS是过渡型的(指一个AS可以通过本地AS,与第三方AS建立连接的),但是在AS内部的所有路由器都运行BGP。第2种情况是很常见的,因为AS内所有的路由器都有BGP信息,所以IGP只需要为本地AS 传送路由信息。大部分的网络设备在实现BGP时,都提供了禁用同步的开关。

将IGP路由信息注入BGP,是路由更新的来源。它直接影响到因特网的路由稳定性。信息注入有两种方式:动态和静态。

动态注入又分为完全注入和选择性注入。完全动态注入是指将所有的IGP路由再分布(Redistribution)到BGP中。这种方式的优点是配置简单,但是可控性弱,效率低。选择性的动态注入则是将IGP路由表中的一部分路由信息注入BGP(如使用CiscoIOS中的network子命令)。这种方式会先验证地址及掩码,大大增强了可控性,提高了效率,可以防止错误的路由信息注入。

但是无论哪种动态注入方式,都会造成路由的不稳定。因为动态注入完全依赖于IGP信息,当IGP路由发生路由波动时,不可避免的会影响到BGP的路由更新。这种路由的不稳定会发出大量的更新信息,浪费大量的带宽。对于这种缺陷,可以使用在边界处使用路由衰减和聚合(BGP4的新增特性CIDR)来改善。

静态注入就可以有效解决路由不稳定的问题。它是将静态路由的条目注入到BGP中去。静态路由存在于IGP路由表中。由于静态路由条目是人为的加入的,不会受到IGP波动的影响,所以很稳定。它的稳定性防止了路由波动引起的反复更新。但是,静态注入也会产生数据流阻塞等问题。

所以,在选择注入方式时,需要根据网络的实际状况来作出选择。

BGP还提供选择不同路由策略(Policy)的方法来控制BGP更新信息的数据流。具体的说,可以改变管理距离(Administrative distance)来确定使用哪一个路由协议的更新信息;可以使用BGP过滤(如route maps)来控制更新数据流;还可以用CIDR和地址聚合来改变更新信息;也可以使用路由反射器(Route Reflectors)来改变路由更新信息的转发方式,从而改变对BGP内部网络的物理拓扑的全网状要求。

6.针对大型网络的扩展特性

前面已经提到,由于IBGP的Split-horizon特性,为了保证连续性,就必须在AS内实现全网状的(full meshed)连接。但是,对于一个X个节点的网络来说,全网状的拓扑要求((X-1)X/2)个连接。当X的值很大的时候,就会带来过多的花费,以及庞大的配置任务。这是很不经济和低效的。

为了减少对IBGP链路的要求,在RFC1966、RFC1965中,分别提出了路由反射器(Route Reflection)和联盟(Confederations)技术。

路由器可以配置成路由反射器,路由反射器允许将一个IBGP传来的BGP路由传到另一个IBGP链路上。这样就缓解了对全网状拓扑的需求。但是并不是所有情况下,路由反射器都是一种最佳选择,因为这样会加大作为反射器的路由器的系统开销,从而减慢处理速度,甚至造成数据丢失。而且,如果路由反射器出现问题,那么所有的连接都会被中断。为了防止中断出现,增加冗余度,一般可以配置多个路由反射器。

图三

联盟则是将AS再划分成子AS(sub AS),在sub AS中运行IBGP,使用全网状结构;而在sub AS之间使用EBGP,这样也可减少对IBGP连接的需求。联盟同样也存在缺陷,如路由选择等。所以和路由反射器一样,一般只在存在很多IBGP连接时才会使用联盟技术。


相关内容