在网络世界中,路由协议就像是交通指挥员,引导数据在不同网络之间顺畅传输。今天,我们就来深入探索 RIP(Routing Information Protocol)协议,通过一系列实验,揭开它的神秘面纱!
一、搭建网络拓扑结构
实验开始,我们先搭建一个简单的网络拓扑。网络拓扑结构就像是网络的 “地图”,清晰展示了各个设备之间的连接关系。下图就是本次实验的网络拓扑结构截图:
二、R1 设备配置与测试
3.1 R1 接口配置
要让路由器正常工作,首先得给它的接口配置 IP 地址。就像给房子安装门牌号一样,IP 地址能让数据准确找到对应的网络接口。配置代码如下:
enable
configure terminal
interface FastEthernet0/0
ip address 192.168.1.021 255.255.255.0
no shutdown
interface FastEthernet0/1
ip address 192.168.2.020 255.255.255.0
no shutdown
exit
这些命令具体有什么作用呢?
- enable:进入特权模式,获取更高权限。
- configure terminal:进入全局配置模式,就像进入了一个总控制室。
- interface FastEthernet0/0:进入 f0/0 接口配置模式,准备对这个接口进行设置。
- ip address 192.168.1.021 255.255.255.0:为 f0/0 接口配置 IP 地址和子网掩码,让它能连接到网络 1。
- no shutdown:激活 f0/0 接口,就像打开了接口的开关。
- 后面关于FastEthernet0/1接口的配置和FastEthernet0/0类似,配置完之后,使用exit退出接口配置模式。
3.2 R1 配置 RIP
接下来,我们要启用 RIP 路由协议,让路由器能够学习和传递路由信息。配置代码如下:
router rip
version 2
network 192.168.1.0
network 192.168.2.0
exit
- router rip:启用 RIP 路由协议。
- version 2:使用 RIP 版本 2,这个版本支持子网掩码和组播更新,更加智能。
- network 192.168.1.0和network 192.168.2.0:声明 Router1 直接连接的网络 1 和网络 2,让它们参与 RIP 路由更新。
- exit:退出 RIP 配置模式。
3.3 测试网络连通性
配置完成后,我们需要测试一下网络是否连通。就像修好路之后,要开车跑一跑试试是否畅通。我们在 PC1 的命令提示符中输入ping 192.168.3.021,来测试 PC1 到 PC2 的链路是否正常。
测试结果截图如下:
从截图中可以看到,4 个数据包均收到回复,这说明 PC1 到 PC2 的链路连通,RIP 路由配置正确!如果网络没有连通,我们还可以使用show ip route查看路由表,确认是否有到达目标网络的路由;使用show ip interface brief检查接口状态,确保接口为 “up/up”。
四、深入理解 RIP 路由表建立和更新
4.1 抓包与分析
为了更直观地了解 RIP 路由表的建立和更新过程,我们进行抓包操作。
- 切换到 Simulation 模式:在 Packet Tracer 底部选择 Simulation 模式,点击 Auto Capture/Play 清理数据包,在 Edit Filters 中仅勾选 RIP 协议,这样就能只抓取 RIP 相关的报文啦。
- 重启接口触发 RIP 更新:在 Router1 和 Router2 的 CLI 执行以下命令,重启接口:
interface FastEthernet0/0
shutdown
no shutdown
interface FastEthernet0/1
shutdown
no shutdown
- 抓取 RIP 报文:点击 Auto Capture/Play,捕获 Router1 和 Router2 之间的 RIP 报文。报文详情如下:
- 源 IP:Router1 (192.168.2.020)
- 目的 IP:224.0.0.9(RIP v2 组播地址)。
- 内容:Router1 发送 192.168.1.0/24(Metric=1),Router2 发送 192.168.3.0/24(Metric=1)。
抓包截图如下:
4.2 路由表建立过程
- 初始状态:使用show ip route查看 Router1 路由表,此时路由表中只有直接连接的网络信息:
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/1
- 第一次 RIP 更新:使用debug ip rip观察 RIP 更新过程,可以看到 Router1 发送 192.168.1.0/24 给 Router2,Router2 发送 192.168.3.0/24 给 Router1。
RIP: sending v2 update to 224.0.0.9 via FastEthernet0/1 (192.168.2.020)
RIP: received v2 update from 192.168.2.021 on FastEthernet0/1
- 路由表更新:再次使用show ip route查看 Router1 路由表,此时 Router1 已经学习到了 192.168.3.0/24 网络:
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/1
R 192.168.3.0/24 [120/1] via 192.168.2.021, FastEthernet0/1
- 收敛:经过 30 - 90 秒(1 - 3 次更新),Router1 的路由表就稳定下来啦。
我们还可以使用show ip protocols命令确认 RIP 版本 2,更新周期 30 秒,以及参与 RIP 的网络信息:
Routing Protocol is "rip"
Sending updates every 30 seconds
Routing for Networks: 192.168.1.0, 192.168.2.0
4.3 结论
通过实验,我们可以得出结论:RIP 通过每 30 秒的组播更新(224.0.0.9),交换直接连接网络信息。Router1 通过 Router2 的更新学习到 192.168.3.0/24,Metric 加 1,路由表逐步收敛。
五、理解 RIP 消息传得慢
5.1 实验步骤
RIP 协议有一个特点,就是 “坏消息传得慢”。我们通过以下实验来验证这一点:
- 关闭 Router1 的 f0/0 接口:在 Router1 的 CLI 执行interface FastEthernet0/0和shutdown命令,使 192.168.1.0/24 网络不可达。
- 在 Router2 启用调试:在 Router2 的 CLI 输入debug ip rip,观察 RIP 更新报文。
- 分析 Router2 路由表:使用show ip route查看 Router2 路由表。
-
- 初始:Router2 路由表包含 192.168.1.0/24(下一跳 192.168.2.020)。
-
- 约 180 秒后(Invalid Timer),Router2 收到 Metric=16 的更新,标记 192.168.1.0/24 不可达。
-
- 约 240 秒后(Flush Timer),192.168.1.0/24 从路由表删除。
调试输出示例:
RIP: received v2 update from 192.168.2.020 on FastEthernet0/0
192.168.1.0/24 via 0.0.0.0 in 16 hops (inaccessible)
- 停止调试:输入undebug all停止调试。
5.2 收敛分析
- Router1 的 f0/0 关闭后,Router1 在下一次更新(30 秒内)发送 192.168.1.0/24(Metric=16)。
- Router2 收到后,需等待 Invalid Timer(180 秒)标记不可达,Flush Timer(240 秒)删除路由。
- 相比新路由快速传播(30 秒),失效路由需 180 - 240 秒,这就体现了 RIP 协议 “坏消息传得慢” 的特点。
六、实验中遇到的问题及解决方法
在实验过程中,难免会遇到各种问题,下面就来看看我遇到的问题以及解决方法吧!
6.1 问题 1:输入 show ip interface brief 提示 “无效输入”
- 原因:命令在全局配置模式(Router (config)#)输入,或拼写错误。
- 解决方法:
-
- 输入 exit 返回特权模式(Router#)。
-
- 确保命令为 show ip interface brief,使用 Tab 补全或?确认。
-
- 确认路由器为 2811 型号,输出正确显示接口状态为 “up/up”。
6.2 问题 2:show running-config 输出中断,显示 --More--
- 原因:Cisco CLI 分页机制,配置内容超过屏幕行数。
- 解决方法:
-
- 按空格键显示完整配置,或输入 terminal length 0 显示全部内容。
-
- 检查 R1 接口(192.168.1.021 和 192.168.2.020)和 RIP 配置(network 192.168.1.0 和 192.168.2.0)。
6.3 问题 3:PC1 ping PC2(192.168.3.021)超时
- 原因:
-
- PC1 默认网关未正确设置为 192.168.1.021。
-
- R1 未学习到 192.168.3.0/24,RIP 未收敛。
- 解决方法:
-
- 修正 PC1 默认网关为 192.168.1.021,PC2 网关为 192.168.3.020。
-
- 确认 R1/R2 接口(show ip interface brief),确保 “up/up”。
-
- 验证 R1/R2 的 RIP 配置(show running-config),确保声明正确网络。
-
- 使用 show ip route 检查路由表,执行 clear ip route * 加速 RIP 收敛。
-
- 确认 Packet Tracer 中连接线为绿色。
- 结果:修正网关和 RIP 后,ping 成功,网络连通。
七、实验疑惑与解答
在实验过程中,我产生了一个疑惑:抓包时发现 RIP 更新报文每 30 秒一次,但 “坏消息” 传播需 180 - 240 秒,是否可以通过调整计时器优化?
解答:RIP 的 Invalid Timer(180 秒)和 Flush Timer(240 秒)是协议固有设计,可通过触发更新(如 clear ip route *)加速收敛,但需谨慎使用,可能增加网络负载。
八、实验感想
通过这次实验,我对 RIP 的距离矢量机制和路由表更新过程有了更深入的理解。“坏消息传得慢” 这个特性让我认识到 RIP 在动态网络中的局限性,也激发了我对更高效协议(如 OSPF)的学习兴趣。在解决实验过程中遇到的问题时,我学会了如何系统排查网络故障,动手能力得到了很大的提升!
希望这篇博客能对大家理解 RIP 协议有所帮助,如果你在实验过程中也遇到了问题,欢迎在评论区交流讨论哦!