NAT — что это такое, зачем он нужен и как его использовать

На данный момент в интернете больше всего распространены IP адреса в формате четвертой версии интернет протокола — IPv4. Но данная технология позволяет создавать лишь 4.3 миллиарда айпи на всех пользователей всемирной паутины.

Хотя нам и кажется, что это много — их уже критически не хватает, надо было придумывать, что-то новое, и еще до появления IPv6 был создан механизм преобразования сетевых адресов — NAT.

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

Что такое НАТ — NAT

NAT — это специальный механизм, реализованный в сетях TCP/IP, который позволяет изменять айпи адреса пересылаемых пакетов, т.е. тех внутренних IP, которые присылаются на сетевой шлюз — в глобальные для дальнейшей отправки во внешний интернет. Также, такие пакеты называют транзитными.

Реализуется через маршрутизатор, на программном уровне или настраивается самим провайдером. Полностью расшифровывается, как Network Address Translation и переводится на русский, как Преобразование Сетевых Адресов.

Простыми словами, работает это так. При создании сетей обычно используются частные IP вида: 10/8, 172.16/12, 192.168/16. Обмен пакетами между этими айпи внутри такой сети происходит напрямую. Но, чтобы выйти в глобальную паутину, такой IP должен быть преобразован в глобальный/публичный — именно этим и занимается NAT.

Именно НАТ позволяет вам из частной сети общаться с внешними ip адресами, за ее пределами. А между прочем, даже ваш роутер и подсоединенные к нему ПК, ноутбук, телевизор, смартфон и т.д. — это уже локальная частная сеть.

Интересно! Вот таким вот простыми способом, была решена проблема нехватки уникальных айпи IPv4 для каждого устройства. Т.е. в своей сети — свой IP, а во всемирной паутине — публичный, другой IP.

Типы NAT

1. Статический, Static NAT

Берется один IP-адрес из внутренней сети и преобразовывается во внешний/публичный и все запросы, которые будут на него посылаться извне, будут пересылаться именно на этот внутренний айпи. Т.е. для всемирной паутины он будет выглядеть полностью, как белый/публичный IP.

Используется чаще всего в корпоративных сетях, когда необходимо, чтобы какой-либо IP всегда был доступен из глобальной паутины.

Работает это так:

  1. Есть во внутренней сети айпи 172.15.4.3, он обращается ко внешнему серверу на 198.2.6.2, отправляет пакет данных вначале естественно на шлюз.
  2. Шлюз 172.15.4.1, на котором настроен NAT преобразует его в белый/внешний 198.1.12.8.
  3. По глобальном интернете пакеты передаются по этому IP-адресу и обратно приходят к нему же.
  4. На маршрутизаторе с НАТ есть указание, все пакеты данных, которые приходят на 198.1.12.8 перенаправлять на 172.15.4.3.

Вот и все. Если у вас несколько роутеров, то такую процедуру можно проделать со всеми ними.

2. Динамический, Dynamic NAT

Если вы имеете определенное количество белых/внешних IP, например, ваш поставщик интернета предоставил вам сеть 199.49.101.0/28 — с 16 айпи. Надеюсь помните, что первый и конечный адреса всегда заняты, подробнее в статье про IPv4. Еще два мы возьмем для оборудования на функционирование маршрутизации. И остается их 12, которые можно применять для NAT и пускать посредством них свои устройства.

Тут все практически также, как и со статичным НАТ, также 1 внутренний айпи привязан к 1 внешнему, но с той лишь разницей, что адреса теперь будут выдаваться динамически каждому нуждающемуся пользователю во внутренней сети, а не одному определенному узлу.

Все бы хорошо, но если, например, адресов 12, а пользователей 300? Те, кто успел, те и смогут их использовать.

3. NAT Overload

Этот вид еще имеет другие названия такие как: Many-to-One NAT, Port Address Translation (PAT) и IP Masquerading.

Как вы знаете, чаще всего провайдер выдает вам лишь один IP адрес, который может быть статическим или динамическим. Но дома может быть множество устройств с разными программами, которым необходим доступ во всемирную паутину и как определить, какое из них отправило запрос, какое приложение? Проблема эта решается использованием портов, по этой ссылке очень подробно описана эта тема.

Важно! Надеюсь вы помните, что порт пишется сразу после айпи через двоеточие, например: 176.57.209.9:443. И такая связка называется — сокет.

Как это будет выглядеть, когда NAT подменяет один IP на другой? Так, например, с двух устройств с внутренними адресами 173.52.6.7 и 173.52.4.5, которые должны заменяться на: 198.50.100.9 и 198.50.100.11 будет выполнен запрос на какой-либо сервер в интернете — это будет смотреться так:

  • Устройство 1 — отправитель: IP — 173.52.6.7, порт: 21784; получатель: IP — 192.16.5.3, порт: 80
  • Устройство 2 — отправитель: IP — 173.52.4.5, порт: 32714; получатель: IP — 192.16.5.3, порт: 80

Что происходит дальше? NAT берет IP-пакет первого узла, вынимает его TCP сегмент, при этом узнавая порт. У этого айпи внешний адрес 198.50.100.9 — на него он меняется при выходе в глобальный интернет. Далее происходит выбор порта, к примеру, 11837 и все данные уровня приложений упаковываются в новый TCP сегмент. Порт адресата естественно остается — 80, а вот того, кто отправляет заменяется с 21784 на 11837. TCP сегмент вставляется в новый IP-пакет со сменой самого адреса на 198.50.100.9. Такая же процедура происходит и со вторым хостом только отбирается следующий незанятый PORT.

Теперь данные отправляемые в интернет будут выглядеть так:

  • Устройство 1 — отправитель: IP — 198.50.100.9, порт: 11837; получатель: IP — 192.16.5.3, порт: 80
  • Устройство 2 — отправитель: IP — 198.50.100.11, порт: 27289; получатель: IP — 192.16.5.3, порт: 80

В NAT-таблицу записываются значения отправителя и получателя:

  • Локальный сокет отправителя 1: 173.52.6.7:21784; сокет получателя: 192.16.5.3:80
  • Глобальный сокет отправителя 1: 198.50.100.9:11837; сокет получателя: 192.16.5.3:80
  • Локальный сокет отправителя 2: 173.52.4.5:32714; сокет получателя: 192.16.5.3:80
  • Локальный сокет отправителя 2: 198.50.100.11:27289; сокет получателя: 192.16.5.3:80

Когда приходит ответ от сервера происходит сопоставление данных с таблицей и пакеты данных доставляются именно тому, кто совершил запрос.

Преимущества NAT

  • Под одним внешним IPv4 адресом может сидеть в глобальной паутине множество пользователей одновременно.
  • Скрывает ваш настоящий внутренний IP в частной сети и показывает лишь внешний. Так, все устройства из вне видят только ваш общедоступный айпи.
  • В определенной степени выполняет функции файрвола, не позволяя соединениям извне достигать основного компьютера. Т.е. если на устройство с НАТ извне приходит пакет, который не ожидался — то он категорически не будет допущен.
  • Роутер с поддержкой НАТ может быть настроен сразу с несколькими внешними/белыми IP, это еще называется — пул НАТ.

Недостатки NAT

  • Невысокая скорость передачи данных для протоколов реального времени, например, для VoIP. Т.к. когда НАТ переделывает заголовки у каждого IPv4 адреса — происходят задержки.
  • Проблемы с идентификацией, т.к. под одним IP может находится сразу несколько человек.
  • Для пиринговых сетей нужна дополнительная настройка маршрутизации, т.к. приложению еще нужно и принимать соединения.
  • Если много пользователей с одним айпи зайдут на какой-либо сервис — это может вызывать подозрение на Do S-атаку.

В заключение

Надеюсь вам стало чуточку понятнее, что это такое. Старался написать все, как можно понятнее без заумных терминов и других определений. Надеюсь вам понравилось и до встречи на страницах данного портала.

Интернет как среда обитания
Оцените: Так себеНиже среднегоСреднеОчень даже неплохо!Отлично! Супер! 0,00 из 5, оценок 0
Загрузка...
Рассказать друзьям
Похожие записи
Комментарии - 0:

Оставить комментарий

=) 
8) 
:( 
*THUMBS UP* 
:bye: 
%) 
*YAHOO* 
*ROSE* 
:cry: 
*UNKNOWN* 
;) 
:-D 
*OK* 
*CRAZY* 
*NO* 
*IN LOVE* 
*BRAVO* 
=-O 
*SORRY* 
*HELP* 
*LOL* 
*DANCE* 
:-! 
:P 
*PARDON* 
*KISSED* 
*JOKINGLY* 
:-[ 
[:-} 
:-* 
*DRINK*