为什么路由器 ping 失败会使用不同的 IP 进行响应?

为什么路由器 ping 失败会使用不同的 IP 进行响应?

在 Windows CMD 中,当我们尝试 ping 我们内部 LAN 上的另一台计算机时,IP 显然没有响应。但是“目标主机无法访问。”的回复来自另一个 IP,而不是路由器的 IP。

在我的网络中,网关是 10.0.0.252,但我收到了来自 10.0.20.188 的回复;这是为一般设备分配的动态 DHCP IP。

C:\Users\drodecker>ping pbx

Pinging pbx.office.relevantads.com [10.1.1.211] with 32 bytes of data:
Reply from 10.0.20.188: Destination host unreachable.
Reply from 10.0.20.188: Destination host unreachable.
Reply from 10.0.20.188: Destination host unreachable.
Reply from 10.0.20.188: Destination host unreachable.

Ping statistics for 10.1.1.211:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

答案1

简单回答: 您的 PC 正在尝试解析下一跳接口的以太网 MAC 地址,但找不到任何地址(例如:目标 PC 已关闭)。因此,它会报告来自其自身接口的“目标主机不可达”ICMP 消息。

详细答案 IP-over-Ethernet 网络具有两个互补的网络地址:不可路由的链路层物理寻址(MAC 地址)和可路由的网络层逻辑寻址(IP 地址)。

当尝试 ping 另一个主机时,您的 PC 必须:

  1. 根据路由表决定传出接口
  2. 确定下一跳以太网接口的MAC地址(使用ARP协议)
  3. 发送一个数据包,以下一跳接口作为目标 MAC 地址,以目标 IP 地址作为最终目的地

要点 2 是行为可能出现分歧的地方:

  • 如果远程主机位于本地网络上,则下一跳以太网接口您尝试到达的最终目的地(例如:如果我的 PC 的 IP 为 10.0.0.1 /24 而我尝试 ping IP 地址为 10.0.0.2 的 PC,则下一跳接口就是目标计算机的接口);
  • 如果远程主机位于远程网络上,则下一跳以太网接口是网关接口的接口(例如:如果我的 PC 的 IP 为 10.0.0.1 /24 ,而我正尝试 ping IP 地址为 10.10.10.1 /24 的 PC,并且可以使用本地路由器 10.0.0.254 /24 访问该远程网络,则下一跳接口是路由器的接口)。

因此,如果您的 ping 失败并且您自己的 PC 接口没有回复,则有两种可能性:

  1. 您正在尝试 ping 一个本地地址:该地址未回复您的 PC ARP 请求,并且超时后,您的 PC 通知您找不到目标以太网地址。
  2. 您正在尝试 ping 一个远程地址:您为该地址配置的网关(例如:您的默认网关)没有响应您的 PC ARP 请求。超时后,您的 PC 会通知您无法找到目标以太网地址。

相关内容