неділя, 27 березня 2011 р.

IPFW NAT в FreeBSD 8

Сегодня речь пойдет о NAT, а точнее о kernel nat (IPFIREWALL_NAT). На новом сервере решил опробовать свеженькую FreeBSD 8 для организации выхода в интернет.

Изначально о встроенном в ядро NAT не помышлял и cделал по старинке, использую демон NATD. Всё замечательно заработало, однако при запуске сервера в реальную работу вылезло одно не приятное "но".

При подключении по SSH на сервер наблюдались жуткие тормоза программ, использующих псевдографику, например MC прорисовывал панельки в течение минуты! Такая же ситуация наблюдалась и в sysinstall. Медленный заход в MC мог наблюдаться например, если не правильно указаны или не верно настроены DNS адреса, но здесь был не тот случай, да и характер прорисовки экрана иной. Причем локально с консоли всё работало шустро. Выяснилось, что при отключении NATD скорость работы по SSH восстанавливается.

Честно говоря природу данного явления так и не выяснил. Зато решил опробовать встроенный в ядро NAT (эта возможность появилась начиная c 7 версии FreeBSD).

Погуглив, выяснил, что IPFW NAT имеет общую библиотеку с natd и в принципе почти полностью повторяет все его функции и ещё ему по силам пропускать через себя трафик свыше 800 мбит/c. Хватит слов - к делу. Собираем ядро, добавив следующие опции:

# IPFW
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options DUMMYNET
# IPFW kernel nat support
options IPFIREWALL_NAT
options LIBALIAS

Мы включили ipfw nat и dummynet (для управления трафиком) в наше ядро. Далее собираем и устанавливаем новое ядро, после чего добавляем необходимые строчки в /etc/rc.conf.

Приведу простой пример организации шлюза на базе FreeBSD 8. В примере интерфейс, смотрящий в Интернет, будет иметь имя em0

...
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="em0"
firewall_type="OPEN"
...

В результате получаем простейший интернет шлюз с NAT. Firewall полностью открыт. О настройке правил IPFW и пробросе портов расскажу в одной из следующих статей. Кстати проблемы с программами, использующими псевдографику, о которых писал выше, исчезли.

Дополнительные материалы:
Продолжение статьи Проброс портов в ядерном IPFW NAT.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments