RIP 实战与排错 — 抓包、配置与故障定位

RIP Wireshark 抓包、FRR/vtysh 与 Cisco 配置、计数到无穷大/路由环路/不连续子网排查、与 OSPF 对比 / 网络层 / UDP 520 / RFC 2453

这篇你能学到

  • 用 Wireshark / tcpdump 把 RIP 的请求、更新、以及"报死"的路由(metric=16)分别抓出来看。
  • 在 FRR/vtysh 和 Cisco IOS 上把 RIP 跑起来的完整命令,以及 no auto-summary、被动接口这些关键项。
  • 五类典型故障(缺路由、计数到无穷大、环路、不连续子网、收不到更新)的结论先行式排查,外加对比表和面试速查。

1. 抓包观察

下面这些过滤式的作用:先把 RIP 流量整体捞出来,再按"是要表还是给表"分开看,最后单独盯住那些被标成不可达的路由——它们往往就是故障现场。

过滤式作用
udp.port == 520 / rip所有 RIP 报文
rip.command == 2只看 Response(路由更新)
rip.command == 1只看 Request
rip.metric == 16追踪不可达/毒性反转路由

这两条命令:第一条实时显示 RIP 报文详情,边看边判断;第二条完整落盘成 pcap 文件,方便事后用 Wireshark 慢慢分析。

1
2
tcpdump -i eth0 -nn udp port 520 -v
tcpdump -i eth0 -nn 'udp port 520' -s 0 -w /tmp/rip.pcap

重点看:Message Type(Request/Response)、每条 RTE 的 IP Address / Subnet Mask / Metric、v2 的 Next Hop 与 Authentication。

2. 常用命令 / 配置

FRR / vtysh(Linux)

这段配置做的事:进入 RIP 进程并指定用 v2 → 声明哪些网段参与 RIP → 把不需要发更新的接口设为被动 → 把直连路由也通告出去 → 显式写死四个计时器 → 最后三条 show 命令用来查看 RIP 运行状态、RIP 数据库和最终进入路由表的 RIP 路由。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
vtysh
configure terminal
 router rip
  version 2
  network 10.0.0.0/24
  passive-interface lo
  redistribute connected
  timers basic 30 180 180 240
  no passive-interface eth0
!
do show ip rip status
do show ip rip
do show ip route rip

Cisco IOS

这段配置做的事:启用 RIP 并强制 v2、关闭自动汇总(这是支持不连续子网的前提)、声明参与网段、把环回口设为被动;后两条命令分别查看 RIP 数据库和实时打印 RIP 收发过程。

1
2
3
4
5
6
7
8
router rip
 version 2
 no auto-summary
 network 10.0.0.0
 passive-interface Loopback0
!
show ip rip database
debug ip rip

3. 常见故障与排错

现象:路由表缺失某些网段

先记住结论: 多半不是"学不到",而是"压根没让它参与"——接口没被 network 覆盖、被动接口配错了,或者被自动汇总吞掉了。

排查/解决:show run 查 network;关 auto-summary 防汇总掩盖。

现象:计数到无穷大 / 慢收敛

先记住结论: 这是距离矢量协议的先天病——链路 down 后坏路由只能靠传言一轮轮扩散,防环机制没开满就会拖得更久。

排查/解决:确认水平分割/毒性反转已开;用触发更新加速。

现象:路由环路(流量绕圈)

先记住结论: 先去看水平分割是不是被关了,这是最常见的元凶。

排查/解决:重新开启水平分割;检查 no ip split-horizon

现象:不连续子网不通

先记住结论: 掩码信息在通告过程中丢了——要么在用有类的 v1,要么 v2 开着自动汇总。

排查/解决:用 RIPv2 + no auto-summary,确保带掩码通告。

现象:邻居收不到更新

先记住结论: 报文根本没送达,问题在链路和 ACL 上,不在 RIP 配置里。

排查/解决:查 ACL;同二层可达;配 neighbor 单播亦可。

现象原因排查/解决
路由表缺失某些网段接口未 network / 被动接口误配 / 自动汇总show run 查 network;关 auto-summary 防汇总掩盖
计数到无穷大 / 慢收敛链路 down 后坏路由靠传言缓慢扩散确认水平分割/毒性反转已开;用触发更新加速
路由环路(流量绕圈)水平分割被关或跨多路重新开启水平分割;检查 no ip split-horizon
不连续子网不通v1 有类汇总或 v2 自动汇总用 RIPv2 + no auto-summary,确保带掩码通告
邻居收不到更新UDP 520 被 ACL 拦 / 组播 224.0.0.9 不通查 ACL;同二层可达;配 neighbor 单播亦可

排错顺序:物理/邻居可达 → debug ip rip 看收发 → 查计时器与防环 → 查汇总/掩码。

4. 与其他协议对比

维度RIPOSPFEIGRP
类型距离矢量链路状态高级距离矢量
度量跳数(≤15)带宽/代价复合度量
收敛
规模中/大
封装UDP 520IP 89RTP/IP
适用教学/小网企业主干Cisco 环境

5. 速查表 / 常见面试题

项目
端口 / RFCUDP 520 / RFC 2453 (v2)
最大跳数15 有效,16 不可达
更新周期30s(v2 组播 224.0.0.9)
计时器30 / 180 / 180 / 240
RTE 长度20 字节,最多 25 条/包
防环水平分割、毒性反转、触发更新、抑制
  • Q:为什么跳数上限 15? 防止计数到无穷大无限扩散,限制网络直径,也暴露其不适大网。
  • Q:水平分割 vs 毒性反转? 前者不回发来源路由;后者回发但置 16,更快通知坏路由。
  • Q:v1 与 v2 区别? v2 无类(带掩码、VLSM/CIDR)、组播、可认证;v1 有类、广播、不认证。
  • Q:RIP 为何用 UDP(不可靠)? 路由靠周期性全表刷新最终一致,单包丢失可在下个 30s 补齐,无需逐包可靠。