路由信息协议(RIP)
一、背景
路由信息协议(RIP)是以跳数作为metric的距离向量协议。RIP广泛用于全球因特网的路由,是一种内部网关协议(interior gateway protocol),即在自治系统内部执行路由功能。外部网关路由协议(exterior gateway protocol),如边缘网关协议(BGP),在不同的自治系统间进行路由。RIP的前身是Xerox协议GWINFO,后来的版本routed(发音为/rutdi/)封装在1982年伯克利标准发布Unix(即BSD中)。RIP本身发展成因特网路由协议,有些协议族使用了RIP的变种,例如:AppleTalk路由表维护协议(RTMP)和Banyan VINES路由表协议(RIP)就是基于IP版的RIP的。RIP最新的增强版是RIP2规范,它允许在RIP分组中包含更多的信息并提供了简单的认证机制。
IP RIP在两个文档中正式定义:RFC 1058和1723。RFC 1058(1988)描述了RIP的第一版实现,RFC 1723(1994)是它的更新,允许RIP分组携带更多的信息和安全特性。
本文简单介绍RIP的基本能力和特性,包括路由更新过程,RIP路由metric,路由稳定性和计时器。
二、路由更新
RIP以规则的时间间隔及在网络拓扑改变时发送路由更新信息。当路由器收到包含某表项的更新的路由更新信息时,就更新其路由表:该路径的metric值加上1,发送者记为下一跳。RIP路由器只维护到目的的非常好的路径(具有最小metric值的路径)。更新了自己的路由表后,路由器立刻发送路由更新把变化通知给其它路由器,这种更新是与周期性发送的更新信息无关的。
RIP使用单一路由metric(跳数)来衡量源网络到目的网络的距离。从源到目的的路径中每一跳被赋以一个跳数值,此值通常为1。当路由器收到包含新的或改变的目的网络表项的路由更新信息,就把其metric值加1然后存入路由表,发送者的IP地址就作为下一跳地址。
RIP通过对从源到目的的最大跳数加以限制来防止路由环,最大值为15。如果路由器收到了含有新的或改变的表项的路由更新信息,且把metric值加1后成为无穷大(即16),就认为该目的网络不可到达。
四、RIP的稳定性
为了适应快速的网络拓扑变化,RIP规定了一些与其它路由协议相同的稳定特性。例如,RIP实现了split-horizon和hold-down机制来防止路由信息的错误传播。此外,RIP的跳数限制也防止了无限增长而产生路由环。
五、RIP计时器
RIP使用了一些计时器以控制其性能,包括路由更新计时器、路由超时和路由清空的计时器。路由更新计时器记录周期性更新的时间间隔,通常为30秒,每当该计时器重置时增加小的随机秒数以防止冲突。每个路由表项都有相关的路由超时计时器,当路由超时计时器过期时,该路径就标记为失效的,但仍保存在路由表中,直到路由清空计时器过期才被清掉。
六、RIP分组格式
下面描述IP RIP和IP RIP2的分组格式。
1、RIP分组格式
![]() |
命令--表示该分组是请求还是响应。请求分组要求路由器发送其路由表的全部或部分。响应分组可以是主动提供的周期性路由更新或对请求的响应。大的路由表可以使用多个RIP分组来传递信息。
版本号--指明使用的RIP版本,此域可以通知不同版本的不兼容。
零--未使用。
地址族标志(AFI)--指明使用的地址族。RIP设计用于携带多种不同协议的路由信息。每个项都有地址族标志来表明使用的地址类型,IP的AFI是2。
地址--指明该项的IP地址。
metric--表示到目的的过程中经过了多少跳数(路由器数)。有效路径的值在1和15之间,16表示不可达路径。
注:在一个IP RIP分组中最多可有25个AFI、地址和metric域,即一个RIP分组中最多可含有25个地址项。
2、RIP2分组格式
RIP2规范(RFC1723)允许RIP分组包含更多的信息,并提供了简单的认证机制,如下图。
![]() |
命令--表示该分组是请求还是响应。请求分组要求路由器发送其路由表的全部或部分。响应分组可以是主动提供的周期性路由更新或对请求的响应。大的路由表可以使用多个RIP分组来传递信息。
版本--指明使用的RIP版本,在实现RIP2或进行认证的RIP分组中,此值为2。
未使用--值为0。
地址族标志(AFI)--指明使用的地址族。RIP设计用于携带多种不同协议的路由信息。每个项都有地址族标志来表明使用的地址类型,IP的AFI是2。如果第一项的AFI为0xFFFF,该项剩下的部分就是认证信息。目前,唯一的认证类型就是简单的口令。
路由标记--提供区分内部路由(由RIP学得)和外部路由(由其它协议学得)的方法。
IP地址--指明该项的IP地址。
子网掩码--包含该项的子网掩码。如果此域为0,则该项不指定子网掩码。
下一跳--指明下一跳的IP地址。
metric--表示到目的的过程中经过了多少跳数(路由器数)。有效路径的值在1和15之间,16表示不可达路径。
注:在一个IP RIP分组中最多可有25个AFI、地址和metric域,即一个RIP分组中最多可含有25个地址项。如果AFI指明为认证信息,则只能有24个路由表项。
如何选择路由协议
当网络启用了路由协议,网络便具有了能够自动更新路由表的强大功能。但是使用象RIP/RIP2、OSPF或IGRP/EIGRP等一些主要的内部网关协议(InteriorGatewayProtocol,IGP)都有一定的协定。
内部网关协议首先适合于在那些只有单个管理员负责网络操作和运行的地方;否则,将会出现配置错误导致网络性能降低或是导致网络运行不稳定的情况。对于由许多管理员共同分担责任的网络,如Internet,则考虑使用EGP协议(InteriorGatewayProtocol,外部网关协议),如BGP4。
如果网络中只有一个路由器,不需要使用路由协议;只有当网络中具有多个路由器时,才有必要让它们去共享信息。但如果仅有小型网络,完全可以通过静态路由手动地更新路由表。
路由信息协议
RIP(RoutingInformationProtocol)协议基于一个被称为“routed”的程序,该程序运行在BSDI版本的Unix系统之上,并在1988年被标准化在RFC1058中。而在RFC1388中所描述的版本2中,增加了对VLSM(VariableLengthSubnetMasks,可变长子网屏蔽)的支持,但没有弥补该协议的主要缺陷。例如,在有多重路径到相同目标的网络中,RIP确定使用一条可选择的路径将花费许多时间,在没有多重路径的网络中,RIP协议已经被广泛使用。
RIP协议被列为距离矢量协议,这意味着它使用距离来决定非常好的路径,如通过路由跳数来衡量。路由器每30秒互相发送广播信息。收到广播信息的每个路由器增加一个跳数。如果广播信息经过多个路由器收到,到这个路由器具有最低跳数的路径是被选中的路径。如果首选的路径不能正常工作,那么具有较高跳数的路径被作为备份。
对于RIP协议(和其他路由协议),网络上的路由器在一条路径不能用时必须经历决定替代路径的过程,这个过程称为收敛(Convergence)。RIP协议花费大量的时间用于收敛是个主要的问题。在RIP协议认识到路径不能达到前,它被设为等待,直到它已错过6次更新总共180秒时间。然后,在使用新路径更新路由表前,它等待另一个可行路径的下一个信息的到来。这意味着在备份路径被使用前至少经过了3分钟,这对于多数应用程序超时是相当长的时间。
RIP协议的另一个基本问题是,当选择路径时它忽略了连接速度问题。例如,如果一条由所有快速以太网连接组成的路径比包含一个10Mbps以太网连接的路径远一个跳数,具有较慢10Mbps以太网连接的路径将被选定作为非常好的路径。
RIP协议的原始版本不能应用VLSM,因此不能分割地址空间以最大效率地应用有限的IP地址。RIP2协议通过引入子网屏蔽与每一路由广播信息一起使用实现了这个功能。
路由协议还应该能防止数据包进入循环,或落入路由选择循环,这是由于多余连接影响网络的问题。RIP协议假定如果从网络的一个终端到另一个终端的路由跳超过15个,那么一定牵涉到了循环。因此当一个路径达到16跳,将被认为是达不到的。显然,这限制了RIP协议只能在网络上的使用。
RIP的最大问题涉及到具有多余路径的较大网络。如果网络没有多余的路径,RIP协议将很好地工作,它是被几乎每个支持路径选择的厂商实施的Internet标准。RIP协议适用于多数服务器操作系统,它的配置和障碍修复非常容易。对于规模较大的网络,或具有多余路径的网络,应该考虑使用其它路由协议。
OSPF2
OSPF2是类似RIP协议的Internet标准,可以弥补RIP协议的缺点。1991年在RFC1247中它被第一次标准化;最新的版本是在RFC2328中。但是与RIP协议不同,OSPF是一套链路状态路由协议,这意
味着路由选择的变化基于网络中路由器物理连接的状态与速度,并且变化被立即广播到网络中的每一个路由器。
当一个OSPF路由器第一次被激活,它使用OSPF的“hello协议”来发现与它连接的邻节点,然后用LSA(链路状态广播信息)等和这些路由器交换链路状态信息。每个路由器都创建了由每个接口、对应邻节点和接口速度组成的数据库。每个路由器从邻接路由器收到的LSA被继续向各自的邻接路由器传递,直到网络中的每个路由器收到了所有其它路由器的LSA。
链路状态数据库不同于路由表,根据数据库中的信息,每个路由器计算到网络的每一目标的一条路径,创建以它为根的路由拓扑结构树,其中包含了形成路由表基础的最短路径优先树(SPF树)。LSA每30分钟被交换一次,除非网络拓扑结构有变化。例如,如果接口变化,信息立刻通过网络广播;如果有多余路径,收敛将重新计算SPF树。计算SPF树所需的时间取决于网络规模的大小。因为这些计算,路由器运行OSPF需要占用更多CPU资源。
一种弥补OSPF协议占用CPU和内存资源的方法是将网络分成独立的层次域,称为区域(Area)。每个路由器仅与它们自己区域内的其它路由器交换LSA。Area0被作为主干区域,所有区域必须与Area0相邻接。在ABR(区域边界路由器,AreaBorderRouter)上定义了两个区域之间的边界。ABR与Area0和另一个非主干区域至少分别有一个接口。最优设计的OSPF网络包含通过VLSM与每个区域邻接的主干网络。这使得在路由表的一个条目中描述多个网络成为可能。
虽然OSPF协议是RIP协议强大的替代品,但是它执行时需要更多的路由器资源。如果网络中正在运转的是RIP协议,并且没有发生任何问题,仍然可以继续使用。但是如果想在网络中利用基于标准协议的多余链路,OSPF协议是更好的选择。
增强内部网关路由协议
在Cisco公司的产品中,EIGRP(EnhancedInteriorGatewayRontingProtocol)协议具有一些优势。最重要的是它能迅速广播链路状态的变化。但EIGRP协议的最大缺点是没有标准化。
与OSPF协议一样,EIGRP路由器寻找它们的邻接路由器并交换“hello”数据包。EIGRP协议每隔5秒传送“hello”数据包。如果失败3次,邻接路由器则被认为是宕机状态,替代的路径将被使用。
当本地路由器的链路状态发生变化,在新信息基础上它将重新计算拓扑结构表。OSPF协议此时将立即向网络中的每个路由器广播链路状态的变化,而EIGRP协议将仅仅涉及到被这些变化直接影响的路由器。这使带宽和CPU资源的利用效率更高。同时,由于EIGRP协议使用了不到50%的带宽,使得在低带宽WAN链路上具有很大优势。EIGRP协议的另一个优势是它支持Novell/IPX和AppleTalk环境。如果网络正在运行的是IGRP协议,那么转换到EIGRP协议比转换到OSPF协议要容易的多。
