2.1 Обзор Basic NAT
В этом параграфе описана работа Basic NAT. Оконечный домен с набором приватных сетевых адресов может взаимодействовать с внешними сетями, используя динамическое отображение набора приватных адресов на некое множество публичных адресов IP. Если число локальных узлов не превышает число имеющихся публичных адресов, каждому локальному адресу можно гарантированно поставить в соответствие публичный адрес. В противном случае число узлов, которые могут одновременно получить доступ во внешние сети, будет ограничено количеством публичных адресов. Отдельные локальные адреса могут статически отображаться на конкретные публичные адреса для обеспечения доступа к локальным хостам извне с использованием фиксированных адресов. С одного локального узла может быть организовано множество одновременных сессий, использующих одно адресное отображение.
Адреса внутри оконечного домена являются локальными для этого домена и некорректны за его пределами. Таким образом, эти адреса могут использоваться одновременно во множестве оконечных доменов.
Например, один блок адресов класса A может применяться во многих оконечных доменах сразу. В каждой точке выхода из оконечного домена во внешнюю сеть используется NAT. Если в домене используется несколько точек выхода, важное значение приобретает использование во всех таких точках одинаковых таблиц трансляции NAT.
В примере, показанном на рисунке 2, оконечные домены A и B используют блок приватных адресов класса A 10.0.0.0/8 [RFC 1918 (Распределение адресов в частных IP-сетях)].
Системе NAT домена A выделен блок адресов класса C 198.76.29.0/24, а в домене B — блок 198.76.28.0/24. Адреса блоков класса C являются уникальными в глобальном масштабе и другие устройства NAT не могут их использовать.
\ | / +---------------+ |Regional Router| +---------------+ WAN | | WAN | | Stub A .............|.... ....|............ Stub B | | {s=198.76.29.7,^ | | v{s=198.76.29.7, d=198.76.28.4}^ | | v d=198.76.28.4} +-----------------+ +-----------------+ |Stub Router w/NAT| |Stub Router w/NAT| +-----------------+ +-----------------+ | | | LAN LAN | ------------- ------------- | | {s=10.33.96.5, ^ | | v{s=198.76.29.7, d=198.76.28.4}^ +--+ +--+ v d=10.81.13.22} |--| |--| /____\ /____\ 10.33.96.5 10.81.13.22 Рисунок 2: Основы работы Basic NAT
Когда хост домена A с адресом 10.33.96.5 хочет передать пакет хосту домена B с адресом 10.81.13.22, он использует в качестве адреса получателя уникальное в глобальном масштабе значение 198.76.28.4 и передает пакет своему основному маршрутизатору. Этот маршрутизатор имеет статический маршрут в сеть 198.76.0.0 и пакет пересылается в WAN-канал. Однако до того, как пакет будет передан, NAT преобразует адрес отправителя 10.33.96.5 в заголовке IP в уникальный адрес 198.76.29.7. Аналогично происходит преобразование адресов для пакетов IP, передаваемых в обратном направлении.
Отметим, что трансляция не требует внесения изменений на хостах или маршрутизаторах. Например, при для хоста домена A хостом из домена B будет использоваться адрес 198.76.28.4. Трансляция адресов в большинстве случаев прозрачна для конечных хостов. Естественно, что приведенный пример очень прост. Эта схема трансляции имеет множество спорных моментов, которые требуется исследовать.