Содержание:
Что такое NAT?
NAT (Network Address Translation, трансляция сетевых адресов) — это функция для изменения IP-адреса во время передачи пакетов Ethernet через маршрутизатор. Чаще всего используется для подключения устройств в локальной сети к сети Интернет, но может использовать и для других целей.
Зачем использовать NAT?
- Из-за ограниченного количества IP адресов. В сетях IPv4 количество адресов чуть более 4 млрд. (4 228 250 625). Это в два раза меньше населения нашей планеты, так что на всех не хватит. А ведь еще есть миллиарды устройств, которые тоже должны выходить в Интернет (привет Интернету Вещей). Для решения проблемы нехватки уникальных IP адресов и придумали NAT. Теперь к одному маршрутизатору можно подключить десятки устройств, которые будут иметь разные внутренние IP адреса и только один уникальный внешний IP адрес, по которому будут доступны из Интернета. (только при использовании NAT в режиме N-к-1).
- Для безопасности, когда нужно скрыть внутренний IP-адрес (LAN) устройств от внешней сети (WAN). Функция NAT преобразовывает внутренний IP-адрес в определенный IP-адрес или диапазон внутренних IP-адресов в один внешний IP-адрес.
- Для безопасности, когда нужно скрыть тип сервиса или номер порта, который использует устройство. В этом случае происходит подмена не IP адреса, а номер порта заменяется на общеизвестный порт (например, на 80-й порт HTTP).
- Когда один и тот же IP-адрес используется идентичными сетевыми устройствами и нет возможности его изменить.
Какие бывают NAT?
Всего есть 4 типа NAT:
- 1-к-1 NAT или Статический NAT
- Bidirectional 1-к-1 NAT
- N-к-1 NAT
- Port Forward / Проброс портов
Подробнее о NAT 1-к-1 или Статический NAT
Самый простой для понимания тип NAT, но и наименее полезный. В случае статического NAT каждому внутреннему IP адресу присваивается уникальный внешний IP адрес.
Пример статического NAT и сетевые настройки:
На картинке ниже ПЛК с локальным IP 192.168.127.1 присвоен внешний постоянный IP 10.0.0.1, по которому он всегда будет доступен из глобальной сети WAN.
Настройка сетевого адаптера на ПЛК:
IP: 192.168.127.1
Mask: 255.255.255.0
Gateway: 192.168.127.254
Обратите внимание, так как сообщение отправляется в другую подсеть, на ПЛК обязательно указывать Шлюз по умолчанию. В качестве MAC-адреса получателя ПЛК ставит адрес шлюза. При этом IP-адрес получателя в пакете остаётся 192.168.126.1.
Настройка маршрутизатора:
На маршрутизаторе создаем WAN интерфейс, через который он будет подключаться к внешней сети.
Внешний адрес WAN-интерфейса: 10.0.0.1
LAN интерфейс: 192.168.127.254
IP веб-интерфейса маршрутизатора: 192.168.127.254
Правило NAT на маршрутизаторе будет таким:
Для исходящих соединений – заменить внутренний адрес 192.168.127.1 на внешний 10.0.0.1
Для входящих соединений – переслать пакеты с адресом 10.0.0.1 на внутренний 192.168.127.1
Вот так происходит подмена IP адресов:
Особенности 1-1 NAT:
- Количество устройств за NAT ограничено количеством полученных у провайдера уникальных IP адресов или количеством WAN портов на натирующем устройстве.
- Устройства с зарезервированными адресами могут быть доступны извне по уникальным адресам.
- Связь двунаправленная, т.е. можно связаться с устройством за NAT по его внешнему IP-адресу, не требуется первичной установки соединения, и устройство за NAT может связываться с внешним миром.
- При Static NAT все порты открыты и не нужно делать проброс портов, устройство за NAT (или запущенная на нем программа) будет всегда доступно по любому порту.
- Этот тип NAT не помогает сохранять IP адреса, но бывает полезен. Например, на производственной линии станки могут иметь одинаковые внутренние IP-адреса (спрятаны за маршрутизатором) и подключаться к внешней сети с разными внешними IP-адресами. Здесь мы используем NAT 1-к-1 для сопоставления внутренних адресов с публичными IP-адресами. Внутренний IP-адрес устройств не изменяется, что позволяет, например, заготавливать заранее настроенный ЗИП или просто выпускать с производства оборудование с одинаковыми настройками (в данном случае – станки).
Пример настройки правил NAT на двух маршрутизаторах EDR-G903:
Bidirectional 1-к-1 NAT
Bidirectional NAT является разновидностью обычного NAT 1-1 и позволяет организовать связь между разными подсетями без указания Основного шлюза в настройках сетевого адаптера.
На некоторых устройствах нельзя прописать основной шлюз по умолчанию в настройках сетевого адаптера. Как быть, если нужно соединить такое устройство с другой подсетью через маршрутизатор? В этом случае на помощь приходит Bidirectional NAT.
Вот как настраивается правило Bidirectional NAT на маршрутизаторе EDR-810:
Разница между обычным 1-1 NAT и Bidirectional NAT заключается в простом нюансе: в первом случае устройство знает, что существуют другие подсети, и для выхода на них использует шлюз умолчанию с дальнейшей подменой адресов на роутере; во втором случае устройство «обмануто» и думает, что общается внутри своей подсети. Логично, что Bidirectional NAT используется для более старых или простых приборов, а обычный 1-1 NAT работает с более умными устройствами.
Подробнее о NAT N-к-1, он же Port Address Translation (PAT), NAT Overload или IP Masquerading
В случае NAT N-к-1 через один внешний IP адрес в сеть могут выходить десятки и сотни устройств, находящиеся за NAT. Такой подход помогает экономить дефицитные IP адреса v4. Можно иметь до 65 535 одновременных активных соединений через один и тот же адрес.
Также технология позволяет скрыть реальный IP адрес и порт устройств и приложений за NAT, что повышает безопасность.
Ограничение N-1 NAT:
Главным минусом и в то же время плюсом (в зависимости от задач) этой технологии является то, что она не позволяет иметь доступ извне к внутренним узлам. Все соединения должны быть инициированы изнутри, т.е. инициатором связи всегда является устройство за NAT. Невозможно установить связь с устройством из внешней сети.
Как мы видим, роутер метит информацию от компьютеров из внутренней сети при помощи портов на 4 уровне модели OSI: он запоминает сопоставление внутренних портов источника (до WAN) и вновь сгенерированных внешних (после WAN). Когда приходят разные ответы, то, хоть они и поступают на один и тот же IP-адрес WAN-порта, роутер безошибочно распределяет их по правильным компьютерам согласно этому сопоставлению.
Port Forward / Проброс портов
Проброс портов позволяет указать, что все запросы, приходящие на конкретный внешний адрес и конкретный порт маршрутизатора, должны быть перенаправлены на конкретный внутренний адрес и порт получателя.
Требуется, если TCP-сервер находится за NAT или для подключения UDP, инициированного извне. То есть, Port Forward позволяет обойти ограничение NAT N-к-1.
Функция проброса портов NAT является одним из способов подключения из внешней незащищенной зоны (WAN) во внутреннюю защищенную зону (LAN). Пользователь может инициировать подключение из внешней сети к внутренней сети, но не сможет инициировать подключение из внутренней сети к внешней сети.
Внимание: будьте осторожны, используя проброс портов в Интернет! Если злоумышленники узнают IP-адрес и TCP/UDP-порт вашего устройства, то они смогут получить к нему доступ из любой точки мира! Прежде, чем настраивать проброс портов в открытом доступе, лучше заранее подумать обо всех необходимых мерах по кибербезопасности.
Оборудование с поддержкой NAT
NAT-102: 2-портовое промышленное устройство для ретрансляции адресов
Промышленные маршрутизаторы MOXA серии EDR
Модель | |||
---|---|---|---|
EDR-G903 | EDR-G902 | EDR-810 | |
Требования | Двойное резервирование WAN | Защита между WAN and LAN | Защищенный маршрутизатор с функциями управляемого коммутатора L2; несколько портов для подключения устройств |
Порты | 2 WAN (Комбо) 1 LAN (Комбо) |
1 WAN (Комбо) 1 LAN (RJ45) |
1 WAN 15 LAN (оптика по SFP или RJ45) |
Пропускная способность | 40,000 fps | 25,000 fps | 10,000 fps |
Firewall/NAT | 512 / 256 правил | 256 / 128 правил | 256 / 128 правил |
VPN | 100 IPSec туннелей | 50 IPSec туннелей | 10 IPSec туннелей |
Резервирование WAN | 2 независимых WAN | — | — |
DMZ (демилитаризованная зона) | 1 | — | — |