Содержание:
- Что такое NAT?
- Зачем использовать NAT?
- Какие бывают NAT?
- 1-к-1 NAT
- Bidirectional 1-к-1 NAT
- N-к-1 NAT
- Port Forward / Проброс портов
Что такое 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 (1-1) или Статический NAT
Самый простой для понимания тип NAT, но и наименее полезный. В случае статического NAT каждому внутреннему IP-адресу присваивается уникальный внешний IP адрес.
Пример статического NAT и сетевые настройки:
Настройка сетевого адаптера на ПЛК:
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 на маршрутизаторе MOXA 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. Невозможно установить связь с устройством из внешней сети.
Последовательное преобразование множества внутренних адресов в общий внешний происходит при помощи более высокого уровня модели OSI, а именно при помощи портов. Внимательно рассмотрите таблицы, обращая внимание на колонки со словом Port. Именно там происходит вся магия.
Как мы видим, роутер метит информацию от компьютеров из внутренней сети при помощи портов на 4 уровне модели OSI: он запоминает сопоставление внутренних портов источника (до WAN) и вновь сгенерированных внешних (после WAN). Когда приходят разные ответы, то, хоть они и поступают на один и тот же IP-адрес WAN-порта, роутер безошибочно распределяет их по правильным компьютерам согласно этому сопоставлению.
Port Forward / Проброс портов
Проброс портов позволяет указать, что все запросы, приходящие на конкретный внешний адрес и конкретный порт маршрутизатора, должны быть перенаправлены на конкретный внутренний адрес и порт получателя.
Требуется, если TCP-сервер находится за NAT или для подключения UDP, инициированного извне. То есть, Port Forward позволяет обойти ограничение NAT N-к-1.
Настройка Port Forward на роутерах MOXA выглядит вот так:
Функция проброса портов NAT является одним из способов подключения из внешней незащищенной зоны (WAN) во внутреннюю защищенную зону (LAN). Пользователь может инициировать подключение из внешней сети к внутренней сети, но не сможет инициировать подключение из внутренней сети к внешней сети.
Внимание: будьте осторожны, используя проброс портов в Интернет! Если злоумышленники узнают IP-адрес и TCP/UDP-порт вашего устройства, то они смогут получить к нему доступ из любой точки мира! Прежде, чем настраивать проброс портов в открытом доступе, лучше заранее подумать обо всех необходимых мерах по кибербезопасности.
Перейдите в полную версию этой статьи на сайте MOXA.pro и сравните модели роутеров EDR между собой.
Если у Вас есть вопросы по продукции МОХА, обращайтесь по телефону:
+7 (495) 419-1201 или по e-mail: russia@moxa.pro