NAT, или Network Address Translation, — технология преобразования сетевых адресов при прохождении трафика через маршрутизатор, Firewall или другой сетевой шлюз. Чаще всего NAT используется для того, чтобы множество устройств с частными IPv4-адресами могли выходить в интернет через один или несколько публичных IP.
Например, ноутбук внутри офиса имеет адрес 192.168.1.25. Этот адрес не маршрутизируется в публичном интернете. Когда пользователь открывает сайт, корпоративный Router заменяет внутренний Source IP на свой Public IPv4, сохраняет информацию о соединении и затем выполняет обратное преобразование для ответного трафика.
NAT позволяет отделить внутреннюю адресацию сети от внешней и преобразовывать IP-адреса и, при необходимости, порты на границе между сетями.
Что такое NAT простыми словами
NAT можно представить как посредника между локальной сетью и интернетом.
Внутри сети работают устройства:
192.168.1.10 192.168.1.11 192.168.1.12
А внешние сайты видят, например:
203.0.113.25
Router запоминает, какому внутреннему устройству принадлежит конкретное соединение, и возвращает ответ правильному клиенту.
Расшифровка NAT
NAT расшифровывается как Network Address Translation — трансляция сетевых адресов.
Под трансляцией понимается изменение Source IP, Destination IP или обоих адресов в IP Packet при прохождении через специальное сетевое устройство.
Зачем нужен NAT
NAT применяется для нескольких задач:
- выход устройств с Private IPv4 в интернет;
- экономия Public IPv4 Addresses;
- публикация внутренних сервисов;
- связывание сетей с разной адресацией;
- изоляция внутренней структуры адресов;
- организация облачных и корпоративных сетей;
- работа домашних Routers.
NAT и IPv4
NAT особенно тесно связан с IPv4, поскольку количество публичных IPv4-адресов ограничено.
Организация может использовать внутри тысячи Private Addresses, но для выхода в интернет ей не обязательно иметь отдельный Public IPv4 для каждого устройства.
На внешнем шлюзе выполняется трансляция.
Private IPv4
Для внутренних сетей используются специальные диапазоны:
| Диапазон | Назначение |
|---|---|
| 10.0.0.0/8 | Частные сети |
| 172.16.0.0/12 | Частные сети |
| 192.168.0.0/16 | Частные сети |
Эти адреса не предназначены для обычной глобальной маршрутизации в интернете.
Public IPv4
Public IPv4 — адрес, используемый в глобальной маршрутизации интернета при наличии соответствующей сетевой инфраструктуры.
NAT Gateway может преобразовывать множество Private Addresses в один Public Address.
Как работает NAT
Представим компьютер:
192.168.1.25
Он подключается к веб-серверу:
198.51.100.20:443
Пакет сначала выглядит условно так:
Source: 192.168.1.25 Destination: 198.51.100.20
NAT Gateway заменяет Source:
Source: 203.0.113.25 Destination: 198.51.100.20
Когда ответ возвращается на 203.0.113.25, Gateway понимает, какому внутреннему устройству его передать.
NAT Table
Чтобы правильно возвращать ответы, NAT Gateway хранит таблицу трансляций.
Она может содержать внутренний IP, внешний IP, Protocol и Ports.
| Internal | External |
|---|---|
| 192.168.1.25:51001 | 203.0.113.25:62001 |
| 192.168.1.26:51002 | 203.0.113.25:62002 |
Благодаря Ports один Public IPv4 может обслуживать множество одновременных соединений.
SNAT
SNAT, или Source NAT, изменяет Source Address пакета.
Это типичный сценарий выхода внутренних клиентов в интернет.
10.0.1.25 → 203.0.113.25
Внешний сервер видит Public IP NAT Gateway, а не реальный Private IP клиента.
DNAT
DNAT, или Destination NAT, изменяет Destination Address.
Он используется, когда внешнее соединение нужно перенаправить на внутренний сервер.
203.0.113.25:443 → 10.0.2.15:443
Так Web Server с Private IP становится доступен через Public Address шлюза.
SNAT и DNAT
| SNAT | DNAT |
|---|---|
| Изменяет Source IP | Изменяет Destination IP |
| Часто используется для исходящего трафика | Часто используется для входящего трафика |
| Скрывает Private IP клиента | Перенаправляет запрос на внутренний сервис |
PAT
PAT, или Port Address Translation, — вариант трансляции, при котором кроме IP используются TCP или UDP Ports.
Именно PAT позволяет множеству устройств одновременно использовать один внешний IPv4.
192.168.1.10:50001 → 203.0.113.25:61001 192.168.1.11:50001 → 203.0.113.25:61002
Даже если исходные Ports совпадают, внешний Gateway может назначить разные значения.
NAT Overload
Термин NAT Overload часто используется для сценария, в котором множество внутренних адресов преобразуются в один Public Address с использованием Ports.
По сути это один из распространенных вариантов PAT.
Static NAT
Static NAT задает постоянное соответствие одного адреса другому.
10.0.2.20 ↔ 203.0.113.30
Такой подход может использоваться для серверов, которым требуется стабильное внешнее отображение.
Dynamic NAT
Dynamic NAT использует Pool доступных внешних адресов.
Внутреннему клиенту временно назначается один из Public IP при создании трансляции.
Такой вариант отличается от PAT, где множество клиентов могут одновременно использовать один внешний адрес.
Static NAT, Dynamic NAT и PAT
| Тип | Принцип |
|---|---|
| Static NAT | Постоянное соответствие адресов |
| Dynamic NAT | Внешний IP выбирается из Pool |
| PAT | Много клиентов используют один или несколько IP через разные Ports |
Port Forwarding
Port Forwarding — распространенный вариант DNAT, когда определенный внешний Port перенаправляется на внутренний Host и Port.
Например:
203.0.113.25:8443 → 192.168.1.50:443
Пользователь подключается к внешнему адресу, а Gateway передает Connection внутреннему серверу.
Пример Port Forwarding
Компания имеет внутренний Web Server:
192.168.10.20:443
Router имеет Public IPv4:
203.0.113.100
Правило:
203.0.113.100:443 → 192.168.10.20:443
позволяет внешнему клиенту открыть сервер через Public IP.
NAT и Firewall
NAT и Firewall часто находятся на одном сетевом устройстве, но это разные функции.
NAT изменяет адреса и Ports, а Firewall принимает решение, разрешен ли Traffic.
NAT не следует считать полноценной заменой Firewall. Отсутствие прямой маршрутизации к Private IP само по себе не является достаточной политикой безопасности.
NAT не равен Firewall
В домашнем Router пользователю может казаться, что устройства защищены именно NAT, поскольку случайное входящее соединение не имеет подходящей трансляции.
Но реальную сетевую политику лучше строить через Stateful Firewall Rules.
Stateful NAT
Большинство распространенных NAT Gateways отслеживает состояние соединений.
Если внутренний Client создал исходящее TCP Connection, Gateway знает, куда вернуть Response.
После завершения или Timeout запись трансляции удаляется.
NAT и TCP
При TCP NAT отслеживает Source и Destination Addresses, Ports и состояние соединения.
Например:
10.0.0.25:51321 → 198.51.100.10:443
после трансляции становится:
203.0.113.25:62001 → 198.51.100.10:443
NAT и UDP
NAT работает и с UDP, хотя UDP не имеет состояния соединения в том же смысле, что TCP.
Gateway создает временное отображение на основании адресов и Ports и удаляет его после определенного периода неактивности.
NAT и ICMP
NAT-устройства также должны корректно обрабатывать часть ICMP Traffic, поскольку он используется для диагностики и передачи информации о сетевых ошибках.
Некорректная фильтрация ICMP может приводить к трудно диагностируемым проблемам.
NAT и DNS
DNS может указывать публичное имя на Public IP NAT Gateway.
app.example.com → 203.0.113.25
DNAT затем отправляет HTTPS Traffic внутреннему серверу.
Внутри корпоративной сети тот же Host может разрешаться иначе, если используется Split DNS.
Split DNS
Split DNS позволяет одному имени возвращать разные IP в зависимости от источника DNS-запроса.
Например:
External: app.example.com → 203.0.113.25 Internal: app.example.com → 10.0.2.15
Так внутренним клиентам не обязательно проходить через внешний NAT.
NAT Loopback
NAT Loopback, или Hairpin NAT, позволяет внутреннему Client обращаться к внутреннему сервису через его внешний Public Address.
Например, сотрудник внутри офиса открывает app.example.com, который разрешается в Public IP компании, после чего Router возвращает Traffic обратно во внутреннюю сеть.
Не каждое устройство реализует такой сценарий одинаково.
Hairpin NAT
Hairpin NAT полезен, когда внутренние и внешние пользователи используют один DNS Name.
Альтернативой является Split DNS, при котором внутренним клиентам сразу выдается Private Address.
NAT и HTTP
Для HTTP Application NAT обычно прозрачен.
Browser устанавливает Connection на IP и Port, а Router выполняет трансляцию на сетевом уровне.
Web Server может видеть Source IP NAT Gateway вместо реального Private IP клиента.
NAT и HTTPS
NAT может изменять сетевые Addresses и Ports, не расшифровывая обычный HTTPS Payload.
TLS работает между соответствующими конечными точками защищенного соединения.
Сам факт NAT не означает TLS Termination.
NAT и Reverse Proxy
NAT и Reverse Proxy решают разные задачи.
| NAT | Reverse Proxy |
|---|---|
| Работает преимущественно на сетевом и транспортном уровне | Работает на уровне приложения или транспортного проксирования |
| Изменяет IP и Ports | Создает отдельное соединение к Backend |
| Не обязан понимать HTTP | Может анализировать HTTP Host и Path |
Для публикации веб-приложения часто используют одновременно Public NAT, Load Balancer и Reverse Proxy.
NAT и Load Balancer
Load Balancer может использовать механизмы трансляции трафика для распределения Connections между Backend Servers.
Но балансировка нагрузки является более широкой задачей и может работать на Layer 4 или Layer 7.
NAT и маршрутизация
Routing определяет, куда передать пакет, а NAT изменяет его адреса.
Обычно Gateway сначала применяет определенную комбинацию Routing и NAT Rules согласно собственной сетевой реализации.
Для администратора важно понимать обе части: правильная трансляция бесполезна, если нет маршрута до Destination.
Source Route после NAT
При публикации внутреннего сервера важно, чтобы его ответный Traffic возвращался через тот NAT Gateway, который создал трансляцию.
Иначе может возникнуть асимметричная маршрутизация и Connection перестанет работать корректно.
Asymmetric Routing
Asymmetric Routing означает, что запрос и ответ проходят разными сетевыми путями.
Для Stateful Firewall и NAT это может стать проблемой, если обратный Traffic не проходит через устройство, хранящее состояние трансляции.
NAT и VPN
NAT часто используется вместе с VPN.
Например, две компании имеют пересекающиеся внутренние Subnets:
Company A: 10.0.0.0/24 Company B: 10.0.0.0/24
Такое пересечение мешает Routing. В некоторых случаях NAT используется для представления одной сети под другим диапазоном внутри VPN.
NAT при пересечении сетей
Можно преобразовать одну сторону:
Real: 10.0.0.0/24 Translated: 10.100.0.0/24
Тогда удаленная сеть работает с уникальным диапазоном.
Однако это усложняет диагностику и документацию, поэтому лучше заранее проектировать непересекающиеся IP Plans.
NAT и Site-to-Site VPN
При обычном Site-to-Site VPN NAT часто отключают для Traffic между внутренними корпоративными сетями, чтобы сохранить реальные Private Addresses.
Правила исключения из NAT должны соответствовать VPN Routing.
NAT и IPsec
NAT может создавать дополнительные сложности для некоторых VPN-протоколов, поскольку изменяет сетевые Headers.
Для работы через NAT существуют специальные механизмы совместимости, используемые современными VPN-решениями.
NAT Gateway
NAT Gateway — специализированный компонент, через который Private Subnet получает исходящий доступ во внешнюю сеть.
Он особенно часто встречается в Cloud Architecture.
Private VM ↓ NAT Gateway ↓ Internet
Внешние узлы не могут автоматически начать произвольное соединение к Private VM только потому, что она использует NAT для исходящего Traffic.
NAT в облаке
В Cloud часто создают Public и Private Subnets.
Load Balancer находится во внешнем сегменте, а Backend и Database — во внутренних.
Backend может обращаться к внешним API через NAT Gateway, не получая собственный Public IPv4.
Пример облачной архитектуры
Internet ↓ Public Load Balancer ↓ Private Backend ↓ NAT Gateway → Internet API
Backend принимает входящие Requests через Load Balancer, а NAT используется только для исходящих соединений.
Зачем NAT Gateway приватному серверу
Private Server может нуждаться в доступе к Package Repository, внешнему API или другому интернет-ресурсу.
Выдавать ему отдельный Public IP необязательно.
NAT Gateway позволяет сохранить приватную адресацию и предоставить исходящий доступ.
NAT и Public Subnet
Public Subnet обычно имеет маршрут через Internet Gateway, а отдельные ресурсы могут иметь Public Addresses.
Private Subnet не принимает прямую интернет-маршрутизацию и использует NAT Gateway для нужного исходящего Traffic.
NAT и Security Groups
Security Groups и Firewall Rules должны контролировать, кому разрешено устанавливать Connections.
NAT решает адресную задачу, а Security Policy — задачу разрешения доступа.
NAT в домашнем Router
Домашние устройства получают Private Addresses от DHCP:
192.168.1.10 192.168.1.11 192.168.1.12
Router имеет внешний IPv4 от провайдера и выполняет NAT/PAT для исходящих Connections.
Именно поэтому десятки домашних устройств могут использовать одно интернет-подключение.
NAT и DHCP
DHCP и NAT выполняют разные задачи.
DHCP выдает внутреннему устройству IP Address и сетевые параметры, а NAT преобразует этот адрес при выходе в другую сеть.
Домашний Router часто выполняет обе функции, из-за чего их иногда ошибочно смешивают.
NAT и VLAN
Разные VLAN могут использовать отдельные Private Subnets, но все выходить в интернет через общий NAT Gateway.
VLAN 10: 10.10.10.0/24 VLAN 20: 10.10.20.0/24 ↓ NAT Gateway ↓ Internet
Firewall при этом может применять разные политики к каждому VLAN.
Carrier-grade NAT
CGNAT, или Carrier-grade NAT, используется интернет-провайдерами, когда множество абонентов используют общий пул Public IPv4.
В этом случае NAT существует не только на домашнем Router, но и в сети провайдера.
Двойной NAT
Double NAT возникает, когда Traffic проходит через два уровня трансляции.
Например:
PC ↓ Home Router NAT ↓ Provider CGNAT ↓ Internet
Обычный Web Browsing работает, но входящие Connections, некоторые VPN и Peer-to-peer приложения становятся сложнее.
Почему CGNAT мешает Port Forwarding
Пользователь не контролирует внешний NAT провайдера.
Даже если домашний Router перенаправляет Port на внутренний Server, интернет-запрос сначала должен пройти через CGNAT.
Если провайдер не предоставляет отдельный Public IP или специальный механизм публикации, обычный Port Forwarding может не работать.
Как понять, используется ли CGNAT
Один из признаков — внешний адрес WAN-интерфейса Router отличается от Public IPv4, который видят интернет-сервисы.
Также провайдер может прямо указывать использование CGNAT.
NAT Traversal
NAT Traversal — набор методов, помогающих двум устройствам за NAT устанавливать прямое или опосредованное взаимодействие.
Такие механизмы особенно важны для VoIP, WebRTC, видеосвязи, игр и Peer-to-peer приложений.
STUN
STUN помогает клиенту определить, как его локальный Address представлен во внешней сети через NAT.
Эта информация используется real-time приложениями при установлении соединений.
TURN
Если прямое соединение между клиентами создать не удается, TURN Server может ретранслировать Traffic через промежуточный узел.
Это увеличивает инфраструктурную стоимость и Latency, но повышает вероятность успешного соединения.
ICE
ICE координирует поиск подходящего пути между участниками real-time соединения и может использовать разные варианты прямой связности, STUN и TURN.
NAT Traversal является одной из причин сложности WebRTC-инфраструктуры.
NAT и VoIP
VoIP-протоколы могут передавать IP Addresses и Ports не только в сетевых Headers, но и внутри прикладных сообщений.
NAT изменяет внешний Address, поэтому некоторым системам требуются специальные механизмы для корректного установления медиапотоков.
NAT и FTP-подобные протоколы
Протоколы, которые передают сетевые адреса внутри Payload или открывают дополнительные Connections, исторически создавали сложности для NAT.
Некоторые сетевые устройства использовали Application Layer Gateway для анализа таких протоколов.
Application Layer Gateway
ALG — функция сетевого устройства, которая понимает определенный прикладной Protocol и может корректировать дополнительные данные при NAT.
В современной инфраструктуре такие функции не всегда необходимы и иногда сами становятся источником проблем, поэтому должны применяться осознанно.
NAT и Docker
Docker часто использует NAT, чтобы Containers с внутренними IP могли обращаться во внешнюю сеть через Host.
При публикации Port также создается правило, позволяющее направить Traffic с Host на Container.
Host:8080 → Container:80
Docker Port Mapping и DNAT
Пользователь обращается к Host Port, а сетевой стек контейнерной платформы перенаправляет соединение на внутренний Container IP и Port.
Это концептуально близко к DNAT.
NAT и Kubernetes
Kubernetes Networking может использовать различные формы SNAT и DNAT в зависимости от CNI, Service и внешней инфраструктуры.
Например, обращение к Service может приводить к перенаправлению Traffic на один из Pods.
Конкретная реализация зависит от сетевого стека кластера.
Source NAT в Kubernetes
При выходе Pod Traffic за пределы кластера Source IP иногда преобразуется в Address Node или другого Gateway.
Это влияет на то, какой Client IP увидит внешний сервис.
NAT и Microservices
Внутри Microservices Architecture лучше использовать DNS и Service Discovery, а не строить взаимодействие вокруг ручного NAT между каждым сервисом.
NAT чаще используется на границах сетей: Cluster-Internet, Data Center-Internet или между отдельными инфраструктурными зонами.
NAT и логирование
Если тысячи клиентов работают через один NAT Gateway, внешний сервис видит один или небольшой набор Public IP.
Для расследования инцидентов одного IP может быть недостаточно — важны Timestamp и Source Port.
Почему NAT усложняет аудит
Public IP перестает однозначно соответствовать одному устройству.
Чтобы определить внутреннего клиента, администратору нужны NAT Logs с точным временем и Mapping Ports.
При большом Traffic такие Logs могут быть объемными.
NAT и Rate Limiting
Если API ограничивает Requests только по Source IP, NAT создает проблему.
Сотни сотрудников одной компании могут выходить через один Public Address и выглядеть для API как один клиент.
Поэтому Rate Limiting лучше дополнять User ID, API Key или другими идентификаторами.
NAT и геолокация IP
Public IP после NAT относится к Gateway или провайдеру, а не обязательно к точному местоположению конкретного пользователя.
При CGNAT один Address вообще может представлять множество абонентов.
Поэтому IP Geolocation всегда является приблизительной характеристикой.
NAT и безопасность
NAT уменьшает прямую видимость внутренней адресной схемы и не создает автоматического Mapping для произвольного входящего Traffic.
Но безопасность должна строиться отдельно.
- используйте Stateful Firewall;
- не публикуйте ненужные Ports;
- ограничивайте DNAT Rules;
- защищайте Management-интерфейсы;
- мониторьте NAT Table;
- логируйте критичные трансляции;
- проверяйте Routing.
Опасность широкого Port Forwarding
Если Router перенаправляет внешний Port непосредственно на RDP, Database или административный интерфейс, сервис становится доступен из интернета.
Лучше использовать VPN, Bastion Host, Zero Trust Access или другой контролируемый механизм, если прямой Public Access не требуется.
DMZ и NAT
Публичные сервисы можно размещать в отдельном DMZ-сегменте.
DNAT публикует Web Server, а Firewall ограничивает его доступ к внутренней корпоративной сети.
Так компрометация внешнего сервиса не должна автоматически открывать всю LAN.
NAT и IPv6
IPv6 имеет настолько большое адресное пространство, что использовать NAT исключительно ради экономии адресов обычно не требуется.
Устройства могут иметь глобально уникальные IPv6 Addresses, а доступ контролируется Firewall.
NAT66
Трансляция адресов возможна и в IPv6-средах, но она не является базовой необходимостью, как массовый PAT в IPv4.
Перед использованием NAT между IPv6-сетями следует понимать, какую конкретную архитектурную проблему он решает.
NAT64
NAT64 — механизм взаимодействия IPv6 Clients с IPv4 Servers.
Gateway преобразует Traffic между двумя протоколами.
IPv6 Client ↓ NAT64 ↓ IPv4 Server
Это один из инструментов постепенного перехода к IPv6.
DNS64
DNS64 часто используется вместе с NAT64.
Он помогает IPv6 Client получить синтезированный IPv6 Address для ресурса, который реально доступен только по IPv4.
NAT и принцип End-to-End
Классическая IP-модель предполагает возможность адресовать конечные устройства напрямую при наличии Routing и Security Policy.
NAT добавляет промежуточное состояние трансляции и усложняет прямые входящие соединения.
Это одна из причин, почему Peer-to-peer и real-time приложения вынуждены использовать NAT Traversal.
Преимущества NAT
- экономия Public IPv4;
- использование Private Address Space;
- централизация выхода в интернет;
- возможность публикации внутренних сервисов;
- удобство облачных Private Subnets;
- сокрытие внутренней адресной структуры от внешней сети.
Недостатки NAT
- усложняет прямые входящие Connections;
- добавляет состояние на Gateway;
- усложняет Troubleshooting;
- мешает части Peer-to-peer сценариев;
- может создавать Port Exhaustion;
- затрудняет идентификацию Client по Public IP;
- усложняет некоторые VPN и real-time протоколы.
Port Exhaustion
PAT использует конечное пространство транспортных Ports.
Если огромное количество Connections проходит через один Public IP, Gateway может столкнуться с нехваткой доступных комбинаций трансляции.
Это особенно актуально для крупных NAT Gateways с большим числом клиентов.
Как уменьшить риск Port Exhaustion
Можно использовать несколько Public Addresses, увеличивать Pool, контролировать Connection Timeouts и анализировать приложения, создающие чрезмерное количество коротких соединений.
Решение зависит от конкретного NAT Gateway.
NAT Table Exhaustion
Gateway также имеет ограничение по количеству одновременно отслеживаемых Sessions.
Если таблица заполнена, новые Connections могут перестать создаваться.
Поэтому NAT является компонентом, который необходимо масштабировать и мониторить.
Мониторинг NAT
Для крупной инфраструктуры полезно контролировать:
| Метрика | Что показывает |
|---|---|
| Active Translations | Количество активных NAT mappings |
| Port Usage | Использование доступных Ports |
| Session Rate | Скорость создания Connections |
| Dropped Connections | Ошибки из-за нехватки ресурсов или политики |
| Traffic Volume | Объем данных через Gateway |
NAT Gateway как точка отказа
Если вся Private Network выходит в интернет через один NAT Gateway, его отказ может одновременно нарушить работу множества сервисов.
Для критичной инфраструктуры необходимо продумать High Availability.
NAT и High Availability
Отказоустойчивая архитектура может использовать несколько Gateways или Managed NAT Service.
При переключении важно учитывать, как будут обрабатываться уже существующие Stateful Connections.
Часть из них может разорваться и потребовать Reconnect.
Типичные проблемы NAT
- неправильное SNAT Rule;
- ошибочный DNAT;
- не открыт Port на Firewall;
- нет обратного маршрута;
- асимметричная маршрутизация;
- исчерпаны Ports;
- CGNAT мешает входящему Connection;
- не работает Hairpin NAT;
- VPN Traffic случайно попадает под NAT.
Как диагностировать NAT
- Проверить Source и Destination Addresses до трансляции.
- Проверить NAT Rule.
- Проверить Routing.
- Проверить Firewall.
- Проверить наличие записи в NAT Table.
- Проверить обратный Traffic.
- Проверить Port и Protocol.
- Проверить наличие второго NAT или CGNAT.
Почему сервис доступен изнутри, но не из интернета
Если Web Server открывается по Private IP, но не по Public Address, необходимо проверить DNAT или Port Forwarding, Firewall, внешний IP и маршрут ответа.
Также причиной может быть CGNAT провайдера.
Почему интернет работает, но входящие соединения нет
Исходящий SNAT/PAT не создает постоянного правила для новых входящих Connections.
Чтобы внешний пользователь подключился к внутреннему серверу, обычно нужен DNAT, Port Forwarding или другой опубликованный Endpoint.
Практический пример
Компания размещает приложение в облаке. Web Backend и Database работают в Private Subnets и не имеют собственных Public IPv4.
Внешние пользователи подключаются к Public Load Balancer по HTTPS.
Load Balancer передает Requests Backend Servers по Private IP.
Backend периодически обращается к внешнему платежному API. Для этого Default Route Private Subnet направляет исходящий Traffic через NAT Gateway.
NAT Gateway заменяет Source Private IP Backend на Public IPv4 компании.
Платежный сервис может добавить этот Public IP в Allowlist.
Database не имеет маршрута для прямого входящего Traffic из интернета.
Monitoring отслеживает количество NAT Sessions и использование Ports. При росте нагрузки команда может масштабировать NAT-инфраструктуру до появления отказов.
Таким образом, NAT позволяет внутренним серверам инициировать интернет-соединения, не выдавая каждому из них отдельный Public Address.
NAT для бизнеса
NAT остается фундаментальной частью IPv4-инфраструктуры бизнеса. Он используется в офисах, дата-центрах, VPN, облаках и интернет-подключениях.
Для компании NAT позволяет использовать крупные Private Networks при ограниченном количестве Public IPv4 и централизованно контролировать точки выхода в интернет.
Однако слишком сложная цепочка NAT ухудшает диагностику и может создавать ограничения для real-time приложений и входящих интеграций.
Поэтому NAT стоит использовать там, где он решает конкретную адресную задачу, а безопасность, маршрутизацию и Authentication проектировать отдельно.
Когда NAT особенно полезен
- Private IPv4 Clients выходят в интернет;
- публичных IPv4 меньше, чем внутренних устройств;
- нужно опубликовать внутренний сервис;
- используются Private Cloud Subnets;
- нужно связать пересекающиеся Address Spaces;
- провайдер использует CGNAT;
- требуется NAT64 при переходе между IPv6 и IPv4.
Когда NAT не нужен
Если между двумя Private Networks существует нормальная маршрутизация с уникальными Address Spaces, выполнять NAT между ними часто нет необходимости.
В IPv6 NAT также обычно не требуется только ради экономии адресов.
Лишняя трансляция усложняет Logs, Troubleshooting и End-to-End Connectivity.
Типичные ошибки при проектировании NAT
- Считать NAT заменой Firewall.
- Публиковать административные Ports напрямую в интернет.
- Не учитывать Port Exhaustion.
- Использовать несколько NAT без документации.
- Забывать об обратном маршруте.
- Применять SNAT к VPN Traffic без необходимости.
- Использовать Public IP как уникальный идентификатор пользователя.
- Не логировать критичные NAT mappings.
- Не учитывать CGNAT при Port Forwarding.
- Не мониторить NAT Gateway как критичный компонент.
Как правильно проектировать NAT
Шаг 1. Определить направление Traffic
Нужно понять, требуется исходящий SNAT, входящий DNAT или оба механизма.
Шаг 2. Создать IP Address Plan
Private Networks должны иметь понятные и желательно непересекающиеся диапазоны.
Шаг 3. Определить Public IP Pool
Оцените количество Connections и потребность в Ports.
Шаг 4. Настроить Firewall
Разрешайте только необходимые Protocols и Ports.
Шаг 5. Проверить Routing
Ответный Traffic должен возвращаться через корректный Gateway.
Шаг 6. Настроить Logging
Для критичной инфраструктуры нужно сохранять информацию о трансляциях.
Шаг 7. Добавить Monitoring
Следите за Sessions, Port Usage и Drops.
Шаг 8. Проверить High Availability
Отказ NAT Gateway не должен неожиданно остановить всю Private Network.
Связанные термины
| Термин | Связь с NAT |
|---|---|
| IPv4 | NAT широко используется из-за ограниченного Public Address Space |
| Private IP | Часто преобразуется в Public IP при выходе в интернет |
| SNAT | Изменяет Source Address |
| DNAT | Изменяет Destination Address |
| PAT | Использует Ports для множества Connections через один IP |
| Port Forwarding | Перенаправляет внешний Port на внутренний сервис |
| Firewall | Определяет, какой Traffic разрешен |
| Router | Часто выполняет NAT на границе сети |
| CGNAT | NAT на стороне интернет-провайдера |
| NAT64 | Связывает IPv6 Clients и IPv4 Services |
| VPN | Может работать совместно с NAT |
| VLAN | Несколько сегментов могут использовать общий NAT Gateway |
Краткий итог
NAT — технология трансляции сетевых адресов, позволяющая изменять Source IP, Destination IP и при необходимости транспортные Ports при прохождении Traffic между сетями.
Самый распространенный сценарий — преобразование множества Private IPv4 Addresses в один или несколько Public IPv4 с помощью SNAT и PAT. Для публикации внутренних сервисов используются DNAT и Port Forwarding.
NAT помогает экономить публичные IPv4 и удобно строить Private Networks, но добавляет состояние и усложняет прямую End-to-End Connectivity. Он не заменяет Firewall, Authentication и правильную Network Segmentation. В крупной инфраструктуре NAT Gateway необходимо мониторить, масштабировать и учитывать как потенциальную точку отказа.