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 慢慢分析。
重点看: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 路由。
Cisco IOS
这段配置做的事:启用 RIP 并强制 v2、关闭自动汇总(这是支持不连续子网的前提)、声明参与网段、把环回口设为被动;后两条命令分别查看 RIP 数据库和实时打印 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. 与其他协议对比
| 维度 | RIP | OSPF | EIGRP |
|---|---|---|---|
| 类型 | 距离矢量 | 链路状态 | 高级距离矢量 |
| 度量 | 跳数(≤15) | 带宽/代价 | 复合度量 |
| 收敛 | 慢 | 快 | 快 |
| 规模 | 小 | 大 | 中/大 |
| 封装 | UDP 520 | IP 89 | RTP/IP |
| 适用 | 教学/小网 | 企业主干 | Cisco 环境 |
5. 速查表 / 常见面试题
| 项目 | 值 |
|---|---|
| 端口 / RFC | UDP 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 补齐,无需逐包可靠。