2.2. Обзор NAPT
Предположим, что организация имеет частную сеть IP и WAN-канал к провайдеру. Краевому маршрутизатору оконечной сети присвоен уникальный адрес для интерфейса канала WAN, а узлы внутри сети организации используют приватные адреса, значимость которых ограничена данной сетью. В этом случае узлы внутренней сети могут получить одновременный доступ во внешние сети с использованием единственного зарегистрированного адреса IP и трансляции NAPT. Этот вариант трансляции позволяет отображать пары типа (локальный адрес, локальный номер порта TU) в пары типа (зарегистрированный адрес, присвоенный номер порта TU).
Эта модель отвечает требованиям большинства групп SOHO для организации доступа во внешние сети с использованием единственного адреса IP, выделенного провайдером. Модель можно расширить для того, чтобы обеспечить доступ извне к локальному узлу за счет статического отображения локального узла на каждый номер порта TU для зарегистрированного адреса IP.
В показанном на рисунке 3 примере внутри оконечной сети A используется блок адресов класса A 10.0.0.0/8. WAN-интерфейсу граничного маршрутизатора сети провайдером присвоен IP-адрес 138.76.28.4.
\ | /
+-----------------------+
|Service Provider Router|
+-----------------------+
WAN |
|
Stub A .............|....
|
^{s=138.76.28.4,sport=1024, | v{s=138.76.29.7, sport = 23,
^ d=138.76.29.7,dport=23} | v d=138.76.28.4, dport = 1024}
+------------------+
|Stub Router w/NAPT|
+------------------+
|
| LAN
--------------------------------------------
| ^{s=10.0.0.10,sport=3017, | v{s=138.76.29.7, sport=23,
| ^ d=138.76.29.7,dport=23} | v d=10.0.0.10, dport=3017}
| |
+--+ +--+ +--+
|--| |--| |--|
/____\ /____\ /____\
10.0.0.1 10.0.0.2 ..... 10.0.0.10
Рисунок 3: Работа NAPT
Когда хост сети A с адресом 10.0.0.10 передает пакет telnet хосту 138.76.29.7, он указывает публичный адрес получателя 138.76.29.7 и отправляет пакет основному маршрутизатору. Маршрутизатор имеет статический маршрут в сеть 138.76.0.0/16 и пересылает пакет в канал WAN. Однако до пересылки пакета NAPT транслирует адрес отправителя 10.0.0.10 и номер порта TCP 3017 в заголовках IP и TCP, используя публичный адрес 138.76.28.4 и уникальное значение номера порта TCP (скажем, 1024). Для обратных пакетов происходит похожее преобразование адреса и номера порта TCP в IP-адрес локального хоста и номер целевого порта TCP.
Отметим снова, что не требуется вносить какие-либо изменения на хостах или маршрутизаторах. Трансляция совершенно прозрачна.
В описанном варианте поддерживаются только сеансы TCP/UDP, организованные из локальной сети. Однако для некоторых служб (таких, как DNS) требуется обеспечить доступ извне. Могут существовать также иные службы, к которым организация хочет предоставить внешний доступ. Можно статически настроить на граничном маршрутизаторе отображение общеизвестных номеров портов TU [RFC 1700] на адреса конкретных хостов локальной сети.
В дополнение к сессиям TCP/UDP маршрутизатор NAPT может также обеспечивать мониторинг сообщений ICMP, за исключением типа REDIRECT. Запросы ICMP транслируются подобно пакетам TCP/UDP и поле идентификатора в заголовке сообщения ICMP будет уникально отображаться в идентификатор запроса для зарегистрированного адреса IP. Поле идентификатора в заголовках сообщений ICMP устанавливается отправителем и возвращается неизменным в отклике на запрос. Следовательно, пара (локальный адрес IP, локальный идентификатор ICMP) отображается в пару (публичный адрес IP, выделенное значение идентификатора ICMP) маршрутизатором NAPT и обеспечивает уникальную идентификацию всех типов сообщений ICMP от любого из локальных хостов. Изменение сообщений ICMP об ошибках рассматриваемое ниже, включает модификацию данных ICMP, а также заголовков IP и ICMP.
В конфигурациях NAPT, где зарегистрированный адрес IP совпадает с IP-адресом WAN-интерфейса оконечного маршрутизатора, этот маршрутизатор должен различать сессии TCP, UDP или ICMP, организованные им самим от сессий, организованных узлами внутренней сети. Все входящие сессии (включая TCP, UDP и ICMP) предполагаются адресованными маршрутизатору NAT, как конечной точке, если целевой порт не отображен статически на адрес того или иного узла локальной сети.
Сессии, отличные от TCP, UDP и ICMP, просто не поддерживаются для локальных узлов, обслуживаемых маршрутизатором NAPT.