HCIA备考绕不开这个实验,但说实话,我见过太多人把RIP配置敲完就以为完事了,然后发现路由表一点动静没有,开始一脸懵。RIP动态路由配置实验在华为认证体系里属于最基础的动态路由入门实验,可越是这种基础实验,越能暴露对协议理解的漏洞。这篇就按我平时带人做实验习惯,把RIP实验从拓扑设计、地址规划到配置验证、排错,完整走一遍,顺便把那些常规文档里不会写的坑都翻出来聊聊。
1. 实验整体设计思路——RIP到底在解决什么问题
1.1 动态路由出现的必然性
在进入配置之前,先搞清楚我们为什么要用RIP。如果网络里只有两台路由器,手动写静态路由完全够用,命令少、可控性强、排错也简单。但网络规模稍微一大,静态路由的维护成本就开始失控了。比如三台路由器串联,中间路由器一旦断了某条链路,你必须在所有相关路由器上手动修改路由条目。要是十台、二十台设备呢?每加一条链路就要全网排查一遍,这个工作量没人受得了。
动态路由协议解决的就是这个痛点:路由器之间通过协议自动交换路由信息,拓扑发生变化时自动收敛,不用人工干预。RIP(Routing Information Protocol,路由信息协议)就是最早期也最基础的动态路由协议之一,基于距离矢量算法,用跳数做度量值。HCIA考试和实验里讲RIP,不是因为它在生产网络中还有多大规模的应用,而是因为它包含了动态路由最核心的基础概念:路由通告、度量值、防环机制、计时器。把RIP吃透了,后面学OSPF会轻松很多。
1.2 为什么用三台路由器串联的拓扑
RIP实验的经典拓扑是两台路由器加两个终端网段,但我会多加一台,做成三台路由器的串行链路。为什么呢?两台设备只能演示"直连路由通过RIP通告给邻居",体现不出"逐跳传递"的过程。三台设备时,R1把自己的终端网段通告给R2,R2再把它通告给R3,R3最终学到的是穿过两台中间设备的路由,这样你才能直观感受到动态路由"一跳一跳传过去"的本质。同时,三台设备也方便演示故障场景:把中间链路断开,观察RIP怎么发现故障、怎么收敛、怎么触发更新,这些在只有两台设备的拓扑里都演不出来。
1.3 实验预期目标清单
动手之前先列目标,配置完要能回答下面几个问题:
- R1、R2、R3之间能否通过RIP自动学习到非直连网段的路由
- 三台设备的路由表里,RIP路由的下一跳和度量值是否符合预期
- PC1和PC3之间能否互通,数据包实际走的路径是什么
- 人为断开某条链路后,RIP需要多长时间完成收敛
- 路由表里出现重复路由时,RIP如何决策
带着这些问题去做实验,比漫无目的地敲命令强得多。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与地址规划——动手前的关键细节
2.1 模拟器选择与设备型号
华为环境首选eNSP,官方免费,AR2220路由器型号覆盖HCIA实验绰绰有余。如果你机器配置一般,建议只启动实验需要的设备,不要一次性开一堆,否则交换机、路由器全部启动之后内存占用会很夸张。另外eNSP有个老毛病:设备启动速度很慢,点了启动之后要耐心等命令行出现,不要反复点击启动按钮,否则可能出现多开进程的诡异问题。真机操作逻辑完全一样,模拟器跑通了,真机上手没障碍。
2.2 IP编址方案设计
地址规划直接决定后续RIP的network命令怎么写,所以这里要花点心思。我用的规划如下:
| 设备 | 接口 | IP地址 | 对端设备 |
|---|---|---|---|
| R1 | GE0/0/0 | 192.168.12.1/24 | R2 GE0/0/0 |
| R1 | GE0/0/1 | 192.168.1.1/24 | PC1 |
| R2 | GE0/0/0 | 192.168.12.2/24 | R1 GE0/0/0 |
| R2 | GE0/0/1 | 192.168.23.2/24 | R3 GE0/0/0 |
| R3 | GE0/0/0 | 192.168.23.3/24 | R2 GE0/0/1 |
| R3 | GE0/0/1 | 192.168.3.3/24 | PC3 |
注意几个细节:互联地址统一用了192.168.12.0/24和192.168.23.0/24两个网段,两个终端网段分别用了192.168.1.0/24和192.168.3.0/24。为什么不全都挤在一个网段里?因为RIP实验的核心目的就是让路由器学习"非直连网段"的路由,如果所有设备都在同一个网段,那压根不需要路由协议。终端网段设计成不同网段,才能逼着路由器去动态学习。
另外,PC1的网关指向192.168.1.1,PC3的网关指向192.168.3.3,这个别配错。很多人最后ping不通,检查了半天路由,结果发现是PC的网关写错了,这种低级错误最浪费时间。
2.3 直连网段预检
配置RIP之前,先把物理层和直连连通性确认一遍。我的习惯是每配完一个接口就ping一下对端直连地址。比如在R1上ping 192.168.12.2,通了再配下一个。全部直连通了之后,在三台路由器上分别执行display ip interface brief,确认所有接口都是up状态。这一步看似多余,其实是在缩小排查范围——如果直连都不通,后面RIP学了路由也白搭,数据包根本发不出去。
3. RIP配置实操全流程——命令背后的逻辑
3.1 接口基础配置
进入系统视图配置接口IP,以R1为例:
code复制system-view
sysname R1
interface GigabitEthernet0/0/0
ip address 192.168.12.1 255.255.255.0
undo shutdown
quit
interface GigabitEthernet0/0/1
ip address 192.168.1.1 255.255.255.0
undo shutdown
quit
R2和R3照葫芦画瓢,把对应接口地址配上。undo shutdown那条命令在模拟器里可以不敲,但真机上默认接口是开启的,所以这条命令属于保险操作。配置完用display ip interface brief看一眼,确认接口状态。这一步没有任何技术含量,纯粹是细心活,但很多实验翻车就翻在这里——接口没起来,后面全白搭。
3.2 启动RIP进程并通告网段
这是整个实验的核心。在R1上配置:
code复制rip 1
version 2
network 192.168.12.0
network 192.168.1.0
quit
很多人对network命令的理解有偏差。它不是"把这条路由重分布进RIP",而是两层含义:第一,在这条命令指定的网段所对应的接口上启用RIP,让RIP报文可以从这个接口收发;第二,把该接口的直连路由放进RIP更新报文,通告给邻居路由器。换句话说,network是一条"接口匹配+路由通告"的组合命令,匹配的是接口所在的主类网络或精确网段。华为的network命令比思科灵活,可以写主类网络号也可以写精确子网,但为了养成好习惯,建议直接写实际网段。
R2需要通告三个网段吗?它只通告自己直连的两个网段即可:192.168.12.0和192.168.23.0。注意,R2不需要通告R1发过来的192.168.1.0,因为RIP传递路由是靠路由器之间互相通告各自直连网段,逐跳传播,不是一台设备把整个路由表广播出去。
R3的配置:
code复制rip 1
version 2
network 192.168.23.0
network 192.168.3.0
quit
version 2这行非常重要。如果漏了,华为设备默认跑的是RIPv1,而RIPv1不支持VLSM(可变长子网掩码),在实验这种24位掩码的环境里可能还能跑,但报文的发送方式和处理机制会有区别,后面排错会很头疼。我建议从一开始就统一使用RIP v2,这也是生产环境和考试的主流要求。
3.3 验证RIP路由学习结果
配置全部完成后,在R3上执行:
code复制display ip routing-table protocol rip
正常情况下应该能看到两条RIP路由:192.168.12.0/24和192.168.1.0/24。注意观察输出中的下一跳字段和度量值。R3到达192.168.12.0/24的下一跳是192.168.23.2(也就是R2),度量值是1;到达192.168.1.0/24的下一跳同样指向R2,但度量值是2。这个度量值的变化非常重要,它体现了RIP的逐跳累计机制:每经过一台路由器,跳数加1。R3到PC1网段要经过R2和R1两台设备,所以是2跳。
再看R2的路由表,它到达192.168.1.0/24的下一跳是192.168.12.1,度量值1;到达192.168.3.0/24的下一跳是192.168.23.3,度量值1。所有设备的路由表合起来看,就是一个完整的、无环路的转发路径。
顺便说一句,display rip 1 route可以查看RIP协议自己的路由表,输出会包含度量值、下一跳、老化剩余时间等信息,这个命令在排查RIP路由老化问题的时候特别有用。很多人只知道看全局路由表,不知道RIP自己还有一张表,实际上两张表配合使用才能定位问题。
3.4 终端互通验证
路由表里有了条目不代表数据就通了,还必须做端到端验证。在PC1上ping PC3的IP地址:
code复制ping 192.168.3.3
通了之后,再在R1上执行tracert 192.168.3.3,看数据包实际走的路径。正常情况下会显示经过192.168.12.2和192.168.23.3两个中间跳点。这一步验证的不只是RIP配置,还包括PC的网关配置、路由器的转发决策、沿途各段链路的连通性。如果ping不通,别急着怀疑RIP,先逐段ping:PC1先ping网关,再ping中间路由器的互联地址,最后ping目标。网络排错的基本功就是分段定位,把一个长链路切成几段,逐段缩小范围。
4. 协议进阶细节——RIP的版本、防环与收敛机制
4.1 RIP v1和v2的关键差异
实验里我让大家统一敲了version 2,现在解释为什么。RIPv1是有类路由协议,更新报文中不携带子网掩码,接收方只能根据IP地址的主类边界去推断。如果网络里用了变长子网掩码,比如192.168.1.0/24和192.168.1.0/25同时存在,RIPv1直接傻眼,因为路由器根本无法区分这两个网段。RIPv2是无类协议,报文里携带子网掩码,还支持路由标记、明文/MD5认证、组播更新(目的地址224.0.0.9)而不是广播更新。从排错的角度说,v2的组播更新比v1的广播更新对网络影响更小,也更安全。HCIA考试里经常出这些对比的题,实验里亲自配一遍,记忆会深刻得多。
还有一点容易踩坑:如果一台设备配了version 2,另一台没配,默认是version 1,两个进程之间可能无法互通。RIPv1和RIPv2报文格式不同,v1设备收到v2的报文会直接丢弃。所以实验里要么所有设备统一version 2,要么统一不写(用默认v1),千万别混着来。
4.2 防环机制在实验中的实际体现
距离矢量协议的经典问题是环路。RIP靠几个机制防环,实验里可以实际观察。水平分割是最基本的一条:从某个接口学到的路由,不会再从这个接口通告回去。拿实验拓扑来说,R2从GE0/0/0接口学到了R1通告的192.168.1.0网段,R2就不会再往GE0/0/0这个口把这条路由通告给R1。如果没有水平分割,R2会把刚学来的路由又发回给R1,然后R1再把跳数加1发回来,无限循环,最终导致路由度量值无限增大。
毒性反转是水平分割的强化版:从某个接口学到的路由,不从该接口发送正常路由,而是直接发送度量值16(不可达)的版本回去,相当于告诉邻居"这条路我不要了,你也别给我"。RIP还靠最大跳数限制兜底:16跳视为不可达,一条路由的度量值累加到16就会被丢弃,从而阻止无限循环。
触发更新机制也值得单独说。RIP默认每30秒发一次完整路由表更新,但等30秒太慢了。当路由发生变化时(比如接口down了),路由器会立即发送触发更新,不需要等下一个周期。实验里你可以做这样一个操作:在R2上把GE0/0/1接口shutdown,然后马上在R1上display ip routing-table protocol rip,你会发现R1很快就收到了更新。对比一下如果不手动触发、只等周期更新,R1需要最多30秒才能感知到变化。这个速度差异就是触发更新的意义所在。
4.3 计时器参数与路由老化观察
RIP的收敛速度慢是出了名的,根本原因在于它的三个计时器。Update计时器30秒,决定了周期更新的频率;Timeout计时器180秒,一条路由如果在180秒内没收到更新,就会被标记为不可达;Garbage-collect计时器120秒,路由被标记为不可达后,再等120秒才会从路由表中彻底删除。
实验观察方法:配置好RIP、让路由表稳定之后,在R3上执行display rip 1 route,盯着输出中的Age字段,你会发现这个值每过几秒都会增加,到30秒左右归零重新计数,这是因为收到了新的RIP更新,路由被刷新了。然后做一个中断实验:把R1和R2之间的链路断开,然后每隔一段时间查看R3的RIP路由表。192.168.1.0/24这条路由不会立刻消失,而是先等180秒超时被标记为不可达,再等120秒被彻底删除。也就是说,RIP在最坏情况下可能需要五分钟才能彻底清理一条失效路由。这个特性直接决定了RIP在现代大型网络中没有立足之地,但作为理解动态路由机制的起点,它的价值无可替代。
5. 常见问题与排查技巧实录
5.1 配置完RIP,路由表里却什么都没有
这是最高频的问题。排查顺序很固定,从可能原因依次排除:
第一,确认所有设备的RIP进程都启动了,并且都配置了network。三台设备是串联关系,中间一台如果漏了RIP配置,两端的设备互相谁也学不到。第二,检查network命令是否覆盖了所有需要通告的直连网段。最容易漏的是模拟PC的终端网段,很多人只通告了互联地址,忘了通告终端网段。第三,检查接口状态,接口down了RIP自然无法从该接口收发报文。第四,检查版本一致性,一台v1一台v2,报文会被丢弃。第五,别忘了RIP更新报文是要等30秒周期或者触发更新才会发送,配置完之后不要立刻就看路由表,等十几秒再查。
5.2 路由表里有RIP路由,但还是ping不通
这就有意思了,说明路由学习没问题,问题出在转发链路上。先从PC的角度排查:PC的网关是否指向了正确的路由器接口地址?PC1的网关必须是192.168.1.1,也就是R1接口的地址,很多人配成了别的地址甚至忘了配网关。再从路由器角度排查:沿途每一台路由器是否都有往返路径的路由?RIP学习是双向的,从PC1到PC3需要沿途路由器有到达192.168.3.0的路由,反过来也需要有到达192.168.1.0的路由。只验证了单向路由,忘了检查回程路由,是新手特别容易犯的错。
还有一个隐蔽的问题:ACL或者防火墙策略拦截ICMP报文。eNSP里的AR2220默认没有这个限制,但如果你的实验环境里配过安全策略,记得检查。在真机环境里这个问题更常见。
5.3 版本不匹配导致的"静默丢包"
RIP v1和v2不兼容的典型表现是:路由表里什么都没有,抓包能看到RIP报文,但报文的源端口、目的地址或者格式不对。抓包看的是UDP 520端口,v1的更新报文从源IP广播发送,v2的从组播地址224.0.0.9发送。如果一台设备发的是组播,另一台只听广播,两边就永远对不上。排查方法:在接口上执行display rip 1 interface,查看收发版本;或者直接统一配置version 2,省事。
5.4 eNSP里的debug与抓包技巧
RIP排错时debugging是有效的,但要注意操作方式。在系统视图下先执行terminal debugging和terminal monitor,然后才执行debugging rip 1 packet,否则看不到输出。看完之后记得马上用undo debugging all关闭,模拟器里开着debug顶多卡一点,真机上开着debug在某些高负载场景下可能导致设备CPU飙升甚至业务中断。这个习惯要从模拟器阶段就养成。
抓包的话,eNSP支持在链路中间接观察口或者直接在设备接口上抓包,导入Wireshark分析。RIP报文结构很简单,看几眼就能记住:跳数字段、路由条目数、目的IP、度量值。自己亲手抓一次包,比记十遍报文格式都管用。
5.5 模拟器特有的"玄学"问题
eNSP偶尔会出现配置了但设备像没收到一样,路由表死活不更新。这时候先别急着怀疑配置,试试把三台设备全部停止再重新启动,然后重新加载配置。模拟器进程有时候会卡在某个状态,重启设备是最快的恢复手段。另外,所有设备启动完成之前不要开始配置,等右下角的设备图标全部变成绿色再操作。这不是严谨的技术原因,但确实是实践中摸索出来的概率问题。
6. 实验扩展方向——把RIP吃透的几个后续玩法
基础实验跑通之后,想加深理解可以做几个扩展练习。第一个是环路实验:手动在某一台设备上配置一个指向错误下一跳的静态路由,然后再引入RIP,观察路由环路的表现和防环机制如何兜底。第二个是接口静默配置:在连接PC的接口上配置silent-interface,让RIP报文不要从这个接口发出去,同时直连路由照常通告,这个特性在真实网络优化中很常用。第三个是RIP v2认证配置:在接口上配置MD5认证,然后故意把密钥写错,观察邻居关系是否还能建立,这个实验能帮你理解路由协议认证的作用。
如果把这三个练习都做完,你对RIP的理解就已经超过HCIA的考试要求了。后面学OSPF的时候,你会发现很多概念是相通的,比如邻居关系、路由通告、度量值、防环设计,只不过OSPF做得更复杂、更精细。到时候反过来再想RIP,你会真正理解为什么它被称为"入门协议",而"入门"这两个字从来不是贬义。
最后再分享一个我做实验的经验:RIP实验是第一个涉及"协议交互"的实验,和之前纯静态配置完全不同,难点不在命令本身,而在建立"路由器之间在对话"的思维模式。每敲一条network,都在告诉路由器"跟谁说话、说什么内容"。用这个思路去看debug输出和抓包结果,所有问题都会清晰很多。
