NAT — трансляция сетевых адресов¶
NAT (Network Address Translation, трансляция сетевых адресов) — технология трансляции IP-адресов в сетях на основе протокола IP, позволяющая изменять IP-адреса и номера портов в заголовках пакетов при их прохождении через маршрутизатор. Основная цель NAT — решение проблемы исчерпания адресного пространства IPv4 и обеспечение связи внутренней сети с внешней (как правило, с интернетом) при использовании ограниченного числа глобальных IP-адресов.
¶Принцип работы
NAT реализуется на маршрутизаторе (или другом сетевом устройстве), который выполняет роль шлюза между двумя сетями — внутренней (частной) и внешней (публичной). Устройство сопоставляет исходящие пакеты с записью в таблице трансляции, которая связывает внутренний адрес и порт с внешним адресом и портом. При получении входящего пакета NAT определяет по таблице, какому внутреннему хосту его следует перенаправить, и переписывает заголовок пакета соответственно.
¶Виды NAT
Существует несколько основных разновидностей NAT, различающихся способом трансляции адресов:
| Вид | Описание |
|---|---|
| Static NAT (статический NAT) | Один-к-одному: каждый внутренний IP-адрес постоянно соответствует одному внешнему. Используется для серверов, требующих постоянного доступа извне. |
| Dynamic NAT (динамический NAT) | Пул внешних адресов сопоставляется с внутренними хостами по мере необходимости; после завершения сессии адрес возвращается в пул. |
| PAT / NAT Overload (перегрузка NAT, портовая трансляция) | Несколько внутренних адресов разделяют один внешний адрес за счёт разных номеров портов. Наиболее распространённый вариант в бытовых роутерах. |
| CGNAT (Carrier-Grade NAT, NAT операторского класса) | Многоуровневый NAT, применяемый провайдерами связи для раздачи клиентам приватных адресов с последующей трансляцией в публичные. |
¶Типы трансляции
По направлению изменения адресов NAT подразделяется на:
- SNAT (Source NAT) — трансляция исходного адреса, используется при отправке пакетов из внутренней сети наружу;
- DNAT (Destination NAT) — трансляция адреса назначения, применяется для проброса портов и публикации внутренних сервисов во внешней сети.
¶Проблемы и ограничения
NAT нарушает принцип сквозной связи (end-to-end) модели IP, поскольку адреса хостов меняются по пути следования пакетов. Это создаёт ряд проблем:
- Невозможность прямого входящего соединения — внешние хосты не могут инициировать соединение с внутренними устройствами без дополнительной настройки (проброс портов, STUN, TURN, ICE);
- Проблемы с протоколами, встроенными в адреса — FTP, SIP, H.323 и другие протоколы, передающие IP-адреса в полезной нагрузке, требуют специальных ALG-модулей (Application Layer Gateway) на маршрутизаторе;
- Нарушение IPsec — трансляция заголовков конфликтует с проверкой целостности IPsec-пакетов, что требует применения NAT-T (NAT Traversal);
- Трудности диагностики — при нескольких уровнях NAT (например, CGNAT у провайдера и бытовой роутер) определение реального адреса хоста затруднено.
¶История
Технология NAT была предложена в 1994 году инженерами Питером Фордом, Кирком Лохаймом и Дэвидом Треджиллом из корпорации Cisco Systems. Публикация RFC 1631 («The IP Network Address Translator») в июне 1994 года зафиксировала концепцию. Изначально NAT рассматривался как временное решение до полного перехода на IPv6, однако массовое внедрение IPv6 задержалось, и NAT стал де-факто стандартом для организации выхода в интернет.
¶Применение
NAT широко используется в домашних и корпоративных сетях. В домашних роутерах реализуется PAT, позволяющий десяткам устройств в локальной сети выходить в интернет через один публичный адрес провайдера. В корпоративных сетях NAT применяется для сегментации, безопасности и оптимизации адресного пространства. Провайдеры связи используют CGNAT при дефиците публичных IPv4-адресов.
¶Альтернативы
Основной альтернативой NAT является переход на протокол IPv6, который предоставляет каждому устройству глобальный уникальный адрес и восстанавливает сквозную связь. Дополнительными механизмами обхода ограничений NAT являются протоколы STUN, TURN и ICE, используемые в VoIP и видеосвязи, а также технологии VPN (IPsec, WireGuard, OpenVPN), обеспечивающие туннелирование поверх NAT.
Источники:
- RFC 1631 — The IP Network Address Translator (NAT)
- RFC 3022 — Traditional IP Network Address Translator (Traditional NAT)
- RFC 4787 — Network Address Translation (NAT) Behavioral Requirements for Unicast UDP
- К. Лохайм, Д. Треджилл, П. Форд. IP Network Address Translator (NAT) Terminology and Considerations
- Справочник по сетевым технологиям Cisco Systems
