RIP是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离。
在RIP网络中,缺省情况下,设备到与它直接相连网络的跳数为0,通过一个设备可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。
为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不可能在大型网络中得到应用。
RIP路由表的形成
RIP启动时的初始路由表仅包含本设备的一些直连接口路由。通过相邻设备互相学习路由表项,才能实现各网段路由互通。
RIP路由形成的过程如图所示:
•RIP协议启动之后,RouterA会向相邻的路由器广播一个Request报文。
•当RouterB从接口接收到RouterA发送的Request报文后,把自己的RIP路由表封装在Response报文内,然后向该接口对应的网络广播。
•RouterA根据RouterB发送的Response报文,形成自己的路由表。
RIP的更新与维护
RIP协议在更新和维护路由信息时主要使用四个定时器:
-
更新定时器(Update timer):当此定时器超时时,立即发送更新报文。
-
老化定时器(Age timer):RIP设备如果在老化时间内没有收到邻居发来的路由更新报文,则认为该路由不可达。
-
垃圾收集定时器(Garbage-collect timer):如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从RIP路由表中彻底删除。
-
抑制定时器(Suppress timer):当RIP设备收到对端的路由更新,其cost为16,对应路由进入抑制状态,并启动抑制定时器。为了防止路由震荡,在抑制定时器超时之前,即使再收到对端路由cost小于16的更新,也不接受。当抑制定时器超时后,就重新允许接受对端发送的路由更新报文。
RIP路由与定时器之间的关系:
RIP的更新信息发布是由更新定时器控制的,默认为每30秒发送一次。每一条路由表项对应两个定时器:老化定时器和垃圾收集定时器。当学到一条路由并添加到RIP路由表中时,老化定时器启动。
如果老化定时器超时,设备仍没有收到邻居发来的更新报文,则在RIP数据库中把该路由的度量值置为16(表示路由不可达,路由表中删除),并启动垃圾收集定时器。
同时设备对外发送不可达路由更新请求报文,如果垃圾收集定时器超时,设备仍然没有收到更新报文,则在RIP数据库中删除该路由。
触发更新
触发更新是指当路由信息发生变化时,立即向邻居设备发送触发更新报文,而不用等待更新定时器超时,从而避免产生路由环路。网络10.4.0.0不可达时,RouterC最先得到这一信息。
-
如果设备不具有触发更新功能,RouterC发现网络故障之后,需要等待更新定时器超时。在等待过程中,如果RouterB的更新报文传到了RouterC,RouterC就会学到RouterB的去往网络10.4.0.0的错误路由。这样RouterB和RouterC上去往网络10.4.0.0的路由都指向对方从而形成路由环路。
-
如果设备具有触发更新功能,RouterC发现网络故障之后,不必等待更新定时器超时,立即发送路由更新信息给路由器B,这样就避免了路由环路的产生。
RIP-2的优势
-
支持外部路由标记(Route Tag),可以在路由策略中根据Tag对路由进行灵活的控制。
-
报文中携带掩码信息,支持路由聚合和CIDR(Classless Inter-Domain Routing)。
-
支持指定下一跳,在广播网上可以选择到目的网段最优下一跳地址。
-
支持以组播方式发送更新报文,只有支持RIP-2的设备才能接收协议报文,减少资源消耗。
-
支持对协议报文进行验证,增强安全性。
-
路由聚合
路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。RIP-1的协议报文中没有携带掩码信息,故RIP-1发布的就是自然掩码的路由。
RIP-2支持路由聚合,因为RIP-2报文携带掩码位,所以支持子网划分。在RIP-2中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。
RIP-2路由聚合
路由聚合有两种方式:
-
基于RIP进程的有类聚合:
聚合后的路由使用自然掩码的路由形式发布。比如,对于10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)这两条路由,会聚合成自然网段路由10.0.0.0/8(metric=2)。RIP–2聚合是按类聚合的,聚合得到最优的metric值。
-
基于接口的聚合:
用户可以指定聚合地址。比如,对于10.1.1.0/24(metric=2)和10.1.2.0/24(metric=3)这两条路由,可以在指定接口上配置聚合路由10.1.0.0/16(metric=2)来代替原始路由。
水平分割
水平分割(Split Horizon)的原理是,RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。
这样不但减少了带宽消耗,还可以防止路由环路。水平分割在不同网络中实现有所区别,分为按照接口和按照邻居进行水平分割。广播网、P2P和P2MP网络中是按照接口进行水平分割的,如图所示。
RouterA会向RouterB发送到网络10.0.0.0/8的路由信息,如果没有配置水平分割,RouterB会将从RouterA学习到的这条路由再发送回给RouterA。这样,RouterA可以学习到两条到达10.0.0.0/8网络的路由:跳数为0的直连路由;下一跳指向RouterB,且跳数为2的路由。
但是在RouterA的RIP路由表中只有直连路由才是活跃的。当RouterA到网络10.0.0.0的路由变成不可达,并且RouterB还没有收到路由不可达的信息时,RouterB会继续向RouterA发送10.0.0.0/8可达的路由信息。
即,RouterA会接受到错误的路由信息,认为可以通过RouterB到达10.0.0.0/8网络;而RouterB仍旧认为可以通过RouterA到达10.0.0.0/8网络,从而形成路由环路。配置水平分割后,RouterB将不会再把到网络10.0.0.0/8的路由发回给RouterA,由此避免了路由环路的产生。
对于NBMA(Non-Broadcast Multiple Access)网络,由于一个接口上连接多个邻居,所以是按照邻居进行水平分割的。路由就会按照单播方式发送,同一接口上收到的路由可以按邻居进行区分。从某一接口的对端邻居处学习到路由,不会再通过该接口发送回去。
在NBMA网络配置了水平分割之后,RouterA会将从RouterB学习到的172.16.0.0/16路由发送给RouterC,但是不会再发送回给RouterB。
毒性反转
毒性反转(PoisonReverse)的原理是,RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。
配置毒性反转后,RouterB在接收到从RouterA发来的路由后,向RouterA发送一个这条路由不可达的消息(将该路由的开销设置为16),这样RouterA就不会再从RouterB学到这条可达路由,因此就可以避免路由环路的产生。
组网需求
在网络中有4台路由器,要求在RouterA、RouterB、RouterC和RouterD上实现网络互连。
配置思路
由于要在小型网络中实现设备的网络互连,所以推荐配置RIP-2路由协议。配置各接口IP地址,使网络可达。在各路由器上使能RIP,基本实现网络互连。在各路由器上配置RIP-2版本,提升RIP路由扩展性能。
操作步骤
🕖配置各路由器接口的IP地址
# 配置RouterA。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet1/0/0
[RouterA-GigabitEthernet1/0/0] ipaddress 192.168.1.1 24
RouterB、RouterC和RouterD的配置与RouterA一致(略)。
🕖配置RIP基本功能
# 配置RouterA。
[RouterA] rip
[RouterA-rip-1] network 192.168.1.0
[RouterA-rip-1] quit
# 配置RouterB。
[RouterB] rip
[RouterB-rip-1] network 192.168.1.0
[RouterB-rip-1] network 172.16.0.0
[RouterB-rip-1] network 10.0.0.0
[RouterB-rip-1] quit
# 配置RouterC。
[RouterC] rip
[RouterC-rip-1] network 172.16.0.0
[RouterC-rip-1] quit# 配置RouterD。
[RouterD] rip[RouterD-rip-1]network 10.0.0.0
[RouterD-rip-1]quit
🕖配置RIP的版本
# 查看RouterA的RIP路由表。
RouterA] display rip 1 route
Route Flags: R – RIP
A – Aging, S – Suppressed, G -Garbage-collect
————————————————————-
Peer 192.168.1.2 on GigabitEthernet1/0/0 Destination/Mask Nexthop Cost Tag Flags Sec10.0.0.0/8 192.168.1.2 1 0 RA 14 172.16.0.0/16 192.168.1.2 1 0 RA 14从路由表中可以看出,RIP-1发布的路由信息使用的是自然掩码。
🕖配置RIP的版本
# 在RouterA上配置RIP-2。
[RouterA] rip
[RouterA-rip-1] version 2
[RouterA-rip-1] quit# 在RouterB上配置RIP-2。
[RouterB] rip
[RouterB-rip-1] version 2
[RouterB-rip-1] quit# 在RouterC上配置RIP-2。
[RouterC] rip
[RouterC-rip-1] version 2
[RouterC-rip-1] quit
# 在RouterD上配置RIP-2。
[RouterD] rip
[RouterD-rip-1] version 2
[RouterD-rip-1] quit
验证配置结果
# 查看RouterA的RIP路由表。
[RouterA] display rip 1 route
Route Flags: R – RIP
A – Aging, S – Suppressed, G -Garbage-collect
————————————————————————-
Peer 192.168.1.2 onGigabitEthernet1/0/0 Destination/Mask Nexthop Cost Tag Flags Sec
10.1.1.0/24 192.168.1.2 1 0 RA 32
172.16.1.0/24 192.168.1.2 1 0 RA 32
从路由表中可以看出,RIP-2发布的路由中带有更为精确的子网掩码信息。