URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91636
[ Назад ]

Исходное сообщение
"ipfw reverse nat"

Отправлено Vs_ , 25-Май-11 07:40 
Доброго дня.
Не получается настроить reverse nat на FreeBSD на основе ipfw.
ng8 - внутренний интерфейс
em2 - внешний интерфейс
конфигурация ipfw
nat 1 config if ng8 same_ports reset reverse
nat 1 ip from 10.8.0.103 to 194.87.0.50 via ng8
nat 1 ip from 194.87.0.50 to any (на примере, на один внешний адрес)

Пакеты маскирутся, уходят на внешний адрес. Снаружи возвращаются на брандмауэр и дальше проблема. Пакеты не демаскируются.

Подскажите, в чем может быть проблема?


Содержание

Сообщения в этом обсуждении
"ipfw reverse nat"
Отправлено PavelR , 25-Май-11 08:55 
>[оверквотинг удален]
> ng8 - внутренний интерфейс
> em2 - внешний интерфейс
> конфигурация ipfw
> nat 1 config if ng8 same_ports reset reverse
> nat 1 ip from 10.8.0.103 to 194.87.0.50 via ng8
> nat 1 ip from 194.87.0.50 to any (на примере, на один внешний
> адрес)
> Пакеты маскирутся, уходят на внешний адрес. Снаружи возвращаются на брандмауэр и дальше
> проблема. Пакеты не демаскируются.
> Подскажите, в чем может быть проблема?

AFAIK, nat учитывает направление движения пакета. по признаку "входящий/исходящий" по отношению к рутеру.
У вас получается, что он попадает в нат оба раза как входящий.


"ipfw reverse nat"
Отправлено rr , 25-Май-11 10:16 
>[оверквотинг удален]
>> nat 1 config if ng8 same_ports reset reverse
>> nat 1 ip from 10.8.0.103 to 194.87.0.50 via ng8
>> nat 1 ip from 194.87.0.50 to any (на примере, на один внешний
>> адрес)
>> Пакеты маскирутся, уходят на внешний адрес. Снаружи возвращаются на брандмауэр и дальше
>> проблема. Пакеты не демаскируются.
>> Подскажите, в чем может быть проблема?
> AFAIK, nat учитывает направление движения пакета. по признаку "входящий/исходящий" по
> отношению к рутеру.
> У вас получается, что он попадает в нат оба раза как входящий.

nat 1 ip from 194.87.0.50 to any (на примере, на один внешний адрес)?

что такое один внешний интерфейс?



"ipfw reverse nat"
Отправлено Vs_ , 25-Май-11 13:54 
>[оверквотинг удален]
>>> адрес)
>>> Пакеты маскирутся, уходят на внешний адрес. Снаружи возвращаются на брандмауэр и дальше
>>> проблема. Пакеты не демаскируются.
>>> Подскажите, в чем может быть проблема?
>> AFAIK, nat учитывает направление движения пакета. по признаку "входящий/исходящий" по
>> отношению к рутеру.
>> У вас получается, что он попадает в нат оба раза как входящий.
> nat 1 ip from 194.87.0.50 to any (на примере, на один внешний
> адрес)?
> что такое один внешний интерфейс?

не интерфейс, а адрес. т.е. делаю все телодвижения с nat на один внешний адрес в интернете. я думаю это не критично. можно было собственно сделать
nat 1 ip from any to any - результат тотже


"ipfw reverse nat"
Отправлено Vs_ , 25-Май-11 14:01 
>[оверквотинг удален]
>> nat 1 config if ng8 same_ports reset reverse
>> nat 1 ip from 10.8.0.103 to 194.87.0.50 via ng8
>> nat 1 ip from 194.87.0.50 to any (на примере, на один внешний
>> адрес)
>> Пакеты маскирутся, уходят на внешний адрес. Снаружи возвращаются на брандмауэр и дальше
>> проблема. Пакеты не демаскируются.
>> Подскажите, в чем может быть проблема?
> AFAIK, nat учитывает направление движения пакета. по признаку "входящий/исходящий" по
> отношению к рутеру.
> У вас получается, что он попадает в нат оба раза как входящий.

но в таблице маскировки/демаскировки пакетов должна соответствовать запись?
согласно описанию reverse nat, нат нужно вешать на внутренний интерфейс и тогда все представления входящий/исходящий переворачиваются. По аналогии прямого nat, на nat мы вешаем как исходящий поток, так и входящий, если смотреть со стороны роутера.
Т.е. согласно этого примера повесить nat:
nat 1 config if ng8 same_ports reset
nat 1 ip from 10.8.0.103 to 194.87.0.50 via em2
nat 1 ip from 194.87.0.50 to any via em2
то все правильно.
но вот реверсивный - не получается.


"ipfw reverse nat"
Отправлено Vs_ , 25-Май-11 14:02 
сорри
nat 1 config if em2 same_ports reset

"ipfw reverse nat"
Отправлено PavelR , 25-Май-11 17:57 

> но в таблице маскировки/демаскировки пакетов должна соответствовать запись?
> согласно описанию reverse nat, нат нужно вешать на внутренний интерфейс и тогда
> все представления входящий/исходящий переворачиваются. По аналогии прямого nat, на nat
> мы вешаем как исходящий поток, так и входящий, если смотреть со
> стороны роутера.

ответный пакет пришел. пришел на внешний интерфейс.
С какой радости он решит выйти наружу из раутера через внутренний интерфейс, чтобы его там подхватил нат и сделал обратное преобразование?



"ipfw reverse nat"
Отправлено Vs_ , 25-Май-11 23:52 
>> но в таблице маскировки/демаскировки пакетов должна соответствовать запись?
>> согласно описанию reverse nat, нат нужно вешать на внутренний интерфейс и тогда
>> все представления входящий/исходящий переворачиваются. По аналогии прямого nat, на nat
>> мы вешаем как исходящий поток, так и входящий, если смотреть со
>> стороны роутера.
> ответный пакет пришел. пришел на внешний интерфейс.

Хорошо, согласен. А есть ли предложения?

> С какой радости он решит выйти наружу из раутера через внутренний интерфейс,
> чтобы его там подхватил нат и сделал обратное преобразование?

а почему пакет должен выйти наружу через внутренний интерфейс? (вернее если быть точным пакет уйдет с внутреннего через внешний) маршрутизация подскажет куда нужно идти.


"ipfw reverse nat"
Отправлено Vs_ , 26-Май-11 08:46 
>[оверквотинг удален]
>>> все представления входящий/исходящий переворачиваются. По аналогии прямого nat, на nat
>>> мы вешаем как исходящий поток, так и входящий, если смотреть со
>>> стороны роутера.
>> ответный пакет пришел. пришел на внешний интерфейс.
> Хорошо, согласен. А есть ли предложения?
>> С какой радости он решит выйти наружу из раутера через внутренний интерфейс,
>> чтобы его там подхватил нат и сделал обратное преобразование?
> а почему пакет должен выйти наружу через внутренний интерфейс? (вернее если быть
> точным пакет уйдет с внутреннего через внешний) маршрутизация подскажет куда нужно
> идти.

Все правильно. для пакета нужно подсказать, что прийти он должен на внутренний интерфейс как транзитный. Дальше правилом повесить на nat. Работает, если сделать следующим образом:
ipfw nat 1 config ip <IP>
IP должен быть отличным от ip-адреса внутреннего интерфейса. Например, какой нибудь из того же диапазона адресов. Ну или собственно вообще какой угодно, главное чтобы маршруты правильно были настроены.


"ipfw reverse nat"
Отправлено Vs_ , 27-Май-11 13:37 
>[оверквотинг удален]
>> а почему пакет должен выйти наружу через внутренний интерфейс? (вернее если быть
>> точным пакет уйдет с внутреннего через внешний) маршрутизация подскажет куда нужно
>> идти.
> Все правильно. для пакета нужно подсказать, что прийти он должен на внутренний
> интерфейс как транзитный. Дальше правилом повесить на nat. Работает, если сделать
> следующим образом:
> ipfw nat 1 config ip <IP>
> IP должен быть отличным от ip-адреса внутреннего интерфейса. Например, какой нибудь из
> того же диапазона адресов. Ну или собственно вообще какой угодно, главное
> чтобы маршруты правильно были настроены.

сорри
ipfw nat 1 config ip <IP> reverse
а вот если дальше сделать redirect_addr....