Назад | Перейти на главную страницу

Использование двух шлюзов в одной сети, один интерфейс с балансировкой нагрузки

Моя установка - это два интернет-провайдера на одном интерфейсе и в одной сети. Я могу установить шлюз по умолчанию на 192.168.0.1 или 192.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

Теперь, когда я повторяю "traceroute somehost", я могу получить маршрут только через мой маршрут по умолчанию, 192.168.1.250. Разве пакеты не должны случайным образом менять маршруты? Как это отладить?

Единственный известный мне способ иметь несколько шлюзов по умолчанию - это использовать методологию, показанную здесь: http://lartc.org/howto/lartc.rpdb.multiple-links.html. Однако одна модификация, которую я бы порекомендовал по этой методологии, - вместо того, чтобы помещать вещи в /etc/rc.local, хранить их в файлах сетевых маршрутов / правил (опять же, это предполагает красную шляпу, поэтому YMMV - / etc / sysconfig / network-scripts / route- и / etc / sysconfig / network-scripts / rule-.

Чтобы единый интерфейс отображался как два интерфейса, вы можете создать подынтерфейсы, следуя методике, показанной здесь: http://linux-101.org/howto/create-sub-interfaces-centos-and-redhat