NAT

Трансляция сетевых адресов, сокращённо NAT – это технология преобразования IP-адресов внутренней сети «LAN» в IP-адреса внешней сети «WAN».

NAT настраивается посредством создания правил.

Для просмотра конфигурации NAT необходимо в режиме конфигурирования ввести команду «show nat».

Правила NAT

ARMA Стена поддерживает создание правил NAT следующих типов <typeNAT>: «source», «destination».

При создании правил NAT возможно применять следующие атрибуты:

  1. «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».

  1. «inbound-interface» – применяется только для трансляции адреса получателя. Позволяет указывать входящий интерфейс для трафика, к которому должны применяться правила NAT:

set nat destination rule <num> inbound-interface name <iname>

Поддерживается указание групп интерфейсов:

set nat destination rule <num> inbound-interface group <grname>

где <grname> – имя группы интерфейсов.

Поддерживается указание имени интерфейса или группы интерфейсов с использованием знака «!» для инверсии или подстановочного символа «*».

  1. «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».

По умолчанию правило относится ко всем протоколам.

  1. «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
  1. «destination» – позволяет указывать адрес и порт получателя трафика, к которому должны применяться правила NAT:

set nat <typeNAT> rule <num> destination address <x.x.x.x>
set nat <typeNAT> rule <num> destination port [<portnumber> | <portname> | <rangenumbers>]

По умолчанию, если адрес и порт получателя трафика не указаны, правило NAT будет применяться к любому адресу и порту.

  1. «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-адрес ПК пользователя.