NAT в роутере и на сервере – что это такое и где используется. Преобразование сетевых адресов (NAT) Nat назначение

Возможно, вам потребуется назначить постоянный, статический IP-адрес на PlayStation 4, чтобы установить соединение NAT Type 2. Установка постоянного IP адреса гарантирует, что ваша консоль всегда будет иметь тот же внутренний IP, даже после перезагрузки приставки. Некоторые маршрутизаторы дают возможность вручную назначить IP-адрес, так что сперва вам необходимо проверить, возможен ли такой вариант в вашем роутере. Если нет, тогда можно провести настройку статического IP через меню консоли PS4.

Данное руководство разбито на две части. Прочитайте все от начала и до конца.

Как вручную настроить статический IP-адрес на PlayStation 4 через роутер

Отыщите в своем роутере путь для ручной настройки IP-адреса. Не все маршрутизаторы поддерживают эту функцию. Процесс настройки будет отличаться в зависимости от модели роутера, которой вы пользуетесь. Если ваш модем позволяет провести ручную настройку IP-адреса, тогда просто назначьте постоянный IP для PlayStation 4. В этом случае никаких изменений в настройках самой приставки делать не придется. Роутер самостоятельно будет назначать внутренний IP для PS4, функции которого идентичны статическому.

В случае, если ваш роутер не поддерживает ручной настройки IP, вам придется проделать настройки через консоль PS4. Для этого следуйте инструкции ниже:

  1. Можно попробовать навсегда привязать PS4 к IP-адресу, который вы используете сейчас. Чтобы найти этот IP, включите PS4 и сделайте следующее:

Запишите этот IP и MAC адрес PS4 на листок. Кроме того, вам необходимо будет запомнить IP-адрес вашего роутера, который указан в качестве шлюза по умолчанию (Default Gateway). Как это сделать, описано в следующем пункте нашего руководства.

  1. Через компьютер зайдите в настройки роутера (делается это через браузер, путем ввода IP роутера, например, 192.168.1.1. или 192.168.1.0. / 192.168.0.1). Вам необходимо будет навсегда присвоить PS4 IP-адрес, который вы записали раньше, при выполнении первого пункта.

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

В этом роутере от Asus есть строки для ввода IP-адреса, после чего в выпадающему меню выбирается MAC-адрес. Используйте цифры адресов, которые вы записали при выполнении первого пункта этого руководства. В нашем примере, после записи цифр, необходимо нажать кнопку «Добавить» (Add).

В некоторых маршрутизаторах нельзя назначить IP-адреса, которые входят в диапазон DHCP роутера (диапазон адресов, который автоматически назначается роутером различным устройствам в вашей сети). Если это ваш случай, то нужно будет выбрать IP адрес вне диапазона DHCP роутера. Как сделать это, смотрите пункты 2-4 следующего раздела этого руководства («Как настроить статический IP -адрес в PS 4 »).

  1. После того, как вы привязали PS4 к определенному IP-адресу, протестируйте подключение консоли, чтобы убедиться в нормальной работоспособности. Чтобы провести тест соединения, сделайте следующее:

В случае успешного прохождения проверки соединения, вы увидите надпись «Проверка Интернет-соединения прошла успешно» (Internet Connection Successful).

  1. Открытие портов (opening ports) или Port Forwarding в вашем роутере означает перенаправление всего трафика на определенный внутренний IP-адрес. Чтобы получить соединение NAT Type 2, вам нужно направить следующие порты на IP-адрес приставки PS4:
  • TCP: 80, 443, 1935, 3478-3480
  • UDP: 3478-3479

Более подробная информация о том, как это сделать, есть

  1. После того, как вы назначали постоянный IP адрес для PS4 и перенаправили порты в роутере, проверьте Интернет-соединение. Как это сделать, смотрите в п.3 этого руководства.

Поздравляем, ваше соединение должно быть установлено на NAT Type 2.

Если у вас не получилось установить подключение NAT Type 2, проверьте, все ли верно вы сделали. Повторно просмотрите данные, которые вы ввели в строку IP-адреса и MAC-адреса.

Если трудности с настройкой подключением NAT Type 2 остались, проверьте, правильно ли установлено соединение. У вас может быть не один роутер в локальной сети. Чтобы определить количество роутеров в сети, вы можете воспользоваться бесплатной программой Router Detector . Очень важно, что в сети был только один модем, в ином случае настроить сеть без лишней головной боли достаточно тяжело.

Как настроить статический IP-адрес в PS4

Если у вас роутер, в котором нельзя вручную назначить внутренние IP-адреса, для настройки постоянного IP в PS4 выполните следующие действия:

  1. Узнайте, какой IP-адрес, маску подсети, шлюз и DNS использует PS4 в настоящее время. Чтобы сделать это, следуйте инструкции ниже:

Запишите IP-адрес, маску подсети, шлюз, главный DNS и дополнительный (Primary DNS и secondary DNS). Вам нужно будет ввести все эти цифры в консоль чуть позже.

  1. Далее, войдите в настройки маршрутизатора через ПК.

Чтобы войти в настройки роутера, напишите его IP-адрес в строке браузера. Найти IP можно в списке адресов, которые вы записали при выполнении пункта 1. IP роутера – это адрес шлюза по умолчанию (Default Gateway).

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

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

Ниже есть скриншот, как должна выглядеть строка с этим диапазоном. Использовано меню роутера Linksys. Диапазон DHCP обведен красным.

  1. Вам нужно будет выбрать число между 2 и 254, которое находится за пределами диапазона DHCP, чтобы назначить IP вашей приставке.

В приведенном выше примере, маршрутизатор Linksys использует диапазон от 100 до 149, чтобы назначать IP-адреса для устройств во внутренней сети. В этом случае можно выбрать, например, число 31, тогда полный IP адрес для PS4 будет выглядеть так: 192.168.0.31. Вот еще несколько примеров, чтобы вы лучше разобрались:

  • Если диапазон DHCP 200-254, вы можете выбрать цифры от 2 до 50
  • Если роутер использует диапазон 50-200, тогда от 2 до 49
  1. Чтобы проверить, может ли выбранный вами IP быть использован, сделайте следующее:
  • Через меню «Пуск» откройте «Выполнить»
  • Введите команду «cmd» без кавычек и нажмите Enter
  • После этого должно появиться черное окошко
  • Далее, в строке ввода введите: «Ping (пробел) IP». Например: Ping 192.168.1.54
  • Нажмите Enter.

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

  1. Далее вам понадобится PS4, чтобы установить IP-адрес, который вы выбрали.
  • В главном меню выбираем «Настройки»
  • Далее – Сеть
  • Настроить Интернет-соединение (Set Up Internet Connection)

  • Выберите Wi-Fi или LAN-подключение, в зависимости от того, как консоль соединена с Интернетом.

  • На экране «Как вы хотите произвести настройку Интернет-соединения» (How do you want to set up the Internet connection), выберите «Обычная настройка» (Custom)

  • На экране «Настройка IP-адреса» выберите «Вручную» (Manual)

  • Выберите IP-адрес

Теперь сделайте следующее:


Если вы в точности выполнили все вышеописанные действия, то статический IP будет настроен правильно. Если возникают какие-либо проблемы, проверьте правильность ввода информации, в частности, проверьте цифры, которые вы ввели в строку IP-адреса, шлюза, DNS. Чтобы перепроверить это, откройте главное меню PS4, выберите Настройки => Сеть => Просмотреть статус сети.

Что такое NAT

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

Обычно это значит, что компьютер подключен сразу к модему (DSL, кабельному или обычному аналоговому).

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

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

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

Находим IP адрес компьютера

Run">Откройте диалоговое окно для запуска программ: клик на кнопке Пуск, в меню выберите Выполнить .

В Windows 2000/XP набираем команду cmd /k ipconfig , нажимаем OK и смотрим на результат.

Windows 2000 IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.1.10 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1

Первый из этих адресов - это IP адрес вашего компьютера.

Нaходитесь ли вы за NAT

Три специальных диапазона IP адресов зарезервированы для локальных сетей и в интернете не используются:

10. 0. 0. 0 - 10. 255.255.255 172. 16. 0. 0 - 172. 31.255.255 192.168. 0. 0 - 192.168.255.255

Если IP адрес вашего компьютера находится в одном из этих диапазонов, то есть начинается с 10. или с 192.168. или с 172.nn. (где nn - от 16 до 31) , то это локальный (внутренний) адрес, и вы точно находитесь за NAT.

Если нет, то теперь проверьте, под каким IP адресом вас видят другие компьютеры в интернете. Например на whatsmyip.org ("Your IP Address is x.x.x.x" вверху страницы) или на myipaddress.com .

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

В остальных случаях наверняка сказать нельзя. Возможны такие варианты:

  • вы находитесь за NAT, но ваш сетевой администратор выбрал нестандартные внутренние адреса для вашей локальной сети. Найдите его и поинтересуйтесь, зачем так нужно было делать.
  • вы выходите в интернет через прокси сервер (тогда whatsmyip.org показал вам адрес этого прокси сервера). Во многих случаях вы можете определить, есть ли между вами и интернетом прокси сервер, пользуясь например lagado.com/proxy-test .

    Подключение через прокси в этом руководстве не рассматривается .

Варианты подключения через NAT

Если вы за NAT, то следующим шагом надо определить, где именно находится NAT-устройство.

NAT провайдера

    Тогда говорят, что
  • провайдер предоставляет вам интернет через NAT ,
  • или что провайдер не дает вам внешний IP адрес ,
  • или что вы подключены через локальную сеть провайдера

Проще всего позвонить провайдеру и узнать. Или поинтересоваться у знающих соседей с таким же подключением.

При подключении к интернету через локальную сеть провайдера сделать себе доступный порт нельзя. Если, конечно, провайдер специально для вас не перенаправит определенный порт, что малореально. Или если вы не заплатите дополнительно за услугу, которая обычно называется "внешний" ("белый") IP адрес.

NAT в офисе или многоквартирном доме

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

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

NAT ваш собственный

В этом случае вы практически всегда можете его настроить и получить доступный порт.

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

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

IP-адреса являются дефицитным ресурсом. У провайдера может быть /16-адрес (бывший класс В), дающий возможность подключить 65 534 хоста. Если клиентов становится больше, начинают возникать проблемы. Хостам, подключающимся к Интернету время от времени по обычной телефонной линии, можно выделять IP-адреса динамически, только на время соединения. Тогда один /16-адрес будет обслуживать до 65 534 активных пользователей, и этого, возможно, будет достаточно для провайдера, у которого несколько сотен тысяч клиентов. Когда сессия связи завершается, IP-адрес присваивается новому соединению. Такая стратегия может решить проблемы провайдеров, имеющих не очень большое количество частных клиентов, соединяющихся по телефонной линии, однако не поможет провайдерам, большую часть клиентуры которых составляют организации.

Дело в том, что корпоративные клиенты предпочитают иметь постоянное соединение с Интернетом, по крайней мере в течение рабочего дня. И в маленьких конторах, например туристических агенствах, состоящих из трех сотрудников, и в больших корпорациях имеются локальные сети, состоящие из некоторого числа компьютеров. Некоторые компьютеры являются рабочими станциями сотрудников, некоторые служат веб-серверами. В общем случае имеется маршрутизатор ЛВС, соединенный с провайдером по выделенной линии для обеспечения постоянного подключения. Такое решение означает, что с каждым компьютером целый день связан один IP-адрес. Вообще-то даже все вместе взятые компьютеры, имеющиеся у корпоративных клиентов, не могут перекрыть имеющиеся у провайдера IP-адреса. Для адреса длины /16 этот предел равен, как мы уже отмечали, 65 534. Однако если у поставщика услуг Интернета число корпоративных клиентов исчисляется десятками тысяч, то этот предел будет достигнут очень быстро.

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

а) пользователи получают постоянный IP-адрес;

б) отсутствует повременная оплата (взимается только ежемесячная абонентская плата).

Пользователи такого рода услуг имеют постоянное подключение к Интернету. Развитие в данном направлении приводит к возрастанию дефицита IP-адресов. Присваивать IP-адреса «на лету», как это делается при телефонном подключении, бесполезно, потому что число активных адресов в каждый момент времени может быть во много раз больше, чем имеется у про­вайдера.

Часто ситуация еще больше усложняется за счет того, что многие пользователи ADSL и кабельного Интернета имеют дома два и более компьютера (например, по одному на каждого члена семьи) и хотят, чтобы все машины имели выход в Интернет. Что же делать - ведь есть только один IP-адрес, выданный провайдером! Решение таково: необходимо установить маршрутизатор и объединить все компьютеры в локальную сеть. С точки зрения провайдера, в этом случае семья будет выступать в качестве аналога маленькой фирмы с несколькими компьютерами. Добро пожаловать в корпорацию Пупкиных!

Проблема дефицита IP-адресов отнюдь не теоретическая и отнюдь не относится к отдаленному будущему. Она уже актуальна, и бороться с ней приходится здесь и сейчас. Долговременный проект предполагает тотальный перевод всего Интернета на протокол IPv6 со 128-битной адресацией. Этот переход действительно постепенно происходит, но процесс идет настолько медленно, что затягивается на годы. Видя это, многие поняли, что нужно срочно найти какое-нибудь решение хотя бы на ближайшее время. Такое решение было найдено в виде метода трансляции сетевого адреса, NAT (Network Address Translation) , описанного в RFC 3022. Суть его мы рассмотрим позже, а более подробную информа­цию можно найти в (Butcher, 2001).

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

10.0.0.0 - 10.255.255.255/8 (16 777 216 хостов)

172.16.0.0 - 172.31.255.255/12 (1 048 576 хостов)

192.168.0.0 -192.168.255.255/16 (65 536 хостов)

Работа метода трансляции сетевых адресов показана на нжеследующей схеме. В пределах территории компании у каждой машины имеется собственный уникальный адрес вида 10.x.y.z. Тем не менее, когда пакет выходит за пределы владений компании, он проходит через NAT-блок, транслирующий внутренний IP-адрес источника (10.0.0.1 на рисунке) в реальный IP-адрес, полученный компанией от провайдера (198.60.42.12 для нашего примера). NAT-блок обычно представляет собой единое устройство с брандмауэром , обеспечивающим безопасность путем строго отслеживания входящего и исходящего -трафика компании. NAT-блок может быть интегрирован с маршрутизатором компании.

Мы до сих пор обходили одну маленькую деталь: когда приходит ответ на запрос (например, от веб-сервера), он ведь адресуется 198.60.42.12. Как же NAT-блок узнает, каким внутренним адресом заменить общий адрес компании? Вот в этом и состоит главная проблема использования трансляции сетевых адресов. Если бы в заголовке IP-пакета было свободное поле, его можно было бы использовать для запоминания адреса того, кто посылал запрос. Но в заголовке остается неиспользованным всего один бит. В принципе, можно было бы создать такое поле для истинного адреса источника, но это потребовало бы изменения IP-кода на всех машинах по всему Интернету. Это не лучший выход, особенно если мы хотим найти быстрое решение проблемы нехватки IP-адресов.

На самом деле произошло вот что. Разработчики NAT подметили, что большая часть полезной нагрузки IP-пакетов - это либо TCP, либо UDP . Оба формата имеют заголовки, содержащие номера портов источника и приемника. Номера портов представляют собой 16-разрядные целые числа, показывающие, где начинается и где заканчивается TCP-соединение. Место хранения номеров портов используется в качестве поля, необходимого для работы NAT.

Когда процесс желает установить TCP-соединение с удаленным процессом, он связывается со свободным TCP-портом на собственном компьютере. Этот порт становится портом источника, который сообщает TCP-коду информацию о том, куда направлять пакеты данного соединения. Процесс также определяет порт назначения. Посредством порта назначения сообщается, кому отдать пакет на удаленной стороне. Порты с 0 по 1023 зарезервированы для хорошо известных сервисов. Например, 80-й порт используется веб-серверами, соответственно, на них могут ориентироваться удаленные клиенты. Каждое исходящее сообщение TCP содержит информацию о порте источника и порте назначения. Вместе они служат для идентификации процессов на обоих концах, использующих соединение.

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

С помощью поля Порт источника мы можем решить проблему отображения адресов. Когда исходящий пакет приходит в NAT-блок, адрес источника вида 192.168.c.d заменяется настоящим IP-адресом. Кроме того, поле Порт источника TCP заменяется индексом таблицы перевода NAT-блока, содержащей 65 536 записей. Каждая запись содержит исходный IP-адрес и номер исходного порта. Наконец, пересчитываются и вставляются в пакет контрольные суммы заголовков TCP и IP. Необходимо заменять поле Порт источника, потому что машины с местными адресами 10.0.0.1 и 10.0.0.2 могут случайно пожелать воспользоваться одним и тем же портом (5000-м, например). Так что для однозначной идентификации процесса отправителя одного поля Порт источника оказывается недостаточно.

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

В случае применения ADSL или кабельного Интернета трансляция сетевых адресов может применяться для облегчения борьбы с нехваткой адресов. Присваиваемые пользователям адреса имеют вид 10.x.y.z. Как только пакет покидает пределы владений провайдера и уходит в Интернет, он попадает в NAT-блок, который преобразует внутренний адрес в реальный IP-адрес провайдера. На обратном пути выполняется обратная операция. В этом смысле для всего остального Интернета провайдер со своими клиентами, использующими ADSL и кабельное:оединение, представляется в виде одной большой компании.

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

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

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

В-третьих, NAT нарушает одно из фундаментальных правил построения многоуровневых протоколов: уровень k не должен строить никаких предположений относительно того, что именно уровень k + 1 поместил в поле полезной нагрузки. Этот принцип определяет независимость уровней друг от друга. Если когда-нибудь на смену TCP придет ТСР-2, у которого будет другой формат заголовка (например, 32-битная адресация портов), то трансляция сетевых адресов потерпит фиаско. Вся идея многоуровневых протоколов состоит в том, чтобы изменения в одном из уровней никак не могли повлиять на остальные уровни. NAT разрушает эту независимость.

В-четвертых, процессы в Интернете вовсе не обязаны использовать только TCP или UDP. Если пользователь машины А решит придумать новый протокол транспортного уровня для общения с пользователем машины В (это может быть сделано, например, для какого-нибудь мультимедийного приложения), то ему придется как-то бороться с тем, что NAT-блок не сможет корректно обработать поле Порт источника TCP.

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

В-шестых, поскольку поле Порт источника является 16-разрядным, то на один IP-адрес может быть отображено примерно 65 536 местных адресов машин. На самом деле это число несколько меньше: первые 4096 портов зарезервированы для служебных нужд. В общем, если есть несколько IP-адресов, то каждый из них может поддерживать до 61 440 местных адресов.

Эти и другие проблемы, связанные с трансляцией сетевых адресов, обсуждаются в RFC 2993. Обычно противники использования NAT говорят, что решение проблемы нехватки IP-адресов путем создания временной заплатки только мешает процессу настоящей эволюции, заключающемуся в переходе на IPv6. Но если вернутся в реальность, то мы увидим, что в большинстве случаев NAT - это просто незаменимая вещь, особенно для малых офисов с числом компьютеров от нескольких штук до нескольких десятков. NAT можно реализовать собственными силами в OS Linux используя

Это абсолютно разные технологии. Не путайте их.

Что такое NAT

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

Существуют более узкие понятие SNAT, DNAT, маскарадинг, PAT, NAT-PT и т.д.

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

Для вывода в интернет внутренней сети

  • через пул внешних адресов
  • через один внешний адрес

Для подмены внешнего ip адреса другим (перенаправление трафика)

Для балансировки нагрузки между одинаковыми серверами с разными ip адресами.

Для объединения двух локальных сетей с пересекающейся внутренней адресацией.

как устроен NAT

s+d NAT (branch merging - evil!)

port-mapping, прокидывание портов

Преимущества и недостатки

Несовместим с некоторыми протоколами. Конкретная реализация NAT должна поддерживать инспекцию требуемого протокола.

NAT обладает свойством "экранировать" внутреннюю сеть от внешнего мира, но его нельзя использовать вместо межсетевого экрана.

Настройка на Cisco IOS

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

Для настройки NAT на маршрутизаторе требуется: o Определить трафик, который необходимо транслировать (при помощи access-list’ов или route-map);

Ip access-list extended LOCAL permit ip 10.0.0.0 0.255.255.255 any

Route-map INT1 match ip address LOCAL match interface FastEthernet0/1.1

Аксесс-лист LOCAL выбирает весь трафик из 10 сети.

Роут-мап INT1 выбирает трафик аксесс-листа LOCAL, выходящий через сабинтерфейс Fa 0/1.1

o Определить на какие внешние адреса проводить трансляцию. Выбрать пул внешних адресов. Для PAT достаточно одного адреса.

Ip nat pool GLOBAL 212.192.64.74 212.192.64.74 netmask 255.255.255.0

Задание пула внешних адресов с именем GLOBAL. В пуле всего один адрес.

o Включить NAT для выбранных внутренних и внешних адресов.

Ip nat inside source route-map INT1 pool GLOBAL overload

Включение NAT для трансляции адресов источника на внутреннем интерфейсе. Будет транслироваться только трафик попадающий под условия роут-мапа INT1. Внешний адрес будет браться из пула GLOBAL.

Ip nat inside source static tcp 10.0.0.1 23 212.192.64.74 23 extend

Статическое «прокидывание порта» или «публикация сервиса». В трафике идущем внутрь на адрес 212.192.64.74 на порт tcp 23 будет заменен адресат на адрес 10.0.0.1 и порт 23.

o Назначить внутренние и внешние интерфейсы.

Interface FastEthernet0/0 ip nat inside interface FastEthernet0/1.1 ip nat outside

Интерфейс Fa 0/0 назначен внутренним для NAT.

Сабинтерфейс Fa 0/1.1 назначен внешним для NAT.

O Отладка и диагностика:

Sh ip nat translations - просмотр таблицы текущих трансляций; clear ip nat translations - удалить все текущие трансляции; debug ip nat – включение отладочных сообщений (undebug all – выключение отладки).

Примеры

Приведем несколько демонстрационных примеров для эмулятора cisco Packet Tracer.

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

Простая схема вывода сети в интернет через один внешний адрес

Схема объединения сетей с пересекающейся адресацией

Порядок работы NAT

Порядок применения правил NAT различается у различных производителей и на различном оборудовании. Приведем порядок применения политик NAT для маршрутизаторов на cisco IOS:

Inside-to-Outside

If IPSec then check input access list decryption - for CET (Cisco Encryption Technology) or IPSec check input access list check input rate limits input accounting redirect to web cache policy routing routing NAT inside to outside (local to global translation) crypto (check map and mark for encryption) check output access list inspect (Context-based Access Control (CBAC)) TCP intercept encryption Queueing

Outside-to-Inside

If IPSec then check input access list decryption - for CET or IPSec check input access list check input rate limits input accounting redirect to web cache NAT outside to inside (global to local translation) policy routing routing crypto (check map and mark for encryption) check output access list inspect CBAC TCP intercept encryption Queueing

Интернет-канал от одного провайдера через NAT

Простая схема реализации NAT с одним провайдером

Резервирование интернет-канала от двух провайдеров при помощи NAT, ip sla

Дано: мы получаем для нескольких компьютеров интернет от провайдера ISP1. Он выделили нам адрес 212.192.88.150. Выход в интернет организован с этого ip адреса через NAT.

Задача: подключить резервного провайдера - ISP2. Он выделит нам адрес 212.192.90.150. Организовать балансировку трафика: web-трафик пускать через ISP1, прочий трафик - через ISP2. В случае отказа одного из провайдеров - пускать весь трафик по живому каналу.

В чем сложность задачи? clear ip nat translations?

Схема

Конфиг

1 clear ip nat translations *

Найден, оттестирован такой кусок EEM. Не на всех версиях IOS генерируется событие.. Надо уточнить.

! event manager applet NAT-TRACK event syslog pattern "TRACKING-5-STATE" action 0.1 cli command "enable" action 0.2 wait 3 action 0.3 cli command "clear ip nat translation *" action 0.4 syslog msg "NAT translation cleared after track state change" !

2 При падении интерфейса на провайдера, велики шансы, что его шлюз будет пинговаться через второго

! username ИМЯ password 0 ПАРОЛЬ enable secret 0 ПАРОЛЬКОНФИГА! ! контроль входа на маршрутизатор line vty 0 4 login local ! ! ДХЦП ip dhcp pool LAN network ВнутрСеть Маска default-router Шлюз dns-server 10.11.12.13 ! DNS - фиктивный придумали - НЕ из нашей локальной сети! ! ! Монитор пинга на адрес шлюза провайдера-1 ! Ждать ответа 100 мс! Пинговать с частотой 1 секунда ip sla monitor 1 type echo protocol ipIcmpEcho ШлюзПров1 source-interface ИнтерфейсНаПров1 timeout 100 frequency 1 ! ! Монитор пинга на провайдера-2 ip sla monitor 2 type echo protocol ipIcmpEcho ШлюзПров2 source-interface ИнтерфейсНаПров2 timeout 50 frequency 1 ! ! Запуск пинговалок 1 и 2, сейчас и навсегда ip sla monitor schedule 1 life forever start-time now ip sla monitor schedule 2 life forever start-time now ! ! Трэки 10 и 20 - отслеживание состояния пинговалок! Реагирует на состояние Down или Up с задержкой 1 сек. track 10 rtr 1 reachability delay down 1 up 1 ! track 20 rtr 2 reachability delay down 1 up 1 ! ! ! Маршруты на все внешние сети на обоих провайдеров! Маршруты привязаны к трэкам! и будут активироваться только если трэк в состоянии Up ! т.е. если шлюз на соответствующего провайдера доступен ip route 0.0.0.0 0.0.0.0 ШлюзПров1 track 10 ip route 0.0.0.0 0.0.0.0 ШлюзПров2 track 20 ! ! ! int fa 0/0 no shut ! ! Саб-интерфейсы в сторону внешних провайдеров! помечаются как outside для NAT interface FastEthernet0/0.1 description ISP1 encaps dot1q НомерВланПров1 ip address ipНаПров1 Маска ip nat outside ! interface FastEthernet0/0.2 description ISP2 encapsulation dot1Q НомерВланПров2 ip address ipНаПров2 Маска ip nat outside ! ! Интерфейс на внутр сеть! помечается как inside для NAT ! Привязывается политика маршрутизации PBR interface FastEthernet0/1 ip address ipНаВнутрСеть маска ip nat inside ip policy route-map PBR no shut ! ! Аксесс-листы из внутр сети наружу! На веб-трафик и на все остальное ip access-list extended LOCAL permit ip внутрСеть any ! ip access-list extended WEB permit tcp внутрСеть any eq www permit tcp внутрСеть any eq 443 ! ip access-list extended ALL permit ip any any ! ! ! хитрый рут-мап PBR ! Если трафик из локалки на Веб! то назначить ему шлюзом первого провайдера! Иначе, прочему трафику из локалки! назначить шлюзом второго провайдера. ! При назначении шлюза проверяются Трэки route-map PBR permit 10 match ip address WEB set ip next-hop verify-availability ШлюзПров1 1 track 10 ! route-map PBR permit 20 match ip address ALL set ip next-hop verify-availability ШлюзПров2 1 track 20 ! ! ! хитрый рут-мап ISP1 ! срабатывает если трафик из локалки! пытается выйти через интерфейс Fa0/0.1 route-map ISP1 permit 10 match ip address LOCAL match interface FastEthernet0/0.1 ! ! хитрый рут-мап ISP2 ! срабатывает если трафик из локалки! пытается выйти через интерфейс Fa0/0.2 route-map ISP2 permit 10 match ip address LOCAL match interface FastEthernet0/0.2 ! ! ! Наконец, NAT ;-) ! ! Трафик из локалки в первого провайдера Натить через первый интерфейс ip nat inside source route-map ISP1 interface FastEthernet0/0.1 overload ! ! Трафик из локалки во второго провайдера Натить через второй интерфейс ip nat inside source route-map ISP2 interface FastEthernet0/0.2 overload ! ! Трафик на фиктивный ДНС переНатить на Гугл-ДНС ip nat outside source static 8.8.8.8 10.11.12.13 no-alias ! ! проброс внутреннего порта 3389 на внешний порт 1111 ip nat inside source static tcp внутрХост 3389 внешip 1111 extendable ip nat inside source static tcp внутрХост 3389 внешip 1111 extendable ! !

Разное

CGN (carrier grade nat) с особым пулом приватных адресов

NAT как ALG (application layer gateway), (plain text protocols e.g. SIP)

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


Типы трансляторов сетевых адресов (NAT)

Трансляторы адресов подразделяются на 4 типа:
1. Полный конус (Full Cone)
2. Ограниченный конус (Restricted Cone)
3. Порт ограниченного конуса (Port Restricted Cone)
4. Симметричный (Symmetric)

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

Полный конус (Full Cone)

При использовании NATа работающего по типу полного конуса внешний отображаемый порт открыт для пакетов приходящих с любых адресов. Если кто-то из внешнего Интернета хочет в этот момент отправить пакет клиенту, расположенному за НАТом, то ему нужно знать только внешний порт через который установлено соединение. Например, компьютер за NATом с IP-адресом 10.0.0.1 посылает и получает пакеты через порт 8000, отображающийся на внешний IP-адрес и порт 212.23.21.25:12345, то любой в Интернете может послать пакеты на этот 212.23.21.25:12345, и эти пакеты попадут на клиентский компьютер 10.0.0.1:8000.


Ограниченный конус (Restricted Cone)

NAT, c ограниченным конусом, открывает внешний порт сразу после того как локальный компьютер отправит данные на определенный внешний IP-адрес. Например, если клиент посылает наружу пакет внешнему компьютеру 1, NAT отображает клиента 10.0.0.1:8000 на 212.23.21.25:12345, и внешний компьютер 1 может посылать пакеты назад по этому назначению. Однако, NAT будет блокировать пакеты идущие от компьютера 2, до тех пор пока клиент не пошлет пакет на IP-адрес этого компьютера. Когда он это сделает, то оба внешних компьютера 1 и 2 смогут посылать пакеты назад клиенту, и оба будут иметь одно и то же отображение через НАТ.

Порт ограниченного конуса (Port Restricted Cone)

NAT с портом ограниченного конуса почти идентичен NATу с ограниченным конусом. Только в этом случае, NAT блокирует все пакеты, если клиент предварительно не послал наружу пакет на IP-адрес и порт того компьютера, который посылает пакеты клиенту. Поэтому, если клиент посылает внешнему компьютеру 1 на порт 5060, то NAT только тогда пропустит пакет к клиенту, когда он идет с 212.33.35.80:5060. Если клиент послал наружу пакеты к нескольким IP-адресам и портам, то они могут ответить клиенту на один и тот же отображенный IP-адрес и порт.

Симметричный (Symmetric)

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


Компьютер 1 может отправить ответ только на 212.23.21.25:12345, а компьютер 2 может ответить только на 212.23.21.25:12346. Если любой из них попытается послать пакеты на порт с которого он не получал пакеты, то эти пакеты будут игнорированы. Внешний IP-адрес и порт открывается только тогда, когда внутренний компьютер посылает данные наружу по определенному адресу.

NAT и Интернет телефония с использованием SIP протокола

Существует три основных проблемы прохождения через NAT звонков с использованием SIP протокола.
1. Наличие локальных адресов в SIP сигнализации.