NAT
NAT (Network Address Translation — «трансляция сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия
- IP Masquerading
- Network Masquerading
- Native Address Translation
Зачем нужен?
- Экономия IP-адресов: Основная причина появления NAT — дефицит IPv4-адресов. NAT позволяет целой локальной сети с множеством устройств выходить в интернет, используя всего один публичный («белый») IP-адрес.
- Безопасность: NAT скрывает внутреннюю структуру сети. Из внешнего интернета видны только публичные адреса маршрутизатора, а не конкретные IP-адреса компьютеров внутри сети. Это затрудняет проведение атак на внутренние узлы.
- Удобство администрирования: Позволяет менять провайдера или схему внутренней адресации без необходимости перенастраивать каждое устройство в сети.
Типы NAT
1. Static NAT
Один внутренний незарегистрированный (частный) IP-адрес сопоставляется с одним внешним зарегистрированным (публичным) IP-адресом. Соотношение 1:1.
Обычно используется для серверов внутри сети, к которым должен быть обеспечен постоянный доступ извне (например, веб-сервер или почтовый сервер).
2. Dynamic NAT
Внутренний частный IP-адрес сопоставляется с первым свободным публичным IP-адресом из заранее определенного пула публичных адресов.
Если пул публичных адресов закончится, новые устройства не смогут выйти в интернет, пока кто-то другой не освободит адрес. Соотношение М:N.
3. PAT (Port Address Translation / NAT Overload)
Самый распространенный тип NAT (именно он обычно работает в домашних роутерах). Множество внутренних частных IP-адресов сопоставляются с одним публичным IP-адресом, но с использованием разных номеров портов для различения сессий. Соотношение М:1
- Как это работает: Маршрутизатор запоминает, какой внутренний IP и порт инициировали соединение, и присваивает этой сессии уникальный номер порта на своем внешнем интерфейсе.

Как работает процесс
- Исходящий пакет: Устройство (192.168.1.10) отправляет запрос в интернет. Маршрутизатор получает пакет, заменяет внутренний IP на свой публичный (например, 1.1.1.1) и записывает в таблицу трансляций: Внутренний IP:порт <-> Публичный IP:уникальный_порт.
- Ответ: Когда ответ из интернета приходит на публичный IP маршрутизатора, тот смотрит в таблицу трансляций, находит соответствующий уникальный порт и пересылает данные конкретному устройству в локальной сети.
Преимущества и недостатки
Плюсы:
- Позволяет использовать частные диапазоны адресов (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
- Уменьшает вероятность сканирования портов внутренних машин.
Минусы:
- Сложность для некоторых протоколов: Протоколы, передающие IP-адреса внутри полезной нагрузки (например, FTP или SIP/VoIP), могут работать некорректно без дополнительных механизмов (ALG).
- Затраты ресурсов: Маршрутизатору нужно тратить память и процессорное время на хранение и обработку таблицы трансляций.
- Нарушение принципа End-to-End: NAT разрывает прямое соединение между узлами, что усложняет работу P2P-сетей и некоторых видов VPN.