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

NAT Gateway

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

История и развитие

Технология NAT (Network Address Translation) была разработана в начале 1990-х годов как временное решение проблемы нехватки IPv4-адресов. Первые реализации NAT были программными и выполнялись на маршрутизаторах и межсетевых экранах. С развитием облачных платформ (Amazon Web Services, Microsoft Azure, Google Cloud Platform, Яндекс.Облако) возникла потребность в управляемых сервисах, которые бы автоматизировали настройку и масштабирование NAT. Первый коммерческий облачный NAT Gateway был запущен Amazon Web Services в 2013 году. В последующие годы все крупные облачные провайдеры представили аналогичные сервисы. В России сервисы NAT Gateway предоставляются в рамках облачных платформ, таких как Yandex Cloud, VK Cloud и SberCloud.

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

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

Типы NAT, реализуемые в NAT Gateway

  • SNAT (Source NAT) — трансляция исходного адреса. Основной режим работы шлюза.
  • DNAT (Destination NAT) — трансляция адреса назначения. В классических NAT Gateway обычно не поддерживается, так как они предназначены только для исходящего трафика. Для входящих соединений используются отдельные сервисы (например, Load Balancer).

Классификация NAT Gateway

По типу развёртывания

  • Облачный NAT Gateway (Managed NAT Gateway) — управляемый сервис, предоставляемый облачным провайдером. Пользователь не управляет операционной системой, настройками маршрутизации и отказоустойчивостью. Примеры: AWS NAT Gateway, Azure NAT Gateway, Google Cloud NAT, Yandex Cloud NAT Gateway.
  • Аппаратный NAT Gateway — физическое устройство (маршрутизатор, межсетевой экран), выполняющее функции NAT. Используется в корпоративных сетях и ЦОДах.
  • Программный NAT Gatewayпрограммное обеспечение, развёрнутое на виртуальной машине (например, iptables с правилами NAT на Linux, pfSense, OpenVPN). Пользователь полностью отвечает за настройку и обслуживание.

По типу адресации

  • С одним публичным IP-адресом — все исходящие соединения маскируются под один IP-адрес.
  • С пулом публичных IP-адресов — трафик распределяется между несколькими IP-адресами, что увеличивает пропускную способность и снижает риск блокировки по одному адресу.

По масштабируемости

  • Зональный (Zonal) — привязан к одной зоне доступности. В случае отказа зоны шлюз становится недоступен.
  • Региональный (Regional) — распределённый шлюз, работающий во всех зонах доступности региона. Обеспечивает отказоустойчивость.

Характеристики и параметры

  • Пропускная способность — максимальный объём трафика, который может обработать шлюз за единицу времени. В облачных сервисах обычно измеряется в Гбит/с и может автоматически масштабироваться до нескольких десятков Гбит/с.
  • Количество одновременных соединений — число активных сессий, поддерживаемых шлюзом. Для облачных NAT Gateway этот параметр может достигать нескольких миллионов.
  • Время жизни сессии (Idle Timeout) — период бездействия, после которого соединение считается закрытым. Обычно составляет от 60 до 300 секунд.
  • Ценообразование — в облачных сервисах оплачивается почасовое использование шлюза и объём обработанного трафика (за гигабайт).

Применение

В облачных вычислениях

NAT Gateway является ключевым компонентом сетевой архитектуры в облачных средах. Основные сценарии использования:

  • Предоставление доступа в Интернет для виртуальных машин в частных подсетях без публичных IP-адресов.
  • Организация безопасного доступа к внешним репозиториям пакетов, базам данных, API-сервисам.
  • Развёртывание веб-приложений, где серверы приложений находятся в частной подсети, а публичный доступ осуществляется через балансировщик нагрузки.
  • Подключение к внешним системам мониторинга, логирования и управления.

В корпоративных сетях

  • Обеспечение доступа в Интернет для внутренних пользователей через единый шлюз с возможностью контроля и аудита трафика.
  • Сокрытие внутренней структуры сети от внешних атак.
  • Экономия пула публичных IPv4-адресов.

Сравнение с альтернативами

NAT Gateway vs. NAT на виртуальной машине (NAT Instance)

ХарактеристикаNAT Gateway (управляемый)NAT Instance (виртуальная машина)
УправлениеПолностью автоматизировано провайдеромПолностью на пользователе (настройка ОС, обновления, мониторинг)
ОтказоустойчивостьВстроенная, региональная или зональнаяТребует ручной настройки кластеризации
МасштабированиеАвтоматическое, до десятков Гбит/сОграничено ресурсами ВМ, требуется ручное увеличение
СтоимостьФиксированная почасовая + трафикСтоимость ВМ + лицензии ПО + трафик
ГибкостьТолько исходящий NAT, без дополнительных функцийМожно настроить DNAT, VPN, межсетевой экран, прокси

NAT Gateway vs. Internet Gateway

  • Internet Gateway — это шлюз, который предоставляет доступ в Интернет для ресурсов с публичными IP-адресами. Он не выполняет трансляцию адресов, а маршрутизирует трафик напрямую.
  • NAT Gateway — предназначен для ресурсов без публичных IP-адресов. Он скрывает внутренние адреса и не позволяет входящим соединениям инициировать контакт.

Ограничения и критика

  • Отсутствие поддержки входящих соединений — NAT Gateway не может быть использован для публикации сервисов, доступных из Интернета. Для этого требуются отдельные компоненты (Load Balancer, Internet Gateway с публичными IP).
  • Сложность диагностики — при проблемах с соединением (например, таймауты) сложно определить, вызвана ли проблема шлюзом, сетевыми политиками или целевым сервером.
  • Зависимость от провайдера — в облачных средах пользователь не имеет доступа к логам и метрикам на уровне операционной системы шлюза. Доступны только метрики, предоставляемые провайдером (например, количество пакетов, объём трафика).
  • Потенциальная узкая горловина — при высокой нагрузке на один публичный IP-адрес шлюза может возникнуть исчерпание портов (port exhaustion), что приведёт к сбоям в установлении новых соединений. Решается использованием пула IP-адресов.
  • Стоимость — для больших объёмов трафика стоимость NAT Gateway может быть выше, чем развёртывание собственного NAT-сервера на ВМ.

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

  • В некоторых облачных платформах (например, AWS) NAT Gateway автоматически масштабируется до 45 Гбит/с пропускной способности.
  • Для повышения отказоустойчивости рекомендуется создавать отдельный NAT Gateway в каждой зоне доступности.
  • В облачных средах NAT Gateway часто используется вместе с VPC (Virtual Private Cloud) и таблицами маршрутизации.
  • В России сервис NAT Gateway предоставляется в рамках Yandex Cloud с 2021 года.

Источники

  • RFC 1631 — The IP Network Address Translator (NAT)
  • RFC 2663 — IP Network Address Translator (NAT) Terminology and Considerations
  • Документация Amazon Web Services: «NAT Gateway»
  • Документация Microsoft Azure: «Virtual Network NAT»
  • Документация Yandex Cloud: «NAT-шлюз»
  • «Computer Networking: A Top-Down Approach» — James F. Kurose, Keith W. Ross

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

На главную BFOmetr →