Настройка NAT в FreeBSD 8 c помощью ipfw nat

В данной статье мы затронем такую достаточно новую ( c 7 версии FreeBSD начиная) возможность как настройку NAT (трансляцию адресов) с помощью полноценно ядерного (находящегося в пространстве ядра) НАТА как ipfw nat тем более что он является частью стандартного для FreeBSD файервола ipfw (по моему мнению это самый простой, гибкий, удобный и эффективный firewall) .

Это не первая моя статья посвященная настройке роутера (маршрутизатора) на базе FreeBSD 8 тут описан более простой способ реализации с помощью natd. Трансляция адресов с помощью natd подойдет вам только если вы планируете пропускать через него не большие пиковые нагрузки трафика, больше 40-50 мбит/c от него будет получить проблематично. ipfw nat имеет общую библиотеку с natd и в принципе почти полностью повторяет все его функции, хоть и с некоторыми особенностями. Важная особенность что ему вполне по силам пропускать через себя свыше 800 мбит/c.

Рассматриваем обыкновенную ситуацию FreeBSD 8.1 два интерфейса fxp0 (192.168.30.1) внутри сеть fxp1 (1.1.3.2) внешний реальный ip.

Итак включаем ipfw nat и Dummynet(для управления трафиком) в ваше ядро, – здесь моя статья о сборке собственного ядра FreeBSD.

ident alanNAT
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ=”1000″


Редактируем файлик rc.conf


gateway_enable=”YES”
ifconfig_fxp0=”inet 192.168.30.1 netmask 255.255.255.0″
ifconfig_fxp1=”inet 1.1.3.2 netmask 255.255.255.0″
defaultrouter =”1.1.3.1″
firewall_enable=”YES”
firewall_nat_enable=”YES”
dummynet_enable=”YES”
firewall_type=”/etc/firewall-nat”


Теперь необходимо написать firewall-nat (правила файервола и nat-a) не которые ссылаеться наш rc.conf.
Просетйший пример (если кроме трансляции адресов (nat) от файервола больше ничего не требуеться).
add 10 allow ip from any to any via fxp0
nat 1 config log if fxp1 reset same_ports
add 100 nat 1 ip from any to any via fxp1


Все.
Проверить работу можно командой
ipfw nat 1 show


Удачи

http://ifreebsd.org/freebsd/настройка-natтрансляция-адресов-маскар/

Обновлено: 12.03.2015