Что такое nat – Сетевой порт/Что такое nat и как определить, находитесь ли вы за nat — Викиучебник

Содержание

NAT — что это такое, зачем он нужен и как его использовать

На данный момент в интернете больше всего распространены IP адреса в формате четвертой версии интернет протокола — IPv4. Но данная технология позволяет создавать лишь 4.3 миллиарда айпи на всех пользователей всемирной паутины.

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

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

Что такое НАТ — NAT

NAT — это специальный механизм, реализованный в сетях TCP/IP, который позволяет изменять айпи адреса пересылаемых пакетов, т.е. тех внутренних IP, которые присылаются на сетевой шлюз — в глобальные для дальнейшей отправки во внешний интернет. Также, такие пакеты называют транзитными.

Реализуется через маршрутизатор, на программном уровне или настраивается самим провайдером. Полностью расшифровывается, как Network Address Translation и переводится на русский, как Преобразование Сетевых Адресов.

Простыми словами, работает это так. При создании сетей обычно используются частные IP вида: 10/8, 172.16/12, 192.168/16. Обмен пакетами между этими айпи внутри такой сети происходит напрямую. Но, чтобы выйти в глобальную паутину, такой IP должен быть преобразован в глобальный/публичный — именно этим и занимается NAT.

Именно НАТ позволяет вам из частной сети общаться с внешними ip адресами, за ее пределами. А между прочем, даже ваш роутер и подсоединенные к нему ПК, ноутбук, телевизор, смартфон и т.д. — это уже локальная частная сеть.

Интересно! Вот таким вот простыми способом, была решена проблема нехватки уникальных айпи IPv4 для каждого устройства. Т.е. в своей сети — свой IP, а во всемирной паутине — публичный, другой IP.

Типы NAT

1. Статический, Static NAT

Берется один IP-адрес из внутренней сети и преобразовывается во внешний/публичный и все запросы, которые будут на него посылаться извне, будут пересылаться именно на этот внутренний айпи. Т.е. для всемирной паутины он будет выглядеть полностью, как белый/публичный IP.

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

Работает это так:

  1. Есть во внутренней сети айпи 172.15.4.3, он обращается ко внешнему серверу на 198.2.6.2, отправляет пакет данных вначале естественно на шлюз.
  2. Шлюз 172.15.4.1, на котором настроен NAT преобразует его в белый/внешний 198.1.12.8.
  3. По глобальном интернете пакеты передаются по этому IP-адресу и обратно приходят к нему же.
  4. На маршрутизаторе с НАТ есть указание, все пакеты данных, которые приходят на 198.1.12.8 перенаправлять на 172.15.4.3.

Вот и все. Если у вас несколько роутеров, то такую процедуру можно проделать со всеми ними.

2. Динамический, Dynamic NAT

Если вы имеете определенное количество белых/внешних IP, например, ваш поставщик интернета предоставил вам сеть 199.49.101.0/28 — с 16 айпи. Надеюсь помните, что первый и конечный адреса всегда заняты, подробнее в статье про IPv4. Еще два мы возьмем для оборудования на функционирование маршрутизации. И остается их 12, которые можно применять для NAT и пускать посредством них свои устройства.

Тут все практически также, как и со статичным НАТ, также 1 внутренний айпи привязан к 1 внешнему, но с той лишь разницей, что адреса теперь будут выдаваться динамически каждому нуждающемуся пользователю во внутренней сети, а не одному определенному узлу.

Все бы хорошо, но если, например, адресов 12, а пользователей 300? Те, кто успел, те и смогут их использовать.

3. NAT Overload

Этот вид еще имеет другие названия такие как: Many-to-One NAT, Port Address Translation (PAT) и IP Masquerading.

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

Важно! Надеюсь вы помните, что порт пишется сразу после айпи через двоеточие, например: 176.57.209.9:443. И такая связка называется — сокет.

Как это будет выглядеть, когда NAT подменяет один IP на другой? Так, например, с двух устройств с внутренними адресами 173.52.6.7 и 173.52.4.5, которые должны заменяться на: 198.50.100.9 и 198.50.100.11 будет выполнен запрос на какой-либо сервер в интернете — это будет смотреться так:

  • Устройство 1 — отправитель: IP — 173.52.6.7, порт: 21784; получатель: IP — 192.16.5.3, порт: 80
  • Устройство 2 — отправитель: IP — 173.52.4.5, порт: 32714; получатель: IP — 192.16.5.3, порт: 80

Что происходит дальше? NAT берет IP-пакет первого узла, вынимает его TCP сегмент, при этом узнавая порт. У этого айпи внешний адрес 198.50.100.9 — на него он меняется при выходе в глобальный интернет. Далее происходит выбор порта, к примеру, 11837 и все данные уровня приложений упаковываются в новый TCP сегмент. Порт адресата естественно остается — 80, а вот того, кто отправляет заменяется с 21784 на 11837. TCP сегмент вставляется в новый IP-пакет со сменой самого адреса на 198.50.100.9. Такая же процедура происходит и со вторым хостом только отбирается следующий незанятый PORT.

Теперь данные отправляемые в интернет будут выглядеть так:

  • Устройство 1 — отправитель: IP — 198.50.100.9, порт: 11837; получатель: IP — 192.16.5.3, порт: 80
  • Устройство 2 — отправитель: IP — 198.50.100.11, порт: 27289; получатель: IP — 192.16.5.3, порт: 80

В NAT-таблицу записываются значения отправителя и получателя:

  • Локальный сокет отправителя 1: 173.52.6.7:21784; сокет получателя: 192.16.5.3:80
  • Глобальный сокет отправителя 1: 198.50.100.9:11837; сокет получателя: 192.16.5.3:80
  • Локальный сокет отправителя 2: 173.52.4.5:32714; сокет получателя: 192.16.5.3:80
  • Локальный сокет отправителя 2: 198.50.100.11:27289; сокет получателя: 192.16.5.3:80

Когда приходит ответ от сервера происходит сопоставление данных с таблицей и пакеты данных доставляются именно тому, кто совершил запрос.

Преимущества NAT

  • Под одним внешним IPv4 адресом может сидеть в глобальной паутине множество пользователей одновременно.
  • Скрывает ваш настоящий внутренний IP в частной сети и показывает лишь внешний. Так, все устройства из вне видят только ваш общедоступный айпи.
  • В определенной степени выполняет функции файрвола, не позволяя соединениям извне достигать основного компьютера. Т.е. если на устройство с НАТ извне приходит пакет, который не ожидался — то он категорически не будет допущен.
  • Роутер с поддержкой НАТ может быть настроен сразу с несколькими внешними/белыми IP, это еще называется — пул НАТ.

Недостатки NAT

  • Невысокая скорость передачи данных для протоколов реального времени, например, для VoIP. Т.к. когда НАТ переделывает заголовки у каждого IPv4 адреса — происходят задержки.
  • Проблемы с идентификацией, т.к. под одним IP может находится сразу несколько человек.
  • Для пиринговых сетей нужна дополнительная настройка маршрутизации, т.к. приложению еще нужно и принимать соединения.
  • Если много пользователей с одним айпи зайдут на какой-либо сервис — это может вызывать подозрение на Do S-атаку.

В заключение

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

Что такое NAT на роутере

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

  • перестают работать торрент-клиенты;
  • нет возможности подключиться к игровому онлайн серверу;
  • нет обращений к серверу внутренней сети из вне ни по одному протоколу и ни на один порт.

Решить проблему помогает правильная настройка маршрутизатора, а именно сервиса NAT на нем. Для того, чтобы понять, как настроить NAT на роутере, необходимом узнать, что такое трансляция адресов и для чего это используется.

NAT: общие определения

NAT (network address translation) или трансляция сетевых адресов — это процесс перевода внутренних или локальных адресов во внешние. NAT используется абсолютно всеми маршрутизаторами независимо от их конфигурации, назначения и стоимости. По умолчанию роутер запрещает напрямую обращаться к любому устройству, находящимися внутри сети. Он блокирует доступ на любые порты для входящих соединений поступающие из интернета.

Но NAT и Firewall это суть разные понятия. Firewall просто запрещает доступ к ресурсу по определенному TCP или UDP порту, может устанавливаться на локальной машине для ограничения доступа только к ней или же на сервере для фильтрации трафика по всей локальной сети. Перед NAT задача стоит более развернуто. Сервис запрещает или разрешает доступ внутри сети по конкретному IP адресу или диапазону адресов. Таким образом клиент, который обращается к ресурсу не видит действительного IP адреса ресурса. NAT переводит внутренний IP в адрес, который будет виден из интернета.

Чтобы проверить находится ли компьютер за NAT или транслирует в интернет реальный адрес можно следующим образом:

  • в Windows нужно нажать «Пуск — Выполнить — cmd» и прописать ipconfig и нажать «Ввод»;
  • в Linux и MacOS в терминале выполняется ifconfig.

Вывод команды показывает следующие данные:

  • IP — реальный, действительный адрес компьютера;
  • Subnet mask — маска подсети;
  • Gateway — адрес шлюза маршрутизатора.

Как теперь разобрать является ли адрес локальным или же напрямую «смотрит» в интернет. Согласно спецификации, существует четыре диапазона адресов, которые ни при каких обстоятельствах не используются в интернете, а являются исключительно локальными:

  1. 0.0.0 — 10.255.255.255
  2. Х.0.0 — 172.Х.255.255, где Х в диапазоне от 16 до 31.
  3. 168.0.0 — 192.168.255.255
  4. 254.0.0 — 169.254.255.255

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

Проблемы NAT и возможности решения

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

В качестве примера можно рассмотреть протокол передачи файлов (FTP), который был саммым распространенным к появлению NAT. Для файловых серверов (FTP) ключевым является реальный IP адрес компьютера, который посылает запрос на доступ. Здесь преобразование адресов не работает, потому что запрос на сервер отправляется с IP, невидимого из интернета. Нет возможности создать сессию клиент-сервер для загрузки файлов. Обойти проблему помогает использование FTP в пассивном режиме. В этом режиме используется другой набор команд, и работа ведется через специальный прокси-сервер, который дополнительно открывает другой порт для соединения и передает его программе клиенту. Проблемой такого решения является то, что необходимо использовать сторонние FTP клиенты.

Полностью избавиться от проблемы доступа получилось только с появлением SOCKS (Socket Secure) протокола. Этот протокол позволяет обмениваться данными через прокси-сервер в «прозрачном» режиме. То есть сервер не будет знать, что происходит подмена адресов с локальных на глобальные и наоборот. Изобретение SOCKS позволило избавиться от ряда проблем и упростить работу администрирования сети:

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

Использование NAT и SOCKS не всегда оправдано с точки зрения сетевого администрирования. Иногда более целесообразным является использование специализированных прокси, которых существуете множество для любого протокола передачи данных.

Настройка NAT на компьютере

Все современные операционные системы имеют уже встроенный NAT. В Windows эта функция реализована с 1999 года с появлением Windows XP. Управление NAT осуществляется непосредственно через свойства сетевого подключения. Чтобы настроить службу нужно сделать следующее:

  • Через меню «Пуск» запустить программу «Панель управления».
  • Найти иконку «Сетевые подключения» и запустить ее.
  • В новом окне кликнуть правой кнопкой мыши на активном сетевом подключении и выбрать в выпадающем списке «Свойства».
  • Перейти на вкладку «Дополнительно».
  • Установить галочки напротив «Разрешить другим пользователям сети использовать подключение к интернету данного компьютера».
  • Подтвердить изменение кнопкой «Ок».

Если при выведется сообщение что невозможно запустить службу общего доступа, нужно убедиться, что запущена служба DHCP-клиент. При необходимости можно установить запуск службы принудительно, а не по запросу автоматически.

Настройка NAT на маршрутизаторе

Что такое NAT в роутере, целесообразность его использования и проблемы, которые он может создать было описано выше, теперь можно перейти непосредственно к реализации задачи. Настройка службы на роутере зависит от его модели, используемой прошивки и других параметров. Но достаточно понять механизм, чтобы не возникало сложностей и вопросов по настройке отдельного устройства. Для настройки выполняются следующие действия (в качестве примера настройки выполняются на роутере Zyxel на прошивке v1):

  • В браузере зайти на страницу настроек роутера.
  • Перейти в меню «Network — Routing» на вкладку «Policy routing».

Открывшаяся страница и будет той, которая управляет политиками доступа и маршрутизацией. Здесь необходимо включить службу, активировав переключатель в положение «Enable». Сами настройки выполняются в группе «Criteria». Выбираются параметры NAT по нескольким категориям фильтров:

  • User — трансляция по определенному пользователю.
  • Incoming — по сетевому интерфейсу.
  • Source Address — подмена адреса по адресу источника.
  • Destination Address — по адресу конечного получателя
  • Service — по конкретному порту службы.

В качестве объекта перенаправления можно выбрать следующие варианты:

  • Auto — автоматический выбор объекта назначения. По умолчанию установлен Wan интерфейс.
  • Gateway — шлюз, указанный заранее в настройках.
  • VPN Tunel — соответственно через VPN туннель.
  • Trunk — диапазон интерфейсов, настроенных на совместную работу.
  • Interface — конкретный интерфейс по выбору.

В каждом отдельно взятом роутере настройки и название пунктов меню может отличаться, но принцип построения NAT остается неизменным.

NAT — Википедия. Что такое NAT

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

Функционирование

Преобразование адреса методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором[1], сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.

Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об n-ом порте за сроком давности.

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

Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).

Статический NAT — Отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.

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

Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как PAT (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.

Механизм NAT определён в RFC 1631, RFC 3022.

Типы NAT

Классификация NAT, часто встречающаяся в связи с VoIP.[2] Термин «соединение» использован в значении «последовательный обмен пакетами UDP».

Симметричный NAT (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна. [источник не указан 800 дней]

Cone NAT, Full Cone NAT — Однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).

Address-Restricted cone NAT, Restricted cone NAT — Постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.

Port-Restricted cone NAT — Трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.

Преимущества

NAT выполняет три важных функции.

  1. Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
  2. Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
  3. Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://example.org:54055, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.

Недостатки

  1. Старые протоколы. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP). См. Application-level gateway.
  2. Идентификация пользователей. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
  3. Иллюзия DoS-атаки. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
  4. Пиринговые сети. В NAT-устройствах, не поддерживающих технологию Universal Plug & Play, в некоторых случаях, необходима дополнительная настройка (см. Трансляция порт-адрес) при работе с пиринговыми сетями и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.

Пример

Трансляция локальной сети с диапазоном адресов 172.16.14.0/24 в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).

Применение:IP сеть через единственный IP-адрес

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

• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.

• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.

• Организация системы с распределенной нагрузкой.

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

• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).

NAT loopback

Смысл технологии NAT loopback (или NAT hairpinning) прост: если пакет приходит из внутренней сети на внешний IP-адрес маршрутизатора, он считается пришедшим извне — а значит, работают правила брандмауэра, относящиеся ко внешним соединениям. И если пакет успешно пройдёт сквозь брандмауэр, сработает NAT, взяв на себя посредничество между двумя внутрисетевыми машинами. Это даёт две вещи.

  1. Прямо изнутри локальной сети можно проверить, как настроены сетевые службы.
  2. Доступ к серверу, находящемуся в локальной сети, по доменному имени. Без NAT loopback пришлось бы править файл hosts на каждой машине для каждого задействованного домена и поддомена.

Недостатком NAT loopback можно считать повышенную нагрузку на хаб и маршрутизатор (по сравнению с прямым доступом к серверу).

NAT Traversal

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

Программная реализация NAT

При наличии уже существующего сервера под управлением серверной ОС возможно организовать трансляцию адресов без необходимости закупки дополнительных, аппаратных устройств. Как правило для программной реализации NAT требуется наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-VLAN).

Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.

С точки зрения отказоустойчивости, гибкости и производительности, используются операционные системы семейства UNIX (большинство GNU/Linux, *BSD-системы, а также OpenSolaris и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с межсетевыми экранами с функциями трансляции адресов (IPFW, IPtables и др.). Также, NAT работает «из коробки» в семействе операционных систем Windows Server.

См. также

Примечания

NAT — Википедия

У этого термина существуют и другие значения, см. NAT (значения).

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

Функционирование

Преобразование адреса методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором[1], сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.

Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об n-ом порте за сроком давности.

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

Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).

Статический NAT — Отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.

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

Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как PAT (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.

Механизм NAT определён в RFC 1631, RFC 3022.

Типы NAT

Классификация NAT, часто встречающаяся в связи с VoIP.[2] Термин «соединение» использован в значении «последовательный обмен пакетами UDP».

Симметричный NAT (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна. [источник не указан 804 дня]

Cone NAT, Full Cone NAT — Однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).

Address-Restricted cone NAT, Restricted cone NAT — Постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.

Port-Restricted cone NAT — Трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.

Преимущества

NAT выполняет три важных функции.

  1. Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
  2. Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
  3. Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://example.org:54055, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.

Недостатки

  1. Старые протоколы. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP). См. Application-level gateway.
  2. Идентификация пользователей. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
  3. Иллюзия DoS-атаки. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
  4. Пиринговые сети. В NAT-устройствах, не поддерживающих технологию Universal Plug & Play, в некоторых случаях, необходима дополнительная настройка (см. Трансляция порт-адрес) при работе с пиринговыми сетями и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.

Пример

Трансляция локальной сети с диапазоном адресов 172.16.14.0/24 в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).

Применение:IP сеть через единственный IP-адрес

  • На рабочих станциях указанный шлюз по умолчанию или gateway
  • Преобразует служебные заголовки, формирует идентичный IP-пакет
  • Публикация локальных ресурсов во внешней IP-сети

• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.

• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.

• Организация системы с распределенной нагрузкой.

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

• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).

NAT loopback

Смысл технологии NAT loopback (или NAT hairpinning) прост: если пакет приходит из внутренней сети на внешний IP-адрес маршрутизатора, он считается пришедшим извне — а значит, работают правила брандмауэра, относящиеся ко внешним соединениям. И если пакет успешно пройдёт сквозь брандмауэр, сработает NAT, взяв на себя посредничество между двумя внутрисетевыми машинами. Это даёт две вещи.

  1. Прямо изнутри локальной сети можно проверить, как настроены сетевые службы.
  2. Доступ к серверу, находящемуся в локальной сети, по доменному имени. Без NAT loopback пришлось бы править файл hosts на каждой машине для каждого задействованного домена и поддомена.

Недостатком NAT loopback можно считать повышенную нагрузку на хаб и маршрутизатор (по сравнению с прямым доступом к серверу).

NAT Traversal

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

Программная реализация NAT

При наличии уже существующего сервера под управлением серверной ОС возможно организовать трансляцию адресов без необходимости закупки дополнительных, аппаратных устройств. Как правило для программной реализации NAT требуется наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-VLAN).

Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.

С точки зрения отказоустойчивости, гибкости и производительности, используются операционные системы семейства UNIX (большинство GNU/Linux, *BSD-системы, а также OpenSolaris и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с межсетевыми экранами с функциями трансляции адресов (IPFW, IPtables и др.). Также, NAT работает «из коробки» в семействе операционных систем Windows Server.

См. также

Примечания

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Содержание:

Что такое NAT?

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

Зачем использовать NAT?

  1. Из-за ограниченного количества IP адресов. В сетях IPv4 количество адресов чуть более 4 млрд. (4 228 250 625). Это в два раза меньше населения нашей планеты, так что на всех не хватит. А ведь еще есть миллиарды устройств, которые тоже должны выходить в Интернет (привет Интернету Вещей). Для решения проблемы нехватки уникальных IP адресов и придумали NAT. Теперь к одному маршрутизатору можно подключить десятки устройств, которые будут иметь разные внутренние IP адреса и только один уникальный внешний IP адрес, по которому будут доступны из Интернета. (только при использовании NAT в режиме N-к-1).
  2. Для безопасности, когда нужно скрыть внутренний IP-адрес (LAN) устройств от внешней сети (WAN). Функция NAT преобразовывает внутренний IP-адрес в определенный IP-адрес или диапазон внутренних IP-адресов в один внешний IP-адрес.
  3. Для безопасности, когда нужно скрыть тип сервиса или номер порта, который использует устройство. В этом случае происходит подмена не IP адреса, а номер порта заменяется на общеизвестный порт (например, на 80-й порт HTTP).
  4. Когда один и тот же IP-адрес используется идентичными сетевыми устройствами и нет возможности его изменить.

Какие бывают NAT?

Всего есть 4 типа NAT:

  • 1-к-1 NAT или Статический 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.

Что такое NAT? Особенности в MOXA

Настройка сетевого адаптера на ПЛК:

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

Что такое NAT? Особенности в MOXA

Вот так происходит подмена IP адресов:

Что такое NAT? Особенности в MOXA

Особенности 1-1 NAT:

  • Количество устройств за NAT ограничено количеством полученных у провайдера уникальных IP адресов или количеством WAN портов на натирующем устройстве.
  • Устройства с зарезервированными адресами могут быть доступны извне по уникальным адресам.
  • Связь двунаправленная, т.е. можно связаться с устройством за NAT по его внешнему IP-адресу, не требуется первичной установки соединения, и устройство за NAT может связываться с внешним миром.
  • При Static NAT все порты открыты и не нужно делать проброс портов, устройство за NAT (или запущенная на нем программа) будет всегда доступно по любому порту.
  • Этот тип NAT не помогает сохранять IP адреса, но бывает полезен. Например, на производственной линии станки могут иметь одинаковые внутренние IP-адреса (спрятаны за маршрутизатором) и подключаться к внешней сети с разными внешними IP-адресами. Здесь мы используем NAT 1-к-1 для сопоставления внутренних адресов с публичными IP-адресами. Внутренний IP-адрес устройств не изменяется, что позволяет, например, заготавливать заранее настроенный ЗИП или просто выпускать с производства оборудование с одинаковыми настройками (в данном случае – станки).

Что такое NAT? Особенности в MOXA

Пример настройки правил NAT на двух маршрутизаторах EDR-G903:

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Bidirectional 1-к-1 NAT

Bidirectional NAT является разновидностью обычного NAT 1-1 и позволяет организовать связь между разными подсетями без указания Основного шлюза в настройках сетевого адаптера.

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

Что такое NAT? Особенности в MOXA

Вот как настраивается правило Bidirectional NAT на маршрутизаторе EDR-810:

Что такое NAT? Особенности в MOXA

Разница между обычным 1-1 NAT и Bidirectional NAT заключается в простом нюансе: в первом случае устройство знает, что существуют другие подсети, и для выхода на них использует шлюз умолчанию с дальнейшей подменой адресов на роутере; во втором случае устройство «обмануто» и думает, что общается внутри своей подсети. Логично, что Bidirectional NAT используется для более старых или простых приборов, а обычный 1-1 NAT работает с более умными устройствами.

Что такое NAT? Особенности в MOXA

Подробнее о 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. Невозможно установить связь с устройством из внешней сети.

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Как мы видим, роутер метит информацию от компьютеров из внутренней сети при помощи портов на 4 уровне модели OSI: он запоминает сопоставление внутренних портов источника (до WAN) и вновь сгенерированных внешних (после WAN). Когда приходят разные ответы, то, хоть они и поступают на один и тот же IP-адрес WAN-порта, роутер безошибочно распределяет их по правильным компьютерам согласно этому сопоставлению.

Port Forward / Проброс портов

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

Требуется, если TCP-сервер находится за NAT или для подключения UDP, инициированного извне. То есть, Port Forward позволяет обойти ограничение NAT N-к-1.

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Функция проброса портов NAT является одним из способов подключения из внешней незащищенной зоны (WAN) во внутреннюю защищенную зону (LAN). Пользователь может инициировать подключение из внешней сети к внутренней сети, но не сможет инициировать подключение из внутренней сети к внешней сети.

Внимание: будьте осторожны, используя проброс портов в Интернет! Если злоумышленники узнают IP-адрес и TCP/UDP-порт вашего устройства, то они смогут получить к нему доступ из любой точки мира! Прежде, чем настраивать проброс портов в открытом доступе, лучше заранее подумать обо всех необходимых мерах по кибербезопасности.

Что такое NAT? Особенности в MOXA

Что такое NAT? Особенности в MOXA

Промышленные маршрутизаторы MOXA серии EDR

Модель Что такое NAT? Особенности в MOXA Что такое NAT? Особенности в MOXA Что такое NAT? Особенности в MOXA
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

Если у Вас есть вопросы по продукции МОХА, обращайтесь по телефону: +7 (495) 419-1201 или по e-mail: [email protected]

Как работает NAT (Network Address Translation)?

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

Когда компьютеры и серверы в сети обмениваются данными, их нужно идентифицировать друг с другом по уникальному адресу, в результате чего создается 32-битное число, а комбинации этих 32 бит будут вмещать более 4 миллиардов уникальных адресов, известный как IP-адрес. Это было названо IPv4, и хотя более 4 миллиардов адресов звучит много, он действительно не рассматривает, как быстро вырос мир компьютеров и Интернета.

Чтобы обойти эту проблему, было создано временное решение, известное как NAT. NAT привел к двум типам IP-адресов, общедоступных и частных. Был введен ряд частных адресов, которые каждый мог использовать, если они были закрыты в сети и не маршрутизировались в Интернете. Диапазон частных адресов, известных как RFC 1918;

Класс A 10.0.0.0 - 10.255.255.255

Класс B 172.16.0.0 - 172.31.255.255

Класс C 192.168.0.0 - 192.168.255.255

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

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

Теперь перейдем к делу; Когда хост во внутренней сети с внутренним IP-адресом должен обмениваться данными за пределами своей частной сети, он будет использовать общедоступный IP-адрес в шлюзе сети, чтобы идентифицировать себя с остальным миром, и этот перевод преобразования частного IP-адреса адрес для общественности осуществляется NAT. Например, компьютер по внутреннему адресу 192.168.1.10 хотел бы общаться с веб-сервером где-то в Интернете, NAT переведет адрес 192.168.1.10 на общедоступный адрес компании, например, позвоните по этому 1.1.1.1. так что внутренний адрес определяется как общий адрес при общении с внешним миром. Это необходимо сделать, потому что, когда веб-сервер где-то в Интернете должен был ответить на этот внутренний компьютер, ему необходимо отправить его на уникальный и маршрутизируемый адрес в Интернете, общий адрес. Он не может использовать исходный адрес 192.168.1.10, поскольку он является закрытым, ни одного маршрутизируемого и скрытого от внешнего мир

NAT — это… Что такое NAT?

Question book-4.svg В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 12 мая 2011.
У этого термина существуют и другие значения, см. NAT (значения).

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

Функционирование

Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.

Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» производит трансляцию IP-адреса и порта и запоминает эту трансляцию у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись о n-ом порте за сроком давности.

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

Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).

Статический NAT — Отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.

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

Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как PAT (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.

Механизм NAT определён в RFC 1631, RFC 3022.

Преимущества

NAT выполняет три важных функции.

  1. Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
  2. Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
  3. Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://example.org:54055, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и скрытие «непубличных» ресурсов.

Недостатки

  1. Не все протоколы могут «преодолеть» NAT. Некоторые не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP). См. Application-level gateway.
  2. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
  3. DoS со стороны узла, осуществляющего NAT — если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
  4. В некоторых случаях, необходимость в дополнительной настройке (см. Трансляция порт-адрес) при работе с пиринговыми сетями и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие. Однако, если NAT-устройство и ПО, требующее дополнительной настройки, поддерживают технологию Universal Plug & Play, то в этом случае настройка произойдет полностью автоматически и прозрачно для пользователя.

Пример

Трансляция локальной сети с диапазоном адресов 172.17.14.0/24 в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).

Применение

  • Для обеспечения доступа множества узлов во внешнюю IP сеть через единственный IP-адрес
    NAT.svg
  • На рабочих станциях указанный шлюз по умолчанию или gateway
  • Преобразует служебные заголовки, формирует идентичный IP-пакет
  • Публикация локальных ресурсов во внешней IP-сети

• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.

• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.

• Организация системы с распределенной нагрузкой.

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

• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).

NAT Traversal

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

Операционные системы с поддержкой NAT

При недостаточном финансировании, либо при наличии уже существующего сервера под управлением серверной ОС возможно организовать трансляцию адресов без необходимости закупки дополнительных устройств. В таком случае, оптимальным будет наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-VLAN).

Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.

С точки зрения же отказоустойчивости, гибкости и производительности, используются операционные системы UNIX (большинство GNU/Linux, *BSD-системы, а также OpenSolaris и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с межсетевыми экранами с функциями трансляции адресов (IPFW, IPtables и др.).

См. также

Ссылки

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

Ваш адрес email не будет опубликован.