范永清中国工商银行福建省三明市分行技术保障处
摘 要 在计算机网络中,路由协议的选择至关重要,它直接影响到一个网络的性能,而路由协议的选择又相当复杂。本文主要介绍几种常用路由协议的工作原理,并对各种协议的特点进行分析、比较,以帮助网络设计工程师在设计网络时,能够正确地选择路由协议。
要害词 路由协议 静态路由 动态路由
1 概述
路由分为静态路由和动态路由,其相应的路由表称为静态路由表和动态路由表。静态路由表由网络治理员在系统安装时根据网络的配置情况预先设定,网络结构发生变化后由网络治理员手工修改路由表。动态路由随网络运行情况的变化而变化,路由器根据路由协议提供的功能自动计算数据传输的最佳路径,由此得到动态路由表。
根据路由算法,动态路由协议可分为距离向量路由协议(Distance Vector Routing Protocol)和链路状态路由协议(Link State Routing Protocol)。距离向量路由协议基于Bellman-Ford算法,主要有RIP、IGRP(IGRP为Cisco公司的私有协议);链路状态路由协议基于图论中非常闻名的Dijkstra算法,即最短优先路径(Shortest Path First,SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传递给在同一区域内的所有路由器。根据路由器在自治系统(AS)中的位置,可将路由协议分为内部网关协议(Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置选路策略时,具有明显的缺点,目前已被BGP代替。
EIGRP是Cisco公司的私有协议,是一种混合协议,它既有距离向量路由协议的特点,同时又继续了链路状态路由协议的优点。各种路由协议各有特点,适合不同类型的网络。下面分别加以阐述。
2 静态路由
静态路由表在开始选择路由之前就被网络治理员建立,并且只能由网络治理员更改,所以只适于网络传输状态比较简单的环境。静态路由具有以下特点:
· 静态路由无需进行路由交换,因此节省网络的带宽、CPU的利用率和路由器的内存。
· 静态路由具有更高的安全性。在使用静态路由的网络中,所有要连到网络上的路由器都需在邻接路由器上设置其相应的路由。因此,在某种程度上提高了网络的安全性。
· 有的情况下必须使用静态路由,如DDR、使用NAT技术的网络环境。
静态路由具有以下缺点:
· 治理者必须真正理解网络的拓扑并正确配置路由。
· 网络的扩展性能差。假如要在网络上增加一个网络,治理者必须在所有路由器上加一条路由。
· 配置烦琐,非凡是当需要跨越几台路由器通信时,其路由配置更为复杂。
3 动态路由
动态路由协议分为距离向量路由协议和链路状态路由协议,两种协议各有特点,分述如下。
1. 距离向量(DV)协议
距离向量指协议使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的速率。
距离向量路由协议不使用正常的邻居关系,用两种方法获知拓扑的改变和路由的超时:
· 当路由器不能直接从连接的路由器收到路由更新时;
· 当路由器从邻居收到一个更新,通知它网络的某个地方拓扑发生了变化。
在小型网络中(少于100个路由器,或需要更少的路由更新和计算环境),距离向量路由协议运行得相当好。当小型网络扩展到大型网络时,该算法计算新路由的收敛速度极慢,而且在它计算的过程中,网络处于一种过渡状态,极可能发生循环并造成暂时的拥塞。再者,当网络底层链路技术多种多样,带宽各不相同时,距离向量算法对此视而不见。
距离向量路由协议的这种特性不仅造成了网络收敛的延时,而且消耗了带宽。随着路由表的增大,需要消耗更多的CPU资源,并消耗了内存。
2. 链路状态(LS)路由协议
链路状态路由协议没有跳数的限制,使用“图形理论”算法或最短路径优先算法。
链路状态路由协议有更短的收敛时间、支持VLSM(可变长子网掩码)和CIDR。
链路状态路由协议在直接相连的路由之间维护正常的邻居关系。这答应路由更快收敛。链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。
不像距离向量路由协议那样,更新时发送整个路由表。链路状态路由协议只广播更新的或改变的网络拓扑,这使得更新信息更小,节省了带宽和CPU利用率。另外,假如网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)。
3. 链路状态路由协议和距离向量路由协议的比较
4 常用动态路由协议的分析
4.1 RIP
RIP(路由信息协议)是路由器生产商之间使用的第一个开放标准,是最广泛的路由协议,在所有IP路由平台上都可以得到。当使用RIP时,一台Cisco路由器可以与其他厂商的路由器连接。RIP有两个版本:RIPv1和RIPv2,它们均基于经典的距离向量路由算法,最大跳数为15跳。
RIPv1是族类路由(Classful Routing)协议,因路由上不包括掩码信息,所以网络上的所有设备必须使用相同的子网掩码,不支持VLSM。RIPv2可发送子网掩码信息,是非族类路由(Classless Routing)协议,支持VLSM。
RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,假如在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。假如在240s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。
RIP具有以下特点:
· 不同厂商的路由器可以通过RIP互联;
· 配置简单; · 适用于小型网络(小于15跳);
· RIPv1不支持VLSM;
· 需消耗广域网带宽;
· 需消耗CPU、内存资源。
RIP的算法简单,但在路径较多时收敛速度慢,广播路由信息时占用的带宽资源较多,它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。
4.2 IGRP
内部网关路由协议(Interior Gateway Routing Protocol,IGRP)是Cisco公司20世纪80年代开发的,是一种动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、带宽、可靠性和负载等来计算最优路由,它在同个自治系统内具有高跨度,适合复杂的网络。Cisco IOS答应路由器治理员对IGRP的网络带宽、延时、可靠性和负载进行权重设置,以影响度量的计算。
像RIP一样,IGRP使用UDP发送路由表项。每个路由器每隔90s更新一次路由信息,假如270s内没有收到某路由器的回应,则认为该路由器不可到达;假如630s内仍未收到应答,则IGRP进程将从路由表中删除该路由。
与RIP相比,IGRP的收敛时间更长,但传输路由信息所需的带宽减少,此外,IGRP的分组格式中无空白字节,从而提高了IGRP的报文效率。但IGRP为Cisco公司专有,仅限于Cisco产品。
4.3 EIGRP
随着网络规模的扩大和用户需求的增长,原来的IGRP已显得力不从心,于是,Cisco公司又开发了增强的IGRP,即EIGRP。EIGRP使用与IGRP相同的路由算法,但它集成了链路状态路由协议和距离向量路由协议的优点,同时加入散播更新算法(DUAL)。
EIGRP具有如下特点:
· 快速收敛。快速收敛是因为使用了散播更新算法,通过在路由表中备份路由而实现,也就是到达目的网络的最小开销和次最小开销(也叫适宜后继,feasible sUCcessor)路由都被保存在路由表中,当最小开销的路由不可用时,快速切换到次最小开销路由上,从而达到快速收敛的目的。
· 减少了带宽的消耗。EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻接的EIGRP路由器发送路由更新,因此,其更新路由所需的带宽比RIP和EIGRP小得多——这种方式叫触发式(triggered)。
· 增大网络规模。对于RIP,其网络最大只能是15跳(hop),而EIGRP最大可支持255跳(hop)。
· 减少路由器CPU的利用。路由更新仅被发送到需要知道状态改变的邻接路由器,由于使用了增量更新,EIGRP比IGRP使用更少的CPU。
· 支持可变长子网掩码。
· IGRP和EIGRP可自动移植。IGRP路由可自动重新分发到EIGRP中,EIGRP也可将路由自动重新分发到IGRP中。假如愿意,也可以关掉路由的重分发。
· EIGRP支持三种可路由的协议(IP、IPX、AppleTalk)。
· 支持非等值路径的负载均衡。
· 因EIGIP是Cisco公司开发的专用协议,因此,当Cisco设备和其他厂商的设备互联时,不能使用EIGRP
4.4 OSPF
开放式最短路径优先(Open Shortest Path First,OSPF)协议是一种为IP网络开发的内部网关路由选择协议,由IETF开发并推荐使用。OSPF协议由三个子协议组成:Hello协议、交换协议和扩散协议。其中Hello协议负责检查链路是否可用,并完成指定路由器及备份指定路由器;交换协议完成“主”、“从”路由器的指定并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护。
OSPF协议具有以下优点:
· OSPF能够在自己的链路状态数据库内表示整个网络,这极大地减少了收敛时间,并且支持大型异构网络的互联,提供了一个异构网络间通过同一种协议交换网络信息的途径,并且不轻易出现错误的路由信息。· OSPF支持通往相同目的的多重路径。
· OSPF使用路由标签区分不同的外部路由。
· OSPF支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息;并且可以对不同的区域定义不同的验证方式,从而提高了网络的安全性。
· OSPF支持费用相同的多条链路上的负载均衡。
· OSPF是一个非族类路由协议,路由信息不受跳数的限制,减少了因分级路由带来的子网分离问题。
· OSPF支持VLSM和非族类路由查表,有利于网络地址的有效治理。
· OSPF使用AREA对网络进行分层,减少了协议对CPU处理时间和内存的需求。
4.5 BGP
BGP用于连接Internet。BGPv4是一种外部的路由协议。可认为是一种高级的距离向量路由协议。
在BGP网络中,可以将一个网络分成多个自治系统。自治系统间使用eBGP广播路由,自治系统内使用iBGP在自己的网络内广播路由。
Internet由多个互相连接的商业网络组成。每个企业网络或ISP必须定义一个自治系统号(ASN)。这些自治系统号由IANA(Internet Assigned Numbers Authority)分配。共有65535个可用的自治系统号,其中65512~65535为私用保留。当共享路由信息时,这个号码也答应以层的方式进行维护。
BGP使用可靠的会话治理,TCP中的179端口用于触发Update和Keepalive信息到它的邻居,以传播和更新BGP路由表。
在BGP网络中,自治系统有: 1. Stub AS
只有一个入口和一个出口的网络。
2. 转接AS(Transit AS)
当数据从一个AS到另一个AS时,必须经过Transit AS。
假如企业网络有多个AS,则在企业网络中可设置Transit AS。
IGP和BGP最大的不同之处在于运行协议的设备之间通过的附加信息的总数不同。IGP使用的路由更新包比BGP使用的路由更新包更小(因此BGP承载更多的路由属性)。BGP可在给定的路由上附上很多属性。
当运行BGP的两个路由器开始通信以交换动态路由信息时,使用TCP端口179,他们依靠于面向连接的通信(会话)。
BGP必须依靠面向连接的TCP会话以提供连接状态。因为BGP不能使用Keepalive信息(但在普通头上存放有Keepalive信息,以答应路由器校验会话是否Active)。标准的Keepalive是在电路上从一个路由器送往另一个路由器的信息,而不使用TCP会话。路由器使用电路上的这些信号来校验电路没有错误或没有发现电路。某些情况下,需要使用BGP:
· 当你需要从一个AS发送流量到另一个AS时;
· 当流出网络的数据流必须手工维护时;
· 当你连接两个或多个ISP、NAP(网络访问点)和交换点时。
以下三种情况不能使用BGP:
· 假如你的路由器不支持BGP所需的大型路由表时;
· 当Internet只有一个连接时,使用默认路由;
· 当你的网络没有足够的带宽来传送所需的数据时(包括BGP路由表)。
几种常用动态路由协议的比较
范永清,男,1992年毕业于西安电子科技大学,工学学士,现供职于中国工商银行三明市分行技术保障处,任网络工程师。长期以来,主要从事计算机网络的治理、维护工作,2000年12月,通过Cisco公司的CCNA认证。