Что такое nat и для чего он. Что такое nat в роутере? NAT: общие определения

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 не настроен для поддержки таких протоколов, входящие пакеты не могут достичь своего адресата;

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

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

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

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

Что такое NAT

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

Выглядит это приблизительно вот так

Виды NAT

  • Статический NAT - преобразование серого ip в белый, пример проброс порта в локальную сеть, например RDP
  • Динамический NAT - преобразование серого ip в один из ip адресов группы белых ip адресов
  • Перегруженный NAT или как его называют еще PAT (port Adress translation), преобразование нескольких серых ip в белый, давая им разные порты.

Сегодня мы рассмотрим статических NAT и PAT.

Настройка NAT Cisco

Вот как выглядит схема маленького офиса. У нас есть 3 компьютера в vlan 2, есть сервер в отдельном vlan 3. Все это добро подключено в коммутатор второго уровня cisco 2660, который в свою очередь воткнут в роутер Cisco 1841, который маршрутизирует локальный трафик между vlan 2 и 3.

Настройка Cisco 2960

Создадим vlan 2 и vlan3, зададим им имена и настроим нужные порты на эти vlan.

enable
conf t
создаем vlan 2
vlan 2
name VLAN2
exit
создаем vlan 3
vlan 3
name VLAN3
exit
Помещаем порты в vlan2
int range fa0/1-3
switchport mode access
switchport access vlan 2
exit
Помещаем порт в vlan3
int fa 0/4
switchport mode access
switchport access vlan 3
exit

int fa 0/5
switchport mode trunk
switchport trunk allowed vlan 2,3
do wr mem

Настройка Cisco 1841

Первым делом создадим sub интерфейсы и поднимем порт.

enable
conf t
int fa0/0
no shutdown
exit

int fa0/0.2
encapsulation dot1Q 2
ip address 192.168.2.251 255.255.255.0
no shutdown
exit

int fa0/0.3
encapsulation dot1Q 3
ip address 192.168.3.251 255.255.255.0
no shutdown
exit

В итоге порт загорелся зеленым

Настройка PAT

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

Настроим на нашем тестовом провайдерском роутере этот ip.

en
conf t
int fa0/0
ip address 213.235.1.1 255.255.255.252
no shutdown
exit

настроим порт fa0/1 который смотрим на сервер, и зададим ему другой белый ip 213.235.1.25 255.255.255.252

int fa0/1
ip address 213.235.1.25 255.255.255.252
no shutdown
exit

Сервер у меня будут иметь ip адрес 213.235.1.26 и шлюзом будет 213.235.1.25, интерфейс роутера провайдера смотрящего на сервер.

Теперь произведем настройку нашего локального роутера Router0, настроим на нем выделенный нам провайдером белый ip адрес 213.235.1.2 255.255.255.252, шлюзом будет 213.235.1.1

enable
conf t
int fa0/1
ip address 213.235.1.2 255.255.255.252
no shutdown
exit
ip route 0.0.0.0 0.0.0.0 213.235.1.1
exit
wr mem

Пробуем пропинговать с офисного роутера ip адреса провайдера и сервера, и видим что все отлично работает.

Router#ping 213.235.1.1

Success rate is 80 percent (4/5), round-trip min/avg/max = 0/0/0 ms

Router#ping 213.235.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 213.235.1.1, timeout is 2 seconds:

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms

Router#ping 213.235.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 213.235.1.2, timeout is 2 seconds:

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/9/17 ms

Router#ping 213.235.1.25

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 213.235.1.25, timeout is 2 seconds:

Router#ping 213.235.1.26

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 213.235.1.26, timeout is 2 seconds:

Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/0 ms

Ну и само натирование. На локальном роутере выполняем следующее. Теперь нам нужно задать какой интерфейс nat будет считать внешним, а какой внутренним, тут все просто внешним будет то где настроен белый ip адрес провайдера, внутренним то что соединен с коммутатором второго уровня. fa0/1 будет внешним, а два sub интерфейса внутренними.

enable
conf t
int fa0/1
ip nat outside
exit
int fa0/0.2
ip nat inside
int fa0/0.3
ip nat inside
exit

Настройка Access List

Access List список, какой трафик нужно натировать, а какой должен работать без NAT.

Создаем список доступа по имени NAT

ip access-list standard NAT
Разрешаем два пула
permit 192.168.2.0 0.0.0.255
permit 192.168.3.0 0.0.0.255

0.0.0.255 это Wildcard bits

как видим, у нас в конфиге появился список доступа и помечены порты какие outside, а какие inside.

И вводим еще одну волшебную команду, где говорит что трафик пришедший на fa0/1 нужно натить по правилу NAT. В итоге мы настроили PAT.

ip nat inside source list NAT interface fa0/1 overload

Сохраняем все do wr mem

проверим с компьютера локальной сети доступность внешних ресурсов. Посмотрим текущие конфигурации командой ipconfig, видим ip адрес 192.168.2.1, пропингуем 213.235.1.26, как видите все ок и NAT cisco работает.

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


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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 адреса имеют значение только в локальных сетях.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Диапазон nat

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

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

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