привет.С помощью правила ipnat
rdr de0 0.0.0.0/0 port 137 -> 192.168.100.8 port 137 tcp/udpможно перенаправить пакет с одного интерфейса (например, внешнего) на указанный адрес в локальной сети, причем адрес источника не изменится...
С помощью правил ipnat
map de0 192.168.100.0/24 -> 0/32 portmap tcp/udp 20000:30000можно натить внутренние адреса на 1 публичный ip-адрес...
А как сделать нат с определенного порта между двумя локальными интерфейсами? то есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP порт между ними, но чтобы адрес натился?...
Спасибо.
>А как сделать нат с определенного порта между двумя локальными интерфейсами? то
>есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP
>порт между ними, но чтобы адрес натился?...
НАТ с одной сети на другую (и обратно) + роуты. rdr и прочая ненужны в данной ситуации.>
>Спасибо.
>
>>А как сделать нат с определенного порта между двумя локальными интерфейсами? то
>>есть к роутеру подключены 2 ЛВС, нужно перебросить всего 1 TCP
>>порт между ними, но чтобы адрес натился?...
>НАТ с одной сети на другую (и обратно) + роуты. rdr и
>прочая ненужны в данной ситуации.
>
>>
>>Спасибо.для одного порта можно указать так?
map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234
где ed0 - интерфейс с ЛВС1
192.168.0.0/24 - адресное пространство ЛВС1
192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
1234 - порт, который нужно перебросить
>для одного порта можно указать так?
>
>map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234
>
>где ed0 - интерфейс с ЛВС1
> 192.168.0.0/24 - адресное пространство ЛВС1
> 192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
> 1234 - порт, который нужно перебросить
Да. И в обратную сторону такое же правило.
>
>>для одного порта можно указать так?
>>
>>map ed0 192.168.0.0/24 -> 192.168.1.1/32 portmap tcp/udp 1234:1234
>>
>>где ed0 - интерфейс с ЛВС1
>> 192.168.0.0/24 - адресное пространство ЛВС1
>> 192.168.1.1 - адрес интерфейса, смотрящего в ЛВС2
>> 1234 - порт, который нужно перебросить
>
>
>Да. И в обратную сторону такое же правило.насколько я понимаю, ipnat создает свою таблицу соответствий, зачем же тогда указывать обратное правило???
и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не будет ли у меня заворачиваться весь трафик из локальной сети в ipnat ? например, пакеты, предназначенные для самого роутера...
>насколько я понимаю, ipnat создает свою таблицу соответствий, зачем же тогда указывать
>обратное правило???
Если у Вас инициация идет только с одной стороны - то достаточно и так. Если с другой стороны тоже возможна инициация - тогда эти пакеты не подпадут под это правило и ничего не получится. "Ответное" правило создается только для ОТВЕТОВ. То бишь с теми же портами и ИПшниками что и инициирующий пакет.>
>и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не
>будет ли у меня заворачиваться весь трафик из локальной сети в
>ipnat ? например, пакеты, предназначенные для самого роутера...А Вы детализируйте - пропишите там и from и to - тогда пакеты для самого роутера не попадут под правило. К тому же такие пакеты никогда не появятся на противоположном интерфейсе, так что не попадут и в случае без уточнения.
>Если у Вас инициация идет только с одной стороны - то достаточно
>и так. Если с другой стороны тоже возможна инициация - тогда
>эти пакеты не подпадут под это правило и ничего не получится.
>"Ответное" правило создается только для ОТВЕТОВ. То бишь с теми же
>портами и ИПшниками что и инициирующий пакет.инициализация соединения только с одной стороны...
>>и в случае работы ipnat и ipfw - что отрабатывает первым?.. Не
>>будет ли у меня заворачиваться весь трафик из локальной сети в
>>ipnat ? например, пакеты, предназначенные для самого роутера...>А Вы детализируйте - пропишите там и from и to - тогда
>пакеты для самого роутера не попадут под правило. К тому же
>такие пакеты никогда не появятся на противоположном интерфейсе, так что не
>попадут и в случае без уточнения.где указать? в ipfw??? это в случае natd можно было указать необходимые ip-адреса и порты, дивертить их пакеты в natd и потом дальше обрабатывать в файрволе
.... А с ipnat как тогда???
>>Есл
>>А Вы детализируйте - пропишите там и from и to - тогда
>>пакеты для самого роутера не попадут под правило. К тому же
>>такие пакеты никогда не появятся на противоположном интерфейсе, так что не
>>попадут и в случае без уточнения.
>
>где указать? в ipfw??? это в случае natd можно было указать необходимые
>ip-адреса и порты, дивертить их пакеты в natd и потом дальше
>обрабатывать в файрволе
>.... А с ipnat как тогда???наверное, Вы имели ввиду конструкцию вида
map ed0 from 192.168.0.0/24 to any -> 192.168.1.1/32 portmap 1234:1234
в этом случае я могу конкретизировать дальше, то есть указать выполнять трансляцию только для определенного ip-адреса и только на определенный ip-адрес, а не для всей локальной сети, например, так?
map ed0 from 192.168.0.123 to 192.168.1.123 -> 192.168.1.1/32 portmap 1234:1234
>наверное, Вы имели ввиду конструкцию вида
>
>map ed0 from 192.168.0.0/24 to any -> 192.168.1.1/32 portmap 1234:1234Именно.
>в этом случае я могу конкретизировать дальше, то есть указать выполнять трансляцию
>только для определенного ip-адреса и только на определенный ip-адрес, а не
>для всей локальной сети, например, так?
>
>map ed0 from 192.168.0.123 to 192.168.1.123 -> 192.168.1.1/32 portmap 1234:1234
Ну не обязательно до конкретных ИП. Можно и до сетей. Но в принципе если есть возможность (т.е. таких вариантов не 100 штук) лучше указать конкретные ИП.
>Ну не обязательно до конкретных ИП. Можно и до сетей. Но в
>принципе если есть возможность (т.е. таких вариантов не 100 штук) лучше
>указать конкретные ИП.да мне нужно для 1-го единственного ip-адреса в ЛВС1 сделать трансляцию адреса на 1 единственный ip-адрес в ЛВС2 и только для определенного порта.... Так что portmap тут не при чем, так как отвечает совсем за другое (массив портов для назначения при трансляции адресов)
>да мне нужно для 1-го единственного ip-адреса в ЛВС1 сделать трансляцию адреса
>на 1 единственный ip-адрес в ЛВС2 и только для определенного порта....
>Так что portmap тут не при чем, так как отвечает совсем
>за другое (массив портов для назначения при трансляции адресов)Извиняюсь, невнимательность проявил. portmap тут дейсвительно не при чем, а в остальном правило будет работать. Если мешает форвард остальных портов - пожно перекрыть это правилами ipfw.
> Если мешает форвард остальных портов - пожно перекрыть
>это правилами ipfw.я все больше склоняюсь к тому, что нужно юзать pf...
1. ipfw + natd - понятно, но криво (имхо), да к тому же natd находится в userland а не в kernel
2. ipfw + ipnat - это ipfw + ipfilter (все разрешено) + ipnat. Мне лично ipnat не кажется прозрачным и легким в описании правил, да и наличие двух firewall на одной машине лишнее (опять же имхо)
3. pf - все в одном (подобие iptables)
буду тестить...Спасибо.
>я все больше склоняюсь к тому, что нужно юзать pf...
>1. ipfw + natd - понятно, но криво (имхо), да к тому
>же natd находится в userland а не в kernel
Ну не то что б криво, но некрасиво.>2. ipfw + ipnat - это ipfw + ipfilter (все разрешено) +
>ipnat. Мне лично ipnat не кажется прозрачным и легким в описании
>правил, да и наличие двух firewall на одной машине лишнее (опять
>же имхо)
Лично для себя не вижу места этой подсистеме. При наличии следующего пункта.>3. pf - все в одном (подобие iptables)
Лучший выбор, КМК. Там, кстати, для НАТа можно указывать порт. :)>
>
>буду тестить...
>
>Спасибо.