На самом деле в настройке трансляции адресов нету ничего сложного. Лично я рекомендую использовать 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 |
Далее запускаем IPNat стартовым скриптом (неохота весь сервер перегружать ради одной службы )
# sh /etc/rc.d/ipnat start Installing NAT rules. |
Теперь необходимо добавить наши правила трансляции:
# /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 сделал.не помогает. В чём может быть загвозка ??
Странно, сам не раз настраивал по этой статье...
Напишите, что и как...