为什么 Linux 机器会向不同子网上的 IP 发送 ARP 请求?

为什么 Linux 机器会向不同子网上的 IP 发送 ARP 请求?

我们有一台 Linux 机器,位于 192.168.2.0/24 子网上,当我们尝试连接到 192.168.5.0/24 网络上的机器时,它会发送 arp 请求。(arp 请求针对的是 192.168.5.10 处的机器,而不是默认网关)设置了一个默认网关,我可以在 netstat -r 中看到它。它应该将所有远程(不是同一子网)流量发送到 192.168.2.1 处的网关。我检查了子网掩码,它确实是 255.255.255.0。因此,它应该发送 ARP 请求来获取默认网关的 mac,而不是远程 IP 的 mac。知道它为什么发送 arp 请求吗?不确定这是否有区别,但两个子网之间有一个站点到站点的 VPN。

# ip route get 192.168.5.10
192.168.5.10 dev bond0  src 192.168.2.42
       cache  ipid 0x9fe7

# ip route
default via 192.168.2.1 dev bond0
192.168.2.0/24 dev bond0  proto kernel  scope link  src 192.168.2.42

# ip rule
   0:      from all lookup local
   32766:  from all lookup main
   32767:  from all lookup default

如果您需要更多详细信息,请告诉我。

谢谢。

答案1

听起来这些数据包不是通过网关跳跃,而是采用更直接的 VPN 路由。对于 VPN,这两个网络基本上是一个更大的网络(虽然不是很专业,但您明白我的意思)。

您需要 ARP 请求到达网关的原因是什么?如果可以,我就不担心了。如果您真的想测试一下,请关闭 VPN 服务器并等待 VPN 断开连接。我猜您会看到数据包通过网关。

相关内容