RIP路由协议实验全拆解:从距离矢量原理到抓包排错实战

发布时间:2026/10/5 7:09:52
RIP路由协议实验全拆解:从距离矢量原理到抓包排错实战 1. 为什么一个快四十岁的协议还值得亲手做实验RIPRouting Information Protocol路由信息协议可能是现代网络工程里最容易被轻视的一个名字。很多做网络的人一提到RIP就是跳数限制15跳收敛慢已经被OSPF取代了然后就直接跳过。我早年也是这个想法直到有一次排查一个老设备的互联问题时被RIP的广播更新机制坑了一把才意识到可以不用RIP但不能不懂RIP。这篇内容要做的就是围绕RIP实验做一次完整拆解。实验本身不复杂一台路由器、一台交换机、两台PC就能跑起来但把RIP从配置到验证、从抓包到排错完整走一遍之后你对距离矢量协议、路由环路、计时器机制这些东西的理解会扎实很多。适合正在学路由协议的人、准备网络认证考试的人以及那种配过RIP但从没细看它到底在发什么包的实操派。先说清楚这篇文章解决什么问题第一搞清楚RIP v1和v2到底差在哪为什么v2是实际中的底线第二完整走一遍实验拓扑搭建、配置命令和验证思路第三用抓包和debug命令把RIP的更新行为从听说变成亲眼看到第四把那些文档里不会写、但实际经常踩的坑跳数边界、抑制计时器、被动接口、不连续子网逐一点出来。2. 动手之前必须想明白的几件事2.1 距离矢量到底是什么意思RIP属于距离矢量协议这个距离矢量四个字值得拆开讲。距离Distance指的是到达目标网段的度量值在RIP里就是跳数每经过一台路由器跳数加一。矢量Vector指的是下一跳方向即往哪个方向走。所以每台运行RIP的路由器实际上是在不断告诉邻居我能到哪儿距离有多远然后听邻居怎么说再结合自己已知的信息选出最优路径。这跟OSPF那种链路状态协议有本质区别。链路状态协议是每台路由器都把自己连接的链路信息广播出去全网路由器都拿到完整拓扑图各自计算最短路径。而RIP是道听途说式学习我只信邻居告诉我的邻居说他能到某个网段我就认为能到并且跳数加一。这也解释了RIP为什么会有那么多防环机制——因为路径信息不是自己算出来的而是邻居转述的转述过程中可能出问题。有一个经典比喻我经常在给朋友解释的时候用OSPF像你有一张完整的地图每修一条路全国都更新一遍RIP像你站在路口问路每个路人告诉你他记忆中的走法你只能相信他但没法验证他记的到底对不对。听懂这个比喻后面理解路由环路、水平分割、毒性反转就都顺理成章了。2.2 跳数15和16的特殊含义RIP的度量值是跳数取值范围从1到1516表示不可达。为什么设计成15因为距离矢量协议天生有路由环路风险如果不限制跳数上限一个错误的路由信息能在网络里无限循环TTL是限制IP包的但没有限制路由条目的。所以RIP把上限压到15超过就认为不可达这样即使出现环路路由条目很快会被标记为无效并删除不至于无限扩散。这个设计实际使用中非常容易踩坑。比如一个网络纵深比较深从边缘到核心有12跳再往下接两层设备就14跳了这时候配RIP就很尴尬——每个跳数都在临界线上加一台设备就可能全部无法通信。我在实际项目里遇到过类似的网络解决方案一般是换OSPF或者做路由汇总减少跳数。所以做RIP实验的时候一定要想清楚你在这个实验里看到的15跳限制不是课本上的一个数字而是RIP本质上的一个安全阀。2.3 v1和v2的核心差异RIP v1诞生于1988年RFC 1058是有类路由协议发送更新的时候不带子网掩码这意味着它无法处理可变长子网掩码和不连续子网。RIP v2RFC 2453在1998年发布支持VLSM和CIDR更新报文里携带子网掩码还增加了明文或MD5认证、组播更新224.0.0.9代替广播、路由标记这些功能。做实验的时候如果你用的是模拟器里的RIP默认命令version 2应该是标配。有人可能会问既然v2这么好为什么还要知道v1因为真的还有老环境在跑v1而且如果你不指定版本Cisco设备上RIP默认发出的还是v1的兼容模式抓包的时候会看到更新包用的是广播地址255.255.255.255而不是组播地址。这个细节在排错时非常有用——一抓包看到广播更新基本就能判断出接口上没有启用v2。3. 实验拓扑与配置的全过程3.1 拓扑设计思路我用的拓扑是三台路由器串成一条链两侧各接一台PC模拟一个典型的跨区域访问场景。拓扑画出来大概是这样的PC1 --- R1 --- R2 --- R3 --- PC2三台路由器之间用三个独立网段互联每台路由器各接一个用户网段。这样设计的好处是能清晰看到RIP的逐跳传递过程PC1所在网段的路由条目要先从R1发给R2再发给R3反过来也一样抓包能看到R2收到R1的更新后跳数加一再转发给R3。具体网段规划如下R1的G0/0连接PC1网段192.168.10.0/24R1与R2互联10.0.12.0/30R2与R3互联10.0.23.0/30R3的G0/0连接PC2网段192.168.20.0/24选择/30掩码是为了模拟真实环境中的点对点链路也顺便验证RIP v2对VLSM的支持能力。这个设计里没有配置环回口简化了路由表数量让实验重心放在RIP行为本身。如果你想练得更细可以在每台路由器上加一个环回口并宣告进RIP观察环回路由条目的传递。3.2 接口IP配置与基础连通性确认先把接口IP配好。以R1为例interface GigabitEthernet0/0 ip address 192.168.10.1 255.255.255.0 no shutdown interface GigabitEthernet0/1 ip address 10.0.12.1 255.255.255.252 no shutdownR2和R3类似R2的G0/0配10.0.12.2G0/1配10.0.23.1R3的G0/0配10.0.23.2G0/1配192.168.20.1。配置完成后先不要启用RIP直接ping测试直连网段的连通性。这个步骤非常重要如果路由协议没启动之前直连都不通说明物理层或IP配置有问题这时候配路由协议只会让排错更加困难。一个小技巧在思科模拟器里配置完直连后用show ip interface brief确认所有接口都是up/up状态。同时留意模拟器里的PC能不能ping通网关PC的网关一定要指到路由器接口的IP上PC1网关192.168.10.1PC2网关192.168.20.1。这一步卡住的话后面RIP就算全配对PC间通信还是闪红灯。3.3 RIP配置命令逐行解释在每台路由器上启用RIP宣告直连网段。以R1为例router rip version 2 no auto-summary network 192.168.10.0 network 10.0.12.0这里每一行都值得解释清楚。router rip进入RIP配置模式这时设备默认跑的是RIP v1的兼容版本所以紧接着version 2非常重要否则宣告的子网会被自动汇总你的VLSM网段在邻居那里会变成有类网段出现路由不匹配的问题。no auto-summary是另一个必配项。RIP v2默认开启了自动汇总配置后发出去的更新会在主类网络边界自动汇总成有类地址。比如我们的10.0.12.0/30和10.0.23.0/30都属于10.0.0.0这个主类网络如果开启自动汇总R2从R1学到的10.0.12.0/30会被汇总成10.0.0.0/8再发给R3R3拿到后根本不知道具体的/30网段是怎么分布的路由就乱了。这个坑我在很多RIP实验报告里都见过——配置里没写no auto-summary导致路由表出现神秘的10.0.0.0/8条目全网不通。network命令后面跟的是主类网络号还是具体网段取决于Cisco的实现在network里输入的是网络号设备会自动匹配该网络中的接口并在这些接口上激活RIP。这里有另一种更精确的写法是在较新的IOS版本里用network直接跟子网但为了兼容性传统写法是输入主类网络号或者子网并配合no auto-summary使用实际效果是最终发出去的更新条目会携带精确的子网掩码。我们这里两个网段分别属于不同的主类192.168.10.0和10.0.0.0所以写在两条network里。R2上宣告的网段是10.0.12.0和10.0.23.0注意它们都属于同一个主类网络写一条network 10.0.0.0就能覆盖两个接口。R3则宣告10.0.23.0和192.168.20.0。配置完等一会儿RIP更新周期默认30秒就可以在每台路由器上敲show ip route rip查看学习到的路由条目。3.4 验证命令的完整组合配置完成后我会按顺序执行一组验证命令每一步都有明确目的show ip route rip show ip protocols debug ip ripshow ip route rip直接列出RIP学到的路由注意看括号里的管理距离和度量值。Cisco RIP的管理距离是120所以如果你同时跑了OSPF管理距离110或静态路由管理距离1RIP条目会被优先选择的路由覆盖。表格里会显示类似R 10.0.23.0/30 [120/1] via 10.0.12.2这样的行R代表RIP[120/1]里120是管理距离1是跳数via后面是下一跳地址。show ip protocols能看到RIP的版本、计时器数值、宣告的网络列表、还有邻居关系。如果这里显示的版本是1说明version 2没配上或者配置文件保存有问题。另外看计时器那里RIP默认更新周期30秒、无效180秒、抑制180秒、刷新240秒如果你看到数值不是这些标准的可能是之前有人手动改过排查时会迷惑。debug ip rip是最直观的排错工具它会实时打印RIP的发送和接收更新记录。发送更新会逐条列出接口和路由条目接收更新则显示from 对端IP以及更新的路由数量。这条命令在生产环境要慎用因为RIP每30秒全网广播一次debug输出量很大但在实验环境里就是最好的学习工具你能亲眼看到R2每隔30秒向R1发送一次更新、里面带着哪些路由条目、跳数是多少对理解RIP的工作原理有极大帮助。注意debug命令结束后记得执行undebug all关闭否则模拟器会持续输出大量调试日志影响正常命令操作。4. 抓包分析亲眼看RIP怎么发更新4.1 在模拟器里配置抓包如果你是真实设备做实验把电脑网卡连到交换机镜像端口然后用Wireshark抓UDP端口520的包即可。但大多数情况下大家用的是GNS3或者EVE-NG抓包逻辑都一样在路由器互联的那条链路上启用抓包过滤udp.port 520。我用GNS3举例在拓扑编辑界面右键点击R1和R2之间的那条连线选择Start CaptureWireshark会自动弹出来并开始抓包。如果没有自动过滤直接在过滤器里输入udp.port 520就行。等RIP进入稳定状态你大概每30秒就能看到两个方向各来一个更新包。第一次抓到RIP包你可能会吓一跳RIP v2的更新包很小非常袖珍一个包里可能就带几条路由信息。RIP用UDP 520端口发送源端口和目的端口都是520目的地址是组播地址224.0.0.9。这些细节在真实抓包里都能直接看到。4.2 RIP v2报文各字段解读展开一个RIP v2更新包看各个字段这是理解协议的最好方式。数据包里最关键的部分在RIPv2的条目Route Entry里Address Family Identifier: v2下是2表示IP协议Route Tag: 通常为0用于路由标记和策略控制IP Address: 目标网段的网络地址Subnet Mask: 子网掩码——这就是v2比v1拿得出手的核心点Next Hop: 通常为0.0.0.0表示下一跳就是发送这个更新的路由器Metric: 跳数范围1-15实际操作建议是抓到包后点开一条Route Entry截图保存下来和课本上的报文格式比对。你真的能直观感受到RIP v2是携带掩码的这件事——报文里那个Subnet Mask字段就是明晃晃的证据。这也是为什么v2能支持VLSMv1报文里没有这个字段收到更新的路由器只能靠主类网络猜测掩码。4.3 更新周期和触发更新抓包的过程中你可以在Wireshark的Time列看到更新的间隔正常稳定状态下每台路由器都会每30秒发一次周期更新。如果配置了version 2目标地址是224.0.0.9如果设备还在跑v1兼容模式目标地址是255.255.255.255这是快速判断版本的一个技巧。更有意思的是触发更新。你在R1上新增一条直连路由并宣告进RIP正常情况下不等到30秒周期R1会立刻发送触发更新。抓包能看到更新包里几乎没有任何延迟就携带了新增的路由条目这就是触发更新机制——路由发生变化时路由器打破30秒周期立即告知邻居。这个行为对收敛速度至关重要值得用实验亲自验证一遍。5. 踩坑实录RIP实验最容易翻车的几个环节5.1 版本不匹配导致的静默故障最经典的坑就是R1上配了version 2R2上忘记配RIP接口上默认跑v1兼容模式。表面上看两台设备都启用了RIP但就是学不到路由。原因在于RIP v1使用广播255.255.255.255发送更新v2使用组播224.0.0.9两者根本不搭边互相收不到对方的更新报文。排查手段很简单在接收端执行show ip rip database看有没有邻居条目再debug ip rip看有没有收到来自对端的更新记录。如果debug显示一直在发送更新但从未显示接收更新那多半就是版本或地址族类不匹配的问题。解决办法是统一版本建议全部配置为v2没有特殊理由不要混合使用。5.2 不连续子网和不配no auto-summaryCisco路由器上的RIP v2默认开启自动汇总必须在RIP配置模式下执行no auto-summary。我在实验里专门试过不带这条命令的效果在R1和R3上各宣告一个10.x.x.x网段中间夹着192.168.x.x网段形成典型的不连续子网拓扑。RIP自动汇总会把所有10.0.0.0网段汇总成10.0.0.0/8广播出去R1学不到R3上那个10网段的精确子网信息R2也不知道该把流量往哪个方向送整个网络就断了。做实验前最好先检查一遍配置里有没有no auto-summary。另外提醒一下no auto-summary要在router rip配置模式下打不是接口模式下位置打错也一样不生效。5.3 被动接口和静默接口的语义RIP更新是广播v1或组播v2发送的如果某个接口连的是PC或者终端设备理论上不需要发送RIP更新而且发送了主机也不处理还可能造成不必要的网络流量。这时在接口下执行passive-interface就能让RIP在接口上不再发送更新但依然可以接收更新。这里有个容易搞混的点在RIP里被动接口不能放在所有接口上至少有一个接口要保持活跃否则这台路由器就不会再向任何邻居发送更新形成孤岛。但有一个场景例外如果你希望某台路由器学习路由但完全不向外传递更新可以在它的所有接口上配置被动接口——这其实就是RIP的静默部署模式。这两种需求的区别要在实验里实际对比一下才会印象深刻。5.4 跳数16的问题距离矢量协议的15跳限制在实验里可以主动复现一次把三台路由器延长到六台每台之间点对点链路在最远端的路由器宣告一个网段倒数第二台学到的跳数已经很大再传递一次就可能达到16变成不可达路由条目直接消失。5.5 抑制计时器和路由振荡RIP的抑制计时器是你看到路由条目卡在possibly down状态不消失时真正发挥作用的地方。当一条路由更新超时180秒后路由器进入抑制状态在这段时间内即使收到更优的路径信息也不会立刻切换必须等抑制期结束后再做决定——这是为了避免路由抖动导致的不稳定。这个优点在实验里看起来就像bug你明明把对端路由器配错了导致路由消失但RIP就是不立即删除得等好一会儿才反应。我遇到过一次设备接连重启全网路由一直在振荡RIP的抑制机制反而让情况变得更难排查因为现象比实际故障滞后。如果你在做实验时改了配置但路由表迟迟不变先看一眼时间是不是在抑制窗口里很多时候不是命令敲错了是计时器在起作用。6. 用模拟器做RIP实验的最佳配置和进阶观察6.1 一台电脑同时跑多台路由器的性能调优如果是在GNS3里做实验首先确保每台路由器的IOS版本是统一的避免不同版本默认参数差异带来的干扰。我自己常用思科IOS 15.x镜像配置里建议关掉不必要的路由协议进程和接口杂项减少噪声。把设备的控制台日志级别调低logging console critical不然debug信息会被控制台消息刷屏。如果你用EVE-NG做实验拓扑规模可以更大方便跑跳数边界测试。建议给每台设备做一个带标注的拓扑图截图后面写实验报告时着实省力。6.2 扩展实验加入认证验证v2的安全能力RIP v2的认证功能平时很少被真正跑一遍。在接口下配置interface GigabitEthernet0/1 ip rip authentication key-chain RIPKEY ip rip authentication mode md5然后在全局配置key-chain设置密钥和密钥ID。配置完成后抓包能看到RIP更新包头部多了Authentication字段明文或MD5的传输内容都变了。这个功能在实际中主要是防止非法路由器接入网络伪造路由更新。做实验时可以专门配一台恶意路由器尝试参与路由交换观察MD5认证如何拒绝它。这个操作值得做一次因为很多人学了RIP v2的认证概念但没在设备上实操过遇到要配认证的环境时连key-chain的配置语法都要现查。6.3 路由度量值修改用offset-list做策略RIP不支持OSPF那样的cost手动指定但可以用offset-list改变特定路由的跳数。比如想让R2选路时倾向于走R3而不是R1可以在接口上给特定前缀的跳数加一个偏移量从而影响路由决策。这个功能在做路径控制实验时非常实用也是面试里常见的知识盲区。6.4 观察RIP收敛过程的时间线收敛时间由四个计时器决定更新计时器Update30秒周期发送路由更新无效计时器Invalid180秒没有任何更新则把路由标记为不可用抑制计时器Holddown180秒路由进入抑制状态不轻易切换路径刷新计时器Flush240秒删除路由条目在实验中可以这样验证在R1上shutdown一个接口然后在R2上轮流用show ip route观察对应路由的状态变化记录什么时间点条目变成possibly down什么时间点彻底消失。整个过程计时器配合起来最坏的情况下RIP可能需要两分钟以上才能完成一条失效路由的收敛。理解了这条时间线你就能明白为什么RIP只适合小型网络——它天生不是为了快速收敛设计的。7. 实验完成后的关键认知和几个实用优化7.1 RIP实验带给你真正的能力升级把RIP完整做一遍之后你会获得一个基础但完整的排错框架看到一个路由条目进了路由表你要能判断是直连C、静态S)还是RIPR管理距离是多少AD值优先级怎么比较度量值怎么算。这套框架后面迁移到OSPF、BGP原理虽然完全不同但排查思路是一致的——拿到路由表先看来源再看下一跳最后验证数据面通不通。更重要的是你亲手验证了一件事路由协议解决的本质问题是我如何向邻居描述我所知道的世界而RIP选择了最笨但最直观的一种方式。理解了这个笨你会对后来出现的OSPF的链路状态数据库、BGP的路径属性有完全不同的感知——它们都在解决RIP遇到的那些问题环路、收敛慢、度量单一只是用了更精妙的机制。7.2 实际生产环境中的RIP使用建议如果有人因为这篇文章想在真机环境部署RIP我的建议是先确认网络规模不超过15跳然后统一使用v2并关闭自动汇总所有终端侧接口配置passive-interface。对于支持RIP的厂商实现华为设备上RIP的配置逻辑和Cisco略有差异rip version 2和network指令作用域不同操作前先熟悉对应文档比盲试命令更高效。另外一台路由器上可以同时运行RIP和OSPFRIP的重分发redistribute机制也可以做实验观察——在OSPF域和RIP域之间重分发路由通过设置不同的度量值来控制选路。这是RIP在现代网络中少有但真实的用武之地作为小规模接入网络的IGP或者作为与老设备互通时的翻译官。但这个实验涉及的双向重分发路由回馈问题极其容易踩坑建议在模拟器里先把环路路由的防环策略想清楚再动手。7.3 最后分享一个排查小技巧show ip route rip配和debug ip rip是理解RIP的最佳组合但如果环境里有很多路由器调试输出会非常吵。一个折中方案是只对特定邻居做debug在R2上执行debug ip rip 10.0.12.1就会只显示与R1交换的RIP更新输出量大幅下降排查效率明显提升。这是Cisco设备上一个偏冷门但好用的参数很多老工程师都不一定知道。提示执行完debug之后记得用undebug all结束调试再检查一下show proc cpu确认CPU没有被debug进程拖累。在模拟器里这不会造成严重后果真机上长时间开debug极有可能导致设备负载过高。RIP实验做到这个程度剩下的是你自己的问题尝试修改更新计时器观察收敛变化尝试配两台路由器中间串一台只透传不跑RIP的设备观察跳数如何累加尝试设计一个需要水平分割才能解决的场景。每一次尝试都会让你对这个老协议的理解多一分——而这份理解比单纯记几行配置命令要值钱得多。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询