Структура создания правила NAT#
NAT настраивается в качестве набора правил. Каждое правило предписывает NAT осуществить требуемое преобразование адресов. Правила NAT нумеруются и исполняются в соответствующем порядке.
Следует учесть, что в настроенном правиле NAT номер является неизменяемым идентификатором. Номер правила NAT не может быть изменен так же, как, например, изменяются атрибуты правила. Для изменения номера правила NAT следует удалить правило и создать его заново с новым номером. Также можно воспользоваться командами copy
и rename
, позволяющими копировать и переименовывать имена соответствующих узлов конфигурации.
Примечание
Следует оставлять интервалы между номерами правил NAT
По этой причине следует назначать правилам NAT номера, оставляя пустые интервалы между номерами. Например, можно создать набор правил NAT с номерами 10, 20, 30 и 40. Таким образом, если позже потребуется добавить еще одно правило для выполнения в конкретном месте в последовательности правил, это будет легко сделать без удаления текущего набора правил.
Схема, использующаяся в примерах, представлена ниже
Узел конфигурации#
Для создания или изменения правила NAT используются команды set
и узел конфигурации service nat ipv4
с указанием номера, который будет являться идентификатором правила; см. пример ниже:
Пример – Создание правила NAT#
Настройка типа NAT#
Существует возможность создания правил преобразования сетевых адресов отправителя, преобразования сетевых адресов получателя и правил маскировки (типы: source (SNAT), destination (DNAT) или masquerade ("маскировка")). Для осуществления двунаправленного преобразования сетевых адресов следует определить два правила: одно для SNAT и одно для DNAT. В примере ниже определяется правило SNAT с номером 10.
Пример – Создание правила преобразования сетевого адреса отправителя (SNAT)#
Настройка критериев фильтрации трафика#
Фильтры позволяют контролировать, к каким пакетам следует применять правила преобразования сетевых адресов. Для правила NAT могут быть созданы фильтры трех видов: на основе протоколов (protocols), на основе адреса отправителя (source), а также на основе адреса получателя (destination).
Фильтр на основе протоколов#
Параметр protocols
позволяет указать сетевые протоколы, к пакетам которых следует применять правила преобразования сетевых адресов. Таким образом, адреса будут изменяться только для пакетов указанных протоколов. По умолчанию определены все (all) протоколы.
В примере ниже настраивается применение правила 15 к пакетам протокола TCP. Преобразование сетевых адресов будет осуществляться только для пакетов протокола TCP.
Пример – Фильтрация пакетов на основе протоколов#
Фильтр на основе данных отправителя#
Параметр source
позволяет фильтровать пакеты на основе адреса отправителя и/или номера сетевого порта. Преобразование сетевых адресов будет применяться только к сетевым пакетам, адрес отправителя и/или номер сетевого порта которых совпадает с указанным. (Указание номера сетевого порта является необязательным.)
Если фильтр на основе адреса отправителя не определен, по умолчанию преобразование сетевых адресов применяется к пакетам с любым адресом отправителя и/или номером сетевого порта.
В примере ниже настраивается применение правила 10 только к пакетам, адрес отправителя которых равен 192.168.11.1.
Пример – Фильтрация на основе адреса отправителя#
В примере ниже настраивается применение правила 15 к пакетам, адрес отправителя которых принадлежит сети 192.168.11.0/24, а номер сетевого порта отправителя равен 80.
Пример – Фильтрация на основе сети отправителя и номера сетевого порта#
Фильтр на основе адреса получателя#
Параметр destination
позволяет фильтровать пакеты на основе адреса и/или номера сетевого порта получателя. Преобразование сетевых адресов будет применяться только к сетевым пакетам, адрес и номер сетевого порта получателя которых совпадает с указанным. (Указание номера сетевого порта является необязательным.)
Если фильтрация на основе адреса получателя не определена, по умолчанию преобразование сетевых адресов применяется к пакетам с любым адресом и номером сетевого порта получателя. В примере ниже настраивается применение правила 10 к пакетам, адрес получателя которых равен 192.168.11.254.
Пример – Фильтрация на основе адреса получателя#
Настройка адресов преобразования#
Параметры inside-address
и outside-address
позволяют определить вид преобразования, которое будет осуществляться в правиле. Они определяют данные, используемые для замены исходных адресов сетевых пакетов.
Внутренний адрес#
Параметр inside-address
используется для настройки преобразования сетевого адреса получателя (DNAT). Позволяет определить адрес, который будет использоваться для замены IP-адреса получателя входящего сетевого пакета. Также может использоваться преобразование номеров портов (port translation), в этом случае номер сетевого порта указывается как часть определяемого внутреннего адреса.
В примере ниже настраивается применение правила 20, которое будет подставлять адрес 192.168.10.1 в качестве IP-адреса входящего пакета для пакетов, удовлетворяющих условиям, определенным в правиле.
Пример – Установка внутреннего IP-адреса для настройки DNAT#
В примере ниже показано применение правила 15, которое будет подставлять адреса от 192.168.10.1 до 192.168.10.3 в качестве IP-адресов получателя для входящих пакетов, удовлетворяющих условиям правила.
Пример – Установка диапазона внутренних адресов для настройки DNAT#
Внешний адрес#
Параметр outside-address
используется для настройки преобразования сетевого адреса отправителя (SNAT). Он позволяет определить адрес, который будет использоваться для замены IP-адреса отправителя исходящих пакетов. Также может использоваться преобразование номеров портов (port translation), номер сетевого порта указывается как часть определяемого внешнего адреса.
Необходимо учитывать следующее:
- Указание внешнего адреса является обязательным для правил преобразования отправителя (SNAT).
- Внешним адресом должен быть один из адресов, назначенных выходному интерфейсу.
- Внешний адрес не может быть указан для правил "маскировки" (тип masquerade). Так как при маскировке используется основной IP-адрес выходного интерфейса. Однако для правил "маскировки" (тип masquerade) может быть указан номер сетевого порта.
В примере ниже настраивается применение правила 10, которое осуществляет подстановку адреса 192.168.10.254 в качестве IP-адреса отправителя для сетевых пакетов, удовлетворяющих условиям правила.
Пример – Установка внешнего адреса для настройки SNAT#
В примере ниже показано применение правила 10 для подстановки адресов от 192.168.10.252 до 192.168.10.254 в качестве IP-адресов отправителя для исходящих пакетов, удовлетворяющих критерию правила.
Пример - Установка диапазона внешних адресов для настройки SNAT#
Настройка интерфейсов#
Для правил преобразования сетевых адресов (NAT) можно указать интерфейс, через который пакеты будут отправляться, или интерфейс, на котором сетевые пакеты будут приниматься. Необходимо учитывать следующее:
- Для правила преобразования адреса получателя (тип destination) (DNAT) указывается входной интерфейс. Интерфейс, через который входящий трафик попадает в устройство, осуществляющее преобразование сетевых адресов.
- Для правил преобразования сетевого адреса отправителя (тип source) (SNAT) указывается выходной интерфейс. Это интерфейс, через который исходящий трафик покидает устройство, осуществляющее преобразование сетевых адресов.
- Для правил "маскировки" (тип masquerade), указывается выходной интерфейс. Это интерфейс, через который исходящий трафик покидает устройство, осуществляющее преобразование сетевых адресов.
В примере ниже для правила 15 указывается, что для принятия входящего трафика будет прослушиваться интерфейс eth0.
Пример - Установка входного интерфейса для правила DNAT#
Пример - Установка выходного интерфейса для правила SNAT#
Итоговая конфигурация#
Итоговая конфигурация будет выглядеть следующим образом: