Примеры настройки NAT#
В этом разделе приведены примеры настройки преобразования сетевых адресов (NAT).
Примечание
Правила, используемые в данных примерах, должны быть развернуты в системе независимо друг от друга. Совместное использование данных примеров не предполагается. По этой причине, все правила в примерах имеют одни и те же номера (правило 10).
Преобразование сетевого адреса отправителя (один к одному)#
На рисунке ниже приведен пример преобразования сетевого адреса отправителя (SNAT), в котором единственный "внутренний" адрес отправителя заменяется на единственный "внешний" адрес отправителя. В этом примере:
- Внутренний новостной сервер (NNTP), которому требуется устанавливать подключение ко внешнему новостному серверу.
- Внешний новостной сервер принимает подключения только от известных клиентов.
- Внутренний новостной сервер не принимает подключения извне локальной сети.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример – Настройка SNAT (один к одному)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение правила к сетевым пакетам, отправленным с узла 192.168.10.1.
- Отправка трафика через интерфейс eth0. Адрес 203.0.113.67 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, назначенных выходному интерфейсу.
- Фиксация изменения.
- Вывод настройки.
Преобразование сетевого адреса отправителя (многие к одному)#
На рисунке ниже приведен пример преобразования сетевого адреса отправителя, где несколько различных "внутренних" адресов динамически заменяются на один "внешний" адрес. В этом примере все узлы подсети 192.168.10.0/24 будут использовать один и тот же внешний адрес отправителя.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример – Настройка SNAT (многие к одному)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, которые были отправлены любым узлом сети 192.168.10.0/24.
- Отправка трафика через интерфейс eth0. Адрес 203.0.113.67 используется в качестве адреса отправителя для исходящих сетевых пакетов. Следует учесть, что внешний адрес должен быть одним из адресов, определенных на выходном интерфейсе.
- Фиксация изменения.
- Вывод настройки.
Преобразование сетевого адреса отправителя (многие ко многим)#
В преобразованиях типа "многие ко многим" набор частных IP-адресов заменяется на набор общедоступных адресов. На рисунке ниже несколько пространств частных адресов преобразуется в несколько внешних адресов.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример – Настройка SNAT (многие ко многим)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, которые были отправлены любым узлом сети 192.168.0.0/16.
- Отправка сетевого трафика через интерфейс eth0. Выбор адреса в диапазоне от 203.0.113.67 до 203.0.113.69 в качестве адреса отправителя исходящих пакетов. Следует отметить, что внешние адреса должны быть определены на выходном интерфейсе.
- Фиксация изменения.
- Вывод настройки.
Преобразование сетевого адреса отправителя (один ко многим)#
Эта схема менее распространена. Одним из вариантов применения данной схемы может быть тестирование устройства балансировки нагрузки в сеть верхнего уровня (upstream load-balancing device). В данной схеме единственное устройство, расположенное за устройством, осуществляющим преобразование сетевых адресов, для внешней сети предстает как несколько устройств. Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример – Преобразование сетевого адреса отправителя (один ко многим)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение правила к сетевым пакетам, отправленным с узла 192.168.10.1.
- Отправка сетевого трафика через интерфейс eth0. Выбор адреса в диапазоне от 203.0.113.67 до 203.0.113.69 в качестве адреса отправителя исходящих пакетов. Следует отметить, что внешние адреса должны быть определены на выходном интерфейсе.
- Фиксация изменения.
- Вывод настройки.
Маскировка#
При использовании маскировки (частный случай SNAT) адрес отправителя исходящего пакета заменяется основным IP-адресом выходного интерфейса. Это необходимо, когда адрес выходного интерфейса предоставляется по DHCP и с окончанием периода аренды может измениться. Данный механизм предназначен для решения проблем организации связи между сетевыми устройствами и узлами, которым назначены частные (RFC 1918) IP-адреса, так как в противном случае пакеты IP не смогут быть переданы через Интернет.
Правила "маскировки" состоят из условий, на основе которых осуществляется проверка соответствия:
- Сеть отправителя (обычно частный IP-адрес локальной сети, в которой расположены устройства).
- Сеть получателя (обычно 0.0.0.0/0, которая используется для обозначения любого адреса).
- Выходной интерфейс (пограничный интерфейс, которому назначен общедоступный адрес).
При установлении соответствия сетевого пакета правилу "маскировки" адрес отправителя сетевого пакета изменяется до того, как будет осуществлена пересылка пакета получателю. В этой схеме ряду узлов требуется инициировать сеансы связи со внешними устройствами, но при этом доступен только один общедоступный (public) IP-адрес. Это может потребоваться, например, в случае, если для организации связи используется последовательный интерфейс. На рисунке ниже приведен пример использования "маскировки".
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример - Маскировка#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, которые были отправлены любым узлом сети 192.168.10.0/24.
- Отправка сетевого трафика через интерфейс eth0. Использование IP-адреса выходного интерфейса в качестве внешнего адреса.
- Фиксация изменения.
- Вывод настройки.
Преобразование сетевого адреса получателя (один к одному)#
Преобразование сетевого адреса получателя (DNAT) используется только в тех случаях, когда необходимо принимать входящий трафик.
Схема 1: Сетевые пакеты, предназначенные для внутреннего веб-сервера
Например, преобразование сетевого адреса получателя может быть использовано в том случае, если в корпоративной сети есть веб-сервер, который принимает подключения от устройств внешней сети, но при этом не инициирует исходящих сеансов.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример – Преобразование сетевого адреса получателя (один к одному)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса получателя (DNAT).
- Применение данного правила ко всем входящим пакетам TCP на интерфейсе eth0 для адреса 203.0.113.67 и порта HTTP.
- Пересылка трафика на адрес 192.168.10.1.
- Фиксация изменения.
- Вывод настройки.
Схема 2: Сетевые пакеты, предназначенные внутреннему серверу SSH
В этой схеме весь сетевой трафик, приходящий на порт SSH, направляется узлу, на котором функционирует сервер SSH.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример - Настройка DNAT (один к одному) - фильтрация по имени порта#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса получателя (DNAT).
- Применение данного правила ко всем входящим пакетам на интерфейсе eth0 для адреса 203.0.113.67 и порта SSH.
- Пересылка трафика на адрес 192.168.10.1.
- Фиксация изменения.
- Вывод настройки.
Преобразование сетевого адреса получателя (один ко многим)#
Другой вариант применения преобразования сетевого адреса получателя, когда доступ к корпоративным ресурсам извне осуществляется через один IP-адрес (то есть единственный IP-адрес динамически отображается на несколько IP-адресов), приведен на рисунке ниже.
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример - Настройка DNAT (один ко многим)#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса получателя (DNAT).
- Применение данного правила на интерфейсе eth0 для адреса 203.0.113.67.
- Пересылка трафика на адреса из диапазона от 192.168.10.1 до 192.168.10.3.
- Фиксация изменения.
- Вывод настройки.
Двунаправленное преобразование сетевых адресов#
Двунаправленное преобразование сетевых адресов представляет собой сочетание преобразования сетевого адреса отправителя и адреса получателя. Обычно преобразование сетевых адресов отправителя применяется к исходящему трафику всей частной сети, а преобразование сетевых адресов получателя только для конкретных внутренних служб (например, для почтовых и веб-серверов).
Для настройки преобразования сетевых адресов в соответствии с данным рисунком нужно выполнить следующие действия в режиме настройки.
Пример - Двунаправленное преобразование сетевых адресов#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, отправленным любым узлом сети 192.168.10.0/24.
- Отправка трафика через интерфейс eth0. Использование адреса 203.0.113.67 в качестве адреса отправителя для исходящих пакетов.
- Создание правила 20. Правило 20 является правилом преобразования сетевого адреса получателя (DNAT).
- Применение данного правила на интерфейсе eth0 для адреса 203.0.113.67.
- Пересылка трафика на адрес 192.168.10.1.
- Фиксация изменения.
- Вывод настройки.
Сопоставление диапазонов адресов#
Возможно сопоставление адресов одной сети с адресами другой сети. Например, можно сопоставить адреса сети 192.168.10.0/24 с адресами сети 203.0.113.0/24, то есть адрес 192.168.10.1 будет сопоставлен с адресом 203.0.113.1, адрес 192.168.10.2 будет сопоставлен с адресом 203.0.113.2 и т.д. Сети должны быть одного размера, то есть они должны иметь одинаковые маски подсети.
В предположении, что подключения могут быть инициированы из обеих сетей, для настройки необходимо выполнить следующие действия в режиме настройки.
Пример - Сопоставление диапазонов адресов#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, отправленным любым узлом сети 192.168.10.0/24.
- Отправка трафика через интерфейс eth0. Использование адреса 203.0.113.x в качестве адреса отправителя для исходящих пакетов.
- Создание правила 20. Правило 20 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к пакетам, отправленным любым узлом сети 203.0.113.0/24.
- Отправка трафика через интерфейс eth1. Использование адреса 192.168.10.x в качестве адреса отправителя для исходящих пакетов.
- Фиксация изменения.
- Вывод настройки.
Если подключения инициируются только узлами сети 192.168.10.0/24, тогда требуется только правило 10. Если подключения инициируются только узлами сети 203.0.113.0/24, то требуется только правило 20.
Сопоставление сетей осуществляется аналогично преобразованию сетевых адресов получателя (DNAT).
Маскировка и VPN#
При установлении соответствия сетевого пакета правилу "маскировки" адрес отправителя сетевого пакета изменяется до того, как будет осуществлена пересылка пакета получателю. Это означает, что правила "маскировки" применяются до того, как процесс VPN обрабатывает пакеты в соответствии с настройкой. Если сеть отправителя, для которой настроена "маскировка", также подключена к другой сети с помощью VPN через один и тот же внешний интерфейс, сетевые пакеты не будут обработаны процессом VPN (так как адрес отправителя будет изменен) и соответственно не будут отправлены через туннель VPN.
Чтобы исключить такое поведение, для пакетов, которые должны быть отправлены через туннель VPN, не должно выполняться преобразование адресов, для этого используется "исключающее правило" (правило, в котором используется операция отрицания [“!”]).
Для настройки правил маскировки в обход туннеля VPN нужно выполнить следующие действия в режиме настройки.
Пример – Настройка правил маскировки в обход туннеля VPN#
- Создание правила 10. Правило 10 является правилом преобразования сетевого адреса отправителя (SNAT).
- Применение данного правила к сетевым пакетам, которые были отправлены любым узлом сети 192.168.0.0/16.
- Применение данного правила ко всем сетевым пакетам, кроме пакетов, предназначенных сети для сети 203.0.113.98/32.
- Отправка сетевого трафика через интерфейс eth0. Использование IP-адреса выходного интерфейса в качестве внешнего адреса.
- Фиксация изменения.
- Вывод настройки.
Следует отметить, что необходимо использовать "исключающие" правила с особой осторожностью. Правила NAT выполняются по порядку, и при использовании набора правил, содержащего более одного "исключающего" правила, могут быть получены результаты, отличные от ожидаемых.
Рассмотрим правило преобразования адресов из примера ниже.
Пример - Единственное "исключающее правило": корректное поведение#
Вывод настройки одного исключающего правила
Это правило создает исключение для сети 203.0.113.98/32, как и требовалось. С другой стороны, рассмотрим набор из двух правил преобразований адресов в примере ниже.
Пример – Несколько "исключающих правил": поведение, отличное от ожидаемого#
Вывод настройки двух исключающих правил
В результате выполнения данного набора правил исключение для сетей 203.0.113.98/32 и 203.0.113.99/32 создано НЕ будет. Как указано выше, эти правила выполняются последовательно: при получении пакета он проверяется на соответствие первому правилу, если соответствие не установлено, он проверяется на соответствие второму правилу, и так до тех пор, пока не будет найдено соответствие.
В этом примере для пакета, имеющего сеть получателя 203.0.113.98/32, не будет установлено соответствие для правила 10 (которому будут соответствовать пакеты, сеть получателя которых отлична от 203.0.113.98). После чего пакет будут проверен на соответствие правилу 20. Для пакета, имеющего сеть получателя 203.0.113.98/32, будет установлено соответствие правилу 20 (так как адрес получателя отличен от сети 203.0.113.99/32), в результате для пакета будет выполнено преобразование сетевого адреса, что не является желаемым результатом.
Аналогично, пакет с сетью получателя 203.0.113.99/32 будет соответствовать правилу 10, в результате чего будет осуществлено преобразование адресов.
Параметр “exclude”#
Также создать исключение для пакетов, для которых не следует осуществлять преобразование сетевых адресов, можно с помощью параметра exclude
, который создает исключение для пакетов, для которых было установлено соответствие правилу NAT. В примере ниже используется параметр exclude
для решения задачи.
Пример – Единственное исключающее правило: корректное поведение - использование параметра "exclude"#
Вывод настройки одного правила с exclude
Дополнительное правило (правило 20) требуется для обработки пакетов, для которых не требуется создавать исключения.
В примере выше используется параметр exclude
, чтобы получить результат, который не был получен в примере ниже. В этом примере правило 30 обрабатывает неисключенные пакеты.
Пример – Использование нескольких исключающих правил: корректное поведение - использование параметра "exclude"#
Вывод настройки двух правил с exclude