我得到的这个奇怪的 PING 响应是什么?

Wes*_*eed 1 networking router ping macos

我在路由器上添加了一条静态路由,该路由与我的其他计算机位于不同子网上的地址。它工作正常,但是当我 ping 它时,我从ping我以前从未见过的命令中得到以下响应:

64 bytes from 10.11.12.13: icmp_seq=0 ttl=127 time=1.527 ms
92 bytes from 10.0.0.1: Redirect Host(New addr: 10.0.0.254)
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 bf4c   0 0000  3f  01 9c43 10.0.0.2  10.11.12.13
Run Code Online (Sandbox Code Playgroud)

我正在从 Mac 上 ping 这个,顺便说一句。

我的路由器是 10.0.0.1。有问题的主机中有 2 个 NIC。一个是 10.11.12.13,另一个是我路由器上的 DHCP 预留,地址为 10.0.0.254(这解释了重定向地址)。

显然这是因为静态路由(废话),但这个响应到底是什么??我以前从未见过ping命令给出这样的响应。

Spi*_*iff 7

您的路由器向您发送了一条 ICMP 重定向消息以响应您的 ICMP 回显请求,因为您尝试访问的主机与您位于同一 LAN,但您的网络堆栈已将您的数据包寻址到路由器的 MAC 地址(因为目标 IP 地址不在子网中,而您的路由器是您的默认路由)。所以路由器会说:“嘿,那个人和你在同一个局域网上。直接与他交谈,不要让我负担中继你应该直接发送的流量”。ping 命令显示该 ICMP 重定向的内容。

如果您尝试建立到相同 IP 地址的 TCP 连接,您将获得等效的 ICMP 重定向,但您的网络堆栈可能只会处理它而不是向您显示它。ping 命令向您显示它的唯一原因是因为 ping 命令是一种网络诊断工具,因此它认为您会对此类细节感兴趣。