NAT - реализация с помощью IPNat

Версия для печатиОтправить другуPDF version

На самом деле в настройке трансляции адресов нету ничего сложного. Лично я рекомендую использовать IPNat, или же nat в ipfw, вкомпилированный в ядро. Они довольно гибкие в настройке, производительны и относительно не "нагружают" систему. В даной статье рассмотрим организацию трансляции адресов с помощью IPNat.

Если верить /etc/defaults/rc.conf, то конфигурационным файлом IPNat выступает /etc/ipnat.rules. Однако, по умолчанию, этот файл отсутствует в системе. Соответственно его нужно создать:

# touch /etc/ipnat.rules

Весь файл конфигурации может состоять всего из одной строки (довольно часто этого достаточно) 

# cat /etc/ipnat.rules

map fxp0 192.168.10.0/24 -> 195.3.159.250

где

fxp0 - это интерфест, который "смотрит" в Интернет;

192.168.10.0/24 - "серая" сеть, которую будем транслировать;

195.3.159.250 - "белый" IP, выданный провайдером. В Интернет вся сеть будет выходить от имени этого IP.

Далее необходимо обеспечить, чтобы IPNat запускался вместе с системой. Для этого добавим следующие строки в /etc/rc.conf:

# echo '# IPNat ' >> /etc/rc.conf
# echo 'ipnat_enable="YES"' >> /etc/rc.conf
# echo 'ipnat_program="/sbin/ipnat -CF -f"' >> /etc/rc.conf
# echo 'ipnat_rules="/etc/ipnat.rules"' >> /etc/rc.conf

 Далее запускаем IPNat стартовым скриптом (неохота весь сервер перегружать ради одной службы )

# sh /etc/rc.d/ipnat start

Installing NAT rules.
0 entries flushed from NAT table
0 entries flushed from NAT list

 Теперь необходимо добавить наши правила трансляции:

# /sbin/ipnat -CF -f /etc/ipnat.rules
0 entries flushed from NAT table
0 entries flushed from NAT list

Проверить, добавились ли правила NAT можно следующей командой:

# ipnat -l
List of active MAP/Redirect filters:
map fxp0 192.168.10.0/24 -> 195.3.159.250/32
 
List of active sessions:

Если у вас уже есть локальная сеть за этим маршрутизатором, то в ответ еще выбросит и довольно длинный листинг активных сессий.

Казалось бы все... Но есть еще один интересный момент, который стоило бы рассмотреть - FTP (который отказывается работать).  Это обусловлено тем, что в ходе установки соединения, по которому будут передаваться данные, указывается IP-адрес клиента, который в нашем случае принадлежит частной сети.
 

"Лечится" это очень просто.  ipnat способен в таких случаях быть "прокси-сервером" - то есть "ковыряться" в данных, передаваемых FTP-серверу и от него, и транслировать адреса из внутренних во внешние и наоборот. Для этого используется такое правило:

map fxp0 192.168.10.0/24 -> 195.3.159.250 proxy port ftp ftp/tcp

proxy-правило должно обязательно стоять перед другими правилами (за исключением redirect).

На этом настройку трансляции адресов на маршрутизаторе с помощью IPNat можно считать оконченой. Следует отметить, что IPNat позволяет транслировать разные подсети на разные IP-адреса одновременно, поддерживает редирект портов и тд., то есть является довольно мощным инструментом.

Голосов пока нет

не работает

 

Сделал всё как здесь описано.

У меня даже пинг на внешку не проходит. Подробнее. Фря - 2 сетевки. внешка 192.168.10.1 /24 defaultrouter 192.168.10.1  днс 192.168.10.1  и внутреняя 192.168.20.1.24 .  И есть клиент хп. там одна сетёвка  с ip 192.168.20.3  все выдалось по дхцп от фря сервера,  локалка робит, но с клиента на внешку никак пинг не идет. 

map wan  192.168.20.0/24 -> 192.168.10.1  сделал.не помогает. В чём может быть загвозка ??

 

Странно, сам не раз настраивал по этой статье...

  1. Для начала попробуйте "передернуть" IPNat: /sbin/ipnat -CF -f /etc/ipnat.rules
  2. Проверьте, чтобы файл /etc/ipnat.rules заканчивался пустой строкой
  3. Проверьте, что для хп шлюзом по умолчанию выступает 192.168.20.1
  4. tcpdump-ом проверьте, действительно ли на внешнем интерфейсе присутствуют пакеты с IP 192.168.20.3

Напишите, что и как...

 

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература