Re: port forwarding для на2 wan интерфейса
Dmitry A. Zhiglov -> Debian Russian MailList @ Thu, 6 Dec 2012 11:33:40 +0400:
>> DAZ> Ок, настройте. На тестовом стенде ибо доступ дать не могу.
>>
>> А тестовый стенд дать можешь? Минимум из 5 машин, соединенных не более
>> чем попарно (целевая машина, на которую нужен форвардинг, роутер, два
>> роутера его каналов, и одна машина по ту сторону этих роутеров).
>>
>> У меня такого зоопарка тупо нет, потестировать не на чем. А
>> потестировать надо, готовые правила протоптались пару переездов той
>> конторы назад (перестало быть нужно).
DAZ> Могу настрогать виртуалок, быстро не сделаю, может даже только
DAZ> после 20-00 мск. Отношусь.
Правильно соединенных? Ну давай попробуем. Только "полноценных",
уровня vmware или virtualbox, а то про OpenVZ я точно знаю, что ее
строить так, чтобы iptables полноценно работали - это отдельная задача
на несколько перезапусков всей подсистемы, да и про Xen совершенно не
уверен.
Для тестирования нужно будет обеспечить по крайней мере на всех
промежуточных машинах tcpdump.
И тогда, увы, только послезавтра, потому что сегодня вечером я на сутки
уезжаю в Питер, и там мне будет не до настроек сетей.
А я пока постараюсь вспомнить, где я читал инструкцию по двухствольному
роутингу, и перечитать.
>>
>> DAZ> Самое горячее и печалное что у меня времени нет. ((
>> DAZ> С форвардингом может и разобрался, но в роутингом затык. Задачи у
DAZ> меня
>> DAZ> сейчас "кардинально с разных планет" - разрываюсь
>>
>> DAZ> Вот что уже есть
>>
>> DAZ> # iptables -t nat -nvL PREROUTING
>> DAZ> Chain PREROUTING (policy ACCEPT 11773 packets, 2159K bytes)
>> DAZ> pkts bytes target prot opt in out source
>> DAZ> destination
>> DAZ> 0 0 CONNMARK tcp -- * * 0.0.0.0/0
>> DAZ> ISP_WAN2 tcp dpt:3389 CONNMARK set 0x2
>>
>> DAZ> # iptables -t mangle -nvL PREROUTING
>> DAZ> Chain PREROUTING (policy ACCEPT 23364 packets, 4349K bytes)
>> DAZ> pkts bytes target prot opt in out source
>> DAZ> destination
>> DAZ> 0 0 CONNMARK tcp -- * * ISP_WAN2
>> DAZ> SOME_LOCAL_HOST tcp spt:3389 CONNMARK restore
>>
>> DAZ> # ip ru
>> DAZ> 0: from all lookup local
>> DAZ> 499: from all fwmark 0x2 lookup localnet
>> DAZ> 500: from all lookup localnet
>> DAZ> 1000: from ISP_WAN1 lookup wan1
>> DAZ> 2000: from ISP_WAN2 lookup wan2
>> DAZ> 32766: from all lookup main
>> DAZ> 32767: from all lookup default
>>
>> DAZ> # ip ro ls table wan1
>> DAZ> default via ISP_IP1 dev eth1
>> DAZ> NET_WAN1 dev eth1 scope link
>>
>> DAZ> # ip ro ls table wan2
>> DAZ> default via ISP_IP2 dev eth2
>> DAZ> ISP_NET2 dev eth2 scope link
>>
>> DAZ> # ip ro ls table localnet
>> DAZ> LOCAL_NET dev eth0 scope link
>>
>> DAZ> Может кто что подскажет?
>>
>> DAZ> ВСЕМ: Если что, личка открыта для контактов
>>
>> Что-то не очень понятно, зачем CONNMARK. Я не помню, чтоб я им
>> пользовался, когда аналогичную фигню настраивал. Просто DNAT с обоих
>> внешних адресов в одно и то же место, кажется, работал. Он же действует
>> только на первый пакет сеанса, входящий, а дальше следит за соединением.
>>
>> С UDP, помнится, было хуже, но то было не с DNAT, а непосредственно с
>> роутером. source-based правило не срабатывало, потому что локально
>> исходящий ответный пакет по UDP шел с дефолтным source (по TCP он идет с
>> тем адресом, на который пришел клиент). А с DNAT как раз может и с UDP
>> сработать.
DAZ> Ваша реализация может иной. Надо держать в голове еще одну вещь -
DAZ> там еще squid будет для localnet... вот такой комбайн.
DAZ> CONNMARK. Идея в том, была или еще есть, что пакет маркируется и
DAZ> по маркеру маршрутизирисуется.
Может, ты и прав, я сейчас не вспомню. Что-то я с маркерами тоже
когда-то делал, но не помню уже, что.
В общем, давай тогда уже в личку полную постановку задачи, чтобы можно
было для стенда выделить существенную часть (возможно, если сквид
оказывается существенным, потребуется еще шестая машина - клиент того
сквида). Но по идее со сквидом ничего существенного быть не должно.
Reply to: