Немного о NAT
Как правило, NAT используется для перевода приватных адресов в общедоступные ("белые" IPv4-адреса).
Маршрутизатор «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинация, нужная для обратной подстановки, маршрутизатор сохраняет у себя во временной таблице.
Source NAT - трансляция пакета межсетевым экраном наружу из локальной сети.
Destination NAT - трансляция пакета извне межсетевым экраном на хост в локальной сети.
!!! Статический NAT (Static Network Address Translation) -
!!! NAT loopback (или NAT hairpinning)
!!! NAT Traversal
NAT включает в себя четыре типа адресов:
1. Внутренний локальный адрес (Inside local);
2. Внутренний глобальный адрес (Inside global);
3. Внешний локальный адрес (Outside local);
4. Внешний глобальный адрес (Outside global);
Терминология NAT всегда применяется с точки зрения устройства с транслированным адресом:
Inside local – приватный адрес хоста, который пытается отправит запрос в Интернет из внутренней сети;
Оutside local - если сам внешний хост тоже скрыт за каким-либо маршрутизатором, то он получает запрос на outside global адрес и транслирует адрес получателя на outside local (во внутренней сети получателя). Обычно outside local и outside global – это один и тот же адрес;
Inside global - при прохождении пакета через маршрутизатор, с помощью механизма NAT, адрес отправителя подменяется на публичный адрес маршрутизатора;
Outside global - внешний хост, на который внутренний хост отправляет пакет из локальной сети.
Рассмотрим пример пути прохождения пакета.
Хост с адресом 192.168.1.5 пытается установить связь с веб-сервером 111.111.111.111. Когда пакет прибывает в маршрутизатор с поддержкой NAT, он считывает IPv4 адрес назначения пакета, чтобы определить, соответствует ли пакет критериям, указанным для перевода. Если исходный адрес соответствует критериям, то адрес переводится с 192.168.1.5 (Inside local address) на 222.222.222.222 (Inside global address).
NAT таблица маршрутизатора
Local Host Remote Host
--------------------------------------------------------------------------
Inside local Inside global Оutside local Outside global
--------------------------------------------------------------------------
192.168.1.5 222.222.222.222 111.111.111.111 111.111.111.111
Proto |
Local Host |
Remote Host |
Description |
||||
Inside local |
Inside global |
Port |
Оutside local |
Outside global |
Port |
||
tcp |
10.1.1.28 |
222.222.222.222 |
- |
111.111.111.111 |
111.111.111.111 |
80 |
|
В первом примере хост 10.1.1.28 имеет доступ к web-серверу 111.111.111.111 по порту 80. Внешний адрес локального маршрутизатора 222.222.222.222.
Таблица 2. Таблица трансляции сетевых адресов и портов**
Original Packet |
Translated Packet |
Протокол |
Шлюз |
Описание правила |
||||
Источник |
Получатель |
Порт |
Источник |
Получатель |
Порт |
|
|
|
10.1.1.2 |
|
|
|
23.12.13.13/32 |
80, 443 |
tcp |
cp-msk-gw *
|
Web Server (443) api.rosatom.ru
|
any |
65.14.193.12/32 |
33389 |
Original |
10.1.1.10 |
3389 |
tcp |
cp-msk-gw |
Проброс порта из Интернета на порт 3389 |