| Принципы действия NAT
Для установки соединения используется уникальная
связка "адрес-порт". Другими словами, с хостом, имеющим один IP-адрес,
может быть установлено множество соединений. Однако каждое из этих соединений
будет использовать различные порты. Как правило, механизм NAT используется в ситуации,
когда несколько частных адресов отображаются на один действительный адрес.
Для пакетов, исходящих из NAT, частный адрес, указанный в заголовке пакета в поле
отправителя, отображается в действительный адрес, выданный интернет-провайдером,
а номер порта TCP/UDP отображается в другой номер порта TCP/UDP. Для пакетов,
приходящих NAT, действительный адрес, указанный в заголовке пакета в поле получателя,
отображается в оригинальный адрес интрасети (частный адрес), а номер порта TCP/UDP
отображается обратно к оригинальному номеру порта TCP/UDP. При этом TCP- и UDP-порты
выбираются динамически, чтобы отличить один компьютер внутри интрасети от другого.
Механизм NAT поддерживает специальную таблицу, в которую заносятся сведения об
отображениях. Благодаря этой таблице механизм поддерживает уже установленные соединения,
.используя для передачи входящих пакетов ту же связку "адрес-порт",
которая использовалась для установки соединения.
Для демонстрации принципов
работы механизма NAT рассмотрим следующий пример. Допустим, имеется небольшая
локальная сеть предприятия, в которой для адресации хостов используется идентификатор
сети 192.168.0.0. Так же предприятию интернет-провайдером выделен некоторый адрес
a.b.c.d. Механизм NAT отображает все частные адреса в сети 192.168.0.0 в IP-адрес
a.b.c.d (рис. 14.10).

Рис. 14.10.
Пример работы механизма NAT
Допустим, пользователь локальной
сети предпринимает попытку соединиться с веб-сервером, имеющим действительный
адрес e.f.g.h. В этом случае клиентский компьютер формирует IP-пакет со следующей
информацией в заголовке:
- IP-адрес получателя:
e.f.g.h
- IP-адрес отправителя: 192.168.0.10
- порт
получателя: TCP-порт 80
- порт отправителя: TCP-порт
1025
Механизм NAT выполняет преобразование заголовка
этого пакета в следующий заголовок:
- IP-адрес
получателя: e.f.g.h
- IP-адрес отправителя: a.b.c.d
- порт получателя: TCP-порт 80
- порт
отправителя: TCP-порт 5000
Обратите внимание, что вместо
частного адреса хоста, расположенного в локальной сети, в качестве отправителя
указывается действительный адрес компьютера-преобразователя. При этом информацию
о выполненном преобразовании {192.168.0.10, TCP 1025} в {a.b.c.d, TCP 5000} компьютер
запоминает в своей внутренней таблице.
После выполнения преобразования IP-пакет
может быть передан в Интернет. Поскольку в качестве отправителя пакета указан
компьютер-преобразователь, удаленная служба сформирует ответный пакет, который
будет адресован этому компьютеру. Ответный пакет содержит следующую информацию
в заголовке:
- IP-адрес получателя: a.b.c.d
- IP-адрес
отправителя: e.f.g.h
- порт получателя: TCP-порт 5000
- порт отправителя: TCP-порт 80
Механизм NAT анализирует полученный пакет и, используя собственную адресную таблицу,
отображает действительные адреса в частные. По окончании преобразования пакет
будет передан хосту во внутренней сети (в нашем случае по адресу 192.168.0.10).
При этом пакет содержит следующую информацию в заголовке:
- IP-адрес
получателя: 192.168.0.10
- IP-адрес отправителя: e.f.g.h
- порт получателя: TCP-порт 1025
- порт
отправителя: TCP-порт 80
|