1 633 подписчика на нашем канале!

ћерион Ќетворкс

12 минут чтени€

232 или 4 294 967 296 IPv4 адресов это много?  ажетс€, что да. ќднако с распространением персональных вычислений, мобильных устройств и быстрым ростом интернета вскоре стало очевидно, что 4,3 миллиарда адресов IPv4 будет недостаточно. ƒолгосрочным решением было IPv6, но требовались более быстрое решение дл€ устранени€ нехватки адресов. » этим решением стал NAT (Network Address Translation).


„то такое NAT

—ети обычно проектируютс€ с использованием частных IP адресов. Ёто адреса 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Ёти частные адреса используютс€ внутри организации или площадки, чтобы позволить устройствам общатьс€ локально, и они не маршрутизируютс€ в интернете. „тобы позволить устройству с приватным IPv4-адресом обращатьс€ к устройствам и ресурсам за пределами локальной сети, приватный адрес сначала должен быть переведен на общедоступный публичный адрес.

» вот как раз NAT переводит приватные адреса, в общедоступные. Ёто позвол€ет устройству с частным адресом IPv4 обращатьс€ к ресурсам за пределами его частной сети. NAT в сочетании с частными адресами IPv4 оказалс€ полезным методом сохранени€ общедоступных IPv4-адресов. ќдин общедоступный IPv4-адрес может быть использован сотн€ми, даже тыс€чами устройств, каждый из которых имеет частный IPv4-адрес. NAT имеет дополнительное преимущество, заключающеес€ в добавлении степени конфиденциальности и безопасности в сеть, поскольку он скрывает внутренние IPv4-адреса из внешних сетей.

ћаршрутизаторы с поддержкой NAT могут быть настроены с одним или несколькими действительными общедоступными IPv4-адресами. Ёти общедоступные адреса называютс€ пулом NAT.  огда устройство из внутренней сети отправл€ет трафик из сети наружу, то маршрутизатор с поддержкой NAT переводит внутренний IPv4-адрес устройства на общедоступный адрес из пула NAT. ƒл€ внешних устройств весь трафик, вход€щий и выход€щий из сети, выгл€дит имеющим общедоступный IPv4 адрес.

ћаршрутизатор NAT обычно работает на границе Stub-сети. Stub-сеть Ц это тупикова€ сеть, котора€ имеет одно соединение с соседней сетью, один вход и выход из сети.

√раница NAT

 огда устройство внутри Stub-сети хочет св€зыватьс€ с устройством за пределами своей сети, пакет пересылаетс€ пограничному маршрутизатору, и он выполн€ет NAT-процесс, перевод€ внутренний частный адрес устройства на публичный, внешний, маршрутизируемый адрес.


“ерминологи€ NAT

¬ терминологии NAT внутренн€€ сеть представл€ет собой набор сетей, подлежащих переводу. ¬нешн€€ сеть относитс€ ко всем другим сет€м.

ѕри использовании NAT, адреса IPv4 имеют разные обозначени€, основанные на том, наход€тс€ ли они в частной сети или в общедоступной сети (в интернете), и €вл€етс€ ли трафик вход€щим или исход€щим.

NAT включает в себ€ четыре типа адресов:

  • ¬нутренний локальный адрес (Inside local address);
  • ¬нутренний глобальный адрес (Inside global address);
  • ¬нешний местный адрес (Outside local address);
  • ¬нешний глобальный адрес (Outside global address);

ѕри определении того, какой тип адреса используетс€, важно помнить, что терминологи€ NAT всегда примен€етс€ с точки зрени€ устройства с транслированным адресом:

  • ¬нутренний адрес (Inside address) - адрес устройства, которое транслируетс€ NAT;
  • ¬нешний адрес (Outside address) - адрес устройства назначени€;
  • Ћокальный адрес (Local address) - это любой адрес, который отображаетс€ во внутренней части сети;
  • √лобальный адрес (Global address) - это любой адрес, который отображаетс€ во внешней части сети;

–ассмотрим это на примере схемы.

NAT адресаци€

Ќа рисунке ѕ  имеет внутренний локальный (Inside local) адрес 192.168.1.5 и с его точки зрени€ веб-сервер имеет внешний (outside) адрес 208.141.17.4.  огда с ѕ  отправл€ютс€ пакеты на глобальный адрес веб-сервера, внутренний локальный (Inside local) адрес ѕ  транслируетс€ в 208.141.16.5 (inside global). јдрес внешнего устройства обычно не переводитс€, поскольку он €вл€етс€ общедоступным адресом IPv4.

—тоит заметить, что ѕ  имеет разные локальные и глобальные адреса, тогда как веб-сервер имеет одинаковый публичный IP адрес. — его точки зрени€ трафик, исход€щий из ѕ  поступает с внутреннего глобального адреса 208.141.16.5. ћаршрутизатор с NAT €вл€етс€ точкой демаркации между внутренней и внешней сет€ми и между локальными и глобальными адресами.

“ермины, inside и outside, объединены с терминами local и global, чтобы ссылатьс€ на конкретные адреса. Ќа рисунке маршрутизатор настроен на предоставление NAT и имеет пул общедоступных адресов дл€ назначени€ внутренним хостам.

Ќа рисунке показано как трафик отправл€етс€ с внутреннего ѕ  на внешний веб-сервер, через маршрутизатор с поддержкой NAT, и высылаетс€ и переводитс€ в обратную сторону.

ѕример работы NAT

¬нутренний локальный адрес (Inside local address) - адрес источника, видимый из внутренней сети. Ќа рисунке адрес 192.168.1.5 присвоен ѕ  Ц это и есть его внутренний локальный адрес.

¬нутренний глобальный адрес (Inside global address) - адрес источника, видимый из внешней сети. Ќа рисунке, когда трафик с ѕ  отправл€етс€ на веб-сервер по адресу 208.141.17.4, маршрутизатор переводит внутренний локальный адрес (Inside local address) на внутренний глобальный адрес (Inside global address). ¬ этом случае роутер измен€ет адрес источника IPv4 с 192.168.1.5 на 208.141.16.5.

¬нешний глобальный адрес (Outside global address) - адрес адресата, видимый из внешней сети. Ёто глобально маршрутизируемый IPv4-адрес, назначенный хосту в »нтернете. Ќа схеме веб-сервер доступен по адресу 208.141.17.4. „аще всего внешние локальные и внешние глобальные адреса одинаковы.

¬нешний локальный адрес (Outside local address) - адрес получател€, видимый из внутренней сети. ¬ этом примере ѕ  отправл€ет трафик на веб-сервер по адресу 208.141.17.4

–ассмотрим весь путь прохождени€ пакета. ѕ  с адресом 192.168.1.5 пытаетс€ установить св€зь с веб-сервером 208.141.17.4.  огда пакет прибывает в маршрутизатор с поддержкой NAT, он считывает IPv4 адрес назначени€ пакета, чтобы определить, соответствует ли пакет критери€м, указанным дл€ перевода. ¬ этом пример исходный адрес соответствует критери€м и переводитс€ с 192.168.1.5 (Inside local address) на 208.141.16.5. (Inside global address). –оутер добавл€ет это сопоставление локального в глобальный адрес в таблицу NAT и отправл€ет пакет с переведенным адресом источника в пункт назначени€. ¬еб-сервер отвечает пакетом, адресованным внутреннему глобальному адресу ѕ  (208.141.16.5). –оутер получает пакет с адресом назначени€ 208.141.16.5 и провер€ет таблицу NAT, в которой находит запись дл€ этого сопоставлени€. ќн использует эту информацию и переводит обратно внутренний глобальный адрес (208.141.16.5) на внутренний локальный адрес (192.168.1.5), и пакет перенаправл€етс€ в сторону ѕ .


“ипы NAT

—уществует три типа трансл€ции NAT:

  • —татическа€ адресна€ трансл€ци€ (Static NAT) - сопоставление адресов один к одному между локальными и глобальными адресами;
  • ƒинамическа€ адресна€ трансл€ци€ (Dynamic NAT) - сопоставление адресов Умногие ко многимФ между локальными и глобальными адресами;
  • Port Address Translation (NAT) - многоадресное сопоставление адресов между локальными и глобальными адресами c использованием портов. “акже этот метод известен как NAT Overload;

Static NAT

—татический NAT использует сопоставление локальных и глобальных адресов один к одному. Ёти сопоставлени€ настраиваютс€ администратором сети и остаютс€ посто€нными.  огда устройства отправл€ют трафик в »нтернет, их внутренние локальные адреса перевод€тс€ в настроенные внутренние глобальные адреса. ƒл€ внешних сетей эти устройства имеют общедоступные IPv4-адреса. —татический NAT особенно полезен дл€ веб-серверов или устройств, которые должны иметь согласованный адрес, доступный из »нтернета, как например веб-сервер компании. —татический NAT требует наличи€ достаточного количества общедоступных адресов дл€ удовлетворени€ общего количества одновременных сеансов пользовател€.

—татическа€ NAT таблица выгл€дит так:

Static NAT
Dynamic NAT

ƒинамический NAT использует пул публичных адресов и назначает их по принципу Ђпервым пришел, первым обслуженї.  огда внутреннее устройство запрашивает доступ к внешней сети, динамический NAT назначает доступный общедоступный IPv4-адрес из пула. ѕодобно статическому NAT, динамический NAT требует наличи€ достаточного количества общедоступных адресов дл€ удовлетворени€ общего количества одновременных сеансов пользовател€.

ƒинамическа€ NAT таблица выгл€дит так:

Dynamic NAT
Port Address Translation (PAT)

PAT транслирует несколько частных адресов на один или несколько общедоступных адресов. Ёто то, что делают большинство домашних маршрутизаторов. »нтернет-провайдер назначает один адрес маршрутизатору, но несколько членов семьи могут одновременно получать доступ к »нтернету. Ёто наиболее распространенна€ форма NAT.

— помощью PAT несколько адресов могут быть сопоставлены с одним или несколькими адресами, поскольку каждый частный адрес также отслеживаетс€ номером порта.  огда устройство инициирует сеанс TCP/IP, оно генерирует значение порта источника TCP или UDP дл€ уникальной идентификации сеанса.  огда NAT-маршрутизатор получает пакет от клиента, он использует номер своего исходного порта, чтобы однозначно идентифицировать конкретный перевод NAT. PAT гарантирует, что устройства используют разный номер порта TCP дл€ каждого сеанса.  огда ответ возвращаетс€ с сервера, номер порта источника, который становитс€ номером порта назначени€ в обратном пути, определ€ет, какое устройство маршрутизатор перенаправл€ет пакеты.

 артинка иллюстрирует процесс PAT. PAT добавл€ет уникальные номера портов источника во внутренний глобальный адрес, чтобы различать переводы.

Port Address Translation

ѕоскольку маршрутизатор обрабатывает каждый пакет, он использует номер порта (1331 и 1555, в этом примере), чтобы идентифицировать устройство, с которого выслан пакет.

јдрес источника (Source Address) - это внутренний локальный адрес с добавленным номером порта, назначенным TCP/IP. јдрес назначени€ (Destination Address) - это внешний локальный адрес с добавленным номером служебного порта. ¬ этом примере порт службы 80: HTTP.

ƒл€ исходного адреса маршрутизатор переводит внутренний локальный адрес во внутренний глобальный адрес с добавленным номером порта. јдрес назначени€ не измен€етс€, но теперь он называетс€ внешним глобальным IP-адресом.  огда веб-сервер отвечает, путь обратный.

¬ этом примере номера портов клиента 1331 и 1555 не измен€лись на маршрутизаторе с NAT. Ёто не очень веро€тный сценарий, потому что есть хороша€ веро€тность того, что эти номера портов уже были прикреплены к другим активным сеансам. PAT пытаетс€ сохранить исходный порт источника. ќднако, если исходный порт источника уже используетс€, PAT назначает первый доступный номер порта, начина€ с начала соответствующей группы портов 0-511, 512-1023 или 1024-65535.  огда портов больше нет, и в пуле адресов имеетс€ более одного внешнего адреса, PAT переходит на следующий адрес, чтобы попытатьс€ выделить исходный порт источника. Ётот процесс продолжаетс€ до тех пор, пока не будет доступных портов или внешних IP-адресов.

“о есть если другой хост может выбрать тот же номер порта 1444. Ёто приемлемо дл€ внутреннего адреса, потому что хосты имеют уникальные частные IP-адреса. ќднако на маршрутизаторе NAT номера портов должны быть изменены - в противном случае пакеты из двух разных хостов выйдут из него с тем же адресом источника. ѕоэтому PAT назначает следующий доступный порт (1445) на второй адрес хоста.

ѕодведем итоги в сравнении NAT и PAT.  ак видно из таблиц, NAT переводит IPv4-адреса на основе 1:1 между частными адресами IPv4 и общедоступными IPv4-адресами. ќднако PAT измен€ет как сам адрес, так и номер порта. NAT перенаправл€ет вход€щие пакеты на их внутренний адрес, ориентиру€сь на вход€щий IP адрес источника, заданный хостом в общедоступной сети, а с PAT обычно имеетс€ только один или очень мало публично открытых IPv4-адресов, и вход€щие пакеты перенаправл€ютс€, ориентиру€сь на NAT таблицу маршрутизатора.

ј что относительно пакетов IPv4, содержащих данные, отличные от TCP или UDP? Ёти пакеты не содержат номер порта уровн€ 4. PAT переводит наиболее распространенные протоколы, переносимые IPv4, которые не используют TCP или UDP в качестве протокола транспортного уровн€. Ќаиболее распространенными из них €вл€ютс€ ICMPv4.  аждый из этих типов протоколов по-разному обрабатываетс€ PAT. Ќапример, сообщени€ запроса ICMPv4, эхо-запросы и ответы включают идентификатор запроса Query ID. ICMPv4 использует Query ID. дл€ идентификации эхо-запроса с соответствующим ответом. »дентификатор запроса увеличиваетс€ с каждым отправленным эхо-запросом. PAT использует идентификатор запроса вместо номера порта уровн€ 4.


ѕреимущества и недостатки NAT

NAT предоставл€ет множество преимуществ, в том числе:

  • NAT сохран€ет зарегистрированную схему адресации, разреша€ приватизацию интрасетей. ѕри PAT внутренние хосты могут совместно использовать один общедоступный IPv4-адрес дл€ всех внешних коммуникаций. ¬ этом типе конфигурации требуетс€ очень мало внешних адресов дл€ поддержки многих внутренних хостов;
  • NAT повышает гибкость соединений с общедоступной сетью. ћногочисленные пулы, пулы резервного копировани€ и пулы балансировки нагрузки могут быть реализованы дл€ обеспечени€ надежных общедоступных сетевых подключений;
  • NAT обеспечивает согласованность дл€ внутренних схем адресации сети. ¬ сети, не использующей частные IPv4-адреса и NAT, изменение общей схемы адресов IPv4 требует переадресации всех хостов в существующей сети. —тоимость переадресации хостов может быть значительной. NAT позвол€ет существующей частной адресной схеме IPv4 оставатьс€, позвол€€ легко измен€ть новую схему общедоступной адресации. Ёто означает, что организаци€ может мен€ть провайдеров и не нужно мен€ть ни одного из своих внутренних клиентов;

  • NAT обеспечивает сетевую безопасность. ѕоскольку частные сети не рекламируют свои адреса или внутреннюю топологию, они остаютс€ достаточно надежными при использовании в сочетании с NAT дл€ получени€ контролируемого внешнего доступа. ќднако нужно понимать, что NAT не замен€ет фаерволы;

Ќо у NAT есть некоторые недостатки. “от факт, что хосты в »нтернете, по-видимому, напр€мую взаимодействуют с устройством с поддержкой NAT, а не с фактическим хостом внутри частной сети, создает р€д проблем:

  • ќдин из недостатков использовани€ NAT св€зан с производительностью сети, особенно дл€ протоколов реального времени, таких как VoIP. NAT увеличивает задержки переключени€, потому что перевод каждого адреса IPv4 в заголовках пакетов требует времени;
  • ƒругим недостатком использовани€ NAT €вл€етс€ то, что сквозна€ адресаци€ тер€етс€. ћногие интернет-протоколы и приложени€ завис€т от сквозной адресации от источника до места назначени€. Ќекоторые приложени€ не работают с NAT. ѕриложени€, которые используют физические адреса, а не квалифицированное доменное им€, не доход€т до адресатов, которые транслируютс€ через NAT-маршрутизатор. »ногда эту проблему можно избежать, реализу€ статические сопоставлени€ NAT;
  • “акже тер€етс€ сквозна€ трассировка IPv4. —ложнее трассировать пакеты, которые подвергаютс€ многочисленным изменени€м адресов пакетов в течение нескольких NAT-переходов, что затрудн€ет поиск и устранение неполадок;
  • »спользование NAT также затрудн€ет протоколы туннелировани€, такие как IPsec, поскольку NAT измен€ет значени€ в заголовках, которые мешают проверкам целостности, выполн€емым IPsec и другими протоколами туннелировани€;
  • —лужбы, требующие инициировани€ TCP-соединений из внешней сети, или stateless протоколы, например, использующие UDP, могут быть нарушены. ≈сли маршрутизатор NAT не настроен дл€ поддержки таких протоколов, вход€щие пакеты не могут достичь своего адресата;

ћы разобрали основные принципы работы NAT. ’отите больше? ѕрочитайте нашу статью по настройке NAT на оборудовании Cisco.


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: