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 →