NAT

NAT (Network Address Translation — «трансляция сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия

  • IP Masquerading
  • Network Masquerading
  • Native Address Translation

Зачем нужен?

  1. Экономия IP-адресов: Основная причина появления NAT — дефицит IPv4-адресов. NAT позволяет целой локальной сети с множеством устройств выходить в интернет, используя всего один публичный («белый») IP-адрес.
  2. Безопасность: NAT скрывает внутреннюю структуру сети. Из внешнего интернета видны только публичные адреса маршрутизатора, а не конкретные IP-адреса компьютеров внутри сети. Это затрудняет проведение атак на внутренние узлы.
  3. Удобство администрирования: Позволяет менять провайдера или схему внутренней адресации без необходимости перенастраивать каждое устройство в сети.

Типы NAT

1. Static NAT

Один внутренний незарегистрированный (частный) IP-адрес сопоставляется с одним внешним зарегистрированным (публичным) IP-адресом. Соотношение 1:1.

Обычно используется для серверов внутри сети, к которым должен быть обеспечен постоянный доступ извне (например, веб-сервер или почтовый сервер).

2. Dynamic NAT

Внутренний частный IP-адрес сопоставляется с первым свободным публичным IP-адресом из заранее определенного пула публичных адресов.

Если пул публичных адресов закончится, новые устройства не смогут выйти в интернет, пока кто-то другой не освободит адрес. Соотношение М:N.

3. PAT (Port Address Translation / NAT Overload)

Самый распространенный тип NAT (именно он обычно работает в домашних роутерах). Множество внутренних частных IP-адресов сопоставляются с одним публичным IP-адресом, но с использованием разных номеров портов для различения сессий. Соотношение М:1

  • Как это работает: Маршрутизатор запоминает, какой внутренний IP и порт инициировали соединение, и присваивает этой сессии уникальный номер порта на своем внешнем интерфейсе.

Схема работы NAT

Как работает процесс

  1. Исходящий пакет: Устройство (192.168.1.10) отправляет запрос в интернет. Маршрутизатор получает пакет, заменяет внутренний IP на свой публичный (например, 1.1.1.1) и записывает в таблицу трансляций: Внутренний IP:порт <-> Публичный IP:уникальный_порт.
  2. Ответ: Когда ответ из интернета приходит на публичный IP маршрутизатора, тот смотрит в таблицу трансляций, находит соответствующий уникальный порт и пересылает данные конкретному устройству в локальной сети.

Преимущества и недостатки

Плюсы:

  • Позволяет использовать частные диапазоны адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
  • Уменьшает вероятность сканирования портов внутренних машин.

Минусы:

  • Сложность для некоторых протоколов: Протоколы, передающие IP-адреса внутри полезной нагрузки (например, FTP или SIP/VoIP), могут работать некорректно без дополнительных механизмов (ALG).
  • Затраты ресурсов: Маршрутизатору нужно тратить память и процессорное время на хранение и обработку таблицы трансляций.
  • Нарушение принципа End-to-End: NAT разрывает прямое соединение между узлами, что усложняет работу P2P-сетей и некоторых видов VPN.