У меня на двух провайдеров работает. Ниже показал свои настройки для всеобщей критики и советов.
Если у кого руки дошли написать скрипт, чтобы отключать провайдера из таблицы маршрутизации при его пропадании и включать при появлении - БУДУ ОЧЕНЬ БЛАГОДАРЕН.
У меня 1.X.X.1 - шлюз провайдера 1
1.X.X.2 - IF eth0 на провайдера 1
2.X.X.1 - шлюз провайдера 2
2.X.X.2 - IF eth4 на провайдера 2
Мой конфиг:
#!/bin/sh
#Добавить в /etc/iproute2/rt_tables строки примерно такого содержания:
#1 uplink_1
#2 uplink_2
#Задание правил маршрутизации IP по источнику для радоканала
ip rule add from 1.X.X.2 lookup 1;
ip route add 192.168.0.0/24 via 192.168.0.1 table 1;
ip route add 192.168.1.0/24 via 192.168.1.1 table 1;
ip route add 192.168.2.0/24 via 192.168.2.1 table 1;
ip route add 0/0 via 1.X.X.1 table 1;
#Задание правил маршрутизации IP по источнику для модемного соединения
ip rule add from 2.X.X.2 lookup 2;
ip route add 192.168.0.0/24 via 192.168.0.1 table 2;
ip route add 192.168.1.0/24 via 192.168.1.1 table 2;
ip route add 192.168.2.0/24 via 192.168.2.1 table 2;
ip route add 0/0 via 2.X.X.1 table 2;
# Добавление ip route по умолчанию с опцией equalize
ip route del default;
#ip route add default equalize nexthop via 1.X.X.1 dev eth0 nexthop via 2.X.X.1 dev eth4;
ip route add default equalize nexthop via 1.X.X.1 dev eth0 weight 2 nexthop via 2.X.X.1 dev eth4 weight 1;
#ip route add default equalize nexthop via 2.X.X.1 dev eth4 nexthop via 1.X.X.1 dev eth0;
ip route flush cache
Если есть NAT:
#!/bin/sh
# SEE FILE /etc/sysctl.conf
# net.ipv4.ip_forward = 1
# Then type sysctl -p
# Check /proc/sys/net/ipv4/ip_forward (set to 1)
# Check iptables -t nat -n -L
# Mail for USERS
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p tcp --dport 110 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p udp --dport 110 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p tcp --dport 25 -j SNAT --to-source 1.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth0 -p udp --dport 25 -j SNAT --to-source 1.X.X.2
# Mail for USERS_backup
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p tcp --dport 110 -j SNAT --to-source 2.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p udp --dport 110 -j SNAT --to-source 2.X.X.2
iptables -t nat -A POSTROUTING -d 0/0 -s 192.168.2.0/24 -o eth4 -p tcp --dport 25 -j SNAT --to-source 2.X.X.2