Нужен ли nat в роутере дома. Как работает NAT

Посмотрело: 41180

1 Если Вы читаете этот документ, то скорее всего вы подсоединены к Интернету, и используете трансляцию сетевых адресов (Network Address Translation, NAT ) прямо сейчас! Интернет стал настолько огромным, чем кто-либо мог себе представить. Хотя точный размер неизвестен, текущая оценка это приблизительно 100 миллионов хостов и более чем 350 миллионов пользователей, активно работающих в Интернете. Фактически, норма роста такова, что Интернет эффективно удваивается в размере каждый год.

Введение

Для компьютера, чтобы общаться с другими компьютерами и Web-серверами в Интернете, он должен иметь IP адрес. IP адрес (IP означает Интернет Протокол) - это уникальное 32-битовое число, которое идентифицирует местоположение вашего компьютера на сети. В основном это работает точно так же как ваш уличный адрес: способ точно выяснить, где вы находитесь и доставить вам информацию. Теоретически, можно иметь 4,294,967,296 уникальных адресов (2^32). Фактическое число доступных адресов является меньшим (где-нибудь между 3.2 и 3.3 миллиарда) из-за способа, которым адреса разделены на классы и потребности отвести некоторые из адресов для мультивещания, тестирования или других определенных нужд. С увеличением домашних сетей и деловых сетей, число доступных IP адресов уже не достаточно. Очевидное решение состоит в том, чтобы перепроектировать формат адреса, чтобы учесть больше возможных адресов. Таким образом, развивается протокол IPv6, но, это развитие займет несколько лет, потому что требует модификации всей инфраструктуры Интернета.

Вот где приходит NAT нам во спасение. В основном, Сетевая Трансляция Адресов, позволяет единственному устройству, типа маршрутизатора, действовать как агент между Интернетом (или "публичной сетю") и локальной (или "частной") сетью. Это означает, что требуется только единственный уникальный IP адрес, чтобы представлять всю группу компьютеров чему-либо вне их сети. Нехватка IP адресов - только одна причина использовать NAT. Два других серьезных основания это безопасность и администрирование

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

Маскировка

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

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

Статический NAT - Отображение незарегистрированного IP адреса на зарегистрированный IP адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.

В статическом NAT, компьютер с адресом 192.168.32.10 будет всегда транслироваться в адрес 213.18.123.110:

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

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

Перегрузка(Overload) - форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP адрес, используя различные порты. Известен также как PAT (Port Address Translation)

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

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

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

Внутренняя сеть – это обычно LAN (Локальная сеть), чаще всего, называемая, тупиковым доменом . Тупиковый домен это LAN, которая использует внутренние IP адреса. Большинство сетевого трафика в таком домене является локальным, он не покидает пределов внутренней сети. Домен может включать как зарегистрированные так и незарегистрированные IP адреса. Конечно, любые компьютеры, которые используют незарегистрированные IP адреса, должны использовать NAT, чтобы общаться с остальной частью мира.

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

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

IP адреса имеют различные обозначения, основанные на том, находятся ли они на частной сети (домен) или на общественной сети (Интернет) и является ли трафик входящим или исходящим:

  • Большинство компьютеров в домене общается друг с другом, используя внутренние локальные адреса.
  • Некоторые компьютеры в домене взаимодействуют с внешней сетью. Эти компьютеры имеют внутренние глобальные адреса, что означает, что они не требуют трансляции.
  • Когда компьютер в домене, который имеет внутренний локальный адрес, хочет взаимодействовать с внешней сетью, пакет идет в один из NAT-маршрутизаторов посредством обычной маршрутизации.
  • NAT- маршрутизатор проверяет таблицу маршрутизации, чтобы посмотреть, имеется ли у него запись для конечного адреса. Если адрес приемника не находится в таблице маршрутизации, пакет отбрасывается. Если запись доступна, роутер проверяет, идет ли пакет из внутренней сети во внешнюю, а также, соответствует ли пакет критериям, определенным для трансляции. Затем маршрутизатор проверяет таблицу трансляции адресов, чтобы выяснить, существует ли запись для внутреннего локального адреса и соответствующего ему внутреннего глобального адреса. Если запись найдена, он транслирует пакет, используя внутренний глобальный адрес. Если сконфигурирован только статический NAT, и никакой записи не найдено, то роутер посылает пакет без трансляции.
  • Используя внутренний глобальный адрес, маршрутизатор пересылает пакет его адресату.
  • компьютер на общественной сети посылает пакет в частную сеть. Адрес источника в пакете – это внешний глобальный адрес. Адрес приемника - внутренний глобальный адрес.
  • Когда пакет прибывает во внешнюю сеть, NAT-маршрутизатор смотрит в таблицу трансляций и определяет адрес приемника, отображенный на компьютер в домене.
  • NAT-маршрутизатор транслирует внутренний глобальный адрес пакета на внутренний локальный адрес и затем проверяет таблицу маршрутизации прежде, чем пошлет пакет конечному компьютеру. Всякий раз, когда запись не найден для адреса в таблице трансляций, пакет не транслируется и роутер продолжает поверку таблицы маршрутизации на поиск адреса приемника.

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

  • Исходный адрес – IP адрес компьютера источника, например, 201.3.83.132.
  • Исходный порт – номер TCP или UDP порта, назначенное компьютером источником для этого пакета, например, Порт 1080.
  • Адрес назначения – IP адрес компьютера приемника. Например, 145.51.18.223.
  • Порт назначения – номер TCP или UDP порта, который просит открыть компьютер источник на приемнике, например, порт 3021.

IP адреса определяют две машины с каждой стороны, в то время как номера портов гарантируют, что соединение между этими двумя компьютерами имеет уникальный идентификатор. Комбинация этих четырех чисел определяет единственное соединение TCP/IP. Каждый номер порта использует 16 битов, что означает, что сушествует 65 536 (2^16) возможных значения. В действительности, так как различные изготовители отображают порты немного различными способами, вы можете ожидать приблизительно 4 000 доступных портов.

Примеры динамического NAT и NAT с перегрузкой

Ниже на картинке показано как работает динамический NAT.

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

  • внутренняя сеть была установлена с адресами IP, которые не были специально отведены для этой компании IANA (Органом по надзору за присвоением адресов в Интернете), глобальное бюро, которое раздает IP адреса. Такие адреса нужно считать немаршрутизируемыми, так как они не уникальны. Это внутренние локальные адреса.
  • компания устанавливает маршрутизатор с NAT. Маршрутизатор имеет диапазон уникальных адресов IP, выданных компании. Это - внутренние глобальные адреса.
  • компьютер на LAN пытается соединиться с компьютером вне сети, типа Web-сервера.
  • маршрутизатор получает пакет от компьютера на LAN.
  • После проверки таблицы маршрутизации и процесса проверки для трансляции, маршрутизатор сохраняет немаршрутизируемый адрес компьютера в таблице трансляции адресов. Маршрутизатор заменяет немаршрутизируемый адрес компьютера отправителя первым доступным IP адресом из диапазона уникальных адресов. Таблица трансляций теперь имеет отображение немаршрутизируемого IP адреса компьютера, которому соответствует один из уникальных IP адресов.
  • Когда пакет возвращается от компьютера адресата, маршрутизатор проверяет адрес приемника в пакете. Затем он смотрит в таблицу трансляции адресов, чтобы найти, какому компьютеру в домене принадлежит данный пакет. Он изменяет адрес приемника на тот, что был сохранен ранее в таблице трансляции и посылает пакет нужному компьютеру. Если роутер не находит соответствие в таблице, он уничтожает пакет.
  • Компьютер получает пакет от маршрутизатора и весь процесс повторяется, пока компьютер общается с внешней системой.
  • Внутренняя сеть была установлена с немаршрутизируемыми IP адресами, которые не были специально отведены для компании
  • компания устанавливает маршрутизатор с NAT. Маршрутизатор имеет уникальный IP адрес, который выдала IANA
  • компьютер в домене пытается соединиться с компьютером вне сети, типа Web-сервера.
  • маршрутизатор получает пакет от компьютера в домене.
  • После маршрутизации и проверки пакета для выполнения трансляции, маршрутизатор сохраняет немаршрутизируемый IP адрес компьютера и номер порта в таблице трансляции. Маршрутизатор заменяет немаршрутизируемый IP адрес компьютера отправителя IP адресом маршрутизатора. Маршрутизатор заменяет исходный порт компьютера отправителя неким случайным номером порта и сохраняет его в таблице трансляции адресов для этого отправителя. Таблица трансляций имеет отображение немаршрутизируемого IP адреса компьютера и номера порта наряду с IP адресом маршрутизатора.
  • Когда пакет возвращается от адресата, маршрутизатор проверяет порт применика в пакете. Он затем смотрит в таблицу трансляций, чтобы найти, какому компьютеру в домене принадлежит пакет. Далее роутер изменяет адрес приемника и порт приемника в те значения, которые были ранее сохранены в таблице трансляций и посылает пакет конечному узлу.
  • компьютер получает пакет от маршрутизатора и процесс повторяется
  • Так как NAT маршрутизатор теперь имеет исходный адрес компьютера и исходный порт, сохраненный к таблице трансляций, он продолжит использовать тот же самый номер порта для последующих подключений. Каждый раз, когда маршрутизатор обращается к записи в таблице трансляций сбрасывается таймер жизни этой записи. Если к записи не обращаются прежде, чем таймер истекает, она удаляется из таблицы

Число одновременных трансляций, которые маршрутизатор будет поддерживать, определяется главным образом количеством DRAM (Динамическая Память Произвольного доступа). Так как типичная запись в таблице трансляций занимает приблизительно 160 байт, маршрутизатор с 4 Мбайтами RAM может теоретически обработать 26214 одновременных соединений, что является более чем достаточно для большинства приложений.

Безопасность и Администрирование

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

Статический NAT, также называемый входным мапингом (inbound mapping), позволяет подключения, инициированные внешними устройствами к компьютерам в LAN при определенных обстоятельствах. Например, вы можете отобразить внутренний глобальный адрес на определенный внутренний локальный адрес, который назначен на ваш Web-сервер.

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

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

Иногда Сетевую Трансляцию Адресов путают с прокси-серверами, где есть определенные различия. NAT прозрачен для компьютеров источника и приемника. Никто из них не знает, что это имеет дело с третьим устройством. Но прокси сервер не прозрачен. Исходный компьютер знает, что это делает запрос на прокси. Компьютер адресата думает, что прокси сервер - это исходный компьютер и имеет дело с непосредственно ним. Кроме того, прокси-серверы обычно работают на уровне 4 (Transport) модели OSI или выше, в то время как NAT – это протокол уровня 3 (Network) . Работа на более высоких уровнях делает прокси-серверы медленнее чем NAT устройства в большинстве случаев.

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

И просматриваете страницы WEB сайта. Велика вероятность того, что именно сейчас вы пользуетесь преобразованием сетевых адресов (NAT).

Никто не мог предвидеть такого разрастания Интернета, какое мы наблюдаем сегодня. Хотя точные его размеры неизвестны, оценки показывают, что в Интернете имеется приблизительно 100 миллионов активных узлов и более 350 миллионов пользователей. Темпы роста Интернета таковы, что его размер ежегодно удваивается.

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

IP адресация

Когда впервые появилась IP адресация, все считали, что адресов достаточно для того, чтобы удовлетворить любые потребности. Теоретически может быть в общей сложности 4 294 967 296 уникальных адресов (232). Фактическое количество доступных для использования адресов несколько меньше (приблизительно между 3.2 и 3.3 миллиардами), что объясняется особенностями разбиения адресов на классы и тем, что определенные адреса резервируются для многоадресной рассылки, тестирования и других специальных нужд.

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

На выручку приходит система NAT (RFC 1631). Преобразование сетевых адресов позволяет одному устройству, например, маршрутизатору, выполнять функции посредника между Интернетом (или «публичной сетью») и локальной (или «частной») сетью. Это значит, что для представления целой группы компьютеров требуется только один уникальный IP адрес.

Однако недостаток IP адресов - лишь одна из причин, по которым используют NAT. Наша статья посвящена преимуществам и особенностям этой системы. Сначала рассмотрим более подробно, что такое NAT и как эта система работает…

Принцип работы системы NAT

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

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

Система преобразования сетевых адресов

Система преобразования сетевых адресов, разработанная компанией Cisco, используется устройством ( , маршрутизатором или компьютером), соединяющим внутреннюю сеть с остальным миром. Преобразование сетевых адресов может иметь разные формы и может работать разными способами:

  • Статическое преобразование сетевых адресов - преобразование незарегистрированного IP адреса в зарегистрированный IP адрес по принципу «один к одному». Особенно полезно, когда требуется доступ к устройству из-за пределов локальной сети.
  • Динамическое преобразование сетевых адресов - преобразование незарегистрированного IP адреса в зарегистрированный IP адрес из группы зарегистрированных IP адресов.
  • Перегрузка - форма динамического преобразования, преобразующая много незарегистрированных IP адресов в один зарегистрированный адрес за счет использования различных портов. Эту процедуру еще называют PAT (Port Address Translation, преобразование портов и адресов), одноадресным NAT или мультиплексированным NAT на уровне портов.
  • Совпадение - когда используемые в вашей сети адреса являются зарегистрированными IP адресами, используемыми в другой сети, маршрутизатор должен вести таблицу преобразования таких адресов, перехватывать их и заменять зарегистрированными уникальными IP адресами. Важно отметить, что маршрутизатор NAT должен преобразовывать «внутренние» адреса в зарегистрированные уникальные адреса, а также «внешние» зарегистрированные адреса в адреса, которые являются уникальными в частной сети. Такая операция может осуществляться с использованием статического преобразования сетевых адресов, либо сервиса доменных имен (DNS) и внедрения динамического преобразования сетевых адресов.

Внутренняя сеть обычно представляет собой локальную сеть (LAN, Local Area Network), которую иногда называют тупиковым доменом (stub domain). Тупиковый домен - это локальная сеть, внутри которой используются IP адреса. Большинство сетевого трафика в тупиковом домене локальное и не выходит за пределы внутренней сети. Тупиковый домен может содержать как зарегистрированные, так и незарегистрированные IP адреса. Разумеется, все компьютеры, которым присвоены незарегистрированные IP адреса, для связи с остальным миром должны пользоваться преобразованием сетевых адресов.

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

  • Интернет-провайдер закрепляет за вашей компанией ряд IP адресов. Адреса из закрепленной группы являются зарегистрированными IP адресами и называются внутренними глобальными адресами. Незарегистрированные, частные IP адреса разделяются на две группы. Одна небольшая группа (внешние локальные адреса) используется маршрутизаторами NAT. Вторая, значительно большая группа, которую называют внутренними локальными адресами (inside local addresses), используется в тупиковом домене. Внешние локальные адреса используются для формирования уникальных IP адресов устройств, называемых внешними глобальными адресами, для выхода в публичную сеть.
  • Большинство компьютеров тупикового домена обменивается информацией друг с другом, используя внутренние локальные адреса.
  • Некоторые компьютеры тупикового домена часто связываются с устройствами за пределами локальной сети. Эти компьютеры имеют внутренние глобальные адреса, которые не требуют преобразования.
  • Когда компьютеру тупикового домена с внутренним локальным адресом нужно связаться с компьютером за пределами локальной сети, пакет направляется к одному из маршрутизаторов NAT.
  • Маршрутизатор NAT сверяется с таблицей маршрутизации для выяснения, есть ли запись для адреса назначения. Если такая запись имеется, маршрутизатор NAT преобразует пакет и создает для него запись в таблице трансляции адресов. Если адреса назначения в таблице маршрутизации нет, пакет игнорируется.
  • Используя внутренний глобальный адрес, маршрутизатор отправляет пакет к пункту назначения.
  • Компьютер в публичной сети отправляет пакет в частную сеть. Адресом отправителя пакета является внешний глобальный адрес. Адресом назначения является внутренний глобальный адрес.
  • Маршрутизатор NAT сверяется с таблицей трансляции адресов и определяет, что здесь имеется адрес назначения, соотносящийся с компьютером в тупиковом домене.
  • Маршрутизатор NAT преобразует внутренний глобальный адрес пакета во внутренний локальный адрес и отправляет пакет к соответствующему компьютеру.

Перегрузка NAT

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

  • Адрес источника - IP адрес компьютера-отправителя, например, 201.3.83.132
  • Порт отправителя - номер порта TCP или UDP, назначенный компьютером-отправителем для данного пакета, например, порт 1080
  • Адрес получателя - IP адрес компьютера-получателя, например, 145.51.18.223
  • Порт назначения - номер порта TCP или UDP, который компьютер-отправитель требует открыть у компьютера-получателя, например, порт 3021.

Адреса указывают две машины на каждом конце, а номера портов обеспечивают уникальный идентификатор для соединения между двумя компьютерами. Комбинацией этих четырех чисел определяется одно соединение TCP/IP. В каждом номере порта используется 16 бит, а это значит, что возможно 65 536 (216) значений. На практике, с учетом того, что разные производители сопоставляют порты немного по-разному, можно ожидать, что доступными будут приблизительно 4 000 портов.

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

Что такое NAT

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

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

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

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

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

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

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

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

как устроен NAT

s+d NAT (branch merging - evil!)

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

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

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

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

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

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

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

Ip access-list extended LOCAL permit ip 10.0.0.0 0.255.255.255 any

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

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

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

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

Ip nat pool GLOBAL 212.192.64.74 212.192.64.74 netmask 255.255.255.0

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

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

Ip nat inside source route-map INT1 pool GLOBAL overload

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

Ip nat inside source static tcp 10.0.0.1 23 212.192.64.74 23 extend

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

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

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

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

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

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

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

Примеры

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

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

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

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

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

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

Inside-to-Outside

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

Outside-to-Inside

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

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

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

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

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

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

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

Схема

Конфиг

1 clear ip nat translations *

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

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

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

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

Разное

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

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

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

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

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

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

Принцип работы роутера (маршрутизатора)

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

Основная функция, которая работает в любом роутере - NAT

NAT - Network Address Translation служит для замены IP адресов. В локальных сетях в основном используются адреса типа 192.168.1.XXX или подобные, и это порождает проблему маршрутизации в глобальной сети интернет, так как IP адреса в сети не должны дублироваться. Решением данной проблемы есть NAT - компьютеры локальной сети подключаются к локальному интерфейсу роутера, получают от него IP адреса и шлюз (шлюзом служит роутер), а WAN интерфейс роутера подключается к интернету.

Теперь рассмотрим принцип NAT трансляции:

  • С любого компьютера в локальной сети делается запрос, например, вы пытаетесь выйти на любой сайт - компьютер отправляет данный запрос на адрес шлюза, то есть нашего роутера;
  • Роутер, получив данный запрос, записывает ваш компьютер как инициатор соединения, после чего создаётся копия вашего пакета и отправляется по адресу назначения, но уже от лица роутера, и с его IP адресом, а ваш пакет просто уничтожается;
  • Сервер, которому был отправлен запрос, обрабатывает его и отправляет ответ, естественно на адрес роутера. А роутер этого уже ждал, так как создал запись о том, что на запрос вашего компьютера должен прийти ответ, и направляет его на ваш компьютер. Как видно, по данной схеме - инициатором соединения может быть только компьютер из локальной сети, а ответ от сервера попадёт на компьютер, только если роутер будет этого ждать (ответ на запрос). Другими словами, все попытки соединится из вне будут останавливаться на роутере, и будет удачны только если роутер предоставляет ресурс по запрошенному порту или у него настроены правила Port Forwarding, о которых мы сейчас поговорим.

Port Forwarding

Port Forwarding - это по сути то же самое что и NAT, но в другую сторону, а следовательно только статический NAT, то есть, определённые запросы только на определённые компьютеры, ведь в глобальной сети не могут знать IP адресов за роутером. Например, вы создали FTP или HTTP сервер на компьютере и хотите предоставить доступ к данным ресурсам, для этого нужно прописать данное правило в роутере, в котором будет указано, что все входящие пакеты на нужный порт (21 или 80 в нашем случае) будут переданы на IP адрес нашего компьютера на определённый порт (порт можно поменять).

NAT - DMZ

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

Маршрутизация

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

Не забываем оставлять