Не знаю как назвать (обратный NAT)

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
Аватара пользователя
gorlum
Advanced member
Сообщения: 137
Зарегистрирован: 18 июн 2004, 11:43
Откуда: Ангарск
Контактная информация:

Не знаю как назвать (обратный NAT)

Сообщение gorlum » 15 окт 2004, 06:48

задача в следующем: необходимо все, что проходит из вне на порт 222 прокидывалось на другую машину в локальной сети на этотже порт.
Подскажите пожалуйста чайнику как это сделать
FreeBSD 4.9
заранее спасибо

Аватара пользователя
mAd!Duke
Power member
Сообщения: 39
Зарегистрирован: 29 июл 2004, 11:58
Откуда: Новокузнецк

Сообщение mAd!Duke » 15 окт 2004, 09:10

Средствами ipfw, а именно tee port from x.x.x.x to x.x.x.x

Аватара пользователя
gorlum
Advanced member
Сообщения: 137
Зарегистрирован: 18 июн 2004, 11:43
Откуда: Ангарск
Контактная информация:

Сообщение gorlum » 15 окт 2004, 10:30

напишите команду точно пожалуйста а то чтото не получается,
я сам до этого еще не дошел поэтому не знаю точно что писать
разрешающий запрещающие правила проходят а эта не хочет

Andrey Y. Ostanovsky
Advanced member
Сообщения: 103
Зарегистрирован: 04 окт 2004, 15:07

Re: Не знаю как назвать

Сообщение Andrey Y. Ostanovsky » 15 окт 2004, 13:57

gorlum писал(а):задача в следующем: необходимо все, что проходит из вне на порт 222 прокидывалось на другую машину в локальной сети на этотже порт.
Подскажите пожалуйста чайнику как это сделать
FreeBSD 4.9
заранее спасибо
man natd в части redirect-port после чего аккуратно строим divert правила для прямого и обратного трафика. Ну, и полезно при этом научиться пользоваться tcpdump, чтобы видеть - что происходит с пакетами, приходящими на определенный адрес.
Если natd еще не работает - то надо ядро пересобрать с опциями для работы natd.
Это для случая, когда нужен IP удаленного клиента.

Если IP пофигу - то можно просто поставить redir из портов
Port:   redir-2.2.1
Path:   /usr/ports/net/redir
Info:   A tcp connection redirection utility

Andrey Y. Ostanovsky
Advanced member
Сообщения: 103
Зарегистрирован: 04 окт 2004, 15:07

Сообщение Andrey Y. Ostanovsky » 15 окт 2004, 13:59

mAd!Duke писал(а):Средствами ipfw, а именно tee port from x.x.x.x to x.x.x.x
А та сторона примет пакеты, для нее не предназначенные? :) fwd ведь не меняет адрес получателя.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Re: Не знаю как назвать

Сообщение Stranger03 » 18 окт 2004, 11:00

gorlum писал(а):задача в следующем: необходимо все, что проходит из вне на порт 222 прокидывалось на другую машину в локальной сети на этотже порт.
Обратный нат,
man natd
man ipfw
Примеров настройки нат-а полно, на том же opennet.ru.

Аватара пользователя
gorlum
Advanced member
Сообщения: 137
Зарегистрирован: 18 июн 2004, 11:43
Откуда: Ангарск
Контактная информация:

Re: Не знаю как назвать

Сообщение gorlum » 19 окт 2004, 03:23

Stranger03 писал(а): Примеров настройки нат-а полно, на том же opennet.ru.
вот вот я вроде с того-же opennet настройки беру,да вот не задача не работает:), может подскажете что для того чтоб посмотреть что с пакетами происходит и куда они уходят.
Заранее спасибо.

Andrey Y. Ostanovsky
Advanced member
Сообщения: 103
Зарегистрирован: 04 окт 2004, 15:07

Re: Не знаю как назвать

Сообщение Andrey Y. Ostanovsky » 19 окт 2004, 11:51

gorlum писал(а):
Stranger03 писал(а): Примеров настройки нат-а полно, на том же opennet.ru.
вот вот я вроде с того-же opennet настройки беру,да вот не задача не работает:), может подскажете что для того чтоб посмотреть что с пакетами происходит и куда они уходят.
Заранее спасибо.
Смотреть можно с помощью tcpdump -pnvi fxp0 port 222, затем то же самое на втором интерфейсе. Проверять коннект снаружи можно просто телнетом.

Вкратце из рабочего конфига:
/etc/natd.conf
dynamic         yes
same_ports      yes
use_sockets     yes
unregistered_only
#
#deny_incoming
#
redirect_port tcp 192.168.0.5:222 222
#

/sbin/natd -f /etc/natd.conf -n fxp0

/etc/rc.firewall

ipfw add divert 8668 tcp from any to me 222 in via fxp0
ipfw add divert 8668 ip from any to any via fxp0

Второе правило divert выпускает ответные пакеты изнутри. И пусть попробует незаработать.:)

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Re: Не знаю как назвать

Сообщение Stranger03 » 19 окт 2004, 12:07

Andrey Y. Ostanovsky писал(а): ipfw add divert 8668 tcp from any to me 222 in via fxp0
ipfw add divert 8668 ip from any to any via fxp0
Ну вот здесь я бы добавил out
ipfw add divert 8668 ip from any to any via fxp0 out
Ну и не стал бы писать any, определил адреса типа 192.168.0.0/24. А так это правило будет заворачивать абсолютно все пакеты, даже локальные. Нафиг это надо/

Andrey Y. Ostanovsky
Advanced member
Сообщения: 103
Зарегистрирован: 04 окт 2004, 15:07

Re: Не знаю как назвать

Сообщение Andrey Y. Ostanovsky » 19 окт 2004, 12:32

Stranger03 писал(а):
Andrey Y. Ostanovsky писал(а): ipfw add divert 8668 tcp from any to me 222 in via fxp0
ipfw add divert 8668 ip from any to any via fxp0
Ну вот здесь я бы добавил out
ipfw add divert 8668 ip from any to any via fxp0 out
Ну и не стал бы писать any, определил адреса типа 192.168.0.0/24.
С этим, в контексте данной задачи, абсолютно согласен. У меня по второму правилу остальные в инет ходят.
Stranger03 писал(а): А так это правило будет заворачивать абсолютно все пакеты, даже локальные. Нафиг это надо/
А вот это вряд ли.:) Если пакет стал "via fxp0" то он явно, по условиям маршрутизации, должен пойти наружу. Причем именно "via", т.е., "через". Под это правило не должны попадать запросы непосредственно к интерфейсу fxp0.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Re: Не знаю как назвать

Сообщение Stranger03 » 25 окт 2004, 17:05

Andrey Y. Ostanovsky писал(а):А вот это вряд ли.:) Если пакет стал "via fxp0" то он явно, по условиям маршрутизации, должен пойти наружу. Причем именно "via", т.е., "через". Под это правило не должны попадать запросы непосредственно к интерфейсу fxp0.
Ну да, ну да,  :oops:, вы правы,  :twisted:.

numirabis
Junior member
Сообщения: 8
Зарегистрирован: 19 окт 2004, 12:18
Контактная информация:

Re: Не знаю как назвать

Сообщение numirabis » 17 дек 2004, 17:31

Andrey Y. Ostanovsky писал(а):
Stranger03 писал(а):
Andrey Y. Ostanovsky писал(а): А вот это вряд ли.:) Если пакет стал "via fxp0" то он явно, по условиям маршрутизации, должен пойти наружу. Причем именно "via", т.е., "через". Под это правило не должны попадать запросы непосредственно к интерфейсу fxp0.
а вот и не правда
via - это не значит "через".
Вообще что такое пакет проходит "через" интерфейс ?
Пакет может быть либо получен интерфейсом, либо послан
так вот под via попадают оба этих условия
для филигранной точности надо добавить модификаторы in recv, out xmit
кому интересно http://www.unixfaq.ru/index.pl?req=qs&id=485
там все хорошо рассказано.
Ну и man 8 ipfw

PomidorOFF
Power member
Сообщения: 45
Зарегистрирован: 22 окт 2004, 18:10
Откуда: Украина

Сообщение PomidorOFF » 23 дек 2004, 12:10

#cd /usr/ports/net/datapipe
#make install clean
#rehash
# datapipe XXX.XXX.XXX.XXX 222 YYY.YYY.YYY.YYY 222

где XXX.XXX.XXX.XXX адрес сервера, YYY.YYY.YYY.YYY адрес пункта назначения
Работает все сразу.

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей