Команда ip static для настройки NAT
Как в интернет-центре выполнить тонкую настройку трансляции сетевых адресов NAT через интерфейс командной строки устройства (CLI) с помощью команды ip static?
Важно
Данная статья предназначена для опытных пользователей.
В ней указаны синтаксис, подробное описание и примеры команды ip static для различных настроек трансляции сетевых адресов NAT. С указанной командой нужно работать через интерфейс командной строки (CLI) устройства. После выполнения настроек команды ip static, для сохранения в энергонезависимой памяти интернет-центра, нужно выполнить команду system configuration save.
1. Описание и применение команды ip static
Данная команда позволяет создать статическую привязку локальных IP-адресов к глобальным. Если interface или network соответствует интерфейсу с публичным уровнем безопасности (в настройках интерфейса в CLI стоит параметр security-level public), то будет выполняться трансляция адреса назначения (DNAT). Если to-address соответствует интерфейсу с публичным уровнем безопасности, то будет выполняться трансляция адреса источника (SNAT).
Номер порта TCP/UDP всегда рассматривается как порт назначения.
Если network соответствует одному адресу и этот адрес равен to-address, такое правило будет запрещать трансляцию указанного адреса, которая могла бы быть выполнена исходя из заданных правил ip nat.
Важно
Правила ip static имеют более высокий приоритет по сравнению с правилами ip nat.
2. Синтаксис команды ip static
ip static [ <protocol>] ( <interface› | ( <address> <mask>) ) ( <port> through <end-port> (<to-address> | <to-host> | <to-interface>) | <port> (<to-address> | <to-host> | <to-interface>) [<to-port>] | <to-address> | <to-host> | <to-interface>)

Правило может работать либо для одного из двух протоколов (tcp или udp), либо для всех протоколов (в том числе для icmp). Если не указан тип протокола tcp или udp, то в синтаксисе нет возможности выбрать номер порта.
Рассмотрим наиболее используемые примеры настройки DNAT c помощью команды ip static.
Пример 1. В локальной сети есть сервер с IP-адресом 192.168.1.33, к которому требуется организовать доступ по указанному диапазону портов. После создания правила любое обращение по внешнему IP-адресу роутера по tcp-порту с 10000 по 20000 будет перенаправляться на локальный сервер.
Проброс диапазона tcp-портов назначения с внешнего интерфейса на хост в локальной сети:
ip static tcp ISP 10000 through 20000 192.168.1.33
Данное правило будет транслировать tcp-порты с 10000 до 20000 на IP-адрес 192.168.1.33.
Пример 2. В локальной сети есть IP-камера с адресом 192.168.1.33, к которой нужно предоставить доступ по udp-порту 554 для просмотра потокового видео. В программе воспроизведения видео нужно будет открыть адрес rtsp://WAN_IP:554.
Проброс одного udp-порта назначения c внешнего интерфейса на хост в локальной сети:
ip static udp ISP 554 192.168.1.33
Данное правило будет транслировать udp-порт 554 на локальный IP-адрес 192.168.1.33.
Пример 3. В локальной сети есть несколько устройств, которые имеют одинаковый порт управления, и нужно настроить удаленный доступ до каждого из них. Одновременно открыть один и тот же внешний порт для разных хостов невозможно, поэтому необходимо настраивать правила, чтобы клиенты, обращаясь по разным внешним портам, попадали на необходимое устройство в локальной сети.
Преобразование одного внешнего tcp-порта назначения на другой порт назначения в локальной сети:
ip static tcp ISP 8080 192.168.1.1 80
Данное правило транслирует обращение на внешний интерфейс по порту 8080 в обращение на роутер по 80 порту.
Пример 4. В локальной сети есть сервер с IP-адресом 192.168.1.33, к которому нужно предоставить доступ по всем портам.
Трансляция обращений по любому внешнему порту на хост в локальной сети (DMZ, открытый сервер):
ip static ISP 192.168.1.33
3. Рассмотрим наиболее используемые примеры настройки SNAT c помощью команды ip static:
Пример 1. Провайдер выдает два публичных IP-адреса, и необходимо подсеть Home вывести через один IP, а подсеть GuestWiFi через другой.
Вывод локальной сети роутера через глобальный интерфейс с определенным IP-адресом:
ip static Home 180.100.100.10
Данное правило будет срабатывать для всех пакетов, идущих из локальной сети (Home) во все глобальные интерфейсы (в настройках интерфейса включена опция Использовать для выхода в интернет), и IP-адрес источника будет подменяться на 180.100.100.10.
Важно
Данное правило работает независимо от правила ip nat Home, так как ip static имеет наивысший приоритет.
Пример 2. Провайдер выдает два публичных IP-адреса. В локальной сети есть сервер, и нужно его опубликовать в Интернете со своим IP-адресом, а остальную сеть через второй IP-адрес, выданный провайдером.
Вывод одного хоста из локальной сети в глобальную сеть с определенным IP-адресом (NAT 1 к 1).
ip static 192.168.1.33 255.255.255.255 180.100.100.10
Данное правило будет работать только для локального хоста 192.168.1.33, и он будет выходить через глобальный интерфейс с адресом 180.100.100.10. Вся остальная локальная подсеть будет работать по правилу ip nat Home и будет уходить в глобальную сеть с IP-адресом источника, который прописан на внешнем интерфейсе.
Важно
Для работы NAT 1 к 1 в настройках глобального интерфейса необходимо прописать алиас (псевдоним) с помощью команд:
<config> interface ISP <config-if> ip alias 180.100.100.10 255.255.255.255
Пример 3. В локальной сети есть сервер с IP-адресом 192.168.1.33, который должен выходить во внешнюю сеть со своим IP для организации классической маршрутизации (без NAT).
Отключение правила работы SNAT для хоста в локальной сети:
ip static 192.168.1.33 255.255.255.255 192.168.1.33
Данное правило позволяет выходить локальному хосту с адресом 192.168.1.33 и маской 255.255.255.255 в глобальные интерфейсы (WAN) со своим локальным IP-адресом. Вся остальная локальная подсеть будет работать по правилу ip nat Home и будет уходить в глобальную сеть с IP-адресом источника, который прописан на внешнем интерфейсе.
Примечание
Команду ip static можно использовать для включения NAT не только между интерфейсом и IP-адресом, но и между двумя интерфейсами. Например:
ip static Home ISP
Это будет работать, когда используется security-level public, хотя бы на одном из интерфейсов, чтобы работал SNAT, как указано в начале статьи.
Если interface или network соответствует интерфейсу с публичным уровнем безопасности (в настройках интерфейса в CLI стоит параметр security-level public), то будет выполняться трансляция адреса назначения (DNAT). Если to-address соответствует интерфейсу с публичным уровнем безопасности, то будет выполняться трансляция адреса источника (SNAT).