Что такое строгий, умеренный и открытый NAT?

Параметры NAT на внутренних маршрутизаторах часто настраиваются как строгие. Что это значит? Что делают умеренные или открытые? Переадресация портов / доступ к DMZ работает должным образом, поэтому зачем беспокоиться о двух других?

Просмотр маршрутизатора показывает, что это влияет на брандмауэр. Потратив большую часть своего времени на защиту сетей с использованием Cisco/iptables, такой слабый неописательный ответ - не что иное, как бесит и не дает никаких подсказок относительно того, как это влияет на брандмауэр.

Пожалуйста, может кто-нибудь пролить свет.

3 ответа

Решение

Прежде всего, важно знать, как работает преобразование сетевых адресов (NAT). Вы устанавливаете соединение с сервером в интернете. На самом деле вы отправляете пакеты на ваш маршрутизатор, выходя из компьютера через какой-то случайно выбранный порт:

Your computer        Router
+------------+     +-----------+
|            |     |           |
| port 31746 o====>o           |
|            |     |           |
+------------+     +-----------+

Ваш роутер, в свою очередь, устанавливает соединение с сервером, с которым вы хотите общаться. Он говорит, что это собственный случайно выбранный порт:

                     Router            www.google.com
                   +-----------+     +----------------+
                   |           |     |                |
                   | port 21283o====>o port 80        |
                   |           |     |                |
                   +-----------+     +----------------+

Когда веб-сервер Google отправляет вам информацию обратно, он на самом деле отправляет ее обратно на ваш маршрутизатор (так как ваш маршрутизатор - это парень в Интернете):

                     Router            www.google.com
                   +-----------+     +----------------+
                   |           |     |                |
                   | port 21283o<====o port 80        |
                   |           |     |                |
                   +-----------+     +----------------+

Пакет прибывает на ваш маршрутизатор через порт 21283 от www.google.com, Что должен сделать с ним роутер?

В этом случае маршрутизатор вел учет вас и трафика, который он отправил www.google.com:80 из порта 21283 от вашего имени. Таким образом, маршрутизатор передаст пакет на ваш компьютер:

Your computer        Router
+------------+     +-----------+
|            |     |           |
| port 31746 o<====o           |
|            |     |           |
+------------+     +-----------+

Открытый NAT

В открытом NAT любая машина в Интернете может отправлять трафик на порт вашего маршрутизатора 21283и пакет будет отправлен обратно к вам:

Your computer        Router            
+------------+     +-----------+     {www.google.com:80
|            |     |           |     {www.google.com:443
| port 31746 o<====o port 21283o<===={faultserver.ru:80
|            |     |           |     {fbi.gov:32188
+------------+     +-----------+     {botnet.cn:11288

Закрытый NAT

Закрытый нат более ограничен. Он ничего не пропустит, если он не получен с оригинального адреса и порта, с которым вы хотели поговорить, т.е. www.google порт 80:

Your computer        Router            
+------------+     +-----------+     {www.google.com:80
|            |     |           |     | (rejected) www.google.com:443
| port 31746 o<====o port 21283o<====+ (rejected) faultserver.ru:80
|            |     |           |       (rejected) fbi.gov:32188
+------------+     +-----------+       (rejected) botnet.cn:11288

Умеренный NAT

Умеренный NAT представляет собой смесь, где ваш маршрутизатор будет принимать любой трафик с любого порта, но только с одного хоста:

Your computer        Router            
+------------+     +-----------+     
|            |     |           |     {www.google.com:80
| port 31746 o<====o port 21283o<===={www.google.com:443
|            |     |           |       (rejected) faultserver.ru:80
+------------+     +-----------+       (rejected) fbi.gov:32188
                                       (rejected) botnet.cn:11288

Это один набор определений. Другой это:

  • Открыть: позволяет компьютерам в локальной сети использовать UPNP для открытия портов
  • Умеренный: некоторые портовые форварды были созданы и работают
  • Закрыто: статическая переадресация портов отсутствует

Но терминология действительно туманна.

Смотрите также

Все эти термины NAT используются только в игровой индустрии. Если вы спросите сетевого инженера или инженера по безопасности о строгом натурном коде, они не поймут, о чем вы говорите.

В реальном, чисто техническом, сетевом мире есть NAT и PAT, и они могут быть входящими или исходящими.

Потребительские маршрутизаторы часто имеют настройку IP "DMZ", которая отправляет все, предназначенное для общедоступного IP-адреса вашего маршрутизатора, прямо на частный IP-адрес вашего ПК. Я даже не могу сказать, насколько это опасно. Игровые компании должны как минимум публиковать список IP-адресов серверов, чтобы вы могли перенаправлять трафик прямо на свой компьютер, только если он поступает с сервера в списке. Я думаю, что "умеренный NAT" - это то, что в сетевой индустрии называют PAT (преобразование адресов порта).

Если вы подключаетесь к серверу через порт 80, например, также имеется порт источника 4040. Ваш маршрутизатор прослушивает порт 4040 после того, как вы инициируете соединение. Если они попытаются связаться с вашим маршрутизатором через другой порт, таблица NAT маршрутизатора не имеет сопоставления для нового порта и отбрасывает его. Если вы разрешите переадресацию порта 4444 на определенный IP-адрес в конфигурации NAT/PAT, посторонние теперь могут инициировать соединения только на этом порту. Это менее опасно, чем сопоставление 1 к 1 и пропускание всего.

Игровые компании должны давать более точные рекомендации. Я даже видел предложения полностью отключить брандмауэр Microsoft, а не выдавать список портов. Если вы хотите стать частью ботнета или не возражаете против программ-вымогателей, продолжайте и следуйте их плохим указаниям.

Таким образом, у меня была возможность тщательно протестировать эту терминологию «типа NAT» в (в целом) двух сетевых средах.

Для проведения этого теста использовалась RouterOS v6 от MikroTik, поэтому я буду использовать сетевую терминологию MikroTik.

Прежде чем мы начнем, я предполагаю, что вы знаете основы:

  1. NAT (включая PAT, который по сути является просто «NAT» в сетях 2021 года)
  2. УПнП
  3. CGNAT + базовая идея протокола управления портами
  4. Публично маршрутизируемый IP-адрес для дополнительных мер
  5. Концепция VPN (независимо от используемых протоколов, таких как OpenVPN, WireGuard и т. д.)
  • «Переадресация портов/статическая переадресация портов» технически означает создание целевого NAT, в котором исходный порт и порт назначения (порт-порт) равны, а адрес получателя (адрес назначения) является внутренним IP-адресом RFC1918 рассматриваемой консоли/ОС. . Терминология варьируется в зависимости от поставщика сетевых услуг. Концепция остается прежней.

Мы предполагаем наличие единого интерфейса восходящей линии связи/WAN с одним исходным NAT или одним маскарадным NAT в обеих средах. Мы также предполагаем, что используемая ОС/консоль не блокирует порты/UPnP на уровне своей ОС/консоли.

  1. Сетевая среда, в которой маршрутизатор имеет общедоступный IP-адрес.
      In this network environment, the three NAT types work in the following ways:

 1. Open NAT only occurs when we have static port forwarding (where all the inbound ports are manually configured based on the game/console) or when we have UPnP enabled and it opens up all the required ports
 2. Moderate NAT only occurs when we have static port forwarding or UPnP partially working (meaning, only some of the ports required are open inbound)
 3. Strict NAT only occurs when static port forwarding is not done correctly or UPnP is not or working, in either case, it means port forwarding does not work whatsoever. 

  1. Сетевая среда, в которой маршрутизатор имеет IP-адрес WAN с CGNAT.
      In this network environment, the three NAT types work in the following ways:

 1. Open NAT cannot occur in this environment. The only workaround to achieve open NAT is to use a VPN (host it somewhere with a public IP) and open ports through the VPN tunnel (UPnP can work through the VPN tunnel assuming the OS sends all incoming packets from itself through the tunnel).
 2. Moderate NAT only occurs when we have static port forwarding or UPnP enabled and all the necessary ports are configured to be open at the router level. This is basically the same as "open NAT" configuration done in the first network environment.
 3. Strict NAT occurs when neither the above cases are achieved.

Теперь самое странное — это «умеренная» ситуация с NAT в средах с CGNAT. Мы знаем, что переадресация портов не может работать за CGNAT(если только ваш интернет-провайдер не достаточно умен, чтобы развернуть протокол управления портами).

  • Моя теория заключается в том, что эта ситуация возникает из-за того, что устройство CGNAT имеет механизмы прохождения NAT, такие как ALG, правильно настроенные и развернутые, и, следовательно, любой входящий трафик из нисходящего потока правильно проходит через CGNAT, когда устройство CGNAT преобразует внутренний IP-адрес во внешний IP-адрес.
  • Кажется, что у Cisco по умолчанию включено прохождение NAT для режима CGNAT: https://www.cisco.com/c/en/us/td/docs/routers/crs/software/crs_r4-3/cg_nat/configuration/guide/cgnat_cg43crs/cgc43cgn.html#30577

Как уже упоминалось здесь, не будьте глупыми и не используйте так называемую «DMZ» или полностью отключите внутренний брандмауэр ОС/консоли. Если проблемы вызваны ОС/консолью, сбросьте настройки брандмауэра до значений по умолчанию. Брандмауэры по умолчанию в Windows, дистрибутивах Linux и т. д. не будут блокировать UPnP/порты, открытые вручную на маршрутизаторе.

Другие вопросы по тегам