route add xxxx via gatewayip 和 route add dev interface 有什么区别?

route add xxxx via gatewayip 和 route add dev interface 有什么区别?

我对我的配置感到很困惑。

在我的服务器中我有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 地址,未收到任何答复并报告“目标主机无法访问”错误

相关内容