我的目的是从网络命名空间 ping 到位于 GW 之外的机器。为此,我创建了一个网络命名空间,并在命名空间内和全局命名空间中设置了 IP 路由。当我在命名空间内设置 IP 路由而不提及“GW”(via) 时,全局命名空间接口(连接到 GW 的接口)上的 tcpdump 显示“ARP 请求以识别 IP”。但是,当我在命名空间内设置带有“GW”(via) 的 IP 路由时 (ip route add xxxx/x via xx.xx.xx.xx dev my_namespace_veth_adapter ),它运行正常,我能够 ping 到另一台机器。如何解释带有和不带有 GW 的路由?
答案1
你已经有了答案:
没有网关的路由意味着目标主机可直接访问,换句话说,它“在链接上”,因此系统将直接为其进行 ARP。
航线和网关意味着目标主机不是可直接访问,因此系统将使用 ARP 来获取网关的地址。