我对我的配置感到很困惑。
在我的服务器中我有2个接口:
eth0: 192.168.1.22 gw 192.168.1.1
eth2: 10.2.1.6 gw 10.2.1.1
我写了一条静态路由:
ip r a 8.8.8.8 via 192.168.1.1
worked great!!
then I deleted it and
ip r a 8.8.8.8 dev eth0
From 192.168.1.22 icmp_seq=1 Destination Host Unreachable
为什么?????
答案1
在第二种形式 ( ip r a 8.8.8.8 dev eth0
) 中,您没有指定网关,那么数据包应该转发到哪个路由器?由于不知道任何网关,您的服务器只会回复“目标主机无法访问”。
指定接口有两个好处:
- 如果远程主机通过同一网关路由,则其本身可通过二
dev
不同的接口,您可以为同一网关创建两个具有不同路由的路由。然后,您可以通过metric
或使用ECMP 路由实现某种负载平衡; - 对于点对点接口(例如 VPN 或 tun 接口),所有流量都由指定接口“捕获”(网关不重要)
答案2
ip r a 8.8.8.8 dev eth0
表示“8.8.8.8 直接连接到 eth0 接口”。Linux 内核尝试使用 arp 请求解析 8.8.8.8 的 MAC 地址,未收到任何答复并报告“目标主机无法访问”错误