Что такое NAT
12:10, 21.06.2022
Network Address Translation, сокращенно NAT, это механизм преобразования сетевых адресов, необходимый для полноценного функционирования сети Интернет, сформированной объединенными компьютерными сетями под управлением протокола TCP/IP. Ключевая проблема, которую решает NAT – это нехватка IP-адресов, которую предсказали еще в 2000-х. Интернет-протокол IPv4 позволяет создавать примерно 4.3 миллиарда адресов, и если в 80-х годах прошлого века этого было достаточно, то на сегодняшний день цифра выглядит достаточно смешно.
Решить проблему пытались также переходом на протокол IPv6, который предоставлял практически бесконечное количество адресов, однако из-за отсутствия обратной совместимости и из-за высокой стоимости внедрить массово IPv6 пока не получается. Процесс идет, но на это требуется время, а пока что наилучшей альтернативой стала технология NAT.
Работает НАТ следующим образом – когда через маршрутизатор проходит пакет, IP-адрес в его заголовке меняется. Если адрес локальный, маршрутизатор пересылает его на другой локальный компьютер, в противном случае пакет с данными отправляется в Интернет. Маршрутизатором подменяется обратный IP-адрес пакета на его внешний IP, а также меняется номер порта. В то же время во временной таблице записывается комбинация, необходимая для обратной подстановки. И когда клиент с сервером завершают обмен пакетами, данные о порте стираются.
Таким образом NAT позволяет сохранять публичные адреса, обеспечивая в то же время и конфиденциальность, так как внутренние IPv4 адреса скрываются.
Виды NAT
Существует три разновидности этой технологии, отличающиеся методом трансляции адресов:
- Static NAT – используется для построения корпоративных сетей, позволяет обеспечить доступность устройства снаружи сети.
- Dynamic NAT – сопоставляет адреса по принципу «многие к многим» между локальными и глобальными адресами.
- NAT Overload – разновидность динамического, обеспечивает многоадресное сопоставление адресов между локальными и глобальными адресами с применением портов.
Самым распространенным вариантом является третий тип – NAT Overload. Эта технология работает в большинстве маршрутизаторов, так как позволяет одновременно обеспечить доступ к сети Интернет сразу нескольким домашним пользователям.
Преимущества и недостатки NAT
Решающим преимуществом этой технологии является экономия IP-адресов за счет того, что несколько внутренних айпишников транслируются в один внешний публичный. Это позволяет более грамотно и компактно организовывать глобальную сеть.
Второй момент – ограничение внешних обращений к внутренним хостам, благодаря чему обеспечивается повышенный уровень безопасности. Частные сети попросту не могут транслировать свою внутреннюю топологию и адреса наружу. Это, конечно, не избавляет от необходимости использования брандмауэра, но служит дополнительным рубежом безопасности.
Третье преимущество NAT – высокая гибкость коммуникации со всемирной путиной. Многочисленные пулы адресов, балансировочные пулы нагрузок, а также резервное копирование – всё это обеспечивает надежность сетевых соединений.
Но, несмотря на многочисленные преимущества, существует ряд недостатков:
- Устаревшие протоколы, которые разрабатывались с целью быстрого и массового внедрения NAT, не могут функционировать, если между хостами транслируются адреса. Эту проблему можно исправить с помощью настройки межсетевых экранов, которые способны заменить IP-адрес на высоких уровнях.
- Проблемы с идентификацией пользователей, возникающие из-за описанной ранее схемы трансляции адресов «много в один».
- Вероятность иллюзорных DoS-атак – опять же, проблема возникает, когда к одному сервису пытаются подключиться многие пользователи. Использование пулов адресов позволяет частично нивелировать проблему.
- Сложности с проверкой целостности пакетов при использовании протокола туннелирования IPsec и других аналогичных.
Несмотря на существующие недостатки, NAT активно используется по всему миру, его повсеместно используют для организации функционирования сетей с использованием протокола IPv4 – просто потому, что более удачных альтернатив нет. А с выше описанными недостатками можно справиться, если грамотно настроить работу серверов и сетей.