我当时有两个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