利用同一网络上的两个网关与负载平衡相同的接口

Rus*_*hPL 7 iptables load-balancing gateway iproute2

我的设置是单个接口和单个网络上的两个 ISP。我可以将我的默认网关设置为192.168.0.1192.168.1.250并且要么工作。

编辑:网络掩码(如评论中所见)is 255.255.254.0-正如我所说,它们位于同一个子网上。

我的愿望是通过一些负载平衡来利用它们。我试图遵循这里给出的建议 https://serverfault.com/a/96586

#!/bin/sh                                                                                                                                                                                                                        
ip route show table main | grep -Ev '^default' \                                                                                                                                                                                 
   | while read ROUTE ; do                                                                                                                                                                                                       
     ip route add table ISP1 $ROUTE                                                                                                                                                                                              
done                                                                                                                                                                                                                             
ip route add default via 192.168.1.250 table ISP1                                                                                                                                                                                
ip route add default via 192.168.0.1 table ISP2                                                                                                                                                                                  

iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark                                                                                                                                                                      
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT                                                                                                                                                                    
iptables -t mangle -A PREROUTING -j MARK --set-mark 10                                                                                                                                                                           
iptables -t mangle -A PREROUTING -m statistic --mode random --probability 0.5 -j MARK --set-mark 20                                                                                                                              
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
Run Code Online (Sandbox Code Playgroud)

现在我反复执行“traceroute somehost”,我只能通过我的默认路由 192.168.1.250 获取路由。数据包不应该以随机方式改变路由吗?如何调试它?

Mat*_*hew 2

据我所知,拥有多个默认网关的唯一方法是利用此处所示的方法: http: //lartc.org/howto/lartc.rpdb.multiple-links.html。然而,我建议对此方法进行的一项修改是,不要将内容放入 /etc/rc.local 中,而是将它们存储在网络路由/规则文件中(同样,这是假设红帽,所以 YMMV - /etc/sysconfig/network-scripts/路由-和/etc/sysconfig/network-scripts/rule-。

要使单个接口被视为两个接口,您可以按照此处所示的方法创建子接口:http ://linux-101.org/howto/create-sub-interfaces-centos-and-redhat