答案1
内核不允许您拥有多个同样可行的路线。它将拒绝第二条路由并出现EEXIST
错误:
% ip route add 192.0.2.0/24 dev eth0 metric 10
% echo $?
0
% ip route add 192.0.2.0/24 dev eth1 metric 10
RTNETLINK answers: File exists
% echo $?
2
您可以拥有多路径路由,即具有多个下一跳的单个路由,其中内核将根据以下方式在可用下一跳之间分配(负载共享/负载平衡)流量:fib_multipath_hash_policy
:
% ip route add 192.0.2.0/24 metric 10 nexthop dev eth0 nexthop dev eth1
% ip route show to exact 192.0.2.0/24
192.0.2.0/24 metric 10
nexthop dev eth0 weight 1
nexthop dev eth1 weight 1
答案2
您应该避免有两个(或更多)默认路由。当使用静态 IP 寻址时,这很简单。只是不要在“网关”字段中放入任何内容。如果您使用 DHCP 分配的地址,则可以重新配置 DHCP 服务器以仅通告一条默认路由,或将 Linux 计算机配置为忽略其中一条默认路由。我通常使用简单的 NetworkManager 命令来执行后者,如下所示:
$ nmcli connection modify "eth1" ipv4.ignore-auto-routes yes