☰
RIP路由协议详解与实验配置指南:从距离向量算法到思科华为模拟器实操
2026/10/4 2:32:55 网站建设 项目流程

有人看到“RIP作业”这几个字,第一反应多半是“作业没了”——毕竟RIP在网络文化里经常是Rest In Peace的意思,表示某样东西已经凉透了。但如果你是在计算机网络课的作业列表里看到它,那这里说的RIP是另一个东西:路由信息协议(Routing Information Protocol),一个在网络技术史上留下过浓墨重彩、至今仍是教学必修内容的老牌路由协议。

这篇博文要解决的,就是“RIP作业到底怎么做”这件事。我会从协议的核心原理讲起,把距离向量算法、跳数限制、环路问题这些躲不开的知识点用大白话掰开揉碎,然后给出一套可以直接照抄的实验配置方案,覆盖思科和华为两种主流模拟器环境,最后把我这些年做实验、带学生、排故障时踩过的坑和总结的技巧一并整理出来。无论你是刚上完网络课、面对作业无从下手的学生,还是想快速把RIP实验复现一遍的入门工程师,这篇内容都能让你少走很多弯路。

1. RIP到底是什么:一个“跳数”说了算的协议

1.1 距离向量算法:靠邻居的口口相传认识全网

RIP是一个典型的距离向量(Distance Vector)路由协议。要说清楚它,得先聊聊它背后的贝尔曼-福特算法,以及这套算法究竟是怎么让每台路由器“知道”整个网络长什么样的。

我习惯用一个生活里的例子来解释距离向量协议:想象你在一座陌生城市里,想知道去火车站的路线。你不会一下子就知道全程怎么走,而是会去问身边的人。如果路边小店老板告诉你,往前走两个路口就是地铁站,从地铁站可以直达火车站,那你就知道了:去火车站,先走两个路口到地铁站,然后转地铁。这里的“两个路口”是到地铁站的距离,“转地铁”是地铁站到火车站的距离,你把它们加起来,就得到了自己到火车站的完整路径信息。

RIP的工作方式几乎一模一样。每台路由器只信任自己的直连接口,然后通过周期性的路由更新,把“我已知的路由信息”告诉邻居。当路由器A从邻居B那里收到一条“到某个网络需要3跳”的路由时,A会在这条路由上加上自己的1跳,变成4跳,然后放进自己的路由表。这个过程不断迭代,最终每台路由器都能知道去往全网所有网络的路由。

这就是“距离向量”这个名字的由来:距离(跳数)+ 方向(下一跳地址),合在一起就是一条路由信息的全部要素。RIP本身不维护整个网络的拓扑图,它只知道“我这个包出去,下一跳给谁,大概要走多少跳”,至于中间经过了哪些路由器、链路长什么样,它一概不关心。这种“只问邻居、不上帝视角”的设计,决定了它简单,也决定了它后续的一系列问题。

1.2 四个必须背下来的数字:30、180、240、15

如果让你只记一组关于RIP的数字,那一定是这四个:30秒更新周期、180秒路由失效时间、240秒路由刷新时间,以及15跳最大跳数限制。

RIP默认每30秒向邻居发送一次完整的路由表更新。这听起来很勤快,但问题在于:30秒太长了。想象一下,如果网络中某条链路突然断掉,最坏情况下,需要等30秒甚至更久,邻居才会通过下一次更新得知这个变化。如果这期间又有其他路由器发出了旧路由信息,网络就可能出现临时环路。网络上经常用“收敛时间”这个词来评价一个路由协议的快慢,RIP的收敛时间动辄几十秒甚至几分钟,在今天看来确实是“龟速”。

更关键的是15跳限制。RIP把路由的度量值定义为跳数,跳数越大表示路径越长。任何路由的跳数一旦达到16,就表示这个网络不可达。换句话说,RIP设计的网络规模最大也就是15台路由器串成一串,再长就彻底玩不转了。这个限制在今天看来非常原始,但在RIP诞生的上世纪80年代,小型企业内部网络基本也就这个规模,所以它一度是局域网路由的事实标准。

剩下的180秒和240秒是配合使用的。当路由器连续180秒没有收到某条路由的更新,就会把这条路由标记为不可达(跳数设为16);再等240秒后,彻底删除这条路由记录。这两个计时器保证了RIP即使收不到更新,也不会永远保留一条已经失效的路由。作业里如果要求你解释“为什么RIP收敛慢”,这四个数字就是你回答的核心论据。

1.3 RIPv1和RIPv2:别看名字像,能力差不少

RIP有两个主流版本,作业和考试里特别喜欢对比它们。

RIPv1是有类路由协议,它发送的路由更新报文里不携带子网掩码信息。路由器只能根据IP地址的类别,默认推断出相应的掩码。这样一来,如果网络里使用了可变长子网掩码(VLSM),比如一个网段被拆成了多个不同掩码的子网,RIPv1就完全无法正确传递这些信息,会出现路由汇总错误甚至路由丢失。

RIPv2则是无类路由协议,它在更新报文里明确携带子网掩码,支持CIDR和VLSM,同时每隔30秒通过组播地址224.0.0.9发送更新,而不是像v1那样用广播。RIPv2还支持简单的明文认证和MD5认证,能防止一些恶意的路由欺骗。这在作业里可能只是加分项,但在实际网络环境里,认证是很重要的安全防线。

做作业的时候,我建议你直接用RIPv2,除非题目明确要求“使用RIPv1实现有类路由”。理由很简单:现代网络几乎都用了VLSM,RIPv1的局限性会在实验里制造出一堆你根本不想排查的问题。

2. 作业场景拆解:先看懂拓扑再动手

2.1 典型RIP实验拓扑与需求分析

绝大多数RIP作业都不会用太复杂的拓扑,我见过最多的是“三台路由器连成一串,或者连成一个三角形,下面挂几台PC或几个模拟局域网网段”。原因也很现实:三台路由器刚好能体现RIP的路径选择、跳数累加、邻居关系建立,而且排查起来难度适中。

拿一个最经典的拓扑来举例:R1的G0/0口连接192.168.10.0/24网段,G0/1口连接10.0.12.0/30网段,对端是R2的G0/0口;R2的G0/1口连接10.0.23.0/30网段,对端是R3的G0/0口;R3的G0/1口连接192.168.30.0/24网段。三台路由器再各配一个环回口,模拟额外的局域网。作业需求通常是:在三台路由器上都启用RIP,保证192.168.10.0、192.168.30.0以及所有环回口网段都能互相通信。

做这种作业,第一步不是敲命令,而是先把拓扑和地址规划图画出来。我见过太多人上来就配配置,配到一半发现地址冲突、网段重叠,最后全部推翻重来。地址规划的要点很简单:互联链路用30位掩码,一条链路一个子网,避免浪费;末端网络用24位掩码,方便识别;环回口用32位掩码或24位掩码都可以,但要清楚它在RIP里会怎么被通告。

2.2 为什么作业老爱用RIP,而不是OSPF

很多人会有疑问:现在实际网络里几乎没人用RIP了,为什么作业还是它?

答案是教学价值。RIP是所有动态路由协议里最简单、最直观的一个,它能把“路由协议到底是干什么的”“路由表是怎么构建出来的”“路由环路是什么”这些核心概念用最少的配置量展现出来。学生在还没理解链路状态、最短路径树这些进阶概念之前,需要先有一个简单的模型来建立直觉。RIP就是那个垫脚石。

所以做RIP作业,不要只是为了交差,你要在每一步操作里主动问自己几个问题:我敲的这条network命令到底在宣告哪个网段?路由表里为什么会出现这条路由?如果我把某条链路shutdown,路由表多久能反应过来?这些问题想明白了,后面学OSPF、BGP会轻松非常多。

2.3 RIP作业里的隐藏考点:路由环路与水平分割

RIP作业还有一个很容易被忽略的知识点:路由环路。距离向量协议的天然缺陷就是可能产生环路,因为所有路由器都只依赖邻居传来的二手信息,一旦网络出现故障,旧的路由信息可能在新信息到达前被继续传播,形成“你告诉我走你,我告诉你走我”的死循环。

RIP应对环路有几招:水平分割、毒性逆转、触发更新、抑制计时器。水平分割的规则很好记:从一个接口学到的路由,不能再从这个接口发回去。毒性逆转则是把要发回去的坏路由直接标成16跳(不可达),让对方赶紧放弃。触发更新就是一旦路由发生变化,不等30秒周期,立刻通告邻居。抑制计时器则是在路由变得不可达后,在180秒内忽略来自其他路由器关于这条路由的更新,给网络留出稳定收敛的时间。

作业里如果要你“设计一个方案避免环路”或者“解释为什么需要水平分割”,你要能把这几招完整说出来,并且知道它们对应了RFC里的哪些机制。

3. 实操:从零配通一份RIP作业

3.1 在思科模拟器里配RIP,五步走完

思科的Packet Tracer或者GNS3里的IOS镜像,是我做RIP作业最常用的环境。配置过程本身非常简单,一共就五步:进入全局配置模式、创建RIP进程、指定版本、宣告直连网段、关闭自动汇总。

下面是一台路由器的完整配置示例,我加了一些注释,方便你对照理解:

Router>enable Router#configure terminal Router(config)#router rip Router(config-router)#version 2 Router(config-router)#network 192.168.10.0 Router(config-router)#network 10.0.0.0 Router(config-router)#no auto-summary Router(config-router)#end Router#write

这里最值得注意的就是network命令。RIP的network命令后面跟的是直连接口所在的网段,而且必须是你希望被这个RIP进程收编的接口。它有两个隐藏含义:第一,这个网段会被通告给邻居;第二,这个网段所在的接口上会开始发送和接收RIP更新报文。如果你忘了宣告某个接口所在的网段,那这个接口连接的网段就不会出现在路由表里,邻居自然也学不到。

RIPv2下,network后面可以写精确的子网号,但很多教材和老的配置习惯还是写主类网络号,比如10.0.0.0而不是10.0.12.0。原因是RIP早期的版本只认识主类网络,写子网号它不认。RIPv2已经支持无类通告,配合no auto-summary,你写精确网段也不会出问题。但为了兼容性和考试习惯,我建议按主类网络号宣告,再用no auto-summary关闭自动汇总。

3.2 华为eNSP/VRP里怎么配:命令风格对比

国内很多学校的实验课用的是华为的eNSP模拟器,命令风格和在思科里有差异,但逻辑是一样的。华为VRP上启用RIP的姿势如下:

<Huawei>system-view [Huawei]rip 1 [Huawei-rip-1]version 2 [Huawei-rip-1]network 192.168.10.0 [Huawei-rip-1]network 10.0.0.0 [Huawei-rip-1]undo summary [Huawei-rip-1]quit [Huawei]save

注意,华为里要先创建一个RIP进程,进程号可以随意,比如rip 1;思科则是直接进router rip,默认就一个进程。华为的network命令同样宣告直连网段,宣告后对应接口会自动启用RIP。默认情况下华为RIPv2会自动汇总,实验里最好执行undo summary关掉,否则你可能会看到环回口的32位路由被汇总成奇怪的主类网段。

验证命令方面,思科用show ip route rip看RIP路由,华为用display rip 1 route或者display ip routing-table protocol rip。思科用show ip protocols看RIP进程参数,华为用display rip 1。思科用debug ip rip看更新报文,华为用debugging rip 1 packet。两者对应的关系非常工整,做实验时完全可以对照着记。

3.3 验证阶段的标配动作:看路由表、ping、抓包

配置完成后,最快验证RIP是否工作的方法是看路由表。在思科上执行show ip route rip,你会看到类似这样的输出:

R 192.168.30.0/24 [120/1] via 10.0.23.3, 00:00:12, GigabitEthernet0/1

这条输出信息量很大:R代表这条路由由RIP学来;[120/1]里120是RIP的管理距离,1是跳数;via后面是下一跳地址;00:00:12是这条路由距离上次更新经过的时间,RIP每30秒更新一次,所以这个数字一定在0到30之间;最后的接口表示从这个接口收到的路由。

然后就是ping测试。从R1 ping R3环回口,从PC1 ping PC3,把每台设备都ping一遍确保全网互通。如果ping不通,不要急着说是RIP的问题,很可能只是没写网关或者防火墙开着。我见过太多学生折腾半天协议,最后发现是PC的网关没配。

如果你用的是GNS3,还可以直接在路由器接口上抓包,看RIPv2的组播更新报文,确认源地址、目的地址224.0.0.9、跳数等信息。这一步不是作业必需,但做一次能极大加深你对RIP报文格式的理解,我强烈推荐试试。

3.4 一个小技巧:把计时器调短,实验效率翻倍

做RIP实验最痛苦的事情就是等收敛。默认的30秒更新周期、180秒无效计时器,让每次故障模拟都要干等好几分钟。实际上RIP允许你修改计时器,我做演示和自测的时候会把它们大幅调短。

Router(config)#router rip Router(config-router)#timers basic 5 20 20 60

这行命令把更新周期改成5秒,路由失效时间改成20秒,刷新时间改成60秒。这样一来,把接口down掉之后,20秒内就能看到路由表发生变化,实验节奏舒服得多。需要说明的是,这只是实验演示手段,生产环境中随便乱调计时器会引发网络震荡,而且不同路由器上的计时器不一致,很容易出现路由黑洞。

华为VRP上对应的是timers rip 5 20 20命令,格式略有差异,设置前记得先查一下当前设备的配置说明。

4. 常见问题与排查技巧实录

4.1 路由表里一条RIP路由都没有,先查这四个地方

这是RIP作业里最经典的问题:明明每台路由器都敲了router rip和network命令,但show ip route rip就是空空如也。根据我长期排查的经验,90%的情况出在下面四个原因之一。

第一个原因是network宣告漏了网段。很多拓扑里有环回口,你给R1配置了network 192.168.10.0,但忘了宣告环回口所在的10.0.0.0网段,邻居自然学不到这条路由。解决方法是把每台路由器上的每个接口地址都列出来,挨个确认是不是都落进了已宣告的主类网络范围。

第二个原因是接口地址和宣告网段不匹配。比如你接口配的是10.0.12.1/30,network却写了10.0.0.0,这在RIPv1时代可能没问题,因为RIPv1会按主类网络匹配;但在RIPv2并且配了精确网段的写法时,如果地址和宣告网段对不上,更新就发不出去。所以最稳妥的做法是保持“接口地址属于某个主类网段,network宣告这个主类网段”。

第三个原因是RIP版本不一致。一台路由器开了version 2,另一台还是默认的v1,两者之间虽然v2能处理v1的报文,但v1收到v2组播报文时根本不理会。作业里最容易出现的情况是,三台路由器里有一台忘了敲version 2。这个坑用show ip protocols一眼就能看出来,各台路由器的版本必须对齐。

第四个原因是被动接口设错了。passive-interface可以用来阻止RIP更新从某个接口发出去,如果误把连接路由器的接口设成了被动接口,那邻居永远收不到更新。排查时先看配置里有没有passive-interface,再看它是不是加在了错误的接口上。

4.2 能学到路由但ping不通,多半不是协议的问题

如果你已经能在路由表里看到RIP路由,但实际ping不通目标地址,问题往往不在RIP本身,而在数据包的转发链路上。

第一个要查的是回包路径。R1能学到去往192.168.30.0/24的路由,走R2-R3过去,但R3未必学到去往192.168.10.0/24的路由,这样ICMP回包到半路就丢了,表现为ping请求发出去但没有回应。RIP是双向学习的,按理说不该出现单向路由,但如果你只在一台路由器上配了RIP,或者把某个接口加进了被动接口,就会出现单向路由。

第二个要查的是掩码和汇总问题。RIPv2虽然支持可变长子网掩码,但如果你在更新里看到某些路由被自动汇总成了主类网络,而实际网络里子网划分得很碎,就可能出现路由指向错误。解决办法是确保所有路由器都配置了no auto-summary。

第三个要查的是ACL和防火墙。很多模拟器默认配置里没有ACL,但如果你在接口上误开了访问控制列表,即使路由表完全正确,数据包也会被丢掉。排查这种问题最直接的方法是在入接口和出接口分别debug ip packet,看包被丢到了哪个阶段。

4.3 环路的观察实验怎么做:水平分割关闭后的灾难现场

有些进阶作业会要求你验证水平分割的作用,方法是把接口的水平分割关掉,人为制造环路。我很推荐做一次这个实验,因为亲眼看到数据包在环路里反复弹跳,比背十遍概念都管用。

在思科上,关掉某个接口的水平分割有两种方法:一种是在接口配置模式下执行no ip split-horizon,另一种是启用ip split-horizon poison-reverse把普通水平分割换成毒性逆转。关闭后再把某条链路Shutdown,然后观察路由表,你会发现路由并没有按时消失,反而可能因为环路导致TTL耗尽的ICMP报文满天飞。

做这个实验时切记两点:第一,一定要用模拟器做,别在真实设备上折腾;第二,实验做完马上把配置恢复回来。我以前带实验课时,有学生做完环路实验忘了恢复配置,后面连着好多台设备都学到了错误路由,排查了整整一下午。

4.4 debug和抓包:看清RIP更新报文的真面目

当路由表里出现了莫名其妙的路由,或者更新总是收不到,最直观的排查手段就是抓包和debug。思科上执行debug ip rip,你会看到类似下面的日志:

RIP: sending v2 update to 224.0.0.9 via GigabitEthernet0/1 (10.0.12.1) RIP: build update entries network 192.168.10.0/24 metric 1 network 10.0.0.0/8 metric 1 RIP: received v2 update from 10.0.23.3 on GigabitEthernet0/1 network 192.168.30.0/24 metric 1

sending和received两行日志分别展示了RIP更新报文的发送和接收,metric值可以帮你判断是不是多跳了,从哪个接口来的也能直接看到。如果debug日志里一直只有sending没有received,说明对方的路由更新根本没送到你这里,原因可能是接口down、被动接口、版本不匹配,或者中间链路有问题。

注意,debug命令在生产环境里要慎用,因为它会占用大量CPU资源,尤其是在大型网络中。实验做完记得执行undebug all把debug关掉。华为设备对应的是debugging rip 1 packet,看完之后用undo debugging all关掉。

如果你用的是GNS3,可以在两台路由器之间的链路上直接插一个抓包点,用Wireshark看完整的RIPv2报文结构,包括命令字段、版本字段、地址族标识符、路由标记、IP地址、掩码、下一跳和跳数。报文结构清晰之后,RIP的工作机制就会变得特别具体,以后无论如何都不会搞混。

结语:一个被淘汰的协议,为什么还是值得认真做一遍

RIP在真实网络里基本已经被OSPF和IS-IS取代了,但作为学习路由协议原理的“第一课”,它依然不可替代。我个人的体会是,把这个简单的实验认认真真做完,再把那些故障场景亲手复现一遍,你对路由协议的理解会比直接看OSPF配置快得多。因为RIP把路由协议最核心的要素都摊开了:度量值、更新机制、计时器、环路防护、版本差异、邻居关系。这些概念在任何路由协议里都存在,只是被更复杂的算法包装起来了。

最后再分享一个小习惯,我做RIP作业时,会在每台路由器上把所有接口地址、宣告网段、路由版本整理成一张表格,对照着检查。这看起来笨,但能避免90%的低级错误。如果你卡在某个配置问题上超过二十分钟,别继续硬扛了,把三台路由器的show running-config全部拉到同一个窗口里,逐行对比,问题通常一眼就能看出来。RIP作业不难,难的是静下心来把每一步都看清楚,做到心中有数。希望这篇内容能帮你顺利交掉这份作业,更重要的是,让你真正弄懂距离向量协议到底是怎么运转的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询