Обсуждение статьи тематического каталога: Построение шлюза с трансляцией адресов на двух интерфейсах во FreeBSD (nat ipfw freebsd)Ссылка на текст статьи: http://www.opennet.ru/base/net/freebsd_2x_natd.txt.html
Ниосилил!Непонятно через какой интерфейс поднят VPN?
Нафига делать такие огромные стартовые скрипты?
когда можно обойтись тремя конфигами (двух натов и firewall) и запускать с rc.conf и rc.local.
interface virtualniy. on sozdaetsya progoy pod nazvaniem mpd.
Непонятно, зачем делать через natd+ipfw, когда теперь есть pf?
Извиняюсь за глупый вопрос, но что такое pf ?
И если можно узнать токак построить на базе этого интернет и локалку ?
согласен с Saenara, накой хрен юзать старые оглобли natd + ipfw, если существует pf?
Еще есть ipfilter, который не только под *BSD РАБОТАЕТ ;)
в который раз убеждаюсь PF - весчь! А тут такое наворочено, что не дай бог!
pf есть, но в 6-ой ветке natd уже в ядре, а это большая перспектива.
Отличная статья!
А как быть в такой ситуации?
А про IPNAT все дружно забыли?
в отличие от монстра, описанного в статье, он спокойно НАТит на два интерфейса, и не требует, в отличие от NATD, двух переключений контекста на каждый пакет. Кстати, он не требует, чтобы с ним вместе запускался ipf, и спокойно сосуществует с ipfw. А правила НАТа можно менять по ходу дела.
Т.е. вся мазута в статье свелать бы к отработке правилаmap <extNIC> from <intranet> to any -> <extNIC-address>/32
и добавлению при поднятии ng0 из mpd правила
map ng0 from <intranet> to <куда там через VPN ходим> -> <ng0-address>/32что спокойно добавляется (и убирается при падении VPN) из скрипта в /usr/local/etc/mpd/, ну, например, ng0-up и ng0-down
А как быть если ext_ip inet_ip задаются dhcp сервером???
Скрипты ng*-up и ng*-down вызываются из mpd с параметрами - напримерexec: /usr/local/etc/mpd/ng1-up ng1 inet 192.168.2.2 192.168.2.1 MyConnection
exec: /usr/local/etc/mpd/ng1-down ng1 inet MyConnectionтак что наличие или отсутствие DHCP не влияет.
всё отлично работает )
>3. Созданиемодификация rc скриптов.
>Итак, настало время подумать о запуске второго экземпляра natd.
>Запускать его будем аналогично основному нату, поэтому делаем…
>#cp /etc/rc.d/natd /etc/rc.d/natd2
>… читаем man rc, man rc.subr, HANDBOOK и правим /etc/rc.d/natd2….далее поскипано
зачем вы это делаете?
есть более простой способ и правильный
читаем man natd
там видим пример указанный разработчиками:The way this works is that natd.conf builds two instances of the aliasing
engine.In addition to these instances’ private divert(4) sockets, a third socket
called the “globalport” is created; packets sent to natd via this one
will be matched against all instances and translated if an existing entry
is found, and unchanged if no entry is found. The following lines are
placed into /etc/natd.conf:log
deny_incoming
verboseinstance default
interface sis0
port 1000
redirect_port tcp 10.0.0.2:122 122instance sis2
interface sis2
port 2000
redirect_port tcp 10.0.0.2:122 122globalport 3000
и ничего копировать и править не надо
Настроил данный конфиг, перестали открываются сайты. Просто белый экран и лоадер "0%" и может висеть так до бесконечности. Может у кого была такая проблема, подскажите решение пожалуйста!