RIP 配上了为什么 ping 不通:邻居、宣告、版本,按这个顺序查

学动态路由的人几乎都会卡在同一道坎上:照着教程把 RIP 配上了,两台路由器就是 ping 不通。“配上了"三个字听着没问题,但它在排障时是个危险的词——配置敲进去了,不等于协议跑起来了;协议跑起来了,不等于路由学到了;路由学到了,也不等于 ping 就该通。把这三层拆开看,是 RIP 排障的地基。

第一层:先看路由表,再动手查协议

ping 不通的第一反应不该是改配置,而是看路由表:display ip routing-table,看本端有没有去往对端网段的路由。RIP 的路由是靠协议互相学习的,如果表里根本没有对端网段的路由,ping 的数据包在出接口那一刻就没有下一跳可送——问题定位在"路由没学到”,往下查协议;如果表里有路由,ping 还不通,那问题多半在链路层或访问控制上,跟 RIP 已经没关系了。先看表再动手,能省掉一大半瞎改配置的时间。

第二层:邻居建了没有

RIP 的运行状态先看邻居:display rip neighbor。RIP 作为距离矢量协议没有 OSPF 那种严格的邻接关系,但管理端仍能看到从哪个接口收到了哪些设备的更新。如果这里查出来是空的,说明对端的更新报文根本没到本端,继续往下查两件事。

接口宣告了没有。RIP 要靠 network 命令把接口所在网段宣告出去,宣告了才会往外发更新、才会参与该网段的学习。漏宣告一个接口,是"配上了但不通"的头号原因——RIP 进程建好了、版本也设了,就是没 network,等于报了名没进考场。

报文能不能到达。物理层 up 不代表协议报文能过:中间如果隔了防火墙策略或者访问控制,更新报文用的那个 UDP 端口被拦了,邻居一样建不起来。

第三层:版本一致吗

RIPv1 和 RIPv2 是两套不兼容的更新方式:v1 用广播发包、报文里不带掩码信息,v2 用组播发包、带掩码。一端 v1 一端 v2,更新报文互相听不懂,邻居自然建不起来。两端的版本要显式配置对齐,别依赖默认值——不同厂商、不同系统版本的默认行为不一样,“没配版本"在两台设备上的含义可能完全不同。

掩码这笔账也在这里:v1 不带掩码、按主类网络边界自动汇总,如果两端的子网划分不是标准主类掩码,即使勉强通了也会学错路由。统一用 v2、掩码写明确,是现在通行的做法。

排障顺序总结

RIP 配上了不通,按序走四步:一看路由表有没有对端网段(先定层)→二查接口 network 宣告(最常见)→三验两端版本一致性(v2 组播对齐)→四查中间有没有设备拦了协议报文。多数问题出在第二步,少数出在第三步。

现在企业多分支组网里 RIP 已经用得不多了,但这套排障思路是通用的:任何动态路由协议不通,都是"配置生效了没有、邻居建了没有、路由学了没有"三层递进——先分清卡在哪一层,再动手改。贵州诚鑫致达科技做多分支组网交付时的故障定位,走的也是这套分层顺序,不靠猜。