我们有一台 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 断开连接。我猜您会看到数据包通过网关。