hostprofi.ru
Подобрать хостинг
Термин·буква N

NAT

краткое определение

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

NAT (Network Address Translation, трансляция сетевых адресов) — функция сетевого оборудования, которая изменяет IP-адреса и/или номера портов в заголовках IP-пакетов при их прохождении через маршрутизатор или файрвол. Разработан как временное решение для экономии пространства IPv4-адресов, но к 2024 году остаётся повсеместным механизмом в корпоративных и домашних сетях.

Как работает

Самый распространённый тип — PAT (Port Address Translation), называемый также NAT Overload или Masquerade. Маршрутизатор отслеживает исходящие соединения в таблице трансляции: когда внутренний хост 192.168.1.10:54321 отправляет пакет на внешний сервер, маршрутизатор подменяет источник на 203.0.113.1:40001 (свой публичный IP + уникальный порт). При получении ответа маршрутизатор по таблице восстанавливает оригинальный адрес и порт и доставляет пакет нужному внутреннему хосту.

Типы NAT:

  • Static NAT — постоянное соответствие 1:1 (один внутренний IP → один публичный IP). Используется для серверов, которые должны быть доступны снаружи.
  • Dynamic NAT — пул публичных IP назначается внутренним хостам динамически.
  • PAT / NAT Overload — многие внутренние хосты → один публичный IP с разными портами. Самый распространённый вариант.
  • DNAT (Destination NAT) — подмена адреса назначения. Используется для переадресации портов (port forwarding) и балансировки нагрузки.

В Docker и других контейнерных средах NAT (iptables MASQUERADE) применяется для выхода контейнеров с частными адресами во внешнюю сеть. В KVM-виртуализации — аналогично для виртуальных машин.

История

NAT описан в RFC 1631 (1994) как временное решение кризиса IPv4-адресов. Автор — Paul Francis (тогда — Paul Tsuchiya). Предполагалось, что к 2000 году NAT заменит IPv6. Но NAT оказался настолько удобным и повсеместным, что сосуществует с IPv6 по сей день. RFC 1918 (1996) определил диапазоны приватных адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), используемых за NAT.

NAT в хостинге

В контексте хостинга NAT применяется в нескольких сценариях. VPS-провайдеры, испытывающие нехватку IPv4-адресов, предлагают «NAT-VPS» — виртуальные серверы с приватным IP и проброшенными портами. Такие VPS дешевле, но имеют ограничения: нельзя получить входящее соединение на произвольный порт, усложнена работа почтового сервера и VPN. Балансировщики нагрузки используют DNAT для распределения входящих соединений между бэкенд-серверами.

На что обращать внимание

При работе за NAT возникают проблемы с протоколами, передающими IP-адреса в теле пакета (FTP в активном режиме, SIP, H.323). Для них требуются ALG (Application Layer Gateway) — специальные обработчики в маршрутизаторе. NAT нарушает принцип end-to-end connectivity: входящие соединения невозможны без явного port forwarding. Для серверных задач (хостинг сайтов, почта, SSH) NAT создаёт ограничения — нужен выделенный публичный IP.

История NAT

NAT (Network Address Translation) появился в RFC 1631 (1994) как временное решение для борьбы с исчерпанием адресного пространства IPv4. RFC 3022 (2001) обновил стандарт. CGNAT (Carrier-grade NAT, RFC 6598) появился в 2012 году для ISP-уровня. По данным IANA, свободные IPv4-блоки исчерпаны в 2011 году, что сделало NAT обязательным инструментом для большинства провайдеров. IPv6 устраняет необходимость в NAT благодаря огромному адресному пространству.

Другие термины