NAT: трансляция сетевых адресов в маршрутизаторе

С июня 2012 года, с выходом шестой версии интернет-протокола (IPv6), появилось решение проблемы растущей нехватки IP-адресов. Однако переход на новый интернет-стандарт — это медленный, затяжной процесс.

Согласно статистике Google, в октябре 2016 года более 85% интернет-пользователей во всем мире по-прежнему используют устаревший протокол IPv4. Но при наличии около 4,3 миллиарда адресов этого уже недостаточно для обеспечения уникальными IP-адресами большого количества устройств, подключенных к Интернету. Не только компьютеры, планшеты или смартфоны нуждаются в доступе к онлайн-миру — в Интернете вещей (IoT) даже холодильники, персональные весы или кофеварки становятся интеллектуальным сетевым оборудованием.

С начала 90-х годов прошлого века IPv4 компенсировал проблему доступности адресов четким разделением частных и публичных адресных пространств. В локальных сетях (LAN) устройства, способные работать в Интернете, имеют частные IP-адреса и подключаются к Интернету с помощью общего публичного IP-адреса. Связующим звеном между публичными и частными адресными областями является маршрутизатор. Именно здесь происходит преобразование сетевых адресов, или NAT.

Что такое NAT?

Аббревиатура NAT означает Network Address Translation, процесс, который происходит между двумя сетями и, как правило, в маршрутизаторе. Существует два различных типа трансляции сетевых адресов: Source-NAT (SNAT) и Destination-NAT (DNAT).

Источник-НАТ

Частные пользователи чаще всего сталкиваются с трансляцией сетевых адресов в виде Source-NAT. Этот метод используется как в домашних, так и в корпоративных сетях, когда сетевое устройство с частным адресом IPv4 используется для доступа в Интернет через публичный IP. В целом, термин NAT используется, даже если его значение не совсем понятно.

Определение термина: NAT vs. PAT

В принципе, необходимо различать, должен ли каждый частный IP-адрес в сети получать свой собственный публичный IP-адрес (трансляция 1:1) или все сетевые устройства используют один и тот же публичный IP-адрес (трансляция n:1).

Строго говоря, перевод сетевых адресов имеет дело только с переводом 1:1 в буквальном смысле, поскольку в этом случае переписываются только сетевые адреса. Перевод n:1, с другой стороны, требует адаптации номера порта. Этот метод известен как PAT (Port and Address Translation) или NAPT (Network Address Port Translation).

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

Функции трансляции портов и адресов (PAT)

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

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

Полная информация о соединении (IP-адреса, порты и тайм-ауты) сохраняется в так называемой таблице NAT (технически это также должно называться таблицей PAT). Адресованный сервер отвечает на запрос локального компьютера пакетом данных, который сначала отправляется обратно на соответствующий порт маршрутизатора. Теперь перед ним стоит задача назначить входящие пакеты данных соответствующему сетевому устройству, с которого начался запрос. Все, что нужно для этого маршрутизатору, содержится в информации о подключении в таблице NAT. Вот пример для пояснения:

Представьте, что маршрутизатору назначен публичный IP-адрес 217.229.111.18 интернет-провайдером (ISP) и он действует как шлюз по умолчанию для локальной сети. При этом частный диапазон IP-адресов 192.168.0.0/24 (все адреса от 192.168.0.0 до 192.168.0.24) доступен для сетевых устройств. Теперь, если устройство (например, компьютер с частным IP-адресом 192.168.0.2) хочет установить соединение с Интернетом (например, с веб-сервером с публичным IP 71.123.239.82 через порт номер 80), оно резервирует внутренний порт (например, 22433) и передает запрос на соединение маршрутизатору, указанному в качестве шлюза по умолчанию. Этот маршрутизатор имеет внутреннюю адресацию через частный IP 192.168.0.1 и взаимодействует с внешней средой через публичный IP 217.229.111.18.

Маршрутизатор получает следующую информацию: Устройство 192.168.0.2 хочет установить соединение по порту 22433 с 71.123.239.82 по порту 80. Чтобы выполнить этот запрос, маршрутизатор должен заменить адрес источника устройства локальной сети (IP-адрес и номер порта) на собственный адрес отправителя. Для этого он резервирует любой свободный порт (например, 61001) и пересылает трансляцию сетевого адреса: 192.168.0.2:22433 становится 217.229.111.18:61001. Вся соответствующая информация хранится в таблице NAT на маршрутизаторе.

Частный IP-адрес клиента Порт клиента Публичный IP-адрес маршрутизатора Публичный порт маршрутизатора
192.168.0.2 22433 217.229.111.18 61001

После получения запроса веб-сервером, он обрабатывается и, если возможно, отвечает запрошенным пакетом данных (т.е. данными веб-сайта). Этот ответ сначала достигает маршрутизатора, а затем пересылается с использованием сохраненной информации о соединении. Согласно таблице NAT, внешний порт 61001 зарезервирован для пакетов ответов, отправленных на порт 22433 сетевого устройства 192.168.0.2.

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

Destination-NAT

В то время как Source-NAT обеспечивает соединения из локальной сети в интернет, Destination-NAT используется для того, чтобы сделать локальное устройство постоянно доступным для входящих соединений из интернета. Для этого публичный порт постоянно связан с IP-адресом локального сетевого устройства через конфигурацию маршрутизатора. Все пакеты данных, идущие на соответствующий порт, автоматически перенаправляются на локальный целевой адрес. Это называется переадресацией портов.

Этот метод используется, например, если сервер должен предоставлять услуги из локальной сети в Интернете. Однако открытые порты представляют собой риск для безопасности. Поэтому рекомендуется оградить локальную сеть от интернет-трафика данных, изолировав устройства, адресуемые с помощью проброса портов, в демилитаризованных зонах (DMZ).

NAT: функция безопасности или ответственность?

Трансляция сетевых адресов в маршрутизаторе иногда обсуждается как функция защиты из-за строгого разделения локальной сети и Интернета. Однако предполагаемая функция защиты является лишь побочным эффектом. NAT и PAT были разработаны для борьбы с нехваткой адресов IPv4. Этот метод не может обеспечить функции брандмауэра или пакетного фильтра.

Однако NAT и PAT обеспечивают пользователям частных сетей определенную степень конфиденциальности. Поскольку все устройства локальной сети IPv4 выходят в Интернет через один и тот же публичный IP-адрес, пользователи могут более или менее анонимно заниматься серфингом. Отдельный узел за сетевым маршрутизатором не имеет прямой адресации через Интернет — если только для этой цели не была установлена переадресация портов. Для сторонних наблюдателей кажется, что все запросы идут от локальной сети к маршрутизатору.

Этот метод также включает функцию защиты, которая гарантирует, что все инициированные извне попытки подключения автоматически отбрасываются, если вы не отмените их с помощью проброса портов. Пакеты ответов принимаются из Интернета только в том случае, если ответы сервера ожидаются на определенном порту маршрутизатора. Какой веб-сервер отвечает, не проверяется при NAT или PAT. Если порт маршрутизатора открыт в рамках установки соединения по внутренней инициативе, это создает угрозу безопасности. Рекомендуется применять дополнительные механизмы безопасности, такие как брандмауэры и пакетные фильтры.

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

Такие протоколы, как FTP, работают в предположении, что узлы в Интернете общаются друг с другом напрямую, без вмешательства узла, меняющего IP-адреса или номера портов. В сетях IPv4 на базе NAT их можно использовать только с помощью технологий обхода. Каждый дополнительно требуемый механизм повышает сложность и вероятность ошибки ИТ-системы. Поэтому последовательная реализация сквозного принципа является главной целью разработки нового веб-стандарта IPv6.

IPv6: конец NAT?

С появлением шестой версии интернет-протокола количество IP-адресов, доступных во всем мире, увеличилось в несколько раз. Вместо 4,3 миллиарда адресов IPv4 теперь теоретически существует 340 секстиллионов адресов IPv6, доступных для подключения сетевых устройств к Интернету. Другими словами: Каждая кофемашина получает свой уникальный, глобально маршрутизируемый IP-адрес. Трансляция сетевых адресов через NAT, по сути, становится ненужной, но все еще может использоваться в сетях IPv6 для защиты частных адресных областей от публичной сети.

Оцените статью
cdelat.ru
Добавить комментарий