Открыть сервисСервис

NAT — технология преобразования сетевых адресов

NAT (Network Address Translation, трансляция сетевых адресов) — технология трансляции IP-адресов и номеров портов в сетях на основе протокола IP, применяемая для преобразования адресов в пакетах при их прохождении через сетевой шлюз (маршрутизатор). NAT позволяет устройствам с частными (внутренними) IP-адресами выходить в сеть общего пользования (Интернет), используя один или несколько публичных адресов, что стало основным решением проблемы исчерпания адресного пространства IPv4.

Историческая справка

Технология появилась в начале 1990-х годов на фоне быстрого роста числа устройств в сетях и истощения свободных публичных IPv4-адресов. В 1994 году Инженерный совет Интернета (IETF) опубликовал документ RFC 1631, описавший концепцию NAT. Основной автор — Кит Мур (Keith Moore). Стандарт получил развитие в серии документов RFC 2663, RFC 3022 и других. В России и СНГ технология массово применялась провайдерами связи с конца 1990-х годов, когда домашние сети и корпоративные сегменты стали подключаться к Интернету через единый выходной канал.

Принцип работы

NAT-устройство (обычно маршрутизатор или межсетевой экран) размещается на границе между двумя сетями — внутренней (частной) и внешней. При прохождении пакета NAT заменяет исходный IP-адрес отправителя (и, при необходимости, номер порта) на свой собственный публичный адрес. Для ответных пакетов выполняется обратное преобразование по таблице трансляции, которая хранит соответствия между внутренними и внешними адресами.

Таблица NAT содержит записи вида «внутренний IP:порт → внешний IP:порт». Когда внешний хост отправляет ответ, устройство сопоставляет его с нужной внутренней записью и перенаправляет пакет соответствующему получателю.

Виды NAT

Статический NAT (Static NAT)

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

Динамический NAT (Dynamic NAT)

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

PAT / NAT Overload (Port Address Translation)

Наиболее распространённый вариант. Один публичный IP-адрес используется множеством внутренних хостов одновременно — различие обеспечивается за счёт номеров портов. Именно этот режим позволяет десяткам устройств в домашней сети выходить в Интернет через один адрес провайдера. В таблице хранятся записи «внутренний IP:порт → внешний IP:уникальный порт».

Типы трансляции

ТипНаправлениеОписание
SNAT (Source NAT)ИсходящиеЗамена исходного адреса отправителя
DNAT (Destination NAT)ВходящиеЗамена адреса получателя (используется для проброса портов)
Full Cone NAT—Внешний адрес и порт доступны любому внешнему хосту
Restricted Cone NAT—Доступ только с адресов, с которыми внутренний хост уже общался
Port-Restricted Cone NAT—Доступ только с адресов и портов, с которыми уже был обмен
Symmetric NAT—Для каждого внешнего адреса создаётся отдельная трансляция

Последние четыре категории описаны в документе RFC 4787 и важны для работы приложений, использующих одноранговые соединения (P2P), VoIP и видеосвязь.

Проблемы и ограничения

NAT нарушает принцип сквозной адресации IP, из-за чего ряд протоколов, предполагающих прямое соединение хостов, работает с трудностями. Для решения проблем применяются дополнительные механизмы:

  • STUN (RFC 5389) — определение внешнего адреса и типа NAT;
  • TURN (RFC 5766) — ретрансляция трафика через промежуточный сервер;
  • ICE (RFC 5245) — поиск наилучшего пути для однорангового соединения;
  • UPnP IGD и NAT-PMP/PCP — автоматическая проброска портов из внутренней сети.

Дополнительно NAT затрудняет диагностику сетей и логирование, так как реальные адреса отправителей скрыты за общим публичным адресом.

NAT и IPv6

С переходом на IPv6, где адресное пространство практически не ограничено, необходимость в NAT отпадает — каждый узел может получить глобальный адрес. Однако на практике NAT66 (трансляция в сетях IPv6) и NAT64 (преобразование между IPv4 и IPv6) продолжают применяться, в частности для совместимости протоколов и маскировки внутренней топологии.

Применение

NAT является стандартным компонентом домашних роутеров, корпоративных межсетевых экранов и операторских маршрутизаторов. В России технология широко используется провайдерами доступа: большинство абонентских подключений реализовано через PAT с использованием адресов из частных диапазонов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, определённых RFC 1918).

Источники

  • RFC 1631 — The IP Network Address Translator (NAT)
  • RFC 2663 — IP Network Address Translator (NAT) Terminology and Considerations
  • RFC 3022 — Traditional IP Network Address Translator (Traditional NAT)
  • RFC 4787 — Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
  • RFC 5389 — STUN: Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators
  • Таненбаум Э., Уэзеролл Д. — «Компьютерные сети», гл. 5
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru