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

Транслятор сетевых адресов

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

История

Концепция трансляции сетевых адресов возникла в середине 1990-х годов как временное решение проблемы исчерпания адресного пространства протокола IPv4. С ростом числа устройств, подключаемых к Интернету, стало очевидно, что 32-битных адресов IPv4 (около 4,3 миллиарда) недостаточно. Первоначально NAT рассматривался как переходный механизм до внедрения IPv6, но из-за медленного распространения последнего технология остаётся востребованной и в 2020-х годах.

Первые реализации NAT появились в коммерческих маршрутизаторах. В 1994 году был опубликован RFC 1631, описывающий базовые принципы работы. Однако массовое распространение NAT получил с развитием широкополосного доступа в Интернет и домашних сетей. В 1999 году была опубликована спецификация Network Address Port Translation (NAPT) в RFC 2663, которая стала основой для большинства современных реализаций.

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

NAT работает на уровне сетевого протокола (уровень 3 модели OSI) и транспортного протокола (уровень 4). Устройство, выполняющее NAT (обычно маршрутизатор или брандмауэр), анализирует проходящие через него IP-пакеты. При передаче пакета из внутренней сети во внешнюю (например, в Интернет) NAT заменяет исходный IP-адрес и порт отправителя на свой внешний IP-адрес и новый порт. Эта информация (соответствие между внутренним и внешним адресом/портом) сохраняется в таблице трансляции. Когда ответный пакет приходит из внешней сети, NAT по таблице определяет, какому внутреннему устройству он предназначен, и заменяет адрес назначения и порт обратно на внутренние.

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

Выделяют несколько основных типов NAT:

  • Статический NAT (SNAT) — устанавливает постоянное соответствие между одним внутренним и одним внешним IP-адресом. Используется, когда внутренний сервер должен быть доступен извне по фиксированному адресу.
  • Динамический NAT — пул внешних IP-адресов динамически назначается внутренним устройствам по мере необходимости. Когда устройство завершает сеанс, адрес возвращается в пул.
  • Трансляция портов (PAT, NAPT, NAT overload) — наиболее распространённый тип. Множество внутренних устройств используют один внешний IP-адрес, но с разными портами. Это позволяет обслуживать тысячи одновременных соединений через один публичный адрес.

Режимы работы

В зависимости от поведения при обработке входящих соединений различают:

  • Полный конус (Full Cone) — все запросы от внутреннего устройства к любому внешнему узлу проходят через один и тот же внешний порт. Любой внешний узел может отправить пакет на этот порт и он будет передан внутреннему устройству.
  • Ограниченный конус (Restricted Cone) — внешний узел может отправить пакет внутреннему устройству только в том случае, если внутреннее устройство ранее отправляло пакет этому внешнему узлу (независимо от порта).
  • Ограниченный конус с портом (Port Restricted Cone) — аналогично, но внешний узел должен отправлять пакет с того же порта, на который ранее отправлял пакет внутреннее устройство.
  • Симметричный NAT (Symmetric NAT) — для каждого нового соединения с разными внешними узлами используется разный внешний порт. Внешний узел может отправить пакет внутреннему устройству только в том случае, если внутреннее устройство ранее отправляло пакет именно этому внешнему узлу и именно с этого порта. Симметричный NAT считается наиболее безопасным, но создаёт проблемы для некоторых протоколов (например, P2P).

Применение

Экономия адресного пространства IPv4

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

Безопасность

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

Организация доступа в Интернет в частных сетях

В соответствии с RFC 1918 для частных сетей зарезервированы диапазоны IP-адресов: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Устройства внутри таких сетей не могут напрямую общаться с Интернетом без NAT. Технология используется в домашних роутерах, корпоративных сетях, сетях операторов связи (CGNAT, Carrier-Grade NAT).

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

  • Проблемы с протоколами, встраивающими IP-адреса в данные — некоторые протоколы (FTP, SIP, H.323) передают IP-адреса внутри полезной нагрузки. NAT не может изменить их автоматически, что требует использования специальных шлюзов (ALG, Application Level Gateway).
  • Сложности с P2P-соединениями — для организации прямого соединения между двумя устройствами за разными NAT (например, в торрент-клиентах или онлайн-играх) требуются обходные техники, такие как UDP hole punching, STUN, TURN или ICE.
  • Нарушение сквозной модели TCP/IP — NAT нарушает принцип, согласно которому каждый узел в сети должен иметь уникальный адрес и быть доступен напрямую. Это усложняет работу некоторых сетевых приложений и протоколов.
  • Производительность — обработка таблицы трансляции и модификация пакетов требуют вычислительных ресурсов, что может снижать пропускную способность маршрутизатора при большом количестве соединений.

NAT и IPv6

Протокол IPv6 изначально проектировался с расчётом на достаточное количество адресов (около 3,4×10^38), поэтому NAT не является обязательным. Однако в некоторых сценариях (например, для обеспечения совместимости с IPv4, для скрытия внутренней топологии или для многоуровневой адресации) NAT для IPv6 (NAT66) также применяется, хотя и реже. Основной переходный механизм — NAT64, позволяющий устройствам в сети IPv6 обращаться к ресурсам в сети IPv4.

Альтернативы и развитие

  • Прокси-серверы — выполняют аналогичную функцию трансляции адресов, но на прикладном уровне (уровень 7 модели OSI).
  • DHCP — протокол динамической конфигурации хоста, не заменяет NAT, но часто используется совместно с ним для автоматической раздачи внутренних адресов.
  • CGNAT (Carrier-Grade NAT) — технология, используемая операторами сотовой связи и интернет-провайдерами для трансляции адресов большого числа абонентов через ограниченный пул публичных адресов.
  • IPv6 — долгосрочное решение проблемы исчерпания адресов, устраняющее необходимость в NAT для большинства приложений.

Интересные факты

  • Технология NAT иногда неофициально называется «защитой бедняка», так как обеспечивает базовый уровень безопасности без использования дорогостоящих брандмауэров.
  • По данным на 2023 год, более 90% домашних интернет-подключений в мире используют NAT.
  • В некоторых странах операторы связи применяют CGNAT для экономии адресов, что приводит к тому, что несколько тысяч абонентов могут иметь один и тот же публичный IP-адрес.

Источники

  • RFC 1631 (1994) — The IP Network Address Translator (NAT)
  • RFC 2663 (1999) — IP Network Address Translator (NAT) Terminology and Considerations
  • RFC 3022 (2001) — Traditional IP Network Address Translator (Traditional NAT)
  • RFC 4787 (2007) — Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
  • RFC 5382 (2008) — NAT Behavioral Requirements for TCP
  • RFC 6888 (2013) — Common Requirements for Carrier-Grade NAT (CGN)
  • «Компьютерные сети» — Э. Таненбаум, Д. Уэзеролл, 5-е издание, 2012
  • «TCP/IP. Сеть, протоколы, адресация» — М. Г. Калмыков, 2019

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →