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

NAT

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

История

Идея преобразования адресов возникла в начале 1990-х годов как временное решение проблемы исчерпания адресного пространства протокола IPv4. С ростом числа устройств, подключаемых к Интернету, стало очевидно, что выделение уникального публичного адреса каждому компьютеру невозможно. В 1994 году в документе RFC 1631 (авторы — П. Фрэнсис и К. Эггерт) было впервые формально описано преобразование сетевых адресов. Однако широкое распространение NAT получил после выхода RFC 1918 (1996 год), который определил диапазоны частных (так называемых «серых») IP-адресов:

Эти адреса не маршрутизируются в глобальной сети и могут свободно использоваться внутри локальных сетей. NAT стал стандартным компонентом домашних маршрутизаторов и корпоративных файрволов. Несмотря на внедрение IPv6, который предполагает достаточное количество публичных адресов, NAT остаётся широко распространённым по историческим и совместимостным причинам.

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

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

Типы NAT

Существует несколько разновидностей NAT, различающихся способом отображения адресов и портов:

Классификация по поведению

В контексте работы приложений (особенно peer-to-peer) NAT классифицируют по реакции на входящие соединения:

Применение

NAT используется в следующих основных сценариях:

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

Несмотря на широкое распространение, NAT имеет ряд недостатков:

NAT и IPv6

Протокол IPv6 изначально проектировался с расчётом на достаточное количество публичных адресов, поэтому NAT не является обязательным. Однако на практике NAT для IPv6 (NAT66, NPTv6 — Network Prefix Translation) иногда применяется для смены провайдера без изменения внутренней адресации или для скрытия топологии сети. В большинстве же случаев в IPv6-сетях используется прямая адресация, и устройства получают глобальные уникальные адреса (GUA).

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

Для решения проблемы нехватки IPv4-адресов без использования NAT применяются:

Однако все эти методы также не обеспечивают полной сквозной связности без дополнительных механизмов.

Источники

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

На главную BFOmetr →