学习笔记---路由信息协议(RIP)
1、RIP协议属于距离向量路由选择协议,IGRP、HELLO。
2、RIP协议允许一条路径最多包含15个路由器(经过15个)。
3、从一路由器到直连的网络距离为0,也可以定义为1,在实际中路由与其直连路由的距离是按1来算的。
4、RIP路由更新
三个要点:和哪些路由器交换信息?交换什么信息?在什么时候交换信息?
(1)、仅和相邻的路由器交换信息。RIP规定,不相邻的路由器不交换信息。
(2)、交换的信息是当前本路由器所知道的全部信息,即自己的路由表。因为,交换的信息就是:“到本自治系统中所有网络的(最短)距离,以及到每个网络应经过的下一跳路由器”。
(3)、按固定的时间间隔交换路由信息,30秒,然后路由器根据收到的路由信息更新路由表。另一种情况就是当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。若3分钟还没有收到相邻路由器的更新路由表,则将些相邻路由器记为不可达的路由器,即将距离设置为16,认为此路由器不可达。每个结点与直接相邻站,周期性地或当发生变化时,发送路由更新信息。
默认情况下,每30秒钟路由器就可以收到一次路由信息确认,如果经过180秒,即6个更新周期,路由项仍没有得到确认,路由器就认为它已失效了。如果经过120秒,即8个更新周期,一个路由项极没有得到确认,它就被从路由表中删除。上面的30秒,180秒和120秒的延时都是由计时器控制的,它们分别是更新计时器(Update Timer)、无效计时器(Invalid Timer)和刷新计时器(Flash Timer).
RIP协议中,一路由器在收到某一邻居路由器发布过来的路由信息后:对本路由表中没有的项目,增加该路由项,前提条件是:该路由项的度量值少于16,即可达,因为这是新的目的网络;对本路由表中已有的路由项,当下一跳的地址不同时,只在度量值减少的情况下更新该路由项的度量值,若下一跳的地址不同,但度量值相等,即代价一样,那此时保留旧表;若下一跳的地址相同,只要度量值有改变就更新该路由项的度量值,因为这里最新的消息,要以最新的消息为准。
5、有时,到达同一个目的网络可以经过不同的下一跳路由器,但跳路是同样的,也就是路径开销一样,那么这时可以任选一个下一跳路由器。
6、RIP协议使用运输层的用户数据报UDP进行传送,使用UDP的520端口,因此RIP协议的位置应当在应用层,但转发IP数据报的过程是在网络层完成的,RIP报文不包括指示报文长度的字段,所以用UDP来传送。
7、RIP的版本
RIP分为版本1和版本2,RIP2可以支持认证、密钥管理、VLSMs、CIDR,此外,RIP2还提供简单的鉴别过程支持多播。缺省情况下,路由可以接收RIP1和RIP2的数据包,但是只发送RIP1的数据包,通过配置可以只接收和发送RIP1的数据包,马可以只接收和发送RIP2的数据包。
8、RIP的报文格式(RIP V2)
4字节的首部包括命令、版本和保留三个字段。命令字段指明报文的类型:请求(1)响应或未被请求而发出的路由更新报文(2);版本定义了RIP协议的版本;保留字段全0,为了填充成4字节的首部。数据部分分为地址簇标识符、路由标记、网络地址、子网掩码、下一跳路由地址和距离字段。其中,地址簇标识符标识了使用的协议如TCP或其它,路由标记填入自治系统号,可用来使RIP能够接收来自自治系统外的路由信息;下一跳地址,若两个自治系统共享一个网络,如主干网,则这个字段特别有用,它就可以定义分组必须发往的路由器,不管这个路由器是在同样的自治系统或另一个自治系统;子网掩码字段的添加使这增加了对CIDR的支持,一组网络可以合并为一个前缀,合起来通知。
9、RIP的计时器
定期计时器 30s
截止期计时器 180s
无用信息收集计时器 120S,RFC上说是120秒,但在实验中sh ip protocols显示的是240,规定是120秒,但在实际中不同设备的值可能不尽相同。
10、一个RIP报文最多可包括25个路由,因而RIP报文的最大长度是4+20*25=504字节,如超过,必须再用一个RIP报文来传送。因为RIP2还具有简单的鉴别功能,若使用鉴别功能,则将原来写入第一个路由信息(20字节)的位置用作鉴别,这时应将地址族标识符置为全1(即0×FFFF),而路由标记写入鉴别类型,剩下的16字节作为鉴别数据。在鉴别数据之后才写入路由信息,但这时最多只能再放入24个路由信息。
11、RIP协议存在的问题
RIP协议存在的一个很严重的问题就是:当网络出现故障时,要经过比较长一段时间才能将此信息传送到所有的路由器,收敛缓慢,时间经常大于5分钟。RIP假定如果从网络的一个终端到另一个终端的路由跳数超过15个,那么一定牵涉到了循环,因此当一个路径到达16跳,将被认为是达不到的。
一、二节点的不稳定性
举个例子:假设有2个结点构成的系统,在开始时,结点A和结点B都知道怎样到达X,但突然,在A和X之间的链路出了问题,结点A改变其路由表。如果A能够立即把它的路由表发送给B,那么一切的问题都没有了。但是,如果B在收到A的路由表之前就发送了B的路由表,那么这个系统就变得不稳定,但通常都是这个样子,因为结点A在30秒的周期内没有收到X的路由确认信息,它设为等待,在经过了180秒后,它才能确定X不可达,这时才会发送路由更新报文到邻站,但这个时候B已经发送了自己的路由表给A,A收到后更新自己的路由表,这时陷入二节点循环中,只有当它们到X的度量值都为16的时候才知道X不可达。而在这段时间内,系统是不稳定的!
解决办法:
(1)、定义无穷大
就是说把无穷大定义成一个数值,比如平时用的16,那这样它最多更新会在小于20次的情况下达到稳定,但这样同时也限制了网络的范围。
(2)、水平分割(split-horizon)
这种策略不是通过每一个接口用洪泛的方法发送更新,而是每一个结点通过每一个接口只发送的路由表的一部分,如果结点B根据其路由表认为到达X的最佳路由是经过A,它就不需要把这个信息通知A;这个信息就是从A来的,A已经知道了。从结点A得到信息,修改后再发回给A就会产生混乱。这样,A保留到X的距离为无穷大,以后当结点A将其路由表发送给B时,结点B也更正了它的路由表,这样系统在第一次更新后就稳定了。
二、三结点的不稳定性
12、RIP的最大问题涉及到具有多余路径的较大网络,对于规模较大的网络,或具有多余的路径的网络应该考虑使用其他路由协议。
13、RIP协议的配置
router rip 启用RIP进程
version {1|2} 指定RIP版本(可选)
network network-number for example: network 172.16.0.0 指定与该路由器相连的网络
show ip route 检测路由表
debug ip rip 调试RIP信息
clear ip route 用于清除IP路由表的信息。
ip rip send/receive version 1 指定只发送/接收RIP1的数据包
ip rip send/receive version 2 指定只发送/接收RIP2的数据包
ip rip send/receive version 1 2 指定只发送/接收RIP1和RIP2的数据包
show ip protocols 显示当前运行的路由协议的详细参数
注意:Network命令定义的关联网络有两层意思:(1)RIP只对外通告关联网络的路由信息;(2)、RIP只向关联网络所属接口通告路由信息。在串口配置时钟频率时,一定要在DCE端的路由器上配置,否则链路不通;定义关联网络时,命令network后面必须是与该路由器直连的主类网络地址。记得设置时钟频率!默认情况下运行的是RIP V1,发送RIP V1的信息,接收任何版本的信息。
14、RIP v2的改进
无类域间路由---一组网络可以合并为一个前缀,合起来通知。
鉴别 ------增加鉴别是为了保护报文防止未授权的通知。分组没有增加新的字段;但报文的第一个项目是用作鉴别信息。为了指出这个项目是鉴别信息而不是路由选择信息,在地址簇标识符字段中放入了FFFF,第二个字段是鉴别字段,定义鉴别使用的协议,而第三个字段包含真正的鉴别数据。
多播 ---RIP版本1使用广播把RIP报文发送给每一个邻站,使用这种方法时,不仅网络上所有的路由器都能收到这些分组,而且所有的主机也都能收到这些分组。但在RIP版本2中是使用全路由器(all-rouer)多播地址把RIP报文仅发送给这个网络上的RIP路由器。
15、实验总结:
BOSON在做RIP的时候有一个BUG,在RIP V2中更新路由信息应该是组播地址224.0.0.9,而在BOSON中是255.255.255.0,这是RIP V1用的全网广播地址。
路由器直连网络的通告
通告网络段,即A类的就通告A类的网络段,比如:R1的E0口IP是10.1.1.1,S0口IP是172.16.10.1,那么在RIP情况下,通告网络的时候标准应该是:
network 10.0.0.0
network 172.16.0.0
但在实际使用的时候我们也可以:
network 10.1.1.0
network 172.16.10.0
因为此时,IOS会自动按照"类"分,但是最好是按"类"通告。
问题1:
RIP协议中,假设网络是这样的:X---A---B,在A与X之间的链路出现故障以后,A要等待180秒才能确定到X不可达,那这期间每30秒A发不发送路由信息给B呢,如果发的话,关于A到X的路由信息是怎样的呢?
答:此时因为A还不能确定X是否不可达,所以仍然发送链路故障前的到X的路由信息。
问题2:
某路由表有20个项目,有5个项目在200s的时间内没有收到它们的信息,这时有多少个计时器在运行?
答:共有如下所示的21个计时器;
定期计时器:1
截止期计时器:20-5=15
无用信息收集计时器:5
相关资料:
RFC 1508 : Routing Information Protocol
RFC 1388 : RIP Version 2 Carrying Additional Information
RFC 1723 : RIP Version 2 Carrying Additional Information
RFC 2453 : RIP Version 2
RFC 4822 : RIPv2 Cryptographic Authentication