Трансляция сетевых адресов (NAT) и SIP. NAT в роутере и на сервере – что это такое и где используется К какому из устройств относится механизм nat

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

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

Какое же отношение имеет преобразование сетевых адресов к размерам Интернета? Самое непосредственное! Чтобы данный компьютер мог связываться с другими компьютерами и WEB серверами по Интернету, у него должен быть собственный IP адрес. IP адрес (IP значит протокол Интернета) представляет собой уникальное 32-битовое число, обозначающее место данного компьютера в сети. В принципе, он функционирует, как ваш домашний адрес - это способ точно найти местоположение вашего компьютера и доставить вам информацию.

IP адресация

Когда впервые появилась IP адресация, все считали, что адресов достаточно для того, чтобы удовлетворить любые потребности. Теоретически может быть в общей сложности 4 294 967 296 уникальных адресов (232). Фактическое количество доступных для использования адресов несколько меньше (приблизительно между 3.2 и 3.3 миллиардами), что объясняется особенностями разбиения адресов на классы и тем, что определенные адреса резервируются для многоадресной рассылки, тестирования и других специальных нужд.

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

На выручку приходит система NAT (RFC 1631). Преобразование сетевых адресов позволяет одному устройству, например, маршрутизатору, выполнять функции посредника между Интернетом (или «публичной сетью») и локальной (или «частной») сетью. Это значит, что для представления целой группы компьютеров требуется только один уникальный IP адрес.

Однако недостаток IP адресов - лишь одна из причин, по которым используют NAT. Наша статья посвящена преимуществам и особенностям этой системы. Сначала рассмотрим более подробно, что такое NAT и как эта система работает…

Принцип работы системы NAT

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

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

Система преобразования сетевых адресов

Система преобразования сетевых адресов, разработанная компанией Cisco, используется устройством ( , маршрутизатором или компьютером), соединяющим внутреннюю сеть с остальным миром. Преобразование сетевых адресов может иметь разные формы и может работать разными способами:

  • Статическое преобразование сетевых адресов - преобразование незарегистрированного IP адреса в зарегистрированный IP адрес по принципу «один к одному». Особенно полезно, когда требуется доступ к устройству из-за пределов локальной сети.
  • Динамическое преобразование сетевых адресов - преобразование незарегистрированного IP адреса в зарегистрированный IP адрес из группы зарегистрированных IP адресов.
  • Перегрузка - форма динамического преобразования, преобразующая много незарегистрированных IP адресов в один зарегистрированный адрес за счет использования различных портов. Эту процедуру еще называют PAT (Port Address Translation, преобразование портов и адресов), одноадресным NAT или мультиплексированным NAT на уровне портов.
  • Совпадение - когда используемые в вашей сети адреса являются зарегистрированными IP адресами, используемыми в другой сети, маршрутизатор должен вести таблицу преобразования таких адресов, перехватывать их и заменять зарегистрированными уникальными IP адресами. Важно отметить, что маршрутизатор NAT должен преобразовывать «внутренние» адреса в зарегистрированные уникальные адреса, а также «внешние» зарегистрированные адреса в адреса, которые являются уникальными в частной сети. Такая операция может осуществляться с использованием статического преобразования сетевых адресов, либо сервиса доменных имен (DNS) и внедрения динамического преобразования сетевых адресов.

Внутренняя сеть обычно представляет собой локальную сеть (LAN, Local Area Network), которую иногда называют тупиковым доменом (stub domain). Тупиковый домен - это локальная сеть, внутри которой используются IP адреса. Большинство сетевого трафика в тупиковом домене локальное и не выходит за пределы внутренней сети. Тупиковый домен может содержать как зарегистрированные, так и незарегистрированные IP адреса. Разумеется, все компьютеры, которым присвоены незарегистрированные IP адреса, для связи с остальным миром должны пользоваться преобразованием сетевых адресов.

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

  • Интернет-провайдер закрепляет за вашей компанией ряд IP адресов. Адреса из закрепленной группы являются зарегистрированными IP адресами и называются внутренними глобальными адресами. Незарегистрированные, частные IP адреса разделяются на две группы. Одна небольшая группа (внешние локальные адреса) используется маршрутизаторами NAT. Вторая, значительно большая группа, которую называют внутренними локальными адресами (inside local addresses), используется в тупиковом домене. Внешние локальные адреса используются для формирования уникальных IP адресов устройств, называемых внешними глобальными адресами, для выхода в публичную сеть.
  • Большинство компьютеров тупикового домена обменивается информацией друг с другом, используя внутренние локальные адреса.
  • Некоторые компьютеры тупикового домена часто связываются с устройствами за пределами локальной сети. Эти компьютеры имеют внутренние глобальные адреса, которые не требуют преобразования.
  • Когда компьютеру тупикового домена с внутренним локальным адресом нужно связаться с компьютером за пределами локальной сети, пакет направляется к одному из маршрутизаторов NAT.
  • Маршрутизатор NAT сверяется с таблицей маршрутизации для выяснения, есть ли запись для адреса назначения. Если такая запись имеется, маршрутизатор NAT преобразует пакет и создает для него запись в таблице трансляции адресов. Если адреса назначения в таблице маршрутизации нет, пакет игнорируется.
  • Используя внутренний глобальный адрес, маршрутизатор отправляет пакет к пункту назначения.
  • Компьютер в публичной сети отправляет пакет в частную сеть. Адресом отправителя пакета является внешний глобальный адрес. Адресом назначения является внутренний глобальный адрес.
  • Маршрутизатор NAT сверяется с таблицей трансляции адресов и определяет, что здесь имеется адрес назначения, соотносящийся с компьютером в тупиковом домене.
  • Маршрутизатор NAT преобразует внутренний глобальный адрес пакета во внутренний локальный адрес и отправляет пакет к соответствующему компьютеру.

Перегрузка NAT

Перегрузка NAT использует функцию пакета протоколов TCP/IP, мультиплексирование, позволяющую компьютеру создавать с одним или несколькими удаленными компьютерами несколько одновременных соединений с применением различных портов TCP или UDP. Пакет IP содержит заголовок, в котором имеется следующая информация:

  • Адрес источника - IP адрес компьютера-отправителя, например, 201.3.83.132
  • Порт отправителя - номер порта TCP или UDP, назначенный компьютером-отправителем для данного пакета, например, порт 1080
  • Адрес получателя - IP адрес компьютера-получателя, например, 145.51.18.223
  • Порт назначения - номер порта TCP или UDP, который компьютер-отправитель требует открыть у компьютера-получателя, например, порт 3021.

Адреса указывают две машины на каждом конце, а номера портов обеспечивают уникальный идентификатор для соединения между двумя компьютерами. Комбинацией этих четырех чисел определяется одно соединение TCP/IP. В каждом номере порта используется 16 бит, а это значит, что возможно 65 536 (216) значений. На практике, с учетом того, что разные производители сопоставляют порты немного по-разному, можно ожидать, что доступными будут приблизительно 4 000 портов.

Доброго времени суток, дорогие читатели! Ну, что давайте про NAT .

Сегодня затронем подробнее тему несколько болезненную и довольно непонятную, но более непонятную, чем болезненную.

В большей степени эта проблема касается тех, кто играет в многопользовательские игры и коротко эта проблема звучит примерно так: "ПОЧЕМУ КО МНЕ НИКТО НЕ ЗАХОДИТ?". Для других эта проблема выглядит несколько иначе, а именно:

  • Почему не качает торрент?
  • Почему пользователи/друзья/знакомые/неизвестные личности не могут подключиться к FTP, WEB, VOIP (TS, Mamble , ведро) и прочим серверам, которые вы так долго пытались настроить и даже проверяли что у вас все работает?
  • Почему ваш личный домашний сервер пустует? Может это вселенский заговор?

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

Если коротко, то пользователи из интернета просто не могут к вам подключиться, потому что ваш роутер их не пускает, но он делает это не просто из прихоти, а потому, что не знает о том, что все эти люди хотят подключиться именно к вам. Вот он и думает, что они что-то хотят от него самого.

Да, только что я вам обрисовал для чего нужен NAT . А теперь о том, что это такое.

Общее определение

NAT (Network Address Translation) - это такой механизм, который позволяет роутеру определять какие сервисы находятся за роутером и должны быть доступны из интернета, чтобы пользователи оттуда могли этими сервисами пользоваться (определение из вики я брать не стал, т.к. оно заумное и не всем понятное).

NAT присутствует во всех роутерах и серверных операционках в том или ином виде. В роутерах это обычно называется port forwarding , в линуксах iptables , на виндовых серверах - в специальной оснастке. А теперь давайте поговорим о различных типах NAT .

Тип первый, Static NAT

Static NAT не требуется для дома, а нужен в том случае, если провайдер выделил несколько IP адресов (внешние или "белые" адреса) вашей компании, и вам нужно, чтобы некоторые серверы всегда были видны из интернета, при этом их адреса бы не менялись.

Т.е. происходит преобразование адресов 1-1 (один внешний IP назначается одному внутреннему серверу). При такой настройке ваши серверы всегда будут доступны из интернета на любом порту.

  • Преимущество такого метода в том, что вы открываете доступ из интернета именно для определенной программы на определенном компьютере/сервере, все остальные порты компьютера/сервера остаются закрытыми;
  • Недостаток в том, что требуется все порты открывать вручную (иногда программы делают это за вас при помощи технологии UPnP , но такое бывает не всегда).

Послесловие

Получилось несколько сумбурно, да и тема довольно непростая, но надеюсь теперь при слове NAT вас не будет бросать в дрожь:)

Как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи.

PS : За существование статьи отдельное спасибо другу проекта и члену нашей команды под ником “barn4k“

Давно не новость, что сетевых адресов IP для всех устройств, желающих находиться в Интернете, не достаточно. В настоящее время выход из этой ситуации нашли, разработав протокол IPv6, в котором длина адреса составляет 128 бит, в то время как нынешний IPv4 всего 32 бита. Но в начале 2000-х годов нашли другое решение – использовать преобразование сетевых адресов, сокращенно nat. Дальше в статье будет произвена настройка nat в роутере.

Вход в меню настроек роутера

В качестве примера возьмем роутер фирмы ZyXEL серии ZyWALL USG и NXC5200.

Первым делом заходим в настройки роутера. Для этого в любом веб браузере в адресной строке набираем 192.168.1.1. (стандартный адрес роутера), появится окно с требованием ввести логин и пароль.

В поле «Имя пользователя» вводим admin, в поле «Пароль» вводим 1234. Нажимаем «ОК».

Настройка nat в роутере

В открывшемся окне меню переходим во вкладку «Configuration» (значек с двумя шестиренками), далее «Network», далее «Routing». В выбранном окне переходим на закладку «Policy Routing».

Меню настроек роутера ZyXEL

В данном меню настраивается политика маршрутизации. В области «Criteria» настраиваем критерии для выборки трафика – какой трафик необходимо транслировать (собственно настроить nat), а какой просто маршрутизировать. Трафик можно быть выбран по нескольким критериям:

  1. Пользователь (User);
  2. По интерфейсу (Incoming);
  3. По IP-адресу источника (Source Address);
  4. По IP-адресу получателя (Destination Address);
  5. По порту назначения (Service).

В области «Next-Hop» назначаем объект для перенаправления трафика:

Выбор объекта перенаправления роутера ZyXEL

Где «Auto» – трафик будет перенаправляться в глобальный интерфейс, назначенного по умолчанию; Gateway – на адрес указанного в настройках шлюза; VPN Tunnel – IPSec виртуальный частный туннель; Trunk – маршрут на «транк», где «транк» – это несколько интерфейсов, настроенных на работу вместе либо в режим резервирования; Interface – перенаправление на указанный интерфейс:

Важно не забывать при любом внесении изменений в настройки роутера нажимать кнопку «OK», чтобы сохранить настройки, а не просто закрывать веб браузер.

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

Как известно, в качестве роутера может служить и сам персональный компьютер. Зачастую бывает ситуация, когда имеется компьютерная сеть из нескольких компьютеров, один из которых имеет выход в Интернет. В данной ситуации можно вообще не покупать маршрутизаторов, а настроить компьютер с выходом в Интернет в качестве роутера и настроить nat уже на нем. Рассмотрим такой случай подробнее.

Обязательно на главном компьютере, который смотрит в Интернет (назовем его SERVER) было установлено 2 сетевые карты – первая для подключения в локальную сеть, вторая к провайдеру. В примере будет использоваться операционная система Windows Server 2012.

Для настройки первым делом запускаем «Диспетчер сервера» (Пуск -> Администрирование –> Диспетчер сервера). Появится окно настройки:

Отсюда мы будем управлять нашим сервером. Для продолжения настройки нажмите «Добавить роли и компоненты», в результате чего откроется окно мастера добавления ролей. Первый шаг – Тип установки:

В следующем окне нам необходимо выбрать роль, которую мы устанавливаем на сервер. Ставим галку напротив «Удалённый доступ».

Появится следующее окно, в котором отображается список необходимых для работы компонентов. Нажимаем «Добавить компоненты», данное окно исчезнет. Жмем «Далее».

В следующем окне мастер предлагает добавить компоненты сервера. Ничего менять не надо, жмем «Далее».

На следующей странице мастер просто информирует нас о работе роли «Удаленный доступ». Жмем «Далее».

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

Следующее окно снова информационное, ничего выбирать не надо, но можно поставить галочку напротив «Автоматический перезапуск на выбранном сервере…», в результате чего сервер после установки будет автоматически перезагружен. Но можно это сделать и вручную. Жмем «Далее».

И последний шаг – непосредственная установка сервера. После окончания нажимаем кнопку «Закрыть».

Установка сервера

Итак, мы настроили компьютер, который подключен к интернету, в режим сервера. Теперь необходимо на нем настроить nat.

Переходим в Пуск / Администрирование / Маршрутизация и удалённый доступ. В появившемся окне в левой части находим пункт «SERVER (локально)», кликнем по нему правой кнопкой мыши и в выпавшем меню жмем «Настроить и включить маршрутизацию и удалённый доступ».

Появится мастер настройки сервера маршрутизации и удалённого доступа, в котором и настроим nat.

На первой странице нас кратко знакомят с мастером – жмем «Далее». На следующем шаге необходимо выбрать одну из служб, которые будут запускаться на данном сервере. Выбираем «преобразование сетевых адресов (NAT)», жмем «Далее».

Дальше мастер попросит выбрать сетевое соединение, которое смотрит в Интернет. В списке будут присутствовать обе сетевые карты (как минимум, в зависимости, сколько их установлено на сервере). Выбираем ту, к которой подключен сетевой кабель провайдера. Жмем «Далее».

В следующем окне мастер начнет ругаться, что ему не удается обнаружить в локальной сети службы DHCP или DNS. Предлагается два варианта продолжения – включить базовые службы, либо установить службы позднее.

Выбираем первый пункт, жмем «Далее». На следующей странице нас проинформирую, в каком диапазоне будет работать nat. Мастер настройки этот диапазон выбирает автоматически, исходя из конфигурации сетевого подключения, подключенного в локальную сеть. Жмем «Далее».

Диапазон nat

Все, мастер настройки завершает настройку nat. Жмем «Далее», и в следующем окне «Готово».

Осталось последнее – настроить клиентские компьютеры, то есть все остальные компьютера локальной сети. Для этого в компьютере клиента (так необходимо будет сделать на каждом компьютере сети) переходим в Пуск / Панель управления / Центр управления сетями и общим доступом / изменение параметров адаптера. Заходим в «Сетевые подключения». Кликаем по значку правой кнопкой мыши и в выпавшем меню выбираем «Свойства». В появившимся окне выбираем «Протокол Интернета версии 4 (TCP/IPv4)», жмем «Свойства».

В после «Основной шлюз» пишем IP-адрес компьютера сервера (который настраивали на прошлом шаге), в поле «Предпочитаемый DNS-сервер» пишем IP-адрес DNS сервера провайдера, указанного в сведениях подключения к интернету на сервере. Жмем «OK», и еще раз «OK». Все, клиентский компьютер подключен к Интернет.

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

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

На рисунках ниже приведен пример действия механизма NAT .


Рис. 7.1.

Пользователь корпоративной сети отправляет запрос в Интернет , который поступает на внутренний интерфейс маршрутизатора, сервер доступа или межсетевого экрана (устройство NAT ).

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

Затем подменяет адрес источника пакета собственным внешним общедоступным IP-адресом и посылает пакет по месту назначения в Интернет .

Узел назначения получает пакет и передает ответ обратно устройству NAT .

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

Существует 3 базовых концепции трансляции адресов:

  • статическая (SAT, Static Network Address Translation),
  • динамическая (DAT, Dynamic Address Translation),
  • маскарадная (NAPT, NAT Overload, PAT).

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

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

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

Механизмов взаимодействия внутренней локальной сети с внешней общедоступной сетью может быть несколько – это зависит от конкретной задачи по обеспечению доступа во внешнюю сеть и обратно и прописывается определенными правилами. Определены 4 типа трансляции сетевых адресов:

  • Full Cone (Полный конус)
  • Restricted Cone (Ограниченный конус)
  • Port Restricted Cone (Порт ограниченного конуса)
  • Symmetric (Симметричный)

В первых трех типах NAT для взаимодействия разных IP-адресов внешней сети с адресами из локальной сети используется один и тот же внешний порт . Четвертый тип – симметричный – для каждого адреса и порта использует отдельный внешний порт .

Full Cone , внешний порт устройства (маршрутизатора, сервера доступа, межсетевого экрана) открыт для приходящих с любых адресов запросов. Если пользователю из Интернета нужно отправить пакет клиенту, расположенному за NAT ’ом, то ему необходимо знать только внешний порт устройства, через который установлено соединение. Например, компьютер за NAT ’ом с IP-адресом 192.168.0.4 посылает и получает пакеты через порт 8000, которые отображаются на внешний IP- адрес и порт , как 10.1.1.1:12345. Пакеты из внешней сети приходят на устройство с IP-адресом:портом 10.1.1.1:12345 и далее отправляются на клиентский компьютер 192.168.0.4:8000.

Во входящих пакетах проверяется только транспортный протокол; адрес и порт назначения, адрес и порт источника значения не имеют.

При использовании NAT , работающему по типу Restricted Cone , внешний порт устройства (маршрутизатора, сервера доступа, межсетевого экрана) открыт для любого пакета, посланного с клиентского компьютера, в нашем примере: 192.168.0.4:8000. А пакет, пришедший из внешней сети (например, от компьютера 172.16.0.5:4000) на устройство с адресом:портом 10.1.1.1:12345, будет отправлен на компьютер 192.168.0.4:8000 только в том случае, если 192.168.0.4:8000 предварительно посылал запрос на IP- адрес внешнего хоста (в нашем случае – на компьютер 172.16.0.5:4000). То есть, маршрутизатор будет транслировать входящие пакеты только с определенного адреса источника (в нашем случае компьютер 172.16.0.5:4000), но номер порта источника при этом может быть любым. В противном случае, NAT блокирует пакеты, пришедшие с хостов, на которые 192.168.0.4:8000 не отправлял запроса.

Механизм NAT Port Restricted Cone почти аналогичен механизму NAT Restricted Cone. Только в данном случае NAT блокирует все пакеты, пришедшие с хостов, на которые клиентский компьютер 192.168.0.4:8000 не отправлял запроса по какому-либо IP-адресу и порту. Mаршрутизатор обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника. В нашем примере маршрутизатор будет транслировать входящие пакеты с любым адресом источника, но порт источника при этом должен быть 4000. Если клиент отправил запросы во внешнюю сеть к нескольким IP-адресам и портам, то они смогут посылать пакеты клиенту на IP- адрес : порт 10.1.1.1:12345.

Symmetric NAT существенно отличается от первых трех механизмов способом отображения внутреннего IP-адреса:порта на внешний адрес : порт . Это отображение зависит от IP-адреса:порта компьютера, которому предназначен посланный запрос . Например, если клиентский компьютер 192.168.0.4:8000 посылает запрос компьютеру №1 (172.16.0.5:4000), то он может быть отображен как 10.1.1.1:12345, в тоже время, если он посылает с того же самого порта (192.168.0.4:8000) на другой IP- адрес , он отображается по-другому (10.1.1.1:12346).

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

    1. Не все протоколы могут "преодолеть" NAT. Некоторые не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Опеределенные межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP).
    2. Из-за трансляции адресов "много в один" появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
    3. Атака DoS со стороны узла, осуществляющего NAT – если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений.

    Посмотрело: 41180

    1 Если Вы читаете этот документ, то скорее всего вы подсоединены к Интернету, и используете трансляцию сетевых адресов (Network Address Translation, NAT ) прямо сейчас! Интернет стал настолько огромным, чем кто-либо мог себе представить. Хотя точный размер неизвестен, текущая оценка это приблизительно 100 миллионов хостов и более чем 350 миллионов пользователей, активно работающих в Интернете. Фактически, норма роста такова, что Интернет эффективно удваивается в размере каждый год.

    Введение

    Для компьютера, чтобы общаться с другими компьютерами и Web-серверами в Интернете, он должен иметь IP адрес. IP адрес (IP означает Интернет Протокол) - это уникальное 32-битовое число, которое идентифицирует местоположение вашего компьютера на сети. В основном это работает точно так же как ваш уличный адрес: способ точно выяснить, где вы находитесь и доставить вам информацию. Теоретически, можно иметь 4,294,967,296 уникальных адресов (2^32). Фактическое число доступных адресов является меньшим (где-нибудь между 3.2 и 3.3 миллиарда) из-за способа, которым адреса разделены на классы и потребности отвести некоторые из адресов для мультивещания, тестирования или других определенных нужд. С увеличением домашних сетей и деловых сетей, число доступных IP адресов уже не достаточно. Очевидное решение состоит в том, чтобы перепроектировать формат адреса, чтобы учесть больше возможных адресов. Таким образом, развивается протокол IPv6, но, это развитие займет несколько лет, потому что требует модификации всей инфраструктуры Интернета.

    Вот где приходит NAT нам во спасение. В основном, Сетевая Трансляция Адресов, позволяет единственному устройству, типа маршрутизатора, действовать как агент между Интернетом (или "публичной сетю") и локальной (или "частной") сетью. Это означает, что требуется только единственный уникальный IP адрес, чтобы представлять всю группу компьютеров чему-либо вне их сети. Нехватка IP адресов - только одна причина использовать NAT. Два других серьезных основания это безопасность и администрирование

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

    Маскировка

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

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

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

    В статическом NAT, компьютер с адресом 192.168.32.10 будет всегда транслироваться в адрес 213.18.123.110:

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

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

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

    При перегрузке, каждый компьютер в частной сети транслируется в тот же самый адрес (213.18.123.100), но с различным номером порта

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

    Пример:
    Внутренний диапазон IP (237.16.32.xx) является также зарегистрированный диапазоном, используемым другой сетью. Поэтому, маршрутизатор транслирует адреса, чтобы избежать потенциального конфликта. Он также будет транслировать зарегистрированные глобальные IP адреса обратно к незарегистрированным локальным адресам, когда пакеты посылаются во внутреннюю сеть

    Внутренняя сеть – это обычно LAN (Локальная сеть), чаще всего, называемая, тупиковым доменом . Тупиковый домен это LAN, которая использует внутренние IP адреса. Большинство сетевого трафика в таком домене является локальным, он не покидает пределов внутренней сети. Домен может включать как зарегистрированные так и незарегистрированные IP адреса. Конечно, любые компьютеры, которые используют незарегистрированные IP адреса, должны использовать NAT, чтобы общаться с остальной частью мира.

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

    ISP назначает диапазон адресов IP вашей компании. Назначенный блок адресов - это уникальные зарегистрированные IP адреса и называются внутренними глобальными адресами (inside global) . Незарегистрированные частные IP адреса разбиты на две группы, маленькая группа, внешние локальные адреса (outside local) , будет использоваться NAT маршрутизаторами и основная, которая будет использоваться в домене, известна как внутренние локальные адреса (inside local) . Внешние локальные адреса используются, чтобы транслировать уникальные IP адреса, известные как внешние глобальные адреса(outside global) , устройств на общественной сети.
    NAT транслирует только тот трафик, который проходит между внутренней и внешней сетью и определен для трансляции. Любой трафик, не соответствующий критериям трансляции или тот, который проходит между другими интерфейсами на маршрутизаторе, никогда не транслируется, и пересылается как есть.

    IP адреса имеют различные обозначения, основанные на том, находятся ли они на частной сети (домен) или на общественной сети (Интернет) и является ли трафик входящим или исходящим:

    • Большинство компьютеров в домене общается друг с другом, используя внутренние локальные адреса.
    • Некоторые компьютеры в домене взаимодействуют с внешней сетью. Эти компьютеры имеют внутренние глобальные адреса, что означает, что они не требуют трансляции.
    • Когда компьютер в домене, который имеет внутренний локальный адрес, хочет взаимодействовать с внешней сетью, пакет идет в один из NAT-маршрутизаторов посредством обычной маршрутизации.
    • NAT- маршрутизатор проверяет таблицу маршрутизации, чтобы посмотреть, имеется ли у него запись для конечного адреса. Если адрес приемника не находится в таблице маршрутизации, пакет отбрасывается. Если запись доступна, роутер проверяет, идет ли пакет из внутренней сети во внешнюю, а также, соответствует ли пакет критериям, определенным для трансляции. Затем маршрутизатор проверяет таблицу трансляции адресов, чтобы выяснить, существует ли запись для внутреннего локального адреса и соответствующего ему внутреннего глобального адреса. Если запись найдена, он транслирует пакет, используя внутренний глобальный адрес. Если сконфигурирован только статический NAT, и никакой записи не найдено, то роутер посылает пакет без трансляции.
    • Используя внутренний глобальный адрес, маршрутизатор пересылает пакет его адресату.
    • компьютер на общественной сети посылает пакет в частную сеть. Адрес источника в пакете – это внешний глобальный адрес. Адрес приемника - внутренний глобальный адрес.
    • Когда пакет прибывает во внешнюю сеть, NAT-маршрутизатор смотрит в таблицу трансляций и определяет адрес приемника, отображенный на компьютер в домене.
    • NAT-маршрутизатор транслирует внутренний глобальный адрес пакета на внутренний локальный адрес и затем проверяет таблицу маршрутизации прежде, чем пошлет пакет конечному компьютеру. Всякий раз, когда запись не найден для адреса в таблице трансляций, пакет не транслируется и роутер продолжает поверку таблицы маршрутизации на поиск адреса приемника.

    NAT-перегрузка (overloading) использует особенность стека протокола TCP/IP, такую как мультиплексирование, которое позволяет компьютеру поддерживать несколько параллельных подключений с удаленным компьютером, используя различные TCP или UDP порты. Пакет IP имеет заголовок, который содержит следующую информацию:

    • Исходный адрес – IP адрес компьютера источника, например, 201.3.83.132.
    • Исходный порт – номер TCP или UDP порта, назначенное компьютером источником для этого пакета, например, Порт 1080.
    • Адрес назначения – IP адрес компьютера приемника. Например, 145.51.18.223.
    • Порт назначения – номер TCP или UDP порта, который просит открыть компьютер источник на приемнике, например, порт 3021.

    IP адреса определяют две машины с каждой стороны, в то время как номера портов гарантируют, что соединение между этими двумя компьютерами имеет уникальный идентификатор. Комбинация этих четырех чисел определяет единственное соединение TCP/IP. Каждый номер порта использует 16 битов, что означает, что сушествует 65 536 (2^16) возможных значения. В действительности, так как различные изготовители отображают порты немного различными способами, вы можете ожидать приблизительно 4 000 доступных портов.

    Примеры динамического NAT и NAT с перегрузкой

    Ниже на картинке показано как работает динамический NAT.

    Кликните на одну из зеленых кнопок, чтобы послать успешный пакет либо в, либо из внутренней сети. Нажмите на одну из красных кнопок, чтобы послать пакет, который будет отброшен маршрутизатором из-за недопустимого адреса.

    • внутренняя сеть была установлена с адресами IP, которые не были специально отведены для этой компании IANA (Органом по надзору за присвоением адресов в Интернете), глобальное бюро, которое раздает IP адреса. Такие адреса нужно считать немаршрутизируемыми, так как они не уникальны. Это внутренние локальные адреса.
    • компания устанавливает маршрутизатор с NAT. Маршрутизатор имеет диапазон уникальных адресов IP, выданных компании. Это - внутренние глобальные адреса.
    • компьютер на LAN пытается соединиться с компьютером вне сети, типа Web-сервера.
    • маршрутизатор получает пакет от компьютера на LAN.
    • После проверки таблицы маршрутизации и процесса проверки для трансляции, маршрутизатор сохраняет немаршрутизируемый адрес компьютера в таблице трансляции адресов. Маршрутизатор заменяет немаршрутизируемый адрес компьютера отправителя первым доступным IP адресом из диапазона уникальных адресов. Таблица трансляций теперь имеет отображение немаршрутизируемого IP адреса компьютера, которому соответствует один из уникальных IP адресов.
    • Когда пакет возвращается от компьютера адресата, маршрутизатор проверяет адрес приемника в пакете. Затем он смотрит в таблицу трансляции адресов, чтобы найти, какому компьютеру в домене принадлежит данный пакет. Он изменяет адрес приемника на тот, что был сохранен ранее в таблице трансляции и посылает пакет нужному компьютеру. Если роутер не находит соответствие в таблице, он уничтожает пакет.
    • Компьютер получает пакет от маршрутизатора и весь процесс повторяется, пока компьютер общается с внешней системой.
    • Внутренняя сеть была установлена с немаршрутизируемыми IP адресами, которые не были специально отведены для компании
    • компания устанавливает маршрутизатор с NAT. Маршрутизатор имеет уникальный IP адрес, который выдала IANA
    • компьютер в домене пытается соединиться с компьютером вне сети, типа Web-сервера.
    • маршрутизатор получает пакет от компьютера в домене.
    • После маршрутизации и проверки пакета для выполнения трансляции, маршрутизатор сохраняет немаршрутизируемый IP адрес компьютера и номер порта в таблице трансляции. Маршрутизатор заменяет немаршрутизируемый IP адрес компьютера отправителя IP адресом маршрутизатора. Маршрутизатор заменяет исходный порт компьютера отправителя неким случайным номером порта и сохраняет его в таблице трансляции адресов для этого отправителя. Таблица трансляций имеет отображение немаршрутизируемого IP адреса компьютера и номера порта наряду с IP адресом маршрутизатора.
    • Когда пакет возвращается от адресата, маршрутизатор проверяет порт применика в пакете. Он затем смотрит в таблицу трансляций, чтобы найти, какому компьютеру в домене принадлежит пакет. Далее роутер изменяет адрес приемника и порт приемника в те значения, которые были ранее сохранены в таблице трансляций и посылает пакет конечному узлу.
    • компьютер получает пакет от маршрутизатора и процесс повторяется
    • Так как NAT маршрутизатор теперь имеет исходный адрес компьютера и исходный порт, сохраненный к таблице трансляций, он продолжит использовать тот же самый номер порта для последующих подключений. Каждый раз, когда маршрутизатор обращается к записи в таблице трансляций сбрасывается таймер жизни этой записи. Если к записи не обращаются прежде, чем таймер истекает, она удаляется из таблицы

    Число одновременных трансляций, которые маршрутизатор будет поддерживать, определяется главным образом количеством DRAM (Динамическая Память Произвольного доступа). Так как типичная запись в таблице трансляций занимает приблизительно 160 байт, маршрутизатор с 4 Мбайтами RAM может теоретически обработать 26214 одновременных соединений, что является более чем достаточно для большинства приложений.

    Безопасность и Администрирование

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

    Статический NAT, также называемый входным мапингом (inbound mapping), позволяет подключения, инициированные внешними устройствами к компьютерам в LAN при определенных обстоятельствах. Например, вы можете отобразить внутренний глобальный адрес на определенный внутренний локальный адрес, который назначен на ваш Web-сервер.

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

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

    Иногда Сетевую Трансляцию Адресов путают с прокси-серверами, где есть определенные различия. NAT прозрачен для компьютеров источника и приемника. Никто из них не знает, что это имеет дело с третьим устройством. Но прокси сервер не прозрачен. Исходный компьютер знает, что это делает запрос на прокси. Компьютер адресата думает, что прокси сервер - это исходный компьютер и имеет дело с непосредственно ним. Кроме того, прокси-серверы обычно работают на уровне 4 (Transport) модели OSI или выше, в то время как NAT – это протокол уровня 3 (Network) . Работа на более высоких уровнях делает прокси-серверы медленнее чем NAT устройства в большинстве случаев.

    Реальная выгода NAT очевидна в сетевом администрировании. Например, Вы можете переместить ваш Web-сервер или сервер FTP к другому компьютеру, не волнуясь о разорванных соединениях. Просто измените входной мапинг на новый внутренний локальный адрес в маршрутизаторе, чтобы отразить новый хост. Вы можете также делать изменения в вашей внутренней сети так как любой ваш внешний IP адрес либо принадлежит маршрутизатору либо пулу глобальных адресов.

    Похожие статьи