Преобразование сетевых адресов — что такое NAT

NAT (от англ. Network Address Translation — преобразование сетевых адресов) — это механизм в сетях TCP/IP, позволяющий изменять IP-адрес в заголовке пакета, проходящего через устройство маршрутизации трафика. Иногда называется IP Masquerading, Network Masquerading или Native Address Translation.

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

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

Когда мы подключаемся к роутеру со своего домашнего компьютера, чтобы выйти в Интернет, тот смотрит на IP-адрес назначения. Если он находится за пределами локальной сети, то пакеты отправляются наружу. Но локальный адрес компьютера будет недоступен из сети Интернет. Это значит, что ответ не придёт. Для предотвращения такой ситуации роутер подменяет обратный адрес пакетов на свой собственный (внешний) IP-адрес, который виден из сети Интернет и меняет номер порта, чтобы различать пакеты, направленные в ответ разным локальным компьютерам. Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об использованных портах. Это source NAT.

Кроме source NAT часто применяется ещё и destination NAT, когда обращения извне транслируются межсетевым экраном на компьютер в локальной сети, имеющий внутренний адрес и потому недоступный извне напрямую без NAT.

Преобразование сетевых адресов - что такое NAT
Принцип работы NAT.

Преобразование сетевых адресов также называют трансляцией. Существует три концепции трансляции адресов:

  1. Статический NAT — взаимодействие внутреннего IP-адреса и внешнего IP-адреса один к одному;
  2. Динамический NAT — взаимодействие внутреннего IP-адреса с внешним IP-адресом из группы адресов;
  3. Перегруженный NAT — взаимодействие группы внутренних IP-адресов с одним внешним IP-адресом.

Как уже было сказано выше, NAT позволяет добиться нескольких важных вещей. Вот плюсы NAT:

  • Экономия IP-адресов — к глобальной сети Интернет на текущий момент подключено столько устройств, что дать каждому уникальный IP-адрес не представляется возможным. NAT решает эту проблему;
  • Разграничение доступа — NAT даёт возможность обращаться к внешним хостам за пределами локальной сети и получать ответные пакеты в рамках трансляции. При этом можно ограничить обращение снаружи. Пакеты снаружи не будут доходить до устройств в локальной сети, если трансляция не установлена;
  • Сокрытие определённых сервисов внутренних хостов.

Впрочем, и недостатки у NAT есть:

  • Усложнённая идентификация пользователей — поскольку NAT в некоторых своих реализация сводит несколько внутренних IP-адресов к одному внешнему, необходимо хранить полные логи трансляций для успешной идентификации пользователей;
  • Иллюзия DoS-атаки — так как NAT часто используется для подключения нескольких пользователей к одному сервису через один внешний IP-адрес, может создаться иллюзия DoS-атаки на данный сервис;
  • Использование пиринговых сетей затруднено и зачастую требует дополнительной настройки по той причине, что NAT не работает с технологией Universal Plug & Play (UPnP).

Для использования NAT совсем не обязательно покупать сетевое оборудование, современные операционные системы способны организовать трансляцию адресов не хуже. Программная реализация NAT есть как в Windows, так и в Linux, BSD и прочих популярных ОС.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *