当两个或多个默认路由时,路由行为是什么?

当两个或多个默认路由时,路由行为是什么?

我当时有两个ISP,连接到同一台机器。我将它们都添加到路由表中作为默认值。然而,仅使用一个连接。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 eth1

如何平衡两个 ISP 之间的流量负载?

答案1

Linux 高级路由和流量控制 HOWTO有一个部分描述了解决问题的方法。

平衡两条路由之间流量的关键步骤是给它们赋予权重。

ip route add default scope global \
    nexthop via 192.168.0.1 dev eth1 weight 1 \
    nexthop via 192.168.1.1 dev eth0 weight 1

答案2

从linux 3.6开始,路由不再被缓存,所有缓存代码都被已针对 IPv4 删除。因此,这个多宿主解决方案无法再按原样工作。

这是正确的拉伸

~$ uname -a
Linux 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux

但杰西工作

~$ uname -a
Linux 3.16.0-10-amd64 #1 SMP Debian 3.16.81-1 (2020-01-17) x86_64 GNU/Linux

相关内容