Включение NAT


Демон Native Address Translation имеется в дистрибутиве FreeBSD'3.4, ничего дополнительно устанавливать не надо. В документации к нему написано, что возможность NAT появилась во FreeBSD'2.2 вместе с опцией "divert (4) socket".

Прежде, чем устанавливать NAT, надо четко уяснить:

Для начала надо пересобрать ядро с опциями

	options IPFIREWALL
	options IPDIVERT
Я еще добавляю
	options IPFIREWALL_DEFAULT_TO_ACCEPT
дабы не оказаться без доступа по сети - по умолчанию FireWall запрещает все, и надо разрешать необходимое отдельно.

Как пересобрать ядро, смотри тут

Необходимо заставить систему при загрузке выполнять

	sysctl -w net.inet.ip.forwarding=1
это делается командой
	gateway_enable=YES
в /etc/rc.conf.

Если при запуске natd используется ключ -n или -interface, необходимо сконфигурировать интерфейсы; впрочем, это обычно делается еще при инсталляции системы.

В /etc/services должна присутствовать строка

	natd    8668/divert     # Network Address Translation socket
Это задает порт по умолчанию (после установки FreeBSD'3.4 эта строка уже имеется). (В /etc/inetd.conf ничего писать не надо - natd не запускается как сервис.)

В простейшем случае natd запускается командой

	natd -interface сетевой_интерфейс
(имя сетевого_интерфейса можно посмотреть в /etc/rc.conf в переменной ifconfig_имя_сетевого_интерфейса). Кроме того, надо указать FireWall'у передавать IP-пакеты NAT-демону:
	/sbin/ipfw -f flush
	/sbin/ipfw add divert natd all from any to any via сетевой_интерфейс
	/sbin/ipfw add pass all from any to any
Для того, чтобы эти команды выполнялись при загрузке машины, в /etc/rc.conf надо прописать
	firewall_enable="YES"
	firewall_type="open"
	natd_enable="YES"
	natd_interface="сетевой_интерфейс"


Пример конфигурации rc.conf смотри здесь


оглавление

Hosted by uCoz