如果我通过 arp 广播询问 127.0.0.1 会发生什么?

如果我通过 arp 广播询问 127.0.0.1 会发生什么?

网络上的所有计算机都会回答我吗?

答案1

没有人应该回答您的请求,因为每个网络接口只应该回答与其绑定的地址(即不回答其他接口)。

答案2

Linux 机器可能会有响应。

http://lwn.net/Articles/45373/

“如果 Linux 系统(具有默认配置)在其某个接口上收到 ARP 请求,并且该请求正在寻找分配给任何系统接口的 IP 地址,则系统将通过接收该请求的接口响应该 ARP 请求。即使所涉及的接口不是分配了请求地址的接口,也会发生此响应。”

答案3

鉴于 RFC1122(互联网主机要求)规定了 127/8 地址块:

Addresses of this form MUST NOT appear outside a host.

RFC1812(IP 版本 4 路由器的要求)规定:

  A router SHOULD NOT forward, except over a loopback interface, any
  packet that has a destination address on network 127.  A router
  MAY have a switch that allows the network manager to disable these
  checks.  If such a switch is provided, it MUST default to
  performing the checks.

显而易见的问题是,如果您不打算通过环回接口以外的任何方式向这些地址发送数据包,那么您为什么要对 127.0.0.1 进行 ARP 呢?

从你最初的问题来看:

“网络上的所有计算机都会回答我吗?”——不会。

“会发生什么?”——结果可能有所不同,从什么都没有发生到从可能有错误或配置错误的孤立主机/网关获取响应。

答案4

这取决于响应的 TCP/IP 堆栈的编写质量(或缺陷程度)。

你不应该得到任何回应,但我以前也见过奇怪的行为......

相关内容