RIP路由协议实验全攻略:从原理到配置排错一次讲透

发布时间:2026/10/2 8:42:24
RIP路由协议实验全攻略:从原理到配置排错一次讲透 第一次听到“RIP 第一次作业”这个题目我就想起自己当年在实验室里对着路由表发呆到半夜的场景。如果你也是网络工程、计算机网络这门课的学生那你大概率已经知道RIP就是路由信息协议Routing Information Protocol是动态路由协议里最老牌、也最容易入门的那一个。它要解决的核心问题很简单在一个由多台路由器组成的网络里每台路由器怎么自动知道去某个网段该往哪个方向走而不需要网管手动去敲一堆静态路由。第一次作业通常就是让你配置一个包含几台路由器的实验网络跑通RIP协议让全网路由自动互通然后截一堆验证图交上去。这篇文章我会从一个踩过无数坑的过来人视角把RIP作业从原理、配置、验证到排错整个链路讲透。无论你用的是Cisco Packet Tracer、GNS3、华为eNSP还是在Linux上用FRR做实验里面涉及的思路基本都是通用的。文章会覆盖你作业里所有可能被老师提问的知识点也会把我自己当年跪过的坑提前给你标出来。1. 先弄懂RIP到底是个啥作业才不会白做很多同学做RIP作业的通病是打开Packet Tracer把命令一顿敲通了就开心交作业不通就问室友。但以我后来做面试官和带新人的经验看这种“会敲但不懂”的状态在答辩或者考试面前特别容易露馅。RIP的原理其实非常朴素花二十分钟把它过一遍后面所有操作就都是有意识的而不是碰运气。1.1 跳数、15跳上限与Bellman-Ford三个绕不开的概念RIP是一种典型的距离矢量路由协议Distance Vector它衡量路径好坏的标准只有一个跳数hop count。一台路由器把一个数据包转发给下一台路由器就算一跳。RIP规定一条路由最多只能有15跳跳数达到16就表示这个网络不可达。为什么是15因为RIP诞生于上世纪八十年代那时候的局域网规模都不大网络直径很小15跳足够覆盖绝大多数场景。但这也决定了RIP不适合大型网络大网络里路由动辄几十跳RIP直接歇菜。RIP背后的算法叫Bellman-Ford算法它的核心思想用一句话概括是每台路由器只和直接相连的邻居交换“我到哪些网络的距离”然后把自己没有的路由在邻居的跳数基础上加1存进自己的路由表。这个过程定期执行最终全网所有路由器都能算出到所有网段的最短路径。我习惯用一个生活化的类比想象你在一个小区里问路你不知道哪栋楼在哪但你问楼下的保安保安告诉你“往前走两栋楼左转就到了”。保安给出的信息也可能是别人告诉他的但他只关心“到目标还有多远”不需要掌握整个小区的地图。这就是距离矢量协议的本质——我只知道邻居告诉我“多远”但我并不真正了解整条路长什么样。在作业里你会发现RIP路由表里每个目标网段后面的方括号里有两个数字比如[120/1]。[120]是管理距离表示RIP协议的优先级数值越小越可信[1]就是跳数表示到达目标网段需要的跳数。老师如果让你解释路由表这两个数字就是标准答题点。1.2 记清楚RIP全家桶时间参数选择题全靠它们RIP的作业里老师特别喜欢在理论部分考几组时间参数因为它们非常具体、可以死记硬背而且很容易拿来出选择题。我把这些参数整理成一张速查表建议你直接截图保存参数默认值作用路由更新周期30秒路由器每隔30秒向邻居发送一次完整路由表路由老化时间180秒如果180秒没收到某条路由的更新这条路由标记为“可能失效”路由抑制时间180秒从标记失效开始期间收到关于该路由的更新也暂时不采纳防止路由振荡路由清除时间240秒老化抑制加起来到时若还没恢复这条路由从表中彻底删除很多人记不住这四个时间的差异我提供一个记忆角度更新周期30秒是“心跳”表示正常同步180秒是“怀疑期”超过这个时间没消息就认为邻居可能挂了240秒是“判决期”到点直接删路由。作业里如果让你设计实验验证这些时间参数你可以在两台路由器之间拔掉一条链路观察路由表什么时候开始发生变化这个实验做出来非常有说服力。另外还有一个重要机制叫水平分割。简单说就是从哪个口学到的路由绝不再从这个口通告回去。这样能防止两个邻居之间形成路由环路。比如R1从R2学到去往网段A走R2那么R1向R2通告路由表时会省略掉这条路由。作业里如果在Packet Tracer中打开路由协议的调试信息你能看到通告的路由表里确实少了一些条目这就是水平分割在起作用。1.3 RIP v1与v2的差异版本不匹配会直接翻车RIP有两个版本这是作业里最容易出问题的地方。RIPv1诞生较早它有两个明显的设计缺陷第一它是一种有类路由协议通告路由时不携带子网掩码所以不支持变长子网掩码VLSM和无类域间路由CIDR第二它只能以广播方式发送路由更新。如果你的实验网络里用了不连续的网段或者VLSM划分RIPv1就会闹脾气路由表里可能出现奇怪的汇总条目。RIPv2则修正了这些问题它支持在通告中携带子网掩码支持VLSM和CIDR更新报文改为组播发送组播地址是224.0.0.9还增加了明文和MD5认证的选项可以防止有人恶意注入路由。在配置时你默认使用的往往是RIPv2但Packet Tracer中老设备比如某些2600系列早期IOS默认开的可能是RIPv1。如果两台路由器一个跑v1一个跑v2它们之间是不会交换路由信息的这就是典型的“配置都对但路由学不到”的翻车现场。排查方法很简单在一台路由器上敲show ip rip database或者show ip protocols看版本号有没有对上。2. 手把手配置RIP三步走与核心命令拆解原理部分讲完接下来是作业的重头戏——实际配置。很多教程会直接丢给你一份配置清单让你照着抄。但既然是第一次做作业我更希望你明白每一条命令到底在干什么。2.1 最小实验拓扑三台路由器、三条网段就够第一次做RIP作业不需要搞复杂拓扑三台路由器串成一串就足够覆盖所有考察点。我建议你用下面的拓扑R1的G0/0口接PC1所在的网段192.168.1.0/24R1的G0/1口接R2的G0/1口互联网段192.168.12.0/24R2的G0/0口接R3的G0/0口互联网段192.168.23.0/24R3的G0/1口接PC2所在的网段192.168.3.0/24为什么推荐这个拓扑因为它只有一条主路径没有环路风险跑RIP基本属于“必通”的配置方便你专心理解命令而不被排错干扰。如果你有余力可以在R1和R3之间再加一条双绞线互联组成三角形拓扑观察RIP是怎么产生等价负载均衡路由的这个属于加分项。PC的IP配置我建议这样写PC1的IP是192.168.1.10/24网关192.168.1.1PC2的IP是192.168.3.10/24网关192.168.3.1。注意PC的网关必须填路由器接口的IP地址很多第一次做实验的同学忽略了这一点导致后面对PC ping路由器通但对端PC怎么都ping不通。2.2 配置命令的每一步都在干什么router rip 和 network在Cisco设备上Packet Tracer、GNS3里的IOSRIP配置核心命令非常少一共三步enable configure terminal router rip version 2 network 192.168.1.0 network 192.168.12.0 network 192.168.23.0等一下这里有个很多同学初次都会问的疑问为什么要宣告192.168.12.0这个互联网段互联网段上又没有用户电脑宣告它干嘛这是因为RIP的network命令不是用来“宣告某个业务网段”的它的作用是把路由器上属于该网段的所有接口都激活成RIP的参与接口。只有激活了的接口才会有两个效果一是从这个接口向外发送路由更新二是从这个接口收到的路由更新才会被接收处理。所以互联接口必须宣告否则RIP数据包根本不会从这个口发出去。还有第二个高频疑问为什么network命令后面不写掩码即使已经version 2。这是RIP命令设计上的一个历史遗留习惯。RIPv2配置的时候network语句后面仍然只需要写主网络号classful network路由器会自己根据接口配置去推断掩码并进行通告。注意如果你用了子网划分Cisco设备要求你宣告的是主网络号比如192.168.0.0而不是你具体划分出的某个子网。很多教程在新版本命令下也接受带子网号的写法但保险起见我建议你一律宣告主类网络号这一点在考试和老版本设备上尤其重要。在华为设备eNSP上命令语言不同但逻辑一致华为的命令长这样system-view rip 1 version 2 network 192.168.0.0 network 12.0.0.0 network 23.0.0.0华为的network也是宣告主网络号路由器会自动匹配属于这个主网段的接口。看到没核心逻辑和Cisco是一样的区别只是先创建rip进程再进入进程视图宣告网络。2.3 验证命令别只敲show ip route这些才是重点配置完成后老师让你“验证”。最无聊但最常见的验证是show ip route能看到RIP条目出现比如R 192.168.3.0/24 [120/1] via 192.168.23.2, 00:00:12, GigabitEthernet0/0这一行里信息量很大R代表路由来源是RIP[120/1]里120是管理距离1是跳数via后面是下一跳地址00:00:12是这条路由距离上次更新过去了12秒。RIP更新周期是30秒所以这个时间是0到30之间的数字如果超过30秒还是几十分钟没变说明路由可能已经老化了。但我觉得第一次做作业除了show ip route你还应该学会另外三个命令第一个是show ip protocols。它显示RIP协议本身的状态包括版本号、宣告了哪些网络、路由计时器参数、邻居是哪些设备。如果版本不对这里一眼就能看出来。第二个是debug ip rip。这条命令在实验环境里特别好用它能实时打印RIP更新报文的发送与接收情况。我能看到R2每30秒向组播地址224.0.0.9发送一次更新也能看到从邻居学到的新路由。用完记得加undebug all关掉否则实验做完后设备一直卡在调试模式刷屏。第三个是show ip rip database。它会列出路由器通过RIP学到的全部路由记录包括每条路由的下一跳和度量值。这个命令在排错时比show ip route更细致能看到RIP内部的数据库视图。有的作业老师还要求抓包分析。如果你在GNS3里用Wireshark同时抓两个互联接口的报文你可以看到RIP协议打的是UDP端口520且RIPv1的源/目的地址都是广播地址255.255.255.255RIPv2的目的地址则是224.0.0.9。能在Wireshark里展示出这两行作业的档次会明显不一样。3. 换个环境接着配PT、eNSP与Linux FRR的对比我遇到过不少同学实验课用Packet Tracer家里电脑装了eNSP做作业的时候发现命令对不上于是怀疑自己学了个假RIP。其实RIP的核心逻辑在哪个平台上都一致差的无非是命令措辞和配置层级。下面把主流环境都过一遍你以后不管换什么模拟器都不会慌。3.1 Cisco Packet Tracer学生党最容易上手但最“迷惑”Packet Tracer的地位不需要多说它是思科官方出的教学模拟器优点是完全免费、开箱即用、设备拖出来就能配置对第一次接触RIP的同学足够友好。它的“迷惑”之处在于有些命令的提示补全做得不够严格还有个别老版本对RIPv2的默认开启状态设置得比较奇怪。我在PT里做RIP实验的完整流程一般是Routerenable Router#configure terminal Router(config)#router rip Router(config-router)#version 2 Router(config-router)#network 192.168.1.0 Router(config-router)#network 192.168.12.0 Router(config-router)#network 192.168.23.0 Router(config-router)#end Router#write注意最后一个write命令它等价于copy running-config startup-config执行后配置才会保存到设备的启动配置里。如果你下次打开PT发现之前的配置全没了多半就是没保存。PT里的一个常见怪现象是两台路由器之间如果只用自动选线连接而没选择正确的线缆类型你可能会看到端口一直是down的。RIP配得再对也没用因为物理链路根本不通。建议手动选择串口线Serial DCE/DTE或交叉网线并确保接口up/up状态。还有一个PT特有的坑是模拟模式下抓包。如果你想在PT的模拟模式里看RIP报文要确保事件列表过滤器里勾选了RIP协议否则画面里只会看到ICMP包在跳来跳去RIP更新报文被隐藏了你会误以为RIP没在转发。3.2 华为 eNSP命令差异不大别自己吓自己华为的设备在国内高校实验课上出现频率很高朋友之间流传的一句话是“会配思科就会配华为”这句话在RIP上基本成立。华为的命令风格是分进程视图化Huaweisystem-view [Huawei]rip 1 [Huawei-rip-1]version 2 [Huawei-rip-1]network 192.168.0.0 [Huawei-rip-1]network 192.168.12.0 [Huawei-rip-1]network 192.168.23.0 [Huawei-rip-1]quit [Huawei]display rip 1 route华为的network命令同样只认主类网络号比如192.168.12.0会写成192.168.0.0。如果写成子网号部分版本会报错或静默不生效这一点和思科一样属于RIP协议设计本身的限制。华为的验证命令是display而不是show想看路由表敲display ip routing-table想看协议状态敲display rip 1。如果你在eNSP里配完发现邻居学不到路由记得先看接口状态再确认两台路由器的RIP版本一致。eNSP里的路由器默认也可能不启用RIPv2手动敲version 2这事千万别省。eNSP里的RIP进程号只在本设备内有意义两台路由器可以一个用rip 1一个用rip 2它们照样能建立邻居关系。很多同学以为是进程号不一致导致学不到路由其实那是误解进程号属于本地标识不影响协议报文交互。3.3 Linux下的FRR/Quagga把路由器装进服务器如果你的作业不是用模拟器而是要求在Linux环境里跑那大概率会用FRRFree Range Routing或者它的前身Quagga。FRR是一个开源路由软件套件可以让你把一台普通Linux服务器变成一台支持RIP、OSPF、BGP的路由器。FRR启动后通过vtysh进入命令行命令风格几乎是照着Cisco IOS抄的所以如果你会思科命令这里会非常亲切sudo systemctl start frr sudo vtysh进入vtysh后configure terminal router rip version 2 network 192.168.1.0/24 network 192.168.12.0/24 network 192.168.23.0/24 end write注意FRR里的network后面要带掩码长度因为它支持无类宣告。这是因为FRR的ripd实现里network命令可以精确匹配接口地址所以直接写具体子网也没问题。这也是和传统IOS的一个细节差异。配置完还可以直接在vtysh里看路由表show ip route显示的格式和思科极其相似。如果没看到RIP路由先检查Linux服务器上的网卡IP配置、保证接口up、确保frr服务已启动并加载了ripd模块。FRR的集成度比模拟器高但调试起来也复杂一些建议配合tcpdump抓UDP 520端口报文来分析。理论上多熟悉一个平台并不会增加作业难度反而会在答辩时给老师留下“这学生掌握得比较宽”的印象。关键是抓住RIP配置中永恒的两步开启RIP进程、宣告网络号。平台只是命令外壳协议本质没变过。4. 第一次作业最常见的翻车点与排查实录写到这里你已经知道了RIP的原理和配置步骤。但实话实说第一次做作业时每个人都要排错我还没见过一次就全通的学生。所以这一节我把自己和身边人踩过的坑集中整理一下按出现问题的地方分类方便你对照排查。4.1 路由表一片空白先查这个最容易忽略的项现象三台路由器都配了RIPnetwork也宣告了但某台路由器上show ip route就是没有RIP条目一个R都没有。优先排查项按顺序来物理接口是否up/up。很多人忘了给接口配IP或者忘了no shutdown端口down着RIP包根本发不出去。用show ip interface brief看一眼只要状态是down后面全白搭。network宣告是否覆盖了所有互联接口。R1只宣告了192.168.1.0和192.168.12.0漏了192.168.23.0那么R1就无法从互联112网段学到R3那边的路由因为R1没有在互联的接口上使能RIP。检查方法是show ip protocols看Networks列表里有没有所有该参与的网段。两边版本是否一致。R1配的version 2R2没配version默认跑v1两边直接“失联”。在show ip protocols里看Routing Protocol Version是否都是2。路由是否被水平分割抑制。这个属于进阶问题如果你的RIP配置是从一个接口学到的路由又通告回同一个接口水平分割会拦住更新。正常实验拓扑一般不会触发但如果你做了环状拓扑就容易遇到。4.2 版本不匹配与更新报文看不到抓包思路另一种常见场景是路由表里有些路由学得到有些学不到更新报文看起来也没问题。这个时候不要猜直接抓包看。在GNS3里可以给接口开Wireshark抓包在eNSP里可以用报文抓包功能在Packet Tracer里可以用模拟模式。抓包后你要找两个关键信息更新报文的源和目的地址。RIPv2的组播地址是224.0.0.9如果看到广播255.255.255.255说明对端在用RIPv1。报文里携带的路由条目。展开RIP报文每条路由条目你能看到IPv4地址和Metric字段。如果对端发来的路由条目掩码是0.0.0.0说明它在用RIPv1以有类方式通告。如果确认了是版本问题最简单的解决办法是全局统一version 2。如果两边都是思科设备也可以在接口下比较麻烦地逐个开ip rip send version 2和ip rip receive version 2但第一次作业没必要这么折腾统一即可。4.3 等价负载均衡与环路RIP的自我保护机制当你把拓扑做成三角形以后一个新现象会冒出来去同一个网段会出现两条等价路由比如R1去192.168.3.0/24既可以走R2也可以走R3跳数都是2。在路由表里你会看到两条以R开头、下一跳不同的条目这就是RIP默认支持的等价负载均衡。在作业报告里这是一个非常好的观察点你可以重点描述RIP是如何形成两条等价值路由的。但三角形拓扑也带来一个隐患路由环路风险。RIP对抗环路有三件套最大跳数限制16跳不可达、水平分割、抑制定时器。如果你在三角形链路中人为断掉一条链路并立刻观察路由表变化你会发现失效路由不是瞬间消失而是要等180秒老化这就是触发更新的意义。我在实验里曾经故意拔掉一条链路然后在中间路由器上开debug ip rip看到它向邻居发送了一条metric为16的路由这就是传说中的毒化路由——告诉邻居“这条路由已经不可达了”。这个实验非常适合写进作业的“扩展思考”部分老师看了会觉得你是真做完实验并且理解了协议而不是只抄配置。下面汇总一份第一次做RIP作业的常见问题速查表建议收藏问题现象可能原因排查命令路由表空白接口down、network漏宣告、版本不匹配show ip interface brief, show ip protocols部分路由学不到某个互联网段未宣告、网络号写错show ip rip database对端邻接不上RIPv1/v2不一致debug ip rip路由一直处于老化中链路反复抖动、抑制计时器生效show ip route 观察计时器rip进程不发送更新物理链路中断、接口或进程未开启debug ip rip, show ip sockets抓不到RIP报文抓包过滤器不对、版本用的组播地址设置过滤器udp port 520最后再分享一个我个人的实操习惯每次做完RIP作业我都会在三台路由器上分别执行show ip route然后截图并对每条RIP条目的[120/1]或[120/2]做一个手写注释。这个习惯最初是为了应付老师抽查但后来我发现当你真的能把每条路由的下一跳和跳数都讲明白时你对RIP的理解就已经超过大多数只背命令的同学了。第一次作业的意义不在于把配置敲通而在于你亲眼看着一台“笨”路由器通过一条条UDP报文慢慢学会了整个网络的拓扑。这个从无到有的过程才是网络协议最迷人的地方。