ping -R 记录路由是什么
IPv4 头部支持两个诊断选项:记录路由(RR)与时间戳(Timestamp)。开启后,路径上的设备把自身地址写入报文选项字段,一次请求就能拿到往返路径。它的局限非常明显:地址空间受 IPv4 头部长度限制,最多记录 9 跳;现代网络多数设备出于安全考虑直接忽略或丢弃带选项的报文。因此它只能作为补充手段,跨公网排查应以 traceroute 或 mtr 为主。
基本信息
| 适用平台 | Linux(iputils 的 ping)、部分 BSD 与 Windows(选项支持不一) |
|---|---|
| 关键参数 | -R 记录路由、-T tsandaddr 时间戳加地址 |
| 容量上限 | IPv4 头部空间限制,最多记录 9 个地址 |
| 现实约束 | 多数防火墙与路由器会忽略或丢弃带选项报文 |
典型使用场景
- 内网小规模路径核对:跳数很少时可快速得到往返路径
- 补充 traceroute 结果:当探测包被过滤时尝试另一种手法
- 教学与验证:演示 IPv4 选项机制的行为
- NAT 环境初步观察:查看记录到的是私网还是公网地址
- 受限环境排障:没有 traceroute 或 mtr 时的临时替代
记录路由与时间戳
记录路由与时间戳
# 记录路由,最多记录 9 跳
ping -R -c 2 10.0.0.5
# 时间戳加地址选项
ping -T tsandaddr -c 2 10.0.0.5
# 与普通 ping 对照,确认基础连通性
ping -c 2 10.0.0.5
# 需要完整路径时优先使用 tracepath 或 mtr
mtr -r -c 20 -n 10.0.0.5结果判读
| 观察结果 | 含义 | 注意事项 |
|---|---|---|
| 记录到多跳地址 | 选项被路径设备支持 | 检查跳序是否符合预期 |
| 只记录到少数几跳 | 中间设备未响应选项 | 常见现象,不代表链路异常 |
| 地址为私网地址 | NAT 已发生在记录点之前 | 无法直接对应公网路径 |
| 完全没有记录 | 全程设备忽略该选项 | 改用 traceroute 或 mtr |
输出里的记录顺序是按路径顺序写入的,但受选项空间限制:跳数接近上限后新地址无法写入,看到的『半截路径』是机制限制而非链路问题。
在 NAT 环境下记录到的是私网地址,无法直接对应公网路径:跨公网排查用 mtr 或 traceroute,结论更可用。