[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: