为什么 ARP 需要 ARP 跨 LAN 请求?
网络工程
ARP
代理ARP
2022-02-04 09:56:22
2个回答
主机 A 到 B 的 ARP 将是一种不寻常的情况,因为 B 在不同的网络上(A 在 10.0.0.0/8 上,B 在 20.0.0.0/8 上)。
然而,如果 A 的操作系统允许,A 可能会为 B 提供 ARP。路由器 R 可以配置为回答“谁拥有 20.2.0.1?”。使用自己的以太网地址(G0/0/0 的地址,与 A 在同一网络上的那个)进行 ARP 查询。在这种情况下,我们说 R 是 B 的代理。
有关详细信息,请阅读RFC 1027 “使用 ARP 实现透明子网网关”。
对于 A 来说,对于不在其自己的网络 10.0.0.0/8 上的所有流量都有一条到 R 的路由,这种情况要普遍得多。在这种情况下,A 将对 10.1.0.2 进行 ARP,以获取 R 的以太网地址,然后将 B 的流量发送到 R。
您会看到主机 A(10.1.0.1/8) 发送 ARP 请求以获取 20.2.0.1/8 的 MAC 地址。
这不正常。
通常,主机 A 将 10.0.0.0/8 视为其本地子网,因此 20.2.0.1 是远程的。这使主机查询其本地路由表以获取适当的网关条目。假设有一个默认网关 0.0.0.0/0 -> 10.1.0.2,然后它将ARP 网关的 IP并使用发现的 MAC 地址来封装 IP 数据包。路由器将接收封装帧,解封装数据包并继续转发。
如果 10.1.0.1/8 尝试 ARP 20.1.0.1,则其本地表中可能存在奇怪的路由条目,或者其网络掩码设置不正确。如果路由器上没有任何特殊配置(“ARP 代理”),ARP 请求将被简单地忽略。
此外,操作子网的 /8 掩码是无意义的。/8 前缀可能对公司总部的“默认”路由有意义,但具有 1600 万个地址的实际子网是疯狂的。
其它你可能感兴趣的问题
