前面我们对BGP路由协议的部署问题简单的引入了一下,接下来针对具体的网络需要我们再来深入谈一谈在部署过程中的链接问题。随着网络的近一步发展,ISP需要通过不同的网络提供商,通过多条线路与INTERNET连接,以保证网络的可靠性。这时BGP才有了真正的用武之地。在这种情况下,网络通常会出现以下几种结构。如图二,图三。两种网络结构看起来有些类似,图三中网络结构只是增加了一台路由器以排除图二中路由器R1产生单点故障的可能,但在如何部署BGP路由时却完全不同。
在图二中只需在R1上配置BGP,并将R1作为网内其它路由器的缺省网关,并通过BGP路由协议所提供的Weight这个路由参数,调节网内流量在两条线路上的分布。这样即可实现线路的互为备份,又可有效的调节流量分布。
网络的几种结构
在图三中,有两台路由器拥有外部路由,通常为保证域内的路由一致性,需在图中路由器R1和R2之间建立IBGP连接,使其建立一致的BGP路由表。在这个过程中,也可人为的使用BGP路由协议所提供的Local-Preference这个路由参数,优化路由选择,以控制数据流量在线路上的分布。但如何将这些外部路由告知网内的其它路由器,简单的有以下两种方法:
1.在网络结构相对简单时,网络没有分布层,核心层直接与接入层连接。这时接入层路由器往往不能在传输大量的用户数据的同时, 满足启用BGP所需的性能要求。在这种情况下,只有依据流量的分布情况,将网内接入路由器划分组别,不同的组别将缺省网关指向不同的边界网关路由器。
这种设计只能作为网络结构不完善,设备性能不高时的临时方案,不能作为永久性方案。因为它经常需要人为干预,依据网络流量变化情况重新划分路由器组别,否则会出现某一路由器负载过重,而另为一台负载较轻的情况,从而不能有效的使用设备资源。而且当互联的线路增多时,这种设计会面临更多的问题。
2.最好的方法是首先要建立完善网络结构,网络结构应具备核心层,分布层和接入层。通过IBGP路由协议将外部路由注入到分布层路由器中,如图二中路由器R3,R4。进而将分布层的路由器作为某一区域接入层路由器的缺省网关,将通往域外的负载均匀的分布到各个分布层路由器上,从减少对具体某个路由器的压力。
这种设计是网络结构日趋完善,网络规模日趋扩大的ISP最终的选择。
最近CISCO公司有从另一角度提出一个部署BGP路由协议的新思路,使用IBGP作为内部路由协议,交换网内用户路由信息。及在网络的接入层路由器上启用IBGP路由协议,并将指向用户的静态路由分布到IBGP中。这主要是考虑,BGP路由协议在路由变动时,只更新发生变动的路由,不会象OSPF和ISIS,重新计算SPF数据库。因而利用BGP这一特性减少路由收敛时间,提高网络的稳定性。但在使用这种方法时,应注意BGP对路由器性能的要求,应避免将外部路由注入到接入层路由器中,导致路由器工作性能下降。
综上所述,我们简单讨论了如何在ISP的网络上部署BGP路由协议。实际上,BGP的应用重点和优势在于其对路由信息的控制能力, 从而达到对数据流量的控制和分配。这是一项非常复杂的工作,要依据具体的情况而定,在本文就不多谈了。但有一点需要注意,仅仅依靠BGP自身的手段来满足各种不同的实际需要是不可行的,还需与互联伙伴共同协作才能实现,因为BGP中的许多参数需要互联双方共同商定,才能生效。