LINUX.ORG.RU
ФорумAdmin

pro FTP - как перекинуть на резервный канал ?


0

0

Иметься сервак с тремя сетевухами.

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 портом - промаркировал, и веб трафик бегает через резевр без проблем, но мне надо на резерв кинуть только фтп ...

Как ??? Что нужно еще прикрутить, или как есть возможность выкрутиться ?

Подчеркну еще раз - глюк в том что пассив (!!!) не работает.

anonymous

Упс, так лучше:

Иметься сервак с тремя сетевухами.

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 портом - промаркировал, и веб трафик бегает через резевр без проблем, но мне надо на резерв кинуть только фтп ...

Как ??? Что нужно еще прикрутить, или как есть возможность выкрутиться ?

Подчеркну еще раз - глюк в том что пассив (!!!) не работает.

anonymous
()
Ответ на: комментарий от anonymous

Т.е. это проблема для клиентских машин 192.168.0.0/24. Народу нужно дать возможность качать с фтпшек через резервный канал.

Прокси и принудительное проксирование не приветствуется. Требуется "красивое" решение.

anonymous
()
Ответ на: комментарий от anonymous

Промаркированы не все порты.
В пассивном режиме все по другому.
Посмотри tcpdump-ом сеанс связи.
И наверное надо маркировать не MARK-ом а CONMARK-ом и использовать ядерный модуль nat_ftp

PS Это всё догадки. Передо мной такие проблемы пока не стояли.

kilolife ★★★★★
()
Ответ на: комментарий от anonymous

CONNMARK is a cool feature of Netfilter. It provides a way to have a mark which is linked to the a connection tracking entry. Once a connmark is set, it also apply for RELATED connection entry. So, if you add a connmark to an FTP connection, the same connmark will be put of connections from ftp-data.

kilolife ★★★★★
()
Ответ на: комментарий от kilolife

Пытался.... но что-то коннмарк не работал "никак".

Буду пытаться еще раз.

Кстати попробывал я frox, блин работает с точностью наоборот - активные соеденения тогда не ходят ;) А пассив работает.

Что за напасть такая.....

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.