Иметься сервак с тремя сетевухами.
eth0 - внутренняя сеть IP 192.168.0.1 eth1 - резервный провайдер IP 1.2.3.4 (gw 1.2.3.44) eth3 - основной провайдер IP 1.7.8.9 (gw 1.7.8.99)
Ну на сервере дефолтный роут на 1.7.8.99, соответственно с маскарадингом:
route -n
**** 0.0.0.0 1.7.8.99 0.0.0.0 UG 0 0 0 eth3
1.7.8.99 - IP шлюза основного провайдера
И вот появилась мысль кинуть фтп трафик на резверный линк. А то что ему простаивать то...
Делают так:
iptables -t mangle -I PREROUTING -p tcp --dport 20 -j MARK --set-mark 0x65530 iptables -t mangle -I PREROUTING -p tcp --dport 21 -j MARK --set-mark 0x65530
Дальше
ip rule add pref 10000 fwmark 0x65530 table 1000 ip route add default via 1.2.3.44 table 1000 ip route flush cache
Понятно что 1.2.3.44 - IP адрес резервного шлюза у провайдера
Ну нат соотвествено живет на двух интерфейсах iptables -t nat -I POSTROUTING -o eth2 -j MASQUERADE iptables -t nat -I POSTROUTING -o eth3 -j MASQUERADE
Так вот проблема - через резерв фтп пошел работать, но только когда клиент использует активный режим ! А при работе в пассивном режиме - невозможно получить листинг каталогов, и соответствено что либо скачать. Т.е. долбанный IE нифига не качает.
Как победить ?
Если я закину свой внутренний ип а не маркировку: ip rule add from 192.168.0.2 table 1000 То соответствено весь трафик для этого ип пошел через резервный канал, и с фтп никаких проблем - в пассиве и в активе все работает.
Как победить эту проблему ?
Я провел эксперемент с 80 портом - промаркировал, и веб трафик бегает через резевр без проблем, но мне надо на резерв кинуть только фтп ...
Как ??? Что нужно еще прикрутить, или как есть возможность выкрутиться ?
Подчеркну еще раз - глюк в том что пассив (!!!) не работает.