Сегодня речь пойдет о 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.
Немає коментарів:
Дописати коментар