在互联网飞速发展的今天,TCP/IP协议已经成为数据网络互联的主流协议。在各种网络上运行的大大小小各种型号路由器,承担着控制本世纪或许最重要信息的流量,而这成百上千台路由器间的协同工作,离不开路由协议。OSPF和EIGRP都是近年来出现的比较好的动态路由协议,OSPF以协议标准化强,支持厂家多,受到广泛应用,而EIGRP协议由网络界公认的领先厂商Cisco公司发明,并靠其在业界的影响力和绝对的市场份额,也受到用户的普遍认同。然而这两种协议究竟哪种更好,谁更适合网络未来发展的需要?本文就用户普遍关心的问题,从技术角度客观分析这两种协议各自的优缺点,以便网络集成商和企业用户在网络设计规划时,能作为参考。
  
  一、OSPF协议
  (一)、OSPF协议简介
  OSPF是Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是IETF组织开发的一个基于链路状态的自治系统内部路由协议。在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
  每一台运行OSPF协议的路由器总是将本地网络的连接状态,(如可用接口信息、可达邻居信息等)用LSA(链路状态广播)描述,并广播到整个自治系统中去。这样,每台路由器都收到了自治系统中所有路由器生成的LSA,这些LSA的集合组成了LSDB(链路状态数据库)。由于每一条LSA是对一台路由器周边网络拓扑的描述,则整个LSDB就是对该自治系统网络拓扑的真实反映。
  根据LSDB,各路由器运行SPF(最短路径优先)算法。构建一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。在图论中,“树”是一种无环路的连接图。所以OSPF计算出的路由也是一种无环路的路由。
  OSPF协议为了减少自身的开销,提出了以下概念:
  (1). DR:
  在各类可以多址访问的网络中,如果存在两台或两台以上的路由器,该网络上要选举出一个“指定路由器”(DR)。“指定路由器”负责与本网段内所有路由器进行LSDB的同步。这样,两台非DR路由器之间就不再进行LSDB的同步。大大节省了同一网段内的带宽开销。
  (2). AREA:
  OSPF可以根据自治系统的拓扑结构划分成不同的区域(AREA),这样区域边界路由器(ABR)向其它区域发送路由信息时,以网段为单位生成摘要LSA。这样可以减少自治系统中的LSA的数量,以及路由计算的复杂度。
  OSPF使用4类不同的路由,按优先顺序来说分别是:
  区域内路由
  区域间路由
  第一类外部路由
  第二类外部路由
  区域内和区域间路由描述的是自治系统内部的网络结构,而外部路由则描述了应该如何选择到自治系统以外目的地的路由。一般来说,第一类外部路由对应于OSPF从其它内部路由协议所引入的信息,这些路由的花费和OSPF自身路由的花费具有可比性;第二类外部路由对应于OSPF从外部路由协议所引入的信息,它们的花费远大于OSPF自身的路由花费,因而在计算时,将只考虑外部的花费。
  
  (二)、OSPF协议主要优点:
  1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)
  2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。
  3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。
  4、将协议自身的开销控制到最小。见下:
  
  1)用于发现和维护邻居关系的是定期发送的是不含路由信息的hello报文,非常短小。包含路由信息的报文时是触发更新的机制。(有路由变化时才会发送)。但为了增强协议的健壮性,每1800秒全部重发一次。
  2)在广播网络中,使用组播地址(而非广播)发送报文,减少对其它不运行ospf 的网络设备的干扰。
  3)在各类可以多址访问的网络中(广播,NBMA),通过选举DR,使同网段的路由器之间的路由交换(同步)次数由 O(N*N)次减少为 O (N)次。
  4)提出STUB区域的概念,使得STUB区域内不再传播引入的ASE路由。
  5)在ABR(区域边界路由器)上支持路由聚合,进一步减少区域间的路由信息传递。
  6)在点到点接口类型中,通过配置按需播号属性(OSPF over On Demand Circuits),使得ospf不再定时发送hello报文及定期更新路由信息。只在网络拓扑真正变化时才发送更新信息。
  
  5、通过严格划分路由的级别(共分四极),提供更可信的路由选择。
  6、良好的安全性,ospf支持基于接口的明文及md5 验证。
  7、OSPF适应各种规模的网络,最多可达数千台。
  
  二、EIGRP协议
  EIGRP和早期的IGRP协议都是由Cisco发明,是基于距离向量算法的动态路由协议。EIGRP(Enhanced Interior Gateway Routing Protocol)是增强版的IGRP协议。它属于动态内部网关路由协议,仍然使用矢量-距离算法。但它的实现比IGRP已经有很大改进,其收敛特性和*作效率比IGRP有显著的提高。
  EIGRP的收敛特性是基于DUAL ( Distributed Update Algorithm ) 算法的。DUAL 算法使得路径在路由计算中根本不可能形成环路。它的收敛时间可以与已存在的其他任何路由协议相匹敌。
  EIGRP协议主要具有如下特点:
  1. 精确的路由计算和多路由的支持
  EIGRP协议继承了IGRP协议的最大的优点:矢量路由权。EIGRP协议在路由计算中要对网络带宽,网络时延,信道占用率,信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。
  2. 较少的带宽占用
  使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送路由报文而影响正常数据业务的事情发生。
  3. 无环路由和较快的收敛速度
  路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。
  4. MD5认证
  为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全
  5. 任意掩码长度的路由聚合
  EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。
  6. 同一目的但优先级的路由可实现负载分担
  去往同一目的的路由表项,可根据接口的速率、连接质量、可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。
  7. 协议配置简单
  使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。
  
  三、OSPF和EIGRP的比较
  OSPF和EIGRP都是收敛速度较快并且不会形成环路的算法,网络带宽占用较小,使用灵活,安全性较好的路由协议。但是从以上分析可以看出,各自还是有优缺点。
  
  (一)、OSPF的缺点
  1、配置相对复杂。由于网络区域划分和网络属性的复杂性,需要网络分析员有较高的网络知识水平才能配置和管理OSPF网络。
  2、路由负载均衡能力较弱。OSPF虽然能根据接口的速率、连接可靠性等信息,自动生成接口路由优先级,但通往同一目的的不同优先级路由,OSPF只选择优先级较高的转发,不同优先级的路由,不能实现负载分担。只有相同优先级的,才能达到负载均衡的目的,不象EIGRP那样可以根据优先级不同,自动匹配流量。
  
  (二)、EIGRP的缺点
  1. EIGRP没有区域(AREA)的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。
  2. 运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。
  3. EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息(active route)散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于active状态(这种路由被称为stuck in active route),并且,如果在active route的这次DUAL计算过程中,出现到该路由的后继(successor)的metric发生变化的情况,就会进入多重计算,这些都会影响DUAL算法