NAT - настройка преобразования сетевых адресов. Что такое NAT

FRAGE:

Mein Spiel zeigt mir an, mein NAT sei Strict oder Moderate. Wie bekomme ich Open NAT?

ANTWORT:

Ein Strict oder Moderate NAT kann dazu führen, dass Sie nicht alle Features Ihres Online-Mehrspieler-Spiels genießen können.

NAT steht für Network Address Translation (Netzwerkadressübersetzung). Grob gesagt ist es eine Methode, den Verkehr aus dem Internet (zum Beispiel einer Webseite, einem Spielserver oder einem P2P-Netzwerk) zum richtigen Gerät (zum Beispiel Computer, Konsole, Tablet) ihn Ihrem lokalen Netzwerk weiterzuleiten. Diese Methode zieht sowohl das Gerät als auch den Ursprung des Verkehrs in der "Unterhaltung" in Betracht und das kann dazu führen, dass Sie für manche Dienste oder Spiele Open NAT haben und Strict NAT für andere.

Die Hardware, die in einem Netzwerk für NAT verantwortlich ist, ist der Router. Ihr Anfangspunkt beim NAT-Troubleshooting sollte daher Ihr Router und seine Konfiguration sein, auch wenn andere Faktoren Ihr NAT negativ beeinflussen können.

Das kann gut oder schlecht sein:

Einige Router sind leichter zu konfigurieren als andere
- Wenn Sie eine gemeinschaftliche Internetverbindung benutzen (zum Beispiel in einem Wohnheim, einer Militärbasis, einem Krankenhaus) haben Sie vielleicht keinen Zugang zu Ihrem Router
- Manche Internetanbieter bieten Ihnen einen Router für zuhause an, aber organisieren das Netzwerk so, dass Sie hinter einem weiteren Router sitzen, zu dem Sie keinen Zugang haben. (Ihr Router ist so nicht direkt mit dem Internet verbunden, sondern mit einem zweiten "lokalen" Netzwerk. Dieses Szenario nennt man .)


Nun zum Troubleshooting!

Wir haben Troubleshooting-FAQs für Verbindungsprobleme für die meisten Ubisoft-Spiele zusammengestellt. Um diese zu finden, klicken Sie auf die Suchleiste oberhalb von diesem FAQ, wählen Sie Ihr Spiel und Ihre Plattform und geben Sie ein Verbindungsschwierigkeiten . Die Suche zeigt Ihnen das passende Verbindungs-FAQ für Ihr Spiel an, mit dem Sie NAT-Schwierigkeiten sowie andere Verbindungsprobleme beheben können.

И просматриваете страницы 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 портов.

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 или трансляция сетевых адресов является способом переназначения одного адресного пространства в другой путем изменения информации сетевых адресов в Internet Protocol или IP. Заголовки пакетов меняются в то время, когда они находятся в пути через устройства маршрутизации. Данный метод использовался первоначально для более простого перенаправления трафика в сетях IP без необходимости нумерации каждого хоста. Он стал важным и популярным инструментом для распределения и сохранения глобального адресного пространства в условиях острого недостатка адресов IPv4.

Что такое NAT?

Использование трансляции сетевых адресов заключается в отображении каждого адреса из одного адресного пространства к адресу, который находится в другом адресном пространстве. Это может понадобиться в том случае, если изменился провайдер услуг, а у пользователя нет возможности публично объявить новый маршрут к сети. Технология NAT в условиях глобального истощения адресного пространства с конца 90-х годов используется все чаще. Обычно данная технология используется в сочетании с IP-шифрованием. IP-шифрование представляет собой метод перехода нескольких IP адресов в одно пространство. Данный механизм реализован в устройстве маршрутизации, использующем таблицы перевода с сохранением состояния для отображения в один IP адрес скрытых адресов. Также он перенаправляет на выходе все исходящие пакеты IP. Таким образом, данные пакеты отображаются выходящими из устройства маршрутизации. Ответы в обратном канале связи отображаются в исходном IP адресе при помощи правил, которые хранятся в таблицах перевода. В свою очередь таблицы перевода очищаются по истечении короткого времени, если трафик не обновит свое состояние. Вот в чем заключается основной механизм NAT. Что же это означает? Данная технология позволяет организовывать связь через маршрутизатор только в том случае, когда соединение происходит в зашифрованной сети, так как это создает таблицы перевода. Внутри такой сети веб-браузер может просматривать сайт за ее пределами, однако будучи установленным вне ее, он не может открыть ресурс, который в ней размещен. Большинство устройств NAT сегодня позволяют сетевому администратору конфигурировать записи таблицы перевода для постоянного применения. Данная функция особенно часто упоминается как перенаправление портов или статическая NAT. Она дает возможность трафику, исходящему во «внешнюю» сеть, достичь назначенных хостов в зашифрованной сети. Из-за того, что метод, используемый с целью сохранения адресного пространства IPv4 пользуется популярностью, термин NAT практически стал синонимом метода шифрования. Так как трансляция сетевых адресов меняет информацию об адресе IP-пакетов, это может иметь серьезные последствия для качества подключения. Так что она требует пристального внимания ко всем деталям реализации. Способы использования NAT друг от друга отличаются в своем конкретном поведении в различных ситуациях, которые касаются влияния на сетевой трафик.

Базовая NAT

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

Большая часть разновидностей NAT способна сопоставить несколько частных хостов к одному IP-адресу, который публично обозначен. Локальная сеть в типичной конфигурации использует один из назначенных «частных» IP-адресов подсети. В этой сети маршрутизатор имеет частный адрес в пространстве. Также маршрутизатор подключается к интернету при помощи «публичного адреса», который присваивается провайдером интернета. Поскольку трафик проходит из локальной сети Интернет, то адрес источника в каждом пакете переводится из частного в публичный на лету. Также маршрутизатор отслеживает основные данные о каждом активном соединении. В частности, это касается такой информации, как адрес и порт назначения. Когда ответ возвращается к нему, он использует данные соединения, которые сохраняются во время выездного этапа. Это необходимо для того, чтобы определить частный адрес внутренней сети, к которому нужно направить ответ. Основным преимуществом такого функционала является то, что он является практическим решением проблемы исчерпания адресного пространства IPv4. С помощью одного IP-адреса к интернету могут быть подключены даже крупные сети. Все дейтаграммы пакетов в IP сетях имеют два IP адреса – это исходный адрес и адрес пункта назначения. Пакеты, проходящие из частной сети к сети общего пользования, будут иметь адрес источника пакетов, который изменяется во время перехода от публичной сети к частной. Также возможны и более сложные конфигурации.

Особенности настройки NAT

Настройка NAT может иметь определенные особенности. Чтобы избежать трудностей, связанных с переводом возвращенных пакетов, могут потребоваться их дальнейшие модификации. Большая часть интернет-трафика будет идти через протоколы UDP иTCP. Их номера изменяются таким образом, что адреса IP и номера порта при обратной отправке данных начинает сопоставляться. Протоколы, которые не основаны на UDP или TCP, требуют других методов перевода. Как правило, ICMP или протокол управления сообщения в сети интернет, соотносит передаваемую информацию с имеющимся соединением. Это значит, что они должны отображаться с использованием того же адреса IP и номера, который был установлен изначально. Что же необходимо учитывать? Настройка NAT в роутере не предоставляет ему возможности соединения «из конца в конец». По этой причине такие маршрутизаторы не могут участвовать в некоторых интернет-протоколах. Услуги, требующие инициации соединений TCP от внешней сети или пользователей без протоколов, могут быть просто недоступны. Если NAT маршрутизатор не делает особых усилий для поддержки таких протоколов, то входящие пакеты могут так и не достичь места назначения. Некоторые протоколы могут быть размещены в одной трансляции между участвующими хостами иногда при помощи шлюза прикладного уровня. Однако соединение не будет установлено, когда обе системы при помощи NAT отделены от сети Интернет. Также использование NAT усложняет туннельные протоколы, типа IPsec, так как она меняет значения в заголовках, которые взаимодействуют с проверками целостности запросов.

NAT: существующая проблема

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

Масштабируемость

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

NAT: некоторые сложности

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

PAT или Port Address Translation

Port Address Translation является реализацией Cisco Rapt, которая отображает несколько частных IP адресов в виде одного публичного. Таким образом, несколько адресов могут быть отображены как адрес, потому что каждый из них отслеживается при помощи номера порта. PAT использует уникальные номера портов источника на внутреннем глобальном IP, чтобы различать направление передачи данных. Данными номерами являются целые 16-разрядные числа. Общее число внутренних адресов, которые могут быть переведены на один внешний адрес, теоретически может достигать 65536. В реальности же количество портов, на которые может быть назначен единый адрес IP, составляет примерно 4000. PAT, как правило, пытается сохранить исходный порт «оригинала». В том случае, если он уже используется Port Address Translation назначает первый доступный номер порта, начиная с начала соответствующей группы. Когда доступных портов не остается и есть более одного внешнего IP адреса, PAT переходит к следующему для выделения исходного порта. Данный процесс будет продолжаться до тех пор, пока доступные данные не закончатся. Служба Cisco отображает адрес и порт. Она сочетает в себе адрес порта перевода и данные туннелирования пакетов IPv4 по внутренней сети IPv6. По сути это альтернативный вариант Carrier Grade NAT и DS-Lite, который поддерживает IP трансляции портов и адресов. Это позволяет избежать проблем, связанных с установкой и поддержанием соединения. Также это позволяет обеспечить механизм перехода для развертывания IPv6.

Методы перевода

Известно несколько основных способов реализации перевода сетевого адреса и порта. В определенных прикладных протоколах требуется определить внешний адрес NAT, используемый на другом конце соединения. Также часто необходимо изучить и классифицировать тип передачи. Как правило, это делается потому, что желательно между двумя клиентами, находящимися за отдельными NAT, создать прямой канал связи. Для этой цели был разработан специальный протокол RFC 3489, который обеспечивает простой обход UPD через NATS. Он на сегодняшний день уже считается устаревшим, так как в наши дни такие методы считаются недостаточными для правильной оценки работы устройств. В 2008 году был разработан протокол RFC 5389, в котором были стандартизованы новые методы. Данная спецификация сегодня называется Session Traversal. Она представляет собой специальную утилиту, предназначенную для работы NAT.

Создание двусторонней связи

Каждый пакет UDP и TCP содержит IP адрес источника и его номер порта, а также координаты конечного порта. Номер порта имеет очень важное значение для получения таких общедоступных услуг, как функционал почтовых серверов. Так, например, порт 25 подключается к SMTP почтового сервера, а порт 80 подключается к программному обеспечению веб-сервера. Существенное значение имеет также и IP адрес общедоступного сервера. Данные параметры должны быть достоверно известны тем узлам, которые намерены установить соединение. Частные IP адреса имеют значение только в локальных сетях.

Про принципы работы протокола NAT (Network Address Translation) и теперь настало время рассмотреть его настройку на оборудовании Cisco .

Настройка статического NAT (Static NAT)

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

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

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

При настройке статических трансляций NAT выполняются две основные задачи:

  1. Создание сопоставления между внутренним локальным (inside local ) адресом и внутренними глобальными (inside global ) адресами. Например, внутренний локальный адрес 192.168.1.5 и внутренний глобальный адрес 208.165.100.5 на схеме настроены как статическая NAT трансляция.
  2. После того как сопоставление настроено, интерфейсы, участвующие в трансляции должны быть настроены как внутренние (inside ) и наружные (outside ) относительно NAT. На схеме интерфейс маршрутизатора Serial 0/0/0 является внутренним, а Serial 0/1/0 – внешним.

Пакеты, поступающие на внутренний интерфейс маршрутизатора Serial 0/0/0 из настроенного внутреннего локального адреса IPv4 (192.168.1.5), транслируются и затем перенаправляются во внешнюю сеть. Пакеты, поступающие на внешний интерфейс Serial 0/1/0, адресованные настроенному внутреннему глобальному адресу IPv4 (208.165.100.5), переводятся на внутренний локальный адрес (192.168.1.5) и затем перенаправляются внутрь сети.

Настройка проходит в несколько шагов:

  1. Создать статическую трансляцию между внутренним локальным и внешним глобальным адресами. Для этого используем команду ip nat inside source static [локальный _IP глобальный_IP] . Чтобы удалить трансляцию нужно ввести команду no ip nat inside source static . Если нам нужно сделать трансляцию не адреса в адрес, а адреса в адрес интерфейса, то используется команда ip nat inside source static [локальный _IP тип_интерфейса номер_интерфейса] .
  2. Определим внутренний интерфейс. Сначала зайти в режим конфигурации интерфейса, используя команду interface[тип номер] и ввести команду ip nat inside
  3. Таким же образом определить внешний интерфейс, используя команду ip nat outside

Router(config)# ip nat inside source static 192.168.1.5 208.165.100.5 Router(config)# interface serial0/0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)# interface serial0/1/0 Router(config-if)#ip nat outside

В результате трансляции будут проходить так:

  1. Клиент хочет открыть соединение с веб-сервером. Клиент отправляет пакет на веб-сервер, используя общедоступный IPv4-адрес назначения 208.165.100.5. Это внутренний глобальный адрес веб-сервера.
  2. Первый пакет, который роутер получает от клиента на внешнем интерфейсе NAT, заставляет его проверять свою таблицу NAT. Адрес IPv4 адресата находится в таблице NAT он транслируется.
  3. Роутер заменяет внутренний глобальный адрес назначения 208.165.100.5 внутренним локальным 192.168.1.5 и пересылает пакет к веб-серверу.
  4. Веб-сервер получает пакет и отвечает клиенту, используя внутренний локальный адрес источника 192.168.1.5.
  5. Роутер получает пакет с веб-сервера на свой внутренний интерфейс NAT с адресом источника внутреннего локального адреса веб-сервера, 192.168.1.5. Он проверяет NAT таблицу для перевода внутреннего локального адреса во внутренний глобальный, меняет адрес источника с 192.168.1.5 на 208.165.100.5 и отправляет его из интерфейса Serial 0/1/0 в сторону клиента
  6. Клиент получает пакет, и обмен пакетами продолжается. Роутер выполняет предыдущие шаги для каждого пакета.

Проверка статического NAT

Полезной командой для проверки работы NAT является команда show ip nat translations . Эта команда показывает активные трансляции NAT. Статические переводы, в отличие от динамических переводов, всегда находятся в таблице NAT.

Router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 208.165.100.5 192.168.1.5 208.165.100.70 208.165.100.70

Другой полезной командой является команда show ip nat statistics . Она отображает информацию об общем количестве активных переводов, параметрах конфигурации NAT, количестве адресов в пуле и количестве адресов, которые были выделены.

Router#show ip nat statistics Total active translations: 1 (1 static, 0 dynamic; 0 extended) Peak translations: 2, occurred 00:00:21 ago Outside interfaces: Serial0/1/0 Inside interfaces: Serial0/0/0 Hits:7 Misses:0

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

Настройка динамического NAT (Dynamic NAT)

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


Рассмотрим на примере этой схемы. Мы тут имеем внутреннюю сеть с двумя подсетями 192.168.1.0/24 и 192.168.2.0/24 и пограничным маршрутизатором, на котором настроен динамический NAT с пулом публичных адресов 208.165.100.5 - 208.165.100.15.

Пул публичных адресов (inside global address pool ) доступен для любого устройства во внутренней сети по принципу «первым пришел – первым обслужили». С динамическим NAT один внутренний адрес преобразуется в один внешний адрес. При таком типе перевода должно быть достаточно адресов в пуле для одновременного предоставления для всех внутренних устройств, которым необходим доступ к внешней сети. Если все адреса в пуле были использованы, то устройство должно ждать доступного адреса, прежде чем оно сможет получить доступ к внешней сети.

Рассмотрим настойку по шагам:

  1. Определить пул которые будут использоваться для перевода, используя команду ip nat pool [имя начальный_ip конечный_ip] . Этот пул адресов обычно представляет собой группу публичных общедоступных адресов. Адреса определяются указанием начального IP-адреса и конечного IP-адреса пула. Ключевые слова netmask или prefix-length указывают маску.
  2. Нужно настроить стандартный access-list (ACL) , чтобы определить только те адреса, которые будут транслироваться. Введем команду . Про стандартные access-list’ы можно прочитать в этой (а про расширенные в ). ACL который разрешает очень много адресов может привести к непредсказуемым результатам, поэтому в конце листа есть команда deny all .
  3. Необходимо привязать ACL к пулу, и для этого используется команду ip nat inside source list [номер_ACL] number pool [название_пула] . Эта конфигурация используется маршрутизатором для определения того, какие устройства (список) получают адреса (пул).
  4. Определить, какие интерфейсы находятся внутри, по отношению к NAT, то есть любой интерфейс, который подключен к внутренней сети.
  5. Определить, какие интерфейсы находятся снаружи, по отношению к NAT, то есть любой интерфейс, который подключен к внешней сети.

Router(config)# ip nat pool MerionNetworksPool 208.165.100.5 208.165.100.15 netmask 255.255.255.0 Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255 Router(config)#ip nat inside source list 1 pool MerionNetworksPool Router(config)# interface serial0/0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)# interface serial0/1/0 Router(config-if)#ip nat outside

Как это будет работать на нашей схеме:

  1. Компьютеры с адресами 192.168.1.10 и 192.168.2.10 отправляют пакеты в сторону сервера по публичному адресу 208.165.100.70
  2. Маршрутизатор принимает первый пакет от хоста 192.168.1.10. Поскольку этот пакет был получен на интерфейсе, сконфигурированном как внутренний интерфейс NAT, маршрутизатор проверяет конфигурацию NAT, чтобы определить, должен ли этот пакет быть транслирован. ACL разрешает этот пакет, и роутер проверяет свою таблицу NAT. Поскольку для этого IP-адреса нет записи трансляции, роутер определяет, что исходный адрес 192.168.1.10 должен быть переведен динамически. R2 выбирает доступный глобальный адрес из пула динамических адресов и создает запись перевода, 208.165.200.5. Исходный IPv4-адрес источника (192.168.1.10) является внутренним локальным адресом, а переведенный адрес является внутренним глобальным адресом (208.165.200.5) в таблице NAT. Для второго хоста 192.168.2.10 маршрутизатор повторяет эту процедуру, выбирая следующий доступный глобальный адрес из пула динамических адресов, создает вторую запись перевода - 208.165.200.6.
  3. После замены внутреннего локального адреса источника в пакетах маршрутизатор перенаправляет пакет.
  4. Сервер получает пакет от первого ПК и отвечает, используя адрес назначения 208.165.200.5. Когда сервер получает пакет от второго ПК, то в ответе в адресе назначения будет стоять 208.165.200.6.
  5. Когда роутер получает с адресом назначения 208.165.200.5, то он выполняет поиск в таблице NAT и переводит адрес назначения во внутренний локальный адрес 192.168.1.10 и направляет в сторону ПК. То же самое происходит с пакетом, направленным ко второму ПК.
  6. Оба ПК получают пакеты, и обмен пакетами продолжается. Для каждого следующего пакета выполняются предыдущие шаги.
Проверка динамического NAT

Для проверки также используется команда show ip nat отображает все статические переводы, которые были настроены, и любые динамические переводы, которые были созданы трафиком. Добавление ключевого слова verbose отображает дополнительную информацию о каждом переводе, включая то, как давно запись была создана и использовалась. По умолчанию данные о переводах истекают через 24 часа, если таймеры не были переконфигурированы с помощью команды ip nat translation timeout [время_в_секундах] в режиме глобальной конфигурации.

Чтобы очистить динамические записи до истечения времени ожидания, можно использовать команду clear ip nat translation . Полезно очищать динамические записи при тестировании конфигурации NAT. Эту команду можно использовать с ключевыми словами и переменными, чтобы контролировать, какие записи очищаются. Конкретные записи можно очистить, чтобы не прерывать активные сеансы. Только динамические переводы удаляются из таблицы. Статические переводы не могут быть удалены из таблицы.

Также можно использовать команду show ip nat statistics которая отображает информацию об общем количестве активных переводов, параметрах конфигурации NAT, количестве адресов в пуле и количестве переведенных адресов.

Поскольку у нас здесь используются листы контроля доступа ACL, то для их проверки можно использовать команду show access-lists .

Настройка Port Address Translation (PAT)

PAT (также называемый NAT overload ) сохраняет адреса во внутреннем глобальном пуле адресов, позволяя маршрутизатору использовать один внутренний глобальный адрес для многих внутренних локальных адресов. Другими словами, один открытый IPv4-адрес может использоваться для сотен и даже тысяч внутренних частных IPv4-адресов. Когда несколько внутренних локальных адресов сопоставляются с одним внутренним глобальным адресом, номера портов TCP или UDP каждого внутреннего узла различают локальные адреса.

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

Существует два способа настройки PAT, в зависимости от того, как провайдер выделяет общедоступные IPv4-адреса. В первом случае интернет-провайдер выделяет более одного публичного IPv4-адреса организации, а в другом он выделяет один общедоступный IPv4-адрес, который требуется для организации для подключения к интернет-провайдеру.

Настройка PAT для пула публичных IP-адресов

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

Основное различие между этой конфигурацией и конфигурацией для динамического NAT, заключается в том, что используется ключевое слово overload , которое включает PAT.

Рассмотрим настойку PAT для пула адресов по шагам:

  1. Определить пул адресов глобальных адресов, которые будут использоваться для PAT трансляции, используя команду ip nat pool [имя начальный_ip конечный_ip] netmask [маска] | prefix-length [длина_префикса] .
  2. Создать стандартный access-list, разрешающий адреса, которые должны быть переведены. Используется команда access-list [номер_ACL] permit source .
  3. Включим PAT, используя волшебное слово Overload . Вводим команду ip nat inside source list [номер_ACL] number pool [название_пула] overload .
  4. Определяем, какие интерфейсы находятся внутри, по отношению к NAT, а какие снаружи. Используем команду ip nat inside и ip nat outside

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

Router(config)# ip nat pool MerionNetworksPool2 208.165.100.5 208.165.100.15 netmask 255.255.255.0 Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255 Router(config)#ip nat inside source list 1 pool MerionNetworksPool2 overload Router(config)# interface serial0/0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)# interface serial0/1/0 Router(config-if)#ip nat outside

Настройка PAT для одного публичного IPv4-адреса

На схеме показана топология реализации PAT для трансляции одного IP публичного адреса. В этом примере все хосты из сети 192.168.0.0/16 (соответствующие ACL), которые отправляют трафик через маршрутизатор, будут переведены на адрес IPv4 208.165.99.225 (адрес IPv4 интерфейса S0 /1/0). Трафик будет идентифицироваться по номерам портов в таблице NAT.

Настройка:

  1. Создать лист access-list разрешающий адреса, которые нужно транслировать – access-list [номер_ACL] permit source .
  2. Настроить преобразование адреса источника в адрес интерфейса, через команду ip nat inside source list [номер_ACL] interface [тип номер] overload
  3. Определить внешние и внутренние интерфейсы через команды ip nat inside и ip nat outside .

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

Пример: Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255 Router(config)# ip nat source list 1 interface serial0/1/0 overload Router(config)# interface serial0/0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)# interface serial0/1/0 Router(config-if)#ip nat outside

Процесс PAT не изменятся при использовании одного адреса, или пула адресов.

Рассмотрим процесс PAT по шагам:

  1. На схеме два разных ПК связываются с двумя разными веб-серверами. Первый ПК имеет адрес источника 192.168.1.10 и использует TCP порт 1444, а второй ПК имеет адрес источника 192.168.2.10 и по совпадению использует то же TCP порт 1444
  2. Пакет с первого ПК сначала достигает роутера и он, используя PAT, изменяет исходный IPv4-адрес на 208.165.99.225 (inside global address ). В таблице NAT нет других устройств с портом 1444, поэтому PAT использует тот же номер порта и пакет отправляется в направлении сервера по 208.165.101.20.
  3. Далее пакет со второго компьютера поступает в маршрутизатор, где PAT настроен на использование одного глобального IPv4-адреса для всех переводов - 208.165.99.225. Подобно процессу перевода для первого ПК, PAT изменяет исходящий адрес второго ПК на внутренний глобальный адрес 208.165.99.225. Однако второй ПК имеет тот же номер порта источника, что и текущая запись PAT первого ПК, поэтому PAT увеличивает номер порта источника до тех пор, пока он не станет уникальным в своей таблице. В этом случае запись исходного порта в таблице NAT и пакет для второго ПК получает 1445 порт. Хотя оба ПК используют один и тот же внутренний глобальный адрес 208.165.99.225 и тот же номер порта источника – 1444, измененный номер порта для второго ПК (1445) делает каждую запись в таблице NAT уникальной. Это станет очевидным при отправке пакетов с серверов обратно клиентам.
  4. Сервера отвечают на запросы от компьютеров, и используют исходный порт из принятого пакета в качестве порта назначения и исходный адрес как адрес назначения. Может казаться, что они общаются одним и тем же хостом по адресу 208.165.99.225, однако, это не так – они имеют разные порты.
  5. Когда пакеты возвращаются на роутер, он находит уникальную запись в своей таблице NAT с использованием адреса назначения и порта назначения каждого пакета. В случае пакета от первого сервера адрес назначения 208.165.99.255 имеет несколько записей, но только одну с портом назначения 1444. Используя эту запись в своей таблице, роутер изменяет адрес IPv4 адресата пакета на 192.168.1.10, не меняя порт назначения. Затем пакет перенаправляется на первый ПК
  6. Когда пакет от второго сервера прилетает на маршрутизатор, он выполняет аналогичный перевод. Адрес IPv4 назначения 208.165.99.225 имеет несколько записей, однако используя порт назначения 1445, роутер может однозначно идентифицировать запись трансляции. Адрес IPv4 назначения будет изменен на 192.168.2.10 и в этом случае порт назначения также должен быть изменен до исходного значения 1444, которое хранится в таблице NAT. После этого пакет высылается на второй ПК
Проверка Port Address Translation (PAT)

Для проверки PAT используются такие же команды, что и для обычного NAT. Команда show ip nat translations отображает переводы IP адресов вместе с портами и команда show ip nat statistics показывает информацию о количестве и типе активных переводов, параметрах конфигурации NAT, количестве адресов в пуле и количестве выделенных адресов.

Router#show ip nat statistics Total active translations: 2 (0 static, 2 dynamic; 2 extended) Peak translations: 2, occurred 00:00:07 ago Outside interfaces: Serial0/1/0 Inside interfaces: Serial0/0/0 Hits:4 Misses:0 CEF Translated packets: 4, CEF Punted packets:0 Expired translations: 0 Dynamic mappings: -- Inside Source access-list 1 pool MerionNetworksPool2 refcount 2 pool MerionNetworksPool2: netmask 255.255.255.0 start 208.165.100.5 end 208.165.100.15 type generic, total addressers 10, allocated 1(10%), misses 0 Total doors: 0 Appl doors: 0 Normal doors: 0 Queued Packets: 0

Также для поиска проблем можно использовать дебаг, который запускается командой debug ip nat , который отображает информацию о каждом пакете, который транслируется маршрутизатором. Также можно использовать команду debug ip nat detailed , которая генерирует описание каждого пакета. Эта команда также предоставляет информацию о различных ошибках, например, таких как неспособность выделить глобальный адрес. Однако эта команда более требовательна к ресурсам устройства.

Router#debug ip nat IP NAT debugging is on Router# *Aug 24 16:20:331:670: NAT*: s=192.168.1.10->208.165.99.225 d=208.165.101.20 *Aug 24 16:20:331:682: NAT*: s=208.165.101.20 d=208.165.99.225 ->192.168.1.10 *Aug 24 16:20:331:698: NAT*: s=192.168.1.10->208.165.99.225 d=208.165.101.20 *Aug 24 16:20:331:702: NAT*: s=192.168.1.10->208.165.99.225 d=208.165.101.20 *Aug 24 16:20:331:710: NAT*: s=208.165.101.20 d=208.165.99.225 ->192.168.1.10

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

  • * (звездочка) – звездочка с NAT указывает, что перевод происходит по пути с быстрым переключением (fast-switched path). Первый пакет в разговоре всегда медленнее, остальные пакеты проходят путь с быстрым переключением.
  • s= - IP адрес источника
  • a.b.c.d ? w.x.y.z - это значение указывает, что адрес источника a.b.c.d переводится на w.x.y.z.
  • d= - IP адрес назначения
  • - значение в скобках - это идентификационный номер IP.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!