NAT
Трансляция сетевых адресов, сокращённо NAT – это технология преобразования IP-адресов внутренней сети «LAN» в IP-адреса внешней сети «WAN».
NAT настраивается посредством создания правил.
Для просмотра конфигурации NAT необходимо в режиме конфигурирования ввести команду «show nat».
Правила NAT
ARMA Стена поддерживает создание правил NAT следующих типов <typeNAT>: «source», «destination».
При создании правил NAT возможно применять следующие атрибуты:
«outbound-interface» – применяется только для трансляции адреса отправителя. Позволяет указывать интерфейс, используемый для исходящего внешнего трафика, к которому должны применяться правила NAT:
set nat source rule <num> outbound-interface name <iname>где <iname> – имя интерфейса.
Поддерживается указание групп интерфейсов:
set nat source rule <num> outbound-interface group <grname>где <grname> – имя группы интерфейсов.
Поддерживается указание имени интерфейса или группы интерфейсов с использованием знака «!» для инверсии или подстановочного символа «*», например:
«!eth0» – интерфейсы кроме «eth0»;
«eth2*» – интерфейсы, с именами начинающимися на «eth2».
«inbound-interface» – применяется только для трансляции адреса получателя. Позволяет указывать входящий интерфейс для трафика, к которому должны применяться правила NAT:
set nat destination rule <num> inbound-interface name <iname>Поддерживается указание групп интерфейсов:
set nat destination rule <num> inbound-interface group <grname>где <grname> – имя группы интерфейсов.
Поддерживается указание имени интерфейса или группы интерфейсов с использованием знака «!» для инверсии или подстановочного символа «*».
«protocol» – позволяет указывать протоколы передачи трафика, к которому должны применяться правила NAT:
set nat <typeNAT> rule <num> protocol [<protocolname> | tcp_udp | all | <number>]где:
<typeNAT> – тип NAT;
<protocolname> – протокол, определённый в «/etc/protocols»;
«tcp_udp» – протоколы TCP и UDP;
«all» – все протоколы;
<number> – номер протокола. Возможно указание значения в диапазоне от «0» до «255».
По умолчанию правило относится ко всем протоколам.
«source» – позволяет указывать адрес и порт источника трафика, к которому должны применяться правила NAT:
set nat <typeNAT> rule <num> source address [<IPv4-address> | <addressrange>] set nat <typeNAT> rule <num> source port [<portnumber> | <portname> | <rangenumbers>]где:
<IPv4-address> – IPv4-адрес. Возможно указание в следующих форматах: <x.x.x.x> и <x.x.x.x/x>;
<addressrange> – диапазон адресов, разделённых знаком «-». Возможно указание в формате <x.x.x.x>-<x.x.x.x>;
<portnumber> – номер порта источника. Возможно указание значения в диапазоне от «1» до «65535»;
<portname> – имя, определённое в «/etc/services»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Примечание
Поддерживается указание нескольких значений портов, разделённых знаком «,», например:
set nat <typeNAT> rule <num> source port http,1100-1200,25
«destination» – позволяет указывать адрес и порт получателя трафика, к которому должны применяться правила NAT:
set nat <typeNAT> rule <num> destination address <x.x.x.x> set nat <typeNAT> rule <num> destination port [<portnumber> | <portname> | <rangenumbers>]По умолчанию, если адрес и порт получателя трафика не указаны, правило NAT будет применяться к любому адресу и порту.
«translation» – позволяет указывать адрес и порт, используемые при замене адресной информации в пакете:
set nat source rule <num> translation address [masquerade | <IPv4-address> | <addressrange>] set nat destination rule <num> translation address [<IPv4-address> | <addressrange>] set nat destination rule <num> translation port [<number> | <rangenumbers>] set nat destination rule <num> translation redirect port [<portnumber> | <rangenumbers>]где:
«masquerade» – NAT по основному адресу «outbound-interface». Поддерживается указание только для типа «source»;
<IPv4-address> – IPv4-адрес. Возможно указание в следующих форматах: <x.x.x.x> и <x.x.x.x/x>;
<addressrange> – диапазон адресов, разделённых знаком «-». Возможно указание в формате <x.x.x.x>-<x.x.x.x>;
<portnumber> – порт для перенаправления на локальный хост;
<number> – номер порта. Возможно указать значение в диапазоне от «1» до «65535»;
<rangenumbers> – диапазон портов, разделённых знаком «-».
Для включения логирования правила NAT необходимо ввести следующую команду:
set nat <typeNAT> rule <num> log
Копирование правила NAT
Для копирования правила NAT необходимо ввести следующие команды:
[edit] admin@ngfwos# edit nat <typeNAT> [edit nat <typeNAT>] admin@ngfwos# copy rule <num1> to rule <num2>где:
<num1> – идентификатор оригинального правила;
<num2> – идентификатор создаваемой копии правила.
Переименование правила NAT
Для переименования правила NAT необходимо ввести следующие команды:
[edit] admin@ngfwos# edit nat <typeNAT> [edit nat <typeNAT>] admin@ngfwos# rename rule <num1> to rule <num2>где:
<num1> – изначальный идентификатор правила;
<num2> – идентификатор переименованного правила.
Примеры создания правил NAT
Преобразование адреса источника
В качестве примера приведён список команд для создания правила NAT, преобразующего адрес источника:
set nat source rule 11 outbound-interface eth0 set nat source rule 11 source address 192.168.43.0/24 set nat source rule 11 translation address masqueradeгде:
«eth0» – интерфейс с доступом к сети Интернет;
«192.168.43.0/24» – адрес сети LAN в формате CIDR.
Переадресация портов
В качестве примера приведён список команд для создания правила NAT, которое перенаправляет HTTP-трафик по протоколу «TCP» с порта «8080» интерфейса «eth0» на порт «80» внутреннего веб-сервера с IP-адресом «192.168.3.112»:
set nat destination rule 21 description 'Port Forward: HTTP to 192.168.3.112' set nat destination rule 21 destination port 8080 set nat destination rule 21 inbound-interface name eth0 set nat destination rule 21 protocol tcp set nat destination rule 21 translation port 80 set nat destination rule 21 translation address 192.168.3.112
Один-к-одному
Статический NAT «Один-к-одному» сопоставляет один внешний IP-адрес, в большинстве случаев общедоступный, с одним внутренним IP-адресом, в большинстве случаев частным.
В качестве примера приведён ARMA Стена, сетевые интерфейсы которого настроены следующим образом:
[edit] admin@ngfwos# show interfaces ethernet eth0 { address 203.0.113.87/24 description WAN hw-id 00:50:56:bd:ca:9e } ethernet eth1 { address 192.168.2.1/24 description LAN hw-id 00:50:56:bd:f5:cd } loopback lo { }
Для создания правила NAT «один-к-одному» следует ввести следующие команды:
set nat static rule 10 destination address '203.0.113.87' set nat static rule 10 inbound-interface 'eth0' set nat static rule 10 translation address '192.168.2.11' # IP-адрес ПК пользователя.