Есть сервер, он же шлюз, на Debian Lenny iptables+squid+sams. Пытаюсь распределить выход в интернет для локальных компьютеров через два канала (далее планируется более двух). Интернет поднимается по средсвом PPPoE, соответственно появляются интерфейсы PPP0, PPP1 ... PPPn, и получают динамические IP адреса, кроме PPP1 - у него статический внешний адрес 212.*.*.*
eth1 - сюда подключен первый модем - PPP0
eth0.999 - второй модем - PPP1
eth0.100-eth0.250 - локальная сеть (виртуальные интерфейсы VLAN)Маршрутизацию настраиваю с помощью iproute2. В rt_tables добавляю таблицу Т1, и прописываю правила:
Код:
ip route add 192.168.130.0/24 dev eth0.230 table T1
ip route add 192.168.67.0/24 dev eth0.999 table T1
ip route add default dev ppp1 table T1
ip rule add from 212.*.*.* table T1
192.168.130.0/24 - локальная подсеть, которая должна выходить наружу через ppp1, eth0.230 - соответствующий ей интерфейс
192.168.67.0/24 - подсеть, в которой находится модем, eth0.999 - соответствующий интерфейс
212.*.*.* - внешний айпи на ppp1
В iptables все натится таким правилом:
Код:
iptables -t nat -A POSTROUTING -o PPP+ -j MASQUERADE
Т.е. должно получиться, что по умолчанию все выходит в инет через PPP0 (главная таблица), а те, кого маршрутизируем по PPP1
Если с сервера проверять ping -I ppp1 yandex.ru - пинг идет, traceroute ya.ru с локального компа тоже показывает, что идет через ppp1. Но если через браузер зайти, допустим, на 2ip.ru - айпишник показывается ppp0.
Подскажите, пожалуйста, в чем может быть ошибка!