iproute2 и проброс портов
AnViar 29 октября, 2007 - 13:09
Собственно столкнулся со своим недопониманием работы iproute2.
Исходные данные:
Есть шлюз в интернет с тремя алиасами на интерфейсе - алиасы от разных провайдеров.
На шлюзе настроено iproute2 по мануалу с opennet.ru.
На шлюзе оуществлен проброс портов средствами iptables в DMZ (DNAT).
Было замечено, что при прохождении пакета в DMZ ответ идет все равно по default gw.
Я подозреваю, что iproute2 в принципе не может разрулить эту ситуацию,необходимой информации (какой именно??? - не нашел четкой документации по этому вопросу) после DNAT в пакете уже не содержится.
Буду весьма признателен за развернутое обьяснение этого механизма.
»
- Для комментирования войдите или зарегистрируйтесь
совсем нет
совсем нет идей?
DMZ я так понимаю
DMZ я так понимаю называется другая машинка в локалке? Конфиги iproute и iptables тогда покажи.
Никогда подобного не настраивал, но думаю решить можно маркируя входящие пакеты каждого альяса с помощью iptables CONNMARK, а затем уже по этой метке для исходящих пакетов выбирать на какой альяс маршрутизировать.
Такая же
Такая же ситуация. пробовал маркировать пакеты входящие со второго канала (маркируется). потом с помощью iproute2 пытался эти пакеты маркированные маршрутизировать . не пошло.
#############################
############################################################################
# MARK TO 2 CANAL
############################################################################
######################3
$IPTABLES -t mangle -N NEW_OUT_CONN
$IPTABLES -t mangle -A FORWARD -i $INET_2IFACE -m state --state NEW -j NEW_OUT_CONN
$IPTABLES -t mangle -A PREROUTING -i $INET_2IFACE -d $INET_2IP -j CONNMARK --set-mark 30
$IPTABLES -t mangle -A POSTRIUTING -i $DMZ_IFACE -m connmark --mark 30 -j ROUTE --gw $INET_2IP --continue
В итоге на последнюю строчку так ругается:
iptables: No chain/target/match by that name
Не POSTRIUTING а
Не POSTRIUTING а POSTROUTING
______________________________________________________
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Теперь и MSI PR210-003RU (Turion64X2 1.8 Ghz, ATI Radeon X1270...)
$IPTABLES -t mangle -A
$IPTABLES -t mangle -A POSTRIUTING -m connmark --mark 30 -j ROUTE --gw $INET_2IP --continue
еще лучше
iptables: Invalid argument
Замучался я уже с этим вторым каналом. вроде все правильно. где то промахнулся.
И все-таки как
И все-таки как это не удивительно, снова не POSTRIUTING а POSTROUTING
$IPTABLES -t mangle -A
$IPTABLES -t mangle -A POSTROUTING -m connmark --mark 30 -j ROUTE --gw $INET_2IP --continue
iptables: Invalid argument
А если просто
А если просто
$IPTABLES -t mangle -A POSTROUTING -m connmark --mark 30 -j ROUTE
сделать - скажет что-то навродеiptables: Couldn't load target ROUTE...
? Значит нужно iptables пересобирать с нужной целью и возможно ядро.Я пропатчил уже
Я пропатчил уже ядро и пересобрал iptables
И все-таки
И все-таки стоит прекратить монолог и начать отвечать на вопросы и обращать внимание на то, что вам пишут, если хотите получить помощь.
POSTROUTING помоему
POSTROUTING помоему работает только в цепочке nat(-t nat)
Ого! Уже нагородили)
Мы решили проблему в лоб:
На каждом внутреннем сервисе сделано по алиасу на каждого прова.
На каждого прова сделано по одному физческому гейту(отдельные машинки).
Ну и DNAT у каждого на соответствующий алиас.
Таким образом мы решили и эту проблему, так и увеличили надежность всей сстемы в целом.