众多Internet服务提供商在自治域系统(Autonomous System)间普遍使用外部网关路由协议—BGP(Border Gateway Protocol) Version 4,然而在自治域系统内部使用的路由协议都不尽相同,但都属于内部网关协议—IGP(Internal Gateway Protocol)。
本文将结合目前国内大型网络中正在使用着的内部网关路由协议进行分析对比,并提出自己的见解和看法。
首先,让我们来看两个早期的比较简单的路由协议:
RIP Version1 (--Routing Information Protocol)和IGRP(--Interior Gateway Routing Protocol)
这两个路由协议都是非常容易设计、配置和维护的路由协议,属于距离矢量路由协议,仅适用于小型网络,而且并不需要结构化的地址方案,只是用平面的网络体系结构。
它们的缺点主要有:
· RIP使用路由器跳数(Hop Count)作为路径的开销,并作为最佳路径的选择依据,所以有时会导致选择出来的路径并不是真正的最佳路径,并且使网络直径只能限制在15跳之内,超过15跳的路由将被RIP认为是不可到达。而IGRP并不使用路由器跳数计算路径开销,所以对于网络直径的限制非常小(最大允许255跳路由器)。IGRP使用复合的开销算法,利用这些参数:带宽(Bandwidth);延时(Delay);可信度(Reliability);负载(Load);最大传输单元(MTU)。所以选择最佳路径将会更准确。
· RIP(每30秒)和IGRP(每90秒)定期就要将整个路由表作为路由更新从各个端口广播出去,这样虽然需要的计算不多,占用的CPU和内存并不多,但是消耗的网络带宽很多。而且因为必须是等到更新周期到才能通知其他路由器路由的变化,所以网络收敛速度非常慢,在大型网络中有可能导致路由表不一致。
· 需要使用例如Split Horizon; Count to Infinity; Poison Reverse; Hold-Down timer 等等技术以保证不出现路由循环。(这些技术中,有些在一定条件下反而有负面影响)
即使RIP现在已经有了Version 2,相对于第一个版本已经有了很多改进,例如RIP v2已经支持VLSM,并且使用组播发送路由更新,但是RIP v2在很多特性仍然是继承了第一个版本,所以仍然属于距离矢量路由协议,仍然不适用于大型网络。
IGRP是Cisco特有的距离矢量路由协议,是Cisco于80年代中期为了解决RIP路由协议所具有的问题的开发的。IGRP较RIP已经有了很多改进,包括使用更丰富的开销算法参数、消除了RIP对于网络直径的15跳数限制、可以在开销不等的路径上进行负载均衡等等。 但是IGRP仍然没有解决RIP version1的例如扩展性方面的问题。
这两种路由协议都是较早期推出的距离矢量路由协议,所以都有一定的缺点,使它们非常不适于在大型网络上应用。
随着网络规模不断扩大,需要一些运行更加高效的路由协议,它们包括:
EIGRP----Enhanced IGRP
从该路由协议的名称就可以看出,EIGRP是Cisco开发的增强型版本的IGRP路由协议,所以仍然是Cisco特有的。
开发EIGRP的目的就是解决IGRP所面临的可扩展性问题。因为EIGRP仍然属于距离矢量路由协议,但是它却又具有链路状态路由协议的一些特性,所以Cisco将EIGRP定性为高级距离矢量路由协议。
EIGRP使用DUAL算法,将最佳路由的计算分布到了多个路由器上,每个路由器仅仅负责自己的一小部分计算,所以这就比OSPF进行的SPF算法根据整个网络的拓扑计算最短路径树时占用的CPU资源要少得多了。
和IGRP一样,使用复合型路径开销算法,参数仍然是:带宽(Bandwidth);延时(Delay);可信度(Reliability);负载(Load);最大传输单元(MTU)。 所以计算最佳路由非常准确,并且会对网络直径有任何限制。
EIGRP具有链路状态路由协议的许多特性,所以它也维护邻居表、拓扑数据库,并且在它的拓扑数据库中维护着多条可选最佳路径(Feasible Successor),如果最佳路径失效了,不用经过任何复杂的算法,EIGRP仅需要进行简单的比较之后就可以将冗余路径提升为当前最佳路径,并装载到路由表中,这个特性使得EIGRP收敛速度非常快,所以,也可以说是因为具有链路状态路由协议的部分属性,才使得EIGRP收敛速度如此之快。 并且支持在等开销和非等开销的路径上进行负载均衡。
EIGRP并不是定期发送路由更新,它只有在拓扑结构有变化时才发送路由更新,并且也不是发送整个路由表,而是只发送有变化的链路的状态;并且EIGRP并不是使用广播发送路由信息,而是使用组播,从而减少了带宽的的消耗。
EIGRP是无类路由协议,所以支持VLAM,CIDR等等技术。EIGRP并没有像OSPF那样必须在区域边界或自治系统边界才能进行汇总, EIGRP可以在网络任何地方进行汇总,并且还支持自动和手动汇总。
EIGRP支持非常多的被路由协议(Routed Protocol),包括IP,IPX,AppleTalk。
EIGRP也支持多种类型的广域网链路:点到点; 非广播多路访问(NBMA),多点。因为EIGRP路由协议本身消耗的带宽非常小,所以也可以在广域网链路上运行,并且该路由协议占用的带宽是可以根据实际情况进行调节的。
EIGRP比OSPF配置要简单得多,并且并不需要必须是结构化的网络(当然,如果是结构化网络会使路由协议运行效率更高,并且使路由汇总非常容易)。 EIGRP一开始就是为了在非常大型网络上应用而设计的。 而OSPF则是对于网络的设计非常敏感的。