Нат рная. NAT - это что такое? Настройка NAT. Технология NAT loopback и NAT Traversal

2 32 или 4 294 967 296 IPv4 адресов это много? Кажется, что да. Однако с распространением персональных вычислений, мобильных устройств и быстрым ростом интернета вскоре стало очевидно, что 4,3 миллиарда адресов IPv4 будет недостаточно. Долгосрочным решением было IPv6 , но требовались более быстрое решение для устранения нехватки адресов. И этим решением стал NAT (Network Address Translation) .

Что такое NAT

Сети обычно проектируются с использованием частных IP адресов. Это адреса 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 . Эти частные адреса используются внутри организации или площадки, чтобы позволить устройствам общаться локально, и они не маршрутизируются в интернете. Чтобы позволить устройству с приватным IPv4-адресом обращаться к устройствам и ресурсам за пределами локальной сети, приватный адрес сначала должен быть переведен на общедоступный публичный адрес.

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

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

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

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

Терминология NAT

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

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

NAT включает в себя четыре типа адресов:

  • Внутренний локальный адрес (Inside local address) ;
  • Внутренний глобальный адрес (Inside global address) ;
  • Внешний местный адрес (Outside local address) ;
  • Внешний глобальный адрес (Outside global address) ;

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

  • Внутренний адрес (Inside address) - адрес устройства, которое транслируется NAT;
  • Внешний адрес (Outside address) - адрес устройства назначения;
  • Локальный адрес (Local address) - это любой адрес, который отображается во внутренней части сети;
  • Глобальный адрес (Global address) - это любой адрес, который отображается во внешней части сети;

Рассмотрим это на примере схемы.


На рисунке ПК имеет внутренний локальный (Inside local ) адрес 192.168.1.5 и с его точки зрения веб-сервер имеет внешний (outside ) адрес 208.141.17.4. Когда с ПК отправляются пакеты на глобальный адрес веб-сервера, внутренний локальный (Inside local ) адрес ПК транслируется в 208.141.16.5 (inside global ). Адрес внешнего устройства обычно не переводится, поскольку он является общедоступным адресом IPv4.

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

Термины, inside и outside , объединены с терминами local и global , чтобы ссылаться на конкретные адреса. На рисунке маршрутизатор настроен на предоставление NAT и имеет пул общедоступных адресов для назначения внутренним хостам.

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


Внутренний локальный адрес (Inside local address ) - адрес источника, видимый из внутренней сети. На рисунке адрес 192.168.1.5 присвоен ПК – это и есть его внутренний локальный адрес.

Внутренний глобальный адрес (Inside global address ) - адрес источника, видимый из внешней сети. На рисунке, когда трафик с ПК отправляется на веб-сервер по адресу 208.141.17.4, маршрутизатор переводит внутренний локальный адрес (Inside local address ) на внутренний глобальный адрес (Inside global address ). В этом случае роутер изменяет адрес источника IPv4 с 192.168.1.5 на 208.141.16.5.

Внешний глобальный адрес (Outside global address ) - адрес адресата, видимый из внешней сети. Это глобально маршрутизируемый IPv4-адрес, назначенный хосту в Интернете. На схеме веб-сервер доступен по адресу 208.141.17.4. Чаще всего внешние локальные и внешние глобальные адреса одинаковы.

Внешний локальный адрес (Outside local address ) - адрес получателя, видимый из внутренней сети. В этом примере ПК отправляет трафик на веб-сервер по адресу 208.141.17.4

Рассмотрим весь путь прохождения пакета. ПК с адресом 192.168.1.5 пытается установить связь с веб-сервером 208.141.17.4. Когда пакет прибывает в маршрутизатор с поддержкой NAT, он считывает IPv4 адрес назначения пакета, чтобы определить, соответствует ли пакет критериям, указанным для перевода. В этом пример исходный адрес соответствует критериям и переводится с 192.168.1.5 (Inside local address ) на 208.141.16.5. (Inside global address ). Роутер добавляет это сопоставление локального в глобальный адрес в таблицу NAT и отправляет пакет с переведенным адресом источника в пункт назначения. Веб-сервер отвечает пакетом, адресованным внутреннему глобальному адресу ПК (208.141.16.5). Роутер получает пакет с адресом назначения 208.141.16.5 и проверяет таблицу NAT, в которой находит запись для этого сопоставления. Он использует эту информацию и переводит обратно внутренний глобальный адрес (208.141.16.5) на внутренний локальный адрес (192.168.1.5), и пакет перенаправляется в сторону ПК.

Типы NAT

Существует три типа трансляции NAT:

  • Статическая адресная трансляция (Static NAT) - сопоставление адресов один к одному между локальными и глобальными адресами;
  • Динамическая адресная трансляция (Dynamic NAT) - сопоставление адресов “многие ко многим” между локальными и глобальными адресами;
  • Port Address Translation (NAT) - многоадресное сопоставление адресов между локальными и глобальными адресами c использованием портов. Также этот метод известен как NAT Overload ;

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

Статическая NAT таблица выглядит так:


Динамический NAT использует пул публичных адресов и назначает их по принципу «первым пришел, первым обслужен». Когда внутреннее устройство запрашивает доступ к внешней сети, динамический NAT назначает доступный общедоступный IPv4-адрес из пула. Подобно статическому NAT, динамический NAT требует наличия достаточного количества общедоступных адресов для удовлетворения общего количества одновременных сеансов пользователя.

Динамическая NAT таблица выглядит так:


Port Address Translation (PAT)

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

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

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


Поскольку маршрутизатор обрабатывает каждый пакет, он использует номер порта (1331 и 1555, в этом примере), чтобы идентифицировать устройство, с которого выслан пакет.

Адрес источника (Source Address ) - это внутренний локальный адрес с добавленным номером порта, назначенным TCP/IP. Адрес назначения (Destination Address ) - это внешний локальный адрес с добавленным номером служебного порта. В этом примере порт службы 80: HTTP.

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

В этом примере номера портов клиента 1331 и 1555 не изменялись на маршрутизаторе с NAT. Это не очень вероятный сценарий, потому что есть хорошая вероятность того, что эти номера портов уже были прикреплены к другим активным сеансам. PAT пытается сохранить исходный порт источника. Однако, если исходный порт источника уже используется, PAT назначает первый доступный номер порта, начиная с начала соответствующей группы портов 0-511, 512-1023 или 1024-65535 . Когда портов больше нет, и в пуле адресов имеется более одного внешнего адреса, PAT переходит на следующий адрес, чтобы попытаться выделить исходный порт источника. Этот процесс продолжается до тех пор, пока не будет доступных портов или внешних IP-адресов.

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

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

А что относительно пакетов IPv4, содержащих данные, отличные от TCP или UDP? Эти пакеты не содержат номер порта уровня 4. PAT переводит наиболее распространенные протоколы, переносимые IPv4, которые не используют TCP или UDP в качестве протокола транспортного уровня. Наиболее распространенными из них являются ICMPv4. Каждый из этих типов протоколов по-разному обрабатывается PAT. Например, сообщения запроса ICMPv4, эхо-запросы и ответы включают идентификатор запроса Query ID . ICMPv4 использует Query ID. для идентификации эхо-запроса с соответствующим ответом. Идентификатор запроса увеличивается с каждым отправленным эхо-запросом. PAT использует идентификатор запроса вместо номера порта уровня 4.

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

NAT предоставляет множество преимуществ, в том числе:

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

  • NAT обеспечивает сетевую безопасность. Поскольку частные сети не рекламируют свои адреса или внутреннюю топологию, они остаются достаточно надежными при использовании в сочетании с NAT для получения контролируемого внешнего доступа. Однако нужно понимать, что NAT не заменяет фаерволы;

Но у NAT есть некоторые недостатки. Тот факт, что хосты в Интернете, по-видимому, напрямую взаимодействуют с устройством с поддержкой NAT, а не с фактическим хостом внутри частной сети, создает ряд проблем:

  • Один из недостатков использования NAT связан с производительностью сети, особенно для протоколов реального времени, таких как VoIP . NAT увеличивает задержки переключения, потому что перевод каждого адреса IPv4 в заголовках пакетов требует времени;
  • Другим недостатком использования NAT является то, что сквозная адресация теряется. Многие интернет-протоколы и приложения зависят от сквозной адресации от источника до места назначения. Некоторые приложения не работают с NAT. Приложения, которые используют физические адреса, а не квалифицированное доменное имя, не доходят до адресатов, которые транслируются через NAT-маршрутизатор. Иногда эту проблему можно избежать, реализуя статические сопоставления NAT;
  • Также теряется сквозная трассировка IPv4. Сложнее трассировать пакеты, которые подвергаются многочисленным изменениям адресов пакетов в течение нескольких NAT-переходов, что затрудняет поиск и устранение неполадок;
  • Использование NAT также затрудняет протоколы туннелирования, такие как IPsec, поскольку NAT изменяет значения в заголовках, которые мешают проверкам целостности, выполняемым IPsec и другими протоколами туннелирования;
  • Службы, требующие инициирования TCP-соединений из внешней сети, или stateless протоколы, например, использующие UDP, могут быть нарушены. Если маршрутизатор NAT не настроен для поддержки таких протоколов, входящие пакеты не могут достичь своего адресата;

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

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

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

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

NAT - это что такое?

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

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

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

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

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

Базовая NAT

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

NAT - это что в подключении «один-ко-многим»?

Большинство разновидностей NAT способны сопоставить несколько частных хостов к одному публично обозначенному IP-адресу. В типичной конфигурации локальная сеть использует один из назначенных «частных» IP-адресов подсети (RFC 1918). Маршрутизатор в этой сети имеет частный адрес в этом пространстве.

Маршрутизатор также подключается к интернету с помощью «публичного» адреса, присвоенного провайдером. Так как трафик проходит из локальной сети источника в каждом пакете переводится на лету из частного адреса в публичный. Маршрутизатор отслеживает основные данные о каждом активном соединении (в частности, адрес и порт назначения). Когда ответ возвращается к нему, он использует данные соединения, которые сохраняются во время выездного этапа, чтобы определить частный адрес внутренней сети, к которому следует направить ответ.

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

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

Особенности

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

Протоколы, не основанные на TCP и UDP, требуют других методов перевода. Протокол управления сообщениями в (ICMP), как правило, соотносит передаваемые данные с существующим соединением. Это означает, что они должны быть отображены с использованием того же IP-адреса и номера, установленного изначально.

Что нужно учитывать?

Настройка NAT в роутере не дает ему возможности соединения «из конца в конец». Поэтому такие маршрутизаторы не могут участвовать в некоторых интернет-протоколах. Услуги, которые требуют инициации TCP-соединений от внешней сети или пользователей без протоколов, могут быть недоступны. Если маршрутизатор NAT не делает особых усилий для поддержки таких протоколов, входящие пакеты не могут добраться до места назначения. Некоторые протоколы могут разместиться в одной трансляции между участвующими хостами («пассивный режим» FTP, например), иногда с помощью шлюза прикладного уровня, но соединение не будет установлено, когда обе системы отделены от сети Интернет с помощью NAT. Использование трансляции сетевых адресов также усложняет такие «туннельные» протоколы, как IPsec, поскольку она изменяет значения в заголовках, которые взаимодействуют с проверками целостности запросов.

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

Соединение «из конца в конец» является основным принципом интернета, существующим с момента его разработки. Текущее состояние сети показывает, что NAT является нарушением этого принципа. У специалистов существует серьезная озабоченность в связи с повсеместным использованием в IPv6-трансляции сетевых адресов, и поднимается проблема о том, как эффективно ее устранить.

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

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

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

Некоторые сложности

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

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

Port Address Translation (PAT)

Реализацией Cisco Rapt является Port Address Translation (PAT), который отображает несколько частных IP-адресов в виде одного публичного. Несколько адресов могут быть отображены как адрес, потому что каждый из них отслеживается с помощью номера порта. PAT использует уникальные номера портов источника на внутреннем глобальном IP, чтобы различать направление передачи данных. Такими номерами являются 16-разрядные целые числа. Общее количество внутренних адресов, которые могут быть переведены на один внешний, теоретически может достигать 65536. Реальное же количество портов, на которые может быть назначен единый IP-адрес, составляет около 4000. Как правило, PAT пытается сохранить исходный порт «оригинала». Если он уже используется, Port Address Translation назначает первый доступный номер порта, начиная с начала соответствующей группы - 0-511, 512-1023 или 1024-65535. Когда больше нет доступных портов и есть более чем один внешний IP-адрес, PAT переходит к следующему, чтобы попытаться выделить исходный порт. Этот процесс продолжается до тех пор, пока не закончатся доступные данные.

Отображение адреса и порта осуществляется службой Cisco, которая сочетает в себе адрес порта перевода с данными туннелирования пакетов IPv4 по внутренней сети IPv6. По сути дела, это неофициальная альтернатива CarrierGrade NAT и DS-Lite, которая поддерживает IP-трансляции адресов/портов (и, следовательно, поддерживается настройка NAT). Таким образом, это позволяет избежать проблем в установке и поддержании соединения, а также обеспечивает механизм перехода для развертывания IPv6.

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

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

Для этой цели (как настроить NAT) в 2003 году был разработан специальный протокол RFC 3489, обеспечивающий простой обход UDP через NATS. На сегодняшний день он является устаревшим, поскольку такие методы в наши дни являются недостаточными для правильной оценки работы многих устройств. Новые методы были стандартизованы в протоколе RFC 5389, который был разработан в октябре 2008 года. Эта спецификация сегодня носит название SessionTraversal и представляет собой утилиту для работы NAT.

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

Каждый пакет TCP и UDP содержит IP-адрес источника и номер его порта, а также координаты порта назначения.

Для получения таких общедоступных услуг, как функционал почтовых серверов, номер порта имеет важное значение. Например, подключается к программному обеспечению веб-сервера, а 25 - к SMTP почтового сервера. IP-адрес общедоступного сервера также имеет существенное значение, подобное почтовому адресу или номеру телефона. Оба этих параметра должны быть достоверно известны всем узлам, которые намерены установить соединение.

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

РАТ (Port AddressTranslation) разрешает конфликты, которые могут возникнуть между двумя различными хостами, использующими один и тот же номер порта источника для установления уникальных подключений одновременно.

Про принципы работы протокола 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Стремительный рост сети Интернет, в скором времени после ее появления, принес проблема нехватки адресов. Сейчас это частично решается внедрением нового протокола IPv6, который обеспечит в разы больше доступных адресов для сетевых узлов. Но одним обновлением протокола не обойтись. Была придумана технология NAT, которая позволяла узлам из частной сети, подключаться к Интернет, используя всего один внешний ip адрес. Таким образом масштабирование частных локальных сетей стало намного проще, при попытке подключения их к Интернет . Сейчас мы подробно разберем технологию NAT.

Как работает NAT

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

Наши три компьютера будут объединены в локальную сеть с адресацией "192.168.. "

Вот так это будет выглядеть:

  • Маршрутизатор - 192.168.1.1
  • Компьютер 1 - 192.168.1.2
  • Компьютер 2 - 192.168.1.3
  • Компьютер 3 - 192.168.1.4

Если вы уже знакомы с основами локальных сетей, то должны знать, что в настройках сетевых карт, в поле "Шлюз по умолчанию", для наших компьютеров должно стоять значение 192.168.1.1. Таким образом, все запросы, которые не принадлежат нашей локальной сети, мы должны отправлять на наш маршрутизатор. Проще говоря, все запросы в Интернет, будут перенаправлены на него.

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

Тут на помощь и придет технология NAT.

Как вы видите, внутри сети все узлы имеют адреса в одной подсети. Это позволяет им реализовать передачу данных. В том случае, если запрос будет направлен в интернет, он будет передан на внутренний интерфейс маршрутизатора. Затем используя технологию NAT, данные будут слегка изменены. Им будет назначен внешний IP адрес. И после этого пакеты уйдут в сеть.

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

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

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

Терминология

Чтобы понимать принцип трансляции сетевых адресов, давайте разберемся с основными терминами.

Это первый тип реализации данной технологии.

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

Настройка на маршрутизаторах Cisco

  • Заходим в настройки интерфейса, который будет находиться во внутренней части сети, и применяем команду ip nat inside
  • Далее для внешнего интерфейса команда ip nat outside
  • Далее в режиме глобальной конфигурации нам нужно вручную задать соответствие для адресов. Используем команду ip nat inside source static inside-local inside-global . Где "inside-local " - внутренний локальный адрес, "inside-global " - внутренний глобальный

Динамическая NAT

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

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

Настройка

  • Задаем ip nat inside для внутренних интерфейсов
  • Ip nat outside для внешних
  • Создаем ACL со списком внутренних адресов, которые должны участвовать в трансляции
  • Создаем пул внешних адресов. В режиме глобального конфигурирования применяем команду ip nat pool name first-address last-address mask subnet mask . Где "name " - имя для пула, "first-address " начальный адрес, "last-address " - последний адрес, "subnet mask " - маска подсети
  • Включаем динамическую трансляцию адресов NAT. ip nat source list acl-number pool pool-name . Где "acl-number " - созданный ранее список контроля доступа, "pool-name " - пул адресов.

PAT - трансляция на основе портов

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

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

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

Настройка

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

ip nat source list acl-number interface interface name/ number overload

Видео к статье :

Заключение

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

Зачем искать информацию на других сайтах, если все собрано у нас?

  • Пошаговая
Понравилась статья? Поделиться с друзьями: