Трансляция сетевых адресов nat включить или выключить. Что такое NAT, как его настроить и использовать — NAT, PAT, Static NAT, Dynamic 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 работает.

Давно не новость, что сетевых адресов 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». Все, клиентский компьютер подключен к Интернет.

Трансляция сетевых адресов (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) – технология трансляции сетевых адресов. Технология NAT позволила решить наибольшую проблему протокола IPv4: к середине 1990-х годов пространство IPv4-адресов могло быть полностью исчерпано. Если бы технологию NAT не изобрели то, рост Интернета значительно замедлился бы. Конечно, на сегодня создана новая версия протокола IP – IPv6. Данная версия поддерживает огромное количество IP-адресов, что существование NAT – бессмысленно. Однако, до сих пор довольно много организаций используют в своей работе протокол IPv4 и полный переход на IPv6 состоится не скоро. Поэтому есть смысл изучить технологию NAT.

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

Трансляция NAT заменяет частные IP-адреса открытыми зарегистрированными IP-адресами в каждом пакете протокола IP.

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

  1. Статическая трансляция NAT – каждому частному IP-адресу соответствует один публичный IP. При использовании статической трансляции маршрутизатор NAT просто устанавливает взаимно однозначное соответствие между частным и зарегистрированным IP-адресом, от имени которого он выступает.
  2. Динамическая трансляция NAT – преобразование внутренних Ip-адресов во внешние происходит динамически. Создается пул возможных публичных IP-адресов и из этого пула динамически выбираются Ip-адреса для преобразования.
  3. Трансляция адресов портов PAT – позволяет выполнить масштабирование для поддержки многих клиентов с использованием всего лишь нескольких открытых IP-адресов. PAT транслирует сетевой адрес в зависимости от TCP/UDP-порта получателя.

Рассмотрим более подробно каждый из видов трансляции.

Статическая трансляция NAT делает точное соответствие между частным и публичным Ip-адресом. Рассмотрим на примере.

Провайдер ISP компании назначает ей зарегистрированный номер сети 200.1.1.0. Соответственно маршрутизатор NAT должен сделать так, чтобы этот частный адрес выглядел таким образом, как если бы находился в сети 200.1.1.0. Для этого маршрутизатор изменяет IP-адрес отправителя в пакетах, которые как на рисунке пересылаются слева направо. В данном примере маршрутизатор изменяет частный Ip-адрес 10.1.1.1 на открытый 200.1.1.1. Другому частному адресу 10.1.1.2 соответствует публичный 200.1.1.2. Далее рассмотрим настройку статического NAT в Cisco.

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

На схеме видно, что пользователь получил от провайдера адрес 100.0.0.0 сети класса C. Вся эта сеть с маской 255.255.255.0 настроена на последовательном канале между пользователем и Интернетом. Поскольку это двухточечный канал, в данной сети используется только 2 из 254 действительных (возможных) IP-адресов.

Конфигурация для роутера NAT_GW:

NAT_GW>enable NAT_GW#configure terminal - описание интерфейса - задаем шлюз по-умолчанию - описание интерфейса - задаем Ip и маску NAT_GW(config-if)#no shutdown - включаем интерфейс физически NAT_GW(config-if)#exit NAT_GW(config)#ip nat inside source static 192.168.1.2 100.0.0.1 NAT_GW(config)#ip nat inside source static 192.168.1.3 100.0.0.2 - статическое сопоставление адресов NAT_GW(config)#ip nat inside source static 192.168.1.4 100.0.0.3 - статическое сопоставление адресов

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

Для просмотра важной информации о NAT существует две команды show ip nat translations, show ip nat statistics.

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

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

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

  1. Настроить интерфейсы, которые будут находится во внутренней подсети, с помощью команды ip nat inside.
  2. Настроить интерфейсы, которые будут находится во внешней подсети, с помощью команды ip nat outside.
  3. Настроить список ACL, соответствующий пакетам, поступающим на внутренние интерфейсы, для которых должна быть применена трансляция NAT
  4. Настроить пул открытых зарегистрированных IP-адресов с помощью команды режима глобального конфигурирования ip nat pool имя первый-адрес последний-адрес netmask маска-подсети.
  5. Включить динамическую трансляцию NAT, указав в команде глобального конфигурирования ip nat inside source list номер-acl pool имя-пула

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

NAT_GW>enable - переходим в расширенный режим NAT_GW#configure terminal - переходим в режим конфигурации NAT_GW(config)#interface fa0/0 - настройка интерфейса в сторону частной сети NAT_GW(config-if)#description LAN - описание интерфейса NAT_GW(config-if)#ip address 192.168.1.1 255.255.255.0 - задаем шлюз по-умолчанию NAT_GW(config-if)#no shutdown - включаем интерфейс физически NAT_GW(config-if)#ip nat inside - настраиваем интерфейс как внутренний NAT_GW(config-if)#exit NAT_GW(config)#interface fa0/1 - настройки интерфейса в сторону провайдера NAT_GW(config-if)#description ISP - описание интерфейса NAT_GW(config-if)#ip address 100.0.0.253 255.255.255.0 - задаем Ip и маску NAT_GW(config-if)#no shutdown - включаем интерфейс физически NAT_GW(config-if)#ip nat outside - настраиваем интерфейс как внешний NAT_GW(config-if)#exit NAT_GW(config)#ip nat pool testPool 100.0.0.1 100.0.0.252 netmask 255.255.255.0- создаем динамический пул NAT_GW(config)#access-list 1 permit 192.168.1.1 0.0.0.255 - создаем список доступа 1, в котором разрешаем транслировать Ip-адреса из подсети 192.168.1.1/24 NAT_GW(config)#ip nat inside source list 1 pool testPool - включаем динамическую трансляцию NAT_GW(config)#ip route 0.0.0.0 0.0.0.0 100.0.0.254 - статический маршрут в сторону провайдера

Следующий вид трансляции – трансляция адресов портов PAT (Port Address Translation). Про этот вид NAT я расскажу в следующей статье, когда мы будем подключать локальную подсеть к Интернету. Тема довольно большая и важная. PAT является наиболее популярным видом NAT’a.

Поддержите проект

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Послесловие

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

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

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