Трансляция адресов (NAT)
NAT – Network Address Translation (механизм замены сетевых адресов транзитных пакетов в сетях TCP/IP, применяется для маршрутизации пакетов из локальной сети клиента в другие сети/Интернет и в обратном направлении – вовнутрь LAN клиента, к адресату).
Преобразование адреса методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном.
Наиболее популярным является Masquerading, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.
Виды NAT
IP Masquerading
IP Masquerading имеет несколько названий: NAT Overload, Port Address Translation (PAT), Many-to-One (многие к одному).
Последнее название говорит само за себя — через один внешний адрес выходит в мир много приватных. Это позволяет решить проблему с нехваткой внешних адресов и выпустить в мир всех желающих.
Этот вид NAT используется чаше всего, поддерживается всеми маршрутизаторами, домашними в том числе. Разберём его поподробней.
Чтобы выйти в Интернет нужен глобальный IP адрес. Провайдером присвоен внешний IP адрес 184.86.45.120, следовательно возможность выхода в интернет есть. Но как нам быть, если у нас в локальной сети несколько компьютеров и всем нужен выход в Интернет?
Технология NAT подменяет внутренние IP адреса на внешний. Чтобы не было путаницы (внешний один адрес, а внутренних много) создаётся таблица NAT. Для каждого соединения локального компьютера выбираются уникальный внутренний и внешний порты (случайным образом). Таким образом, все пользователи имеют выход в Интернет и имеют возможность двухстороннего обмена с нужным ресурсом.
Спустя какое то время, при не активности, таблица NAT очищается от записей.
Статический NAT
В этом случае всё просто. Одному локальному адресу и сетевому устройству принадлежит один глобальный IP адрес. В качестве примера можно привести одну единственную вебкамеру, для которой выделили один “белый” IP для трансляции в Интернет. Очень расточительно, согласен.
Динамический NAT
Имеем в наличии в локальной сети N количество сетевых устройств и столько же N внешних “белых” IP адресов (пул адресов). Если бы жёстко за каждым устройством был закреплён один глобальный IP адрес, то это был бы статический NAT. Если внешние адреса попеременно присваиваются к каждому из хостов, то это и есть динамический NAT.
Carrier-Grade NAT
Используется крупными провайдерами при острой нехватки белых IP адресов. Так же этот вид NAT нацелен на использование в будущем протокола IPV6. Дело в том, что внутри своей сети и на стыке с крупнейшими провайдерами уже используется эта версия, которая должна решить нехватку IP адресов.
На схеме ниже мы видим, что помимо роутера в локальной сети появился ещё один маршрутизатор провайдера CGN Router который имеет доступ к пулу глобальных IP адресов. В свою сеть провайдера транслируются и выдаются уже “серые” IP адреса 100.64.0.0/10. Таким образом выглядит двойной NAT со всеми вытекающими неудобствами. Одно из главных неудобств – невозможность пробросить порт из внешней сети во внутреннюю.
Преимущества и недостатки NAT
Представим себе игровой клуб, где одновременно играет 30 человек в популярную онлайн игру Counter – Strike. Все компьютеры локальной сети подключены к роутеру. Роутер имеет внешний (белый) IP адрес. Среди игроков один оказался нечестный и применял читы в игре, получая при этом преимущество над другими игроками. В результате администратор игрового сервера заметил это и “забанил” игрока по IP. Как нетрудно догадаться, без игры остались все остальные 29 человек.
Существует множество Интернет ресурсов, где нужно пройти идентификацию по IP адресу. В этом случае, если по этому же IP адресу выйдет другое сетевое устройство, доступ будет заблокирован. Это относится к банкоматам, видеохостингам и др. В результате приходится приобретать за отдельную плату статический (фиксированный) IP адрес.
С другой стороны, есть и преимущества.
Учитывая тот факт, что из глобальной сети невозможно увидеть внутреннюю структуру локальной сети, то это существенно повышает безопасность. Из внешней сети виден только роутер, следовательно, всё, что за роутером – нет.