尧图精选

RIP路由协议实验详解:原理、配置与排错全流程

🕒 发布时间:2026/10/2 2:52:29 📁 来源:尧图网络
RIP实验是网络工程课程里几乎绕不开的一个入门实验但很多人在做的时候只是照着命令敲一遍看路由表出来了就完事完全没有搞清楚 RIP 到底在做什么。这篇文章我围绕 RIP 协议的原理、实验拓扑搭建、配置命令、验证手段和排错思路把我实际做过的实验过程完整梳理一遍。无论你是正在备考网络工程师认证还是学校里刚学到动态路由都可以把这篇文章当作一份可复现的实验手册来看。RIPRouting Information Protocol路由信息协议属于距离向量路由协议也是动态路由协议里最基础的一种。它的原理简单、配置容易在小型网络中确实够用但也正因为简单它的缺陷也暴露得比较明显比如收敛慢、最大跳数限制只有 15 跳、容易产生路由环路。做这个实验重点不是学会敲几条命令而是要亲自观察 RIP 是如何学习路由、如何更新路由、以及它在网络出现故障时是如何反应的。我这次实验用三台路由器串联的拓扑来做原因是三台设备能够直观展示 RIP 的路由传递过程也能验证“跳数”这个度量值在实际中是怎么累加的。实验平台用 GNS3设备镜像选择 Cisco 3725所有接口用 FastEthernet。如果你手头是 Cisco Packet Tracer 也可以完成大部分内容只是有些排错命令的输出没有那么完整。1. 实验整体设计与思路拆解1.1 拓扑规划与地址规划为什么要这么做拓扑设计是整个实验的第一步也是很多人不重视的一步。我在教学和实际测试中见过太多人上来就拉设备、接线路结果配置到一半发现地址冲突、接口类型不对、链路广播域混乱最后只能推倒重来。RIP 实验的实验目的非常明确就是要让三台路由器彼此之间通过 RIP 协议动态学习到非直连网段的路由所以拓扑必须保证存在非直连网段、存在多条可能的路由路径、路由信息能够逐跳传递。我设计的地址规划如下设备接口IP 地址对应网段R1F0/0192.168.12.1/24192.168.12.0/24R1Loopback01.1.1.1/321.1.1.1/32R2F0/0192.168.12.2/24192.168.12.0/24R2F1/0192.168.23.2/24192.168.23.0/24R3F0/0192.168.23.3/24192.168.23.0/24R3Loopback03.3.3.3/323.3.3.3/32R1 和 R3 上各配一个 Loopback 地址目的有两个一是模拟实际网络中的服务器网段或终端网段二是方便验证 RIP 是否把非直连路由正确地传递到了对端。R2 作为中间路由器不配置 Loopback只负责转发 RIP 更新和转发数据包。这一类地址规划在实际工程中对应的是“核心层只做转发、汇聚层连终端”的网络设计思路虽然实验规模小但是逻辑是一致的。1.2 为什么选择 RIP 而不是 OSPF 或静态路由选择 RIP 做实验并不是因为它先进恰恰是因为它足够简单适合用来建立对动态路由协议的基本认知。相比之下静态路由需要人工逐条指定目标网段和下一跳网络规模一大就会变得不可维护OSPF 则涉及区域划分、路由器 ID、Cost 计算、邻居关系建立等一堆概念对初学者来说信息量太大容易把注意力从“路由协议本身在解决什么问题”转移到“OSPF 的命令怎么敲”上。RIP 把路由协议的核心机制浓缩成了几个极为关键的行为周期性通告、度量值累加、路由表更新、故障后的计时器超时与路由撤销。把这些行为看懂了后续学 OSPF、IS-IS、BGP 都会轻松很多。所以我的建议是RIP 实验别跳过也别急着做 OSPF 实验先把基础打扎实。1.3 实验预期效果与观察指标做任何一个实验先想清楚你要看到什么现象。这个 RIP 实验我预期的观察指标有四个第一R1 和 R3 的路由表中出现通过 RIP 学习到的路由目标分别是对方的 Loopback 网段下一跳指向 R2 的接口地址度量值跳数为 2。第二R2 的路由表同时拥有两端网段的路由并能作为中转发起数据转发。第三在 R1 上 ping 3.3.3.3 能通反向 ping 1.1.1.1 也能通。第四关闭某一台设备的接口后RIP 能在计时器到期后删除对应路由而不是立刻消失。这最后一个观察点非常关键它体现了动态路由协议与静态路由的本质区别静态路由只要不手动删除永远存在动态路由则依赖协议本身的保活机制来确认路径的可用性。RIP 的默认路由超时时间是 180 秒也就是说一条路由如果连续 180 秒没有收到更新才被标记为不可达。这个特性既是优点也是缺点后面我会详细分析。2. RIP 协议工作原理与关键机制2.1 距离向量算法的直观理解RIP 的核心是距离向量Distance Vector算法。所谓“距离”在 RIP 里就是跳数Hop Count每经过一台路由器跳数加 1“向量”指的是通往目标网段的方向也就是下一跳接口或下一跳地址。每个路由器只告诉邻居“我能到达哪些网段距离是多少”而不告诉邻居完整的网络拓扑。这有点像你在一个陌生的城市问路路人不会给你画一张完整的城市地图只会告诉你“沿着这条路走两个路口再左转”。每个路人都只知道局部信息但通过层层传递你最终也能到达目的地。问题在于如果某个路人的信息是错的或者道路临时封闭了你可能会多绕很多路——这就是 RIP 路由环路问题的直观来源。RIP 有两个版本RIPv1 和 RIPv2。RIPv1 是有类路由协议不支持 VLSM 和 CIDR通告路由时不携带子网掩码RIPv2 是无类路由协议支持 VLSM、CIDR并且支持明文或 MD5 认证。实际工程中几乎不会用 RIPv1所以我的实验直接使用 RIPv2。这里有个非常容易出错的地方如果网段规划用了变长子网掩码而误配置成 RIPv1路由通告会出现异常我在后面的排错部分会专门讲到这个案例。2.2 RIP 的四个计时器与收敛行为RIP 的正常工作依赖四个计时器计时器名称默认时间作用更新计时器 Update30 秒周期性发送路由更新报文无效计时器 Invalid180 秒路由超过 180 秒未更新则标记为无效保持计时器 Holddown180 秒路由进入保持状态阻止立即更新刷新计时器 Flush240 秒路由从路由表中彻底删除从这些时间参数就能看出RIP 的故障收敛速度是非常慢的。一条直连链路断开后最坏情况下要等 240 秒其他路由器才会把这条路由从表中彻底清除。这就是 RIP 不适合大型网络的根本原因之一。实验里我建议你专门做一次“断线观察”在 R1 和 R2 之间的链路正常稳定后手动 shutdown R2 的 F0/0 接口然后每隔 15 秒在 R1 上执行 show ip route记录路由状态的变化过程。你会看到刚开始路由还在状态正常大约 180 秒后这条路由条目还在但下一跳变成了不可达的状态再过 60 秒条目消失。这个过程能让你深刻理解“动态路由的收敛不是瞬时的”这句话到底意味着什么。2.3 RIP 的环路防护机制为什么要理解路由环路是距离向量协议先天的短板RIP 设计了一组防护机制来把这个问题的危害降到最低。最核心的有三个水平分割Split Horizon、毒性反转Poison Reverse和触发更新Triggered Update。水平分割的规则很简单从某个接口学习到的路由不能再从同一个接口通告回去。举个例子R2 从 F0/0 口学到去往 1.1.1.1 的路由它就不会再从 F0/0 口把这条路由通告给 R1。这个机制避免了两个邻居之间互相传播路由造成的无限循环。毒性反转则是更进一步当一条链路断开时路由器会把该路由的度量值设为 16即无穷大并通告给邻居让邻居立刻知道这条路已经不可用而不是傻等计时器超时。我在做实验时特意对比过开启和关闭水平分割时路由表的变化。在 Cisco 设备上接口默认开启水平分割当你用 debug ip rip 观察更新报文时可以看到某些路由条目“不出来”——这不是故障而是水平分割在起作用。如果你在做实验时发现某台设备邻居学不到路由先检查水平分割配置这比盲目重启设备要高效得多。3. RIP 实验完整配置过程实录3.1 设备基础配置与接口地址配置完成地址规划之后第一步是给所有设备配置接口地址。这个环节不需要启路由协议只保证直连链路三层互通。以 R1 为例配置命令如下Routerenable Router#configure terminal Router(config)#hostname R1 R1(config)#interface FastEthernet0/0 R1(config-if)#ip address 192.168.12.1 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#exit R1(config)#interface Loopback0 R1(config-if)#ip address 1.1.1.1 255.255.255.255 R1(config-if)#exitLoopback 接口是虚拟接口只要路由器本身不宕机它就永远处于 up 状态。用它模拟终端网段有个好处你不用担心物理链路状态对实验造成干扰ping 测试的目标永远可达。R2 的配置类似区别是它有两个物理接口要配。R3 则和 R1 一样配置 F0/0 地址 192.168.23.3/24 和 Loopback0 地址 3.3.3.3/32。全部配置完成后先做一轮连通性测试R1 ping 192.168.12.2 要通R2 ping 192.168.23.3 要通R1 ping 192.168.23.3 应该不通因为 R1 路由表中没有 192.168.23.0/24 这个网段的路由。如果你发现直连链路不通先排查接口状态。show ip interface brief 是这一步最常用的命令能快速看所有接口的 IP 和 up/down 状态。如果接口是 down 的检查网线连接和 no shutdown 配置。3.2 启用 RIP 协议并通告指定网段接口配置完成后进入 RIP 配置环节。Cisco 设备上启用 RIP 的命令是 router rip然后通过 network 命令通告直连网段。这里有一个新手极容易犯的错误network 后面跟的是直连网段的网络号不是你要“让 RIP 学习”的目标网段。比如 R1 为了让 RIP 通告 192.168.12.0 和 1.1.1.0 这两个网段应该写R1(config)#router rip R1(config-router)#version 2 R1(config-router)#network 192.168.12.0 R1(config-router)#network 1.1.1.0 R1(config-router)#no auto-summary注意我特意加了 no auto-summary关闭自动汇总。RIPv2 默认开启自动汇总会将有类网络边界进行汇总后再通告。在我们的实验里如果不关闭自动汇总R1 通告 1.1.1.1/32 的时候就会汇总成 1.0.0.0/8 通告出去R3 的路由表里看到的就不是精确的 1.1.1.1/32而是 1.0.0.0/8。这个现象在很多认证考试中也是考点实际配置中建议始终关闭自动汇总特别是当你的地址规划里存在非连续的子网时。R2 的配置类似R2(config)#router rip R2(config-router)#version 2 R2(config-router)#network 192.168.12.0 R2(config-router)#network 192.168.23.0 R2(config-router)#no auto-summaryR3 的配置R3(config)#router rip R3(config-router)#version 2 R3(config-router)#network 192.168.23.0 R3(config-router)#network 3.3.3.0 R3(config-router)#no auto-summary这里再补充一个细节Cisco IOS 的 RIP 配置中network 命令既可以写 A/B/C 类网络号比如 network 1.1.1.0IOS 会自动匹配该子网也可以写 1.0.0.0。但如果你写了 network 1.1.1.0IOS 会接受并精确匹配 1.1.1.0/24包括 /32 地址。不同版本 IOS 处理方式略有差异建议以 show ip protocols 的实际输出为准确认 network 语句匹配的范围。3.3 验证路由学习结果与数据连通性三台路由器的 RIP 都启用之后等 30 秒以内路由表就会陆续出现 RIP 学习到的条目。在 R1 上执行 show ip route 观察输出R1#show ip route Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1/32 is directly connected, Loopback0 R 3.3.3.3/32 [120/2] via 192.168.12.2, 00:00:12, FastEthernet0/0 192.168.0.0/24 is subnetted, 2 subnets C 192.168.12.0/24 is directly connected, FastEthernet0/0 R 192.168.23.0/24 [120/2] via 192.168.12.2, 00:00:08, FastEthernet0/0留意这几处关键信息。[120/2] 是管理距离和度量值。120 是 Cisco 设备上 RIP 的管理距离数值越小越优先2 表示到达目标网段需要经过 2 跳。via 192.168.12.2 表示下一跳是 R2 的 F0/0 接口地址。后面那个 00:00:12 是路由老化计时器它会在每次收到 RIP 更新后重置为 0最大 180 秒。如果超过 180 秒没刷新这条路由就会从可用状态变为不可用状态。看到 R1 路由表里出现 3.3.3.3/32 和 192.168.23.0/24 之后在 R1 上 ping 3.3.3.3 验证端到端连通性R1#ping 3.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max 12/14/16 ms五个感叹号代表五个 ICMP 报文全部收到回应ping 通了。这意味着数据包从 R1 经过 R2 到达 R3 的 Loopback 地址再原路返回整个过程 RIP 路由表正确指导了转发行为。再站到 R3 上反向 ping 1.1.1.1同样应该全通。双向验证是实验测试的好习惯很多人在实际项目中只测单向结果等到出故障才发现回程路由有问题。ping 是最基本的连通性验证但它只能证明“通不通”证明不了“走哪条路”。想看路径用 traceroute在 Cisco 设备上是 traceroute 命令。我会在下一节展开讲。3.4 用 debug 命令观察 RIP 工作过程的现场教学配置验证通过之后最有价值的观察环节是用 debug ip rip 查看 RIP 协议的工作过程。这个命令会实时输出路由器接收和发送 RIP 更新报文的具体内容。在 R2 上执行R2#debug ip rip RIP protocol debugging is on R2# *Mar 1 00:21:35.467: RIP: sending v2 update to 224.0.0.9 via FastEthernet0/0 (192.168.12.2) *Mar 1 00:21:35.467: RIP: build update entries *Mar 1 00:21:35.467: 192.168.23.0/24 via 0.0.0.0 metric 1 *Mar 1 00:21:35.467: 3.3.3.3/32 via 0.0.0.0 metric 2 *Mar 1 00:21:35.625: RIP: received v2 update from 192.168.12.1 on FastEthernet0/0 *Mar 1 00:21:35.625: 1.1.1.1/32 via 0.0.0.0 metric 1这段输出把 RIP 的运作机制展示得非常清楚。发送更新时目的地址是 224.0.0.9这是 RIPv2 的组播地址表示 RIP 更新不是广播发送而是只发给同一网段内运行 RIP 的设备。接收更新时路由器解析出源地址 192.168.12.1 和相应的路由条目。注意 R2 通告 3.3.3.3/32 时 metric 是 2因为它从 R3 学到时度量值是 1通告给 R1 时加 1 变成 2。这就是“路由信息传递时度量值递增”的直接证据。debug 命令输出默认送到控制台如果你通过 Telnet 或 SSH 远程登录设备需要在终端上执行 terminal monitor 才能看到日志输出。另外实验完毕务必用 undebug all 关闭调试否则 debug 持续运行会占用大量 CPU 资源干扰其他实验观察。4. 路由环路与故障场景模拟实验4.1 被动接口与路由更新的控制标准 RIP 配置完成之后我建议做几个进阶的场景模拟实验其中第一个就是被动接口Passive-Interface。在实验里R1 的 Loopback0 接口连接着一个“模拟终端网段”这个网段里没有其他路由器。RIP 仍然会周期性向这个接口发送更新报文虽然没有任何设备在听但这些报文占用了链路和 CPU 资源。更严重的是如果这个接口连接的新设备被配置错误地打开了 RIP可能立刻引发路由环路。在 Cisco 设备上配置被动接口的命令只有一行R1(config)#router rip R1(config-router)#passive-interface Loopback0配置之后R1 不再从这个接口发送任何 RIP 更新但 Loopback0 对应的网段依然会被 RIP 通告给邻居。这个机制的理解要点在于被动接口控制的是“从某个接口往外面发送 RIP 报文”而不是“不把这个接口的网段通告给 RIP 邻居”。后者仍然由 network 命令控制。我见过有人把 passive-interface 和 network 命令混为一谈以为配了 passive-interface 就要把对应的 network 语句删掉这是错误的理解。4.2 模拟链路故障与路由收敛时间实测接下来做链路故障模拟。R1 和 R2 之间的链路是 192.168.12.0/24。我们在 R2 上执行 shutdown 关闭 F0/0 接口模拟一条直连链路中断。立刻在 R1 上执行 show ip route你会惊讶地发现3.3.3.3/32 和 192.168.23.0/24 这两条 RIP 路由还在路由表里并且下一跳依然是 192.168.12.2。此时如果 ping 3.3.3.3超时数据包被丢掉。原因是 R1 在 F0/0 接口 down 之前的最后一次路由表输出里RIP 路由条目还在缓存中链路断开事件并不会立刻触发路由删除。大约 180 秒之后再看路由表会出现这样的变化R 3.3.3.3/32 [120/16] via 192.168.12.2, 00:00:21, FastEthernet0/0注意度量值变成了 16。在 RIP 里16 代表“无穷大”也就是不可达。这个状态保持到 Flush 计时器超时也就是 240 秒整体到期之后条目彻底消失。这个等待过程非常无聊但它精确展示了动态路由协议的收敛代价。如果做这种实验时不方便干等我有个经验技巧把 RIP 的计时器临时调小再做测试。比如在全部路由器上统一调整R1(config-router)#timers basic 5 15 15 20这条命令把更新计时器改成 5 秒、无效计时器和保持计时器改成 15 秒、刷新计时器改成 20 秒。调整后故障发现和路由删除的速度会明显加快适合在实验环境验证原理。但要注意只有在所有运行 RIP 的设备上保持一致的计时器设置协议才能正常运行。生产环境里几乎不会去改这些默认值所以实验后建议改回来或者直接重启设备恢复默认配置。4.3 环路观察如何人为制造并诊断RIP 环路在真实环境中很难主动制造但在实验环境里我们可以通过关闭水平分割来观察它的影响。场景这样设计R1、R2、R3 组成环形拓扑R1-F0/0 连 R2-F0/0R2-F1/0 连 R3-F0/0R3-F1/0 连 R1-F1/0然后故意把 R3 上通告某条路由的 network 语句配错让 R1 和 R3 之间出现一条冗余路径再关闭水平分割观察路由的“振荡”。为了让实验重点突出最简单的做法是单臂观察不关闭水平分割时R1 不会向 R2 重新通告从 R2 学到的路由一旦关闭水平分割R1 会把从 R2 学到的路由再次通告给 R2R2 再通告给 R3R3 再通告回 R1形成闭环。虽然 RIP 的度量值递增最终会让这条环路路由的度量值达到 16 而被丢弃但在这个过程里路由更新报文会在网段间反复传递消耗带宽和 CPU。诊断环路最直接的工具是 debug ip rip观察某些路由条目是否反复出现、度量值异常偏大。另一个实用手段是 show ip route 中度量值持续不稳定的条目。当度量值逐渐增大、减小然后又增大说明存在信息的不一致流通大概率是环路或邻居状态异常。遇到环路时最快的处理方式是 shutdown 其中一个环路接口阻断物理层闭环然后再逐台设备检查配置逻辑。4.4 RIPv1 与 RIPv2 的版本兼容陷阱实验里我把所有设备都配置成 RIPv2统一了版本。但实际组网中某些老设备可能只支持 RIPv1或者有人误把一台设备配成了 RIPv1就会遇到路由学不到、路由表缺失的奇怪问题。RIPv1 和 RIPv2 的主要差异有几个RIPv1 广播发送更新目的地址 255.255.255.255RIPv2 组播发送224.0.0.9RIPv1 报文不携带子网掩码接收方按照地址类别自行推断RIPv1 不支持认证RIPv1 不支持 VLSM。当一个接口同时收到 RIPv1 和 RIPv2 报文时Cisco IOS 默认接受 RIPv1 报文但拒绝 RIPv2 报文除非显式允许。这个默认行为会让不同版本的路由器之间出现单向路由学习RIPv2 设备能学到 RIPv1 的路由但 RIPv1 设备学不到 RIPv2 的路由因为它的处理逻辑不识别 RIPv2 报文。实验中排查这类问题可以先在所有设备上执行 show ip protocols查看每个进程使用的版本号确认没有出现版本不一致的情况。注意 show ip protocols 输出的“Routing Protocol is “rip””下面会有一行标明 “Sending updates every 30 seconds...” 以及 “Default version control: send version 2, receive version 2” 这样的信息。5. RIP 实验常见问题与排查技巧实录5.1 路由表里为什么没有 RIP 条目这是做 RIP 实验时最典型的问题先别急着怀疑协议配置按下面顺序逐层排查。第一步看接口状态。show ip interface brief 确认所有参与 RIP 的接口状态都是 up/up。接口 down 的话RIP 不会在 down 接口上发送或接收更新。第二步看 network 命令是否覆盖了对应接口网段。比如你接口配了 192.168.12.1/24但 router rip 进程里 network 写成了 192.168.0.0 的某个不匹配地址那么该接口参与 RIP 通告会被直接忽略。第三步看版本和自动汇总设置。RIPv1 和不连续子网组合最容易出问题。第四步看水平分割。如果是串行链路或 Frame Relay 环境水平分割可能阻止路由回传。Ethernet 环境里一般影响不大但如果你在相邻路由器之间做多路互联就要特别小心。还有一个常见原因是设备时间不同步导致的认证失败。如果你在 RIP 里配置了认证而邻居之间时钟偏差较大更新报文会被直接丢弃。实验里有 RIPv2 认证需求的话建议先关掉认证排除这个干扰。5.2 ping 不通但路由表已有路由路由表里有目标网段的路由条目但 ping 不通目标地址这个现象比“完全没有路由”更难排查因为问题可能出在多个环节。第一种可能是回程路由缺失。R1 ping 3.3.3.3 时R3 收到 ICMP 请求后要回包它必须知道怎么到达 1.1.1.1。如果 R3 的路由表里没有 1.1.1.1 的路由回包就被丢弃了现象就是 ping 输出全是超时!!!!! 变成 .....。双向路由检查是排除此类问题最快的方法。第二种可能是访问控制列表ACL拦截。实验默认没有配置 ACL但如果你做过其他实验后忘了移除某些 permit/deny 语句可能正好挡住了 ICMP。排查方法是 show access-lists 查看计数器看是否有匹配到 ICMP 流量的记录。第三种是防火墙或设备安全策略默认拦截。模拟器里一般不会出现真实设备上的安全策略则要仔细检查。我建议做实验时优先保证模拟环境足够纯净不要在一开始就叠加防火墙策略否则会误导你对 RIP 本身的理解。5.3 debug 输出里看不到更新报文debug ip rip 开启后结果没有任何输出这种情况通常不是协议故障而是你观察的位置不对。如果设备长时间没有任何 RIP 更新输出先确认 RIP 进程是否启用。show ip protocols 是最直接的验证命令它会显示进程状态、计时器数值、network 语句列表。如果进程没有启用输出里根本不会有 “Routing Protocol is rip” 这一行。还有一个隐蔽原因接口关闭了组播或广播能力。RIPv2 依赖组播地址 224.0.0.9如果接口上有 IGMP 过滤或者其他组播限制更新报文就发不出去。这个在 GNS3 模拟的 Cisco 设备镜像里很少见但真实交换机上某些交换机端口配置了组播过滤就可能产生类似问题。另外确认你的终端模拟软件支持 debug 输出显示。SecureCRT、PuTTY 都支持但有些终端工具默认关闭了某些控制字符显示可能导致输出不刷新。无论如何terminal monitor 这条命令在远程登录场景下必须执行否则 debug 输出不会发送到你的终端。5.4 关于管理距离与路由优先级的实战理解RIP 的管理距离是 120。如果同一台路由器同时运行了静态路由和 RIP静态路由的管理距离是 1那么静态路由优先。如果设备同时运行 OSPF管理距离 110和 RIPOSPF 优先。这个优先级机制决定了路由表中最终采用哪条路由。我遇到过初学者把管理距离和度量值混为一谈。管理距离是“不同来源之间的信任度”度量值是“同一来源内部的好坏程度”。举个例子去往 192.168.100.0/24 这个网段OSPF 通告的路径是环形的RIP 通告的路径是直连的即使 RIP 的度量值更小路由表里最终选择的还是 OSPF 那条因为 OSPF 的管理距离 110 小于 RIP 的 120。这个理解对做网络排障非常关键因为有时候你看到路由表里装的不是“看起来最短”的那条路径原因往往就是管理距离在起作用。实验里如果想验证这一点可以在 R1 上临时加一条静态路由指向同一目标网段观察路由表瞬间切换到静态路由再删除静态路由观察路由表回退到 RIP。这个过程还能让你明白“动态路由不是一定要在路由表里永久存在它随时可能被静态路由覆盖”这是路由优先级概念最直观的体现。6. 进阶扩展让 RIP 实验更有工程价值基础的“三台路由器全部跑 RIP 并 ping 通”实验做完整个流程大约需要一小时但它的价值不应该止步于拿到一份实验报告。我在做这个实验时还习惯性地追加几个扩展内容让实验变得更贴近实际网络环境。第一个扩展是观察 RIPv2 的认证机制。在 R2 和 R3 之间的链路配置 MD5 认证然后在 R3 上故意配置错误密钥观察邻居关系是否能建立、路由表是否还能学习到路由。这个场景模拟的是“合法设备被中间人篡改”的情况对理解路由协议安全很有帮助。配置认证的命令是 ip rip authentication mode md5 和 ip rip authentication key-chain需要先在设备上创建 key chain。第二个扩展是抓包分析。在 GNS3 里用 Wireshark 监听 R2 的 F0/0 接口你会看到每隔 30 秒有一个发往 224.0.0.9 的 UDP 报文源端口 520目标端口 520。展开报文内容能看到 RIPv2 报文头部的命令字段值为 1 表示请求值为 2 表示响应、版本字段以及路由条目里的 IP 地址、子网掩码、度量值。抓包视角和路由表视角互为印证是理解协议工作机制的最好方式。第三个扩展是扩展到四台路由器的链式拓扑观察跳数累加会不会超过 15。设想你加设备一直加到跳数达到 15 以上RIP 会认为目标不可达。这个实验能直观解释为什么 RIP 只适用于小型网络。四台路由器组成的链式拓扑里R1 到 R4 的 Loopback 网段跳数是 3还不会触发上限你可以继续加到 17 台设备但在模拟器里拉 17 台路由器确实有点疯狂所以大多数人靠理论理解这个限制就够了。这里我还想分享一个小技巧在 GNS3 里做这种多设备实验时建议把所有路由器的 IOS 镜像统一避免不同版本之间的行为差异干扰判断。比如某些 IOS 版本的 RIP 默认配置了 auto-summary而另外一些版本需要手动关闭。统一版本后再做对比实验结论才可靠。如果手头没有 GNS3用 Cisco Packet Tracer 同样能完成本次实验 90% 的内容。Packet Tracer 的优势是上手快、设备库丰富、网络拓扑拖拽方便劣势是某些 debug 输出是模拟的并不真的反映协议行为细节。做教学演示用 Packet Tracer 可以做协议机制深入研究还是建议 GNS3 加真实 IOS 镜像或物理设备。7. 关于 RIP 实验的总结性经验谈RIP 在真实网络环境中的部署已经非常少见有更高效、收敛更快的路由协议替代它但它的教学价值至今无法被替代。通过 RIP 实验你能亲身体会动态路由协议的核心循环——周期通告、信息接收、路由表更新、故障响应——这个循环是所有动态路由协议的共同骨架。我自己做这个实验最深的体会是不要只满足于敲命令和看路由表多花时间观察 show 命令的输出细节和 debug 的日志变化多制造故障场景去观察协议的反应这些才是实验的真正价值所在。RIP 的缺陷不是“它没用”而是“它用在哪里都容易出问题”理解它的缺陷比理解它的配置更重要。最后再分享一个我实际踩过的坑实验做完想收尾时一定要记得保存配置write memory 或 copy running-config startup-config否则 GNS3 关闭后所有配置全部丢失。另一个容易忽略的细节是在敲完每台设备的配置后检查各设备之间的时间戳是否一致因为它影响你对 debug 输出顺序的判断。这些细枝末节平时不太起眼但在排障时可能就是决定你能否快速定位问题的那把钥匙。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →