2.10.4常用动态路由协议的分析
1.路由信息协议(RIP)
RIP是路由器生产商之间使用的第一个开放标准,是最广泛的路由协议,在所有IP路由平台上都可以得到。当使用RIP时,一台Cisco路由器可以与其他厂商的路由器连接。RIP有两个版本:RIP v1和RIP v2,它们均基于经典的距离向量路由算法,最大跳数为15跳。
RIP v1是簇类路由(Classful Routing)协议,因路由上不包括掩码信息,所以网络上的所有设备必须使用相同的子网掩码,不支持VLSM。RIP v2可发送子网掩码信息,是非簇类路由(Classless Routing)协议,支持VLSM。
RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240 s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。
RIP具有以下特点:
(1)不同厂商的路由器可以通过RIP互联。
(2)配置简单。
(3)适用于小型网络(小于15跳)。
(4)RIPv1不支持VLSM。
(5)需消耗广域网带宽。
(6)需消耗CPU、内存资源。
RIP的算法简单,但在路径较多时收敛速度慢,广播路由信息时占用的带宽资源较多,它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络,在大型网络中,一般不使用RIP。
2.内部网关路由协议(Interior Gateway Routing Protocol,IGRP)
IGRP是Cisco公司20世纪80年代开发的一种动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、带宽、可靠性和负载等来计算最优路由,它在不同自治系统内具有高跨度,适合复杂的网络。Cisco IOS允许路由器管理员对IGRP的网络带宽、延时、可靠性和负载进行权重设置,以影响度量的计算。
像RIP一样,IGRP使用UDP发送路由表项。每个路由器每隔90 s更新一次路由信息,如果270 s内没有收到某路由器的回应,则认为该路由器不可到达;如果630 s内仍未收到应答,则IGRP进程将从路由表中删除该路由。
与RIP相比,IGRP的收敛时间更长,但传输路由信息所需的带宽减少。此外,IGRP的分组格式中无空白字节,从而提高了IGRP的报文效率。IGRP为Cisco公司专有,仅限于Cisco产品。
3.增强内部网关路由协议(EIGRP)
随着网络规模的扩大和用户需求的增长,原来的IGRP已显得力不从心。于是,Cisco公司又开发了增强的IGRP,即EIGRP。EIGRP使用与IGRP相同的路由算法,但它集成了链路状态路由协议和距离向量路由协议的长处,同时加入散播更新算法(DUAL)。
EIGRP具有如下特点:
(1)快速收敛。快速收敛是因为使用了散播更新算法,通过在路由表中备份路由而实现,也就是到达目的网络的最小开销和次最小开销(也叫“适宜后继”)路由都被保存在路由表中,当最小开销的路由不可用时,快速切换到次最小开销路由上,从而达到快速收敛的目的。
(2)减少了带宽的消耗。EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻接的EIGRP路由器发送路由更新,因此,其更新路由所需的带宽比RIP和EIGRP小得多——这种方式叫触发式(Triggered)。
(3)增大网络规模。对于RIP,其网络最大只能是15跳,而EIGRP最大可支持255跳。
(4)减少路由器CPU的利用。路由更新仅被发送到需要知道状态改变的邻接路由器,由于使用了增量更新,EIGRP比IGRP更少使用CPU。
(5)支持可变长子网掩码。
(6)IGRP和EIGRP可自动移植。IGRP路由可自动重新分发到EIGRP中,EIGRP也可将路由自动重新分发到IGRP中。如果愿意,也可以关掉路由的重分发。
(7)EIGRP支持3种可路由的协议(IP、IPX、AIPle Talk)。
(8)支持非等值路径的负载均衡。
因EIGIP是Cisco公司开发的专用协议,因此,当Cisco设备和其他厂商的设备互联时,不能使用EIGRP协议。
4.开放式最短路径优先(Open Shortest Path First,OSPF)
OSPF协议是一种为IP网络开发的内部网关路由选择协议,由IETF开发并推荐使用。OSPF协议由3个子协议组成:Hello协议、交换协议和扩散协议。其中,Hello协议负责检查链路是否可用,并完成指定路由器及备份指定路由器;交换协议完成“主”“从”路由器的指定,并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护。
OSPF协议具有以下优点:
(1)OSPF能够在自己的链路状态数据库内表示整个网络,这极大地减少了收敛时间,并且支持大型异构网络的互联,提供了一个异构网络间通过同一种协议交换网络信息的途径,并且不容易出现错误的路由信息。
(2)OSPF支持通往相同目的地的多重路径。
(3)OSPF使用路由标签区分不同的外部路由。
(4)OSPF支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息;并且可以对不同的区域定义不同的验证方式,从而提高了网络的安全性。
(5)OSPF支持优先级相同的多条链路上的负载均衡。
(6)OSPF是一个非簇类路由协议,路由信息不受跳数的限制,减少了因分级路由带来的子网分离问题。
(7)OSPF支持VLSM和非簇类路由表,有利于网络地址的有效管理。
(8)OSPF使用AREA对网络进行分层,减少了协议对CPU处理时间和内存的需求。
5.BGP
BGP用于连接因特网。BGPv4是一种外部的路由协议,可认为是一种高级的距离向量路由协议。在BGP网络中,可以将一个网络分成多个自治系统。自治系统间使用eBGP广播路由,自治系统内使用iBGP在自己的网络内广播路由。
因特网由多个互相连接的商业网络组成,每个企业网络或ISP必须定义一个自治系统号(ASN),这些自治系统号由IANA(Internet Assigned Numbers Authority)分配。共有65535个可用的自治系统号,其中65 512~65 535为私用保留。当共享路由信息时,这个号码也允许以层的方式进行维护。
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:
(1)当你需要从一个AS发送流量到另一个AS时。
(2)当流出网络的数据流必须手工维护时。
(3)当你连接两个或多个ISP、NAP(网络访问点)和交换点时。
以下3种情况不能使用BGP:
(1)如果你的路由器不支持BGP所需的大型路由表时。
(2)当因特网只有一个连接时,使用默认路由。
(3)当你的网络没有足够的带宽来传送所需的数据时(包括BGP路由表)。