前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除
一、相关知识
路由信息协议(Routing Information Protocol,RIP)是一种基于距离向量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量值来衡量到达目的地址的距离。为限制收敛时间,RIP 规定度量值取 0~15 的整数,大于或等于 16 的跳数被定义为无穷大,即目的网络或主机不可达。这个限制使 RIP 不能用于大型网络中。
1、RIP的报文形式
RIP 的报文采用 UDP 封装,报文的源端口、目的端口均是 UDP 520 端口:
其个字段含义如下:
- 命令(Command):标识报文的类型,1标识Request报文,向邻居请求全部或部分路由信息;2表示Reponse报文,发送自己全部或部分路由信息,一个Response报文中最多包含25个路由表项
- 版本(Version):RIP的版本号,1表示RIPv1的版本号,2表示RIPv2
- 地址族标识(Address Family Identifier):值为2时表示IP
- 路由标记(Route Tag):外部路由的标记
- 下一跳(Next Hop):指出该路由的下一跳IP地址,若为0.0.0.0,则表示发布此路由的路由器地址就是最优下一跳地址
-
路由度量(Metric):表示路由的开销(跳数),也就是"距离"
2、相关CLI命令
在系统视图下启动RIP;为路由器配置RIP,首先启动RIP进程,进入RIP视图。若未指定进程ID,命令将使用1作为默认进程ID
<R2>sys
[R2]rip
在RIP视图下指定运行RIP的直连网络;对于不属于指定网络的接口,RIP 既不在该接口接收和发送路由,也不向外通告该接口的路由。
[R2]network <network-address>
在 RIP 视图下设置 RIP 的版本号,1 表示 RIPv1,2 表示 RIPv2
[R2]version {1|2}
在 RIP 视图下启动自动路由汇总,自动对路由进行有类聚合,聚合后的路由以使用自然掩码(分类地址的默认掩码)的路由形式发布;
[R2]summary
査看 RIP 进程的当前运行状态及配置信息;
[R2]display rip [ process-id ]
查看所有从其他路由器学习的 RIP 路由信息,以及与每条路由相关的不同定时器的值。
[R2]display rip process-id route
在接口视图下,在该接口启用水平分割功能,以防止路由环路,该功能默认启用。如果要禁止启用水平分割功能,可使用“undo rip split-horizon”命令。
[R2]rip split-horizon
在接口视图下,在该接口启用毒性逆转功能,以防止路由环路,该功能默认关闭。如果要禁止启用毒性逆转功能,可使用“undo rip poison-reverse”命令。如果同时启用水平分割和毒性逆转功能,则只有毒性逆转功能有效。
[R2]rip poison-reverse:
二、建立网络拓扑
三、RIPv1的基本配置
(1)查看路由器路由表,测试 PC1到PC2、PC3 的连通性,并分析结果
PC>ping 210.138.3.1
Ping 210.138.3.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
...
(2)配置RIP并验证
为路由器 R1、R2 和 R3 配置 RIP(默认为 RIPv1 )
[R1]:
rip 1
network 210.138.1.0
network 210.138.4.0
R2:
rip 1
network 210.138.2.0
network 210.138.4.0
network 210.138.5.0
R3:
rip 1
network 210.138.3.0
network 210.138.5.0
RIP 指定的网络地址只能为分类地址的自然网段地址;再次测试连通性,发现互通;
(3)在R2的G0/0/1接口捕获的RIPv1报文如图,分析R2发送的RIPv1报文;
(4)查看路由表中增加的 RIP 路由信息
[Huawei-rip-1]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
Destinations : 3 Routes : 3
RIP routing table status : <Active>
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
210.138.1.0/24 RIP 100 2 D 210.138.5.1 G0/0/2
210.138.2.0/24 RIP 100 1 D 210.138.5.1 G0/0/2
210.138.4.0/24 RIP 100 1 D 210.138.5.1 G0/0/2
RIP routing table status : <Inactive>
Destinations : 0 Routes : 0
可以看出,R3 的路由表中到210.138.4.0的路由,掩码是“/24”而不是“/30”由于 RIPv1 的路由通告中没有子网掩码,R3 无法判断 210.138.40 的网络前缀,因此只能使用该地址的自然掩码。由此可见,RIPy1不支持无分类编址。
四、RIPv2的基本配置
(1)将R1、R2和R3的RIP版本设置为第2版。RIPv2与RIPv1的配置命令完全相同只需要进入RIP视图将版本设置为 2,其他配置不变。
[R1]rip
[R1-rip-1]version 2
[R1-rip-1]display this
#
rip 1
version 2
network 210.138.1.0
network 210.138.4.0
#
return
测试连通性,发现互通;
(2)在R2的G0/0/1接口捕获RIPv2报文;
(3)查看路由器的路由表
[Huawei-rip-1]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
Destinations : 3 Routes : 3
RIP routing table status : <Active>
Destinations : 3 Routes : 3
Destination/Mask Proto Pre Cost Flags NextHop Interface
210.138.1.0/24 RIP 100 2 D 210.138.5.1 G0/0/2
210.138.2.0/24 RIP 100 1 D 210.138.5.1 G0/0/2
210.138.4.0/30 RIP 100 1 D 210.138.5.1 G0/0/2
RIP routing table status : <Inactive>
Destinations : 0 Routes : 0
可看出,R3 的路由表中到 210.138.4.0 的路由,掩码是“/30”而不是“/24”。由于 RIPv2 的路由通告中携带子网掩码,因此 RIPv2 支持无分类编址。
五、验证水平分隔功能
RIP 支持水平分割、毒性逆转和触发更新功能。在华为路由器中,水平分割功能是默认开启的,而毒性逆转功能是默认关闭的。如果同时开启水平分割和毒性逆转功能,则只有毒性逆转功能有效。
(1)为了更容易观察水平分割功能的作用,以下实验使用 RIPv1;
(2)分析在 R2 的 GE 0/0/1 接口捕获的 RIPv1 报文;为什么 R1 没有通告到 210.138.2.0、210.138.3.0、210.138.5.0 的路由,而 R2 没有通告到 210.138.1.0、210.138.4.0的路由?
(3)在 R2的G0/0/1接口启动抓包,同时关闭 R3 的G0/0/0接口(在接口视图下执行“shutdown”命令 ),模拟坏消息。分析:经过几次通告,到 210.138.3.0 的路由度量(距离)会变为 16(不可达)。
六、验证RIP慢收敛问题
首先启动 R3 的 GE 0/0/0 接口(在接口视图下执行“undo shutdown”命令 )。为了更容易观察 RIP 的慢收敛问题,我们需要关闭 RIP的路由汇总功能和水平分割功能,并继续使用RIPv1;
(1)关闭 RIP 的路由汇总功能,在路由器 R1、R2、R3 互连的所有接口上执行“undorip split-horizon”命令,以禁止启用水平分割功能。
rip
undo summary
int g0/0/1
undo rip split-horizon
在 R2 的 GE 0/0/1 接口启动抓包
(2)关闭R3的G0/0/0接口,模拟坏消息,并同时记下这时在R2的G0/0/1接口捕获的最后一个分组的序号。分析经过几次通告,到210.138.3.0的路由度量变为16(不可达);
七、总结
- RIP 是一种基于距离向量算法的协议。RIPv1 是一种有分类路由协议,利用 UDP一播进行路由信息通告;而 RIPv2 是一种无分类路由协议,利用 UDP 多播进行路由信息通告,使用的多播地址为 224.0.0.9。
-
在默认情况下,开启路由器接口的水平分割功能,可以减轻"坏消息传播得慢"的问题。
致谢
在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。
学习永无止境,让我们共同进步!!