Re: Как пробросить порт на серую сетку?
Dementiev Vyacheslav O. -> debian-russian @ Tue, 22 Nov 2005 17:42:51 +0200:
>> DVO> Как пробросить порт на серую сетку?
>> DVO> Собственно ситуация такова
>> DVO> Есть роутер с маршрутом по умалчанию на gre1 (тунель на спутник).
>> DVO> Есть впн соединение с "земляным" провайдером - пусть будет ppp0 с
>> DVO> адрессом x.y.z.h
>> DVO> При проброске порта (iptables -t nat -A PREROUTING -i ppp0 -p tcp--dport
>> DVO> 123 -j DNAT --to 1.2.3.4) и настройки рп фильтра (ehco
>> DVO> 0/proc/sys/net/ipv4/conf/ppp0/rp_filter) пакеты доходят до хоста
>> DVO> 1.2.3.4. Но проблемма появляется с обратными пакетами. Попадая на роутер
>> DVO> отхоста 1.2.3.4, они заварачиваются в тунель, что портит все картину
>> DVO> ((((
>> DVO> Как это победить красиво я не могу придумать уже в течении 2
>> DVO> дней.Попытка за "снатить" (iptables -t nat -A POSTROUTING -p tcp -d
>> DVO> 1.2.3.4--dport 123 -j SNAT --to x.y.z.h ) в сочетании с настройкой
>> DVO> правил типа"для пакетов на и от х.y.z.h роутить через ppp0" у меня не
>> DVO> получилась(((
>>
>> DVO> Подкиньте идею
>>
>> Тонкость тут в том, что x.y.z.h появляется в игре уже после того, как
>> принято решение о маршрутизации. Поэтому в правилах надо либо
>> определяться по 1.2.3.4, либо по MARK (и, соответственно, маркировать на
>> входе).
DVO> В саму точку. Только вот маркировать ответ не по чем, через этот же
DVO> роутер идут пакеты и в локальную сетку от того же порта .... И сеток
DVO> несколько. В результате если маркировать по ип и перебрать все
DVO> "внутренние" - "колбаса" получится большая (((. По той же самой причине
DVO> не напишешь и руле для адреса 1.2.3.4.
Я бы для простоты выдал нужной машине второй адрес, и гонял бы DNAT'ом
на него. По нему и правила писать. Принимать решение по тому адресу,
куда он посылает (вернее, по всем трем - его порту и обоим адресам), я
так понимаю, тоже не получается? По идее с дополнительным SNAT можно,
надо только маркировать пакет на обратном пути до того, как правило
сработает. Сдается мне, что-то там из мангла до прероутинга все-таки
дергается...
О, а вот мне man iptables рассказывает про CONNMARK... Почитать бы еще
где его толковое описание, но я сильно подозреваю, что оно вот ровно для
этого - в момент (перед) DNAT маркируешь соединение, а для обратных
пакетов матчишь.
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Реляционная база данных - это не единственный способ сделать дурацкий поиск.
Victor Wagner
Reply to: