我有一台计算机,其 IP 地址为:10.0.0.1
和同一网络中的另一个路由器,WAN 为:10.0.0.5
而 LAN 为192.168.10.1
当我输入route add 192.168.1.0 mask 255.255.255.0 10.0.0.1
并 ping时192.168.10.1
,我得到了响应。但是如何在 ARP 列表中查看192.168.10.1
MAC 地址?
然后我 ping 了一下10.0.0.5
,得到的是相同的 MAC 地址。MAC 地址可以正常工作layer 2
,并且10.0.0.5
处于开启状态,layer 2
但192.168.10.1
不能正常工作layer 2
。
谢谢您的帮助
答案1
L3 – 向“其他网络”地址发出 Ping 请求
你可以 ping 属于路由器其他接口的地址,因为它实际上是路由器并将数据包从一个网络转发到另一个网络,因为这是它的工作。
L2 – 显示“其他网络”地址的 ARP 回复
这是 Linux TCP/IP 堆栈的一个特性。它确实会响应分配给任何它的接口(但当然,具有适合它所响应的 L2 网络的 MAC 地址)。
设置 sysctlnet.ipv4.conf.all.arp_ignore=1
以将其切换到预期行为(如果要永久配置,请参阅man sysctl.d
)。
(更广泛的解释是,一些 IP 堆栈,包括 Linux 中的 IP 堆栈,在“弱主机”模式下运行(如果这是正确的术语),并将地址视为附加到整个系统而不是特定接口。)