gurkin33 learning awesome things


Немного истории

Собственно история нужна для того, что бы ответить на вопрос - А зачем?

Началось все с классовой адресации, которая предоставляла чрезвычайно большие блоки ip адресов, что приводило к быстрой растрате. На смену классовой адресации пришла бесклассовая, которая позволяла делить классовую на более мелкие части. И это помогло. Но время шло, появлялось все больше устройств, которые очень хотели выйти в Интернет и это опять начало приводить к быстрому истощению всего запаса ip адресов. А их ведь не мало - 4294967296 (на самом деле меньше, потому что очень много адресов зарезервировано). Великие умы сетевых технологий придумали "костыль" под названием Network Address Translator. Эта технология позволяет скрывать сотни и даже тысячи устройств под одним ip адресом. Перейдем к подробному изучению.

Самое главное что надо понять - основная работа технологии NAT, это подмена ip адреса источника(source)/получателя(destination) в заголовке.

Виды NAT

Static NAT

Static NAT - позволяет скрывать одно устройство за одним ip адресом. Рисунок 6.1.

Рисунок 6.1 Static NAT
Рисунок 6.1 Static NAT

Каждый раз, когда ПК1 отправляет данные в Интернет, R1 меняет ip адрес источника (src) и передает дальше. Таким образом устройства в интернете не видят реального ip адрес ПК1. В обратную сторону все работает аналогично, только в этом случае меняется адрес получателя (dst). (Для чего нужен Static NAT понимание приходит не сразу, расслабьтесь на практике все поймете).

Dynamic NAT

Dynamic NAT - позволяет скрывать несколько устройств за счет преднастроенного диапазона "внешних" адресов (часто говорят "пул" адресов, от английского pool). Рисунок 6.2.

Рисунок 6.2 Dynamic NAT
Рисунок 6.2 Dynamic NAT

Каждый раз когда компьютеры выходят в Интернет, за каждым их них закрепляется один из внешних ip адресов. "Пул" внешних ip адресов задается вручную. Если устройств, которые хотят выйти в Интернет, больше, чем ip адресов в преднастроенном "пуле", то тут срабатывает правило - "кто успел, тот и съел". Если все внешние адреса разобраны, то остальным компьютерам (которые хотят выйти в Интернет) придется ждать, пока какой-нибудь из адресов не освободится.

Port Address Translator (PAT)

Port Address Translator (PAT) - позволяет скрывать несколько устройств за один ip адрес. Такая схема работает за счет использования TCP/UDP портов. Рисунок 6.3.

Рисунок 6.3  NAT/PAT
Рисунок 6.3 NAT/PAT

Разберем обозначения на рисунке 6.3. Что такое src и dst надеюсь понятно (но на всякий случай - источник и получатель), далее идет запись типа ip адрес:порт. Порт веб-сервера 80, порт на стороне клиента выбирается случайным образом ( подробнее тут). Как вы можете видеть, после прохождения NAT, пакеты имеют один и тот же ip адрес, но разную адресацию портов, с помощью них роутер определяет, кому передать "вернувшийся" трафик.

PAT - самый распространенный вид NAT, такое заключение можно сделать, хотя бы потому что все домашние роутеры используют PAT (D-link, Tp-link, ASUS и т.д.).

Наш Спонсор

Наш Спонсор

Информация

Packet Tracer version: 6.2.0

Рабочий файл: скачать

Версия файла: 1.0

Практика



Начальные данные

Все "манипуляции" можно осуществлять только при помощи ADMIN_G33 (либо с других ПК в сети).

В данной практической работе сеть уже спланирована, адресация распределена и настроен DHCP. На сетевом оборудовании настроен telnet-сервер, пароль - gurkin33.ru, доступ имеется только к устройствам в настраиваемой сети(R0 и SW0). Роутер ISP - Internet Server Provider.

Настроенные DNS-записи (Server0):
  • r0.gurkin33 - 192.168.1.1
  • sw0.gurkin33 - 192.168.1.10
  • dns.gurkin33 - 192.168.1.21
  • gurkin33.lol - 11.1.1.2
  • me.gurkin33.lol - 11.1.1.6

Рисунок 6.4 Схема сети из практической работы
Рисунок 6.4 Схема сети из практической работы

Цели

  1. Настроить Static NAT
  2. Настроить Dynamic NAT
  3. Настроить Port Address Translator
  4. Настроить Static PAT

Выполнение

  1. Настроить Static NAT
  2. Настраивать NAT прежде всего стоит с указания inside local и inside global - интерфейс, который "смотрит" во внутреннюю сеть и интерфейс, который "смотрит" во внешнюю сеть.

    								
     R0(config)#interface FastEthernet0/0
     R0(config-if)#ip nat ?
       inside   Inside interface for address translation
       outside  Outside interface for address translation
     R0(config-if)#ip nat inside 
     R0(config-if)#interface FastEthernet0/1
     R0(config-if)#ip nat outside 
    
    

    При условии, что Fa0/0 "смотрит" во внутреннюю сеть (192.168.1.0/24) мы устанавливаем команду ip nat inside. На интерфейсе Fa0/1, который "смотрит" во внешнюю сеть или Интернет, устанавливаем команду ip nat outside. При помощи этих команд, мы задаем направление по которому будет происходить подмена адреса (address translation).

    Далее Static NAT настраивается очень просто, с помощью команды ip nat inside source static <ip outside> <ip outside>.

    								
     R0(config)#ip nat inside source static 192.168.1.27 11.1.1.3
    
    

    Указав команду ip nat inside source static 192.168.1.27 11.1.1.3, R0 начнет передавать все пакеты приходящие на адрес 11.1.1.3 серверу WWW (192.168.1.27) и наоборот, у всех пакетов отправленных с сервера WWW в Интернет, будет адрес источника 11.1.1.3.

    Прежде чем проверять работу Static NAT, надо пояснить процесс маршрутизации. Между R0 и ISP имеется сеть 11.1.1.0/28, с диапазоном 11.1.1.1-11.1.1.14. Первый адрес из диапазона принадлежит провайдеру (ISP), второй R0, остальные адреса не задействованы. Так вот, после того как мы установили статический NAT для адреса 11.1.1.3, R0 начинает выступать в роли устройства, которому принадлежит этот адрес (11.1.1.3). Теперь проверим, рисунок 6.5.

    Рисунок 6.5 Проверка Static NAT с ПК YOU_HOME
    Рисунок 6.5 Проверка Static NAT с ПК YOU_HOME

    								
     R0#sh ip nat tr
     Pro  Inside global     Inside local       Outside local      Outside global
     ---  11.1.1.3          192.168.1.27       ---                ---
     tcp 11.1.1.3:80        192.168.1.27:80    140.140.140.2:1025 140.140.140.2:1025
     tcp 11.1.1.3:80        192.168.1.27:80    140.140.140.2:1026 140.140.140.2:1026
     tcp 11.1.1.3:80        192.168.1.27:80    140.140.140.2:1027 140.140.140.2:1027
     tcp 11.1.1.3:80        192.168.1.27:80    140.140.140.2:1028 140.140.140.2:1028
     
     R0#sh ip nat st
     Total translations: 5 (1 static, 4 dynamic, 4 extended)
     Outside Interfaces: FastEthernet0/1
     Inside Interfaces: FastEthernet0/0
     Hits: 39  Misses: 4
     Expired translations: 0
     Dynamic mappings:
     R0#
    
    

    На рисунке 6.5 показано, что ПК YOU_HOME из "Интернета" обращается по адресу 11.1.1.3 и открывается веб-страница с сервера WWW. Следовательно Static NAT работает правильно.

    Теперь разъясним команды, представленные под рисунком.

    Первая команда show ip nat translations - показывает таблицу "трансляций", которые установлены на роутере в данный момент. Слово "трансляция" будет появляться здесь очень часто, если вы еще не поняли что это такое, то вот вам краткое определение от автора. Трансляция - это соотношение адресов (из внутренней сети и внешней), которое используется в работе NAT-а, или еще проще - при помощи трансляции определяется какой адрес на какой поменять. В столбце Inside local располагаются локальные адреса, в столбце Inside global располагаются внешние адреса, в Pro - название протокола (tcp, udp). Обратите внимание, что если в столбце стоит ---, это означает "любое значение". Именно благодаря первой строчке в этой таблице роутер передает все данные предназначенные 11.1.1.3 на адрес 192.168.1.27. Остальные строчки, это трансляции, соответствующие сессиям, которые сделал ПК YOU_HOME (их несколько, т.к. несколько раз обновил страницу), они созданы динамически и будут удалены по истечению установленного таймера (по умолчанию 24 часа). Столбцы Outside local и Outside global не будут рассмотрены в данном практическом руководстве, будем считать, что они отображают адреса устройств в "Интернете" (устройства, на которые смотрит внешний интерфейс).

    Другая команда show ip nat statistics - как можно догадаться, предоставляет статистику по настроенному NAT на этом устройстве (в данном случае R0). Total translations - общее количество строк в таблице трансляции. Далее описание интерфейсов, интерфейс который смотрит в Интернет - Outside Interfaces, интерфейс, который смотрит во внутреннюю сеть - Inside Interfaces. Hits - количество пакетов подверженных изменению адреса. Misses - количество пакетов пропущенных без изменений. Expired translations - трансляции удаленные по истечении таймера.

    Самостоятельно выполните команду ping 11.1.1.3 с ПК YOU_HOME, изучите вывод команд show ip nat translations и show ip nat statistics. Изучать следует во время выполнения ping и спустя минуту.

    Выполните команду clear ip nat translation *, что бы удалить все динамические трансляции (команда выполняется в режиме привилегий, privilege mode).

  3. Настроить Dynamic NAT

    Что бы настроить такой вид NAT, сперва надо определиться с диапазоном адресов, "которые будут заменены" и с диапазоном адресов "на которые будем заменять". Для примера мы будем заменять адреса серверов Server0 и Server1 на адреса 11.1.1.4 и 11.1.1.5.

    Диапазон адресов "на которые будем заменять" устанавливается командой ip nat pool <имя> <первый ip> <последний ip> netmask <маска> . Значение имя может быть любым. Значение маски здесь используется только для проверки вводимых данных (что бы вы ни дай Бог не указали номер сети или широковещательный адрес).

    Диапазон адресов "которые будут заменены" устанавливается при помощи ACL.

    Устанавливается Dynamic NAT при помощи команды ip nat inside source list <ACL (номер или имя)> pool <имя nat pool>

    								
     R0(config)#ip nat pool DynamicNATG33 11.1.1.4 11.1.1.5 netmask 255.255.255.240 
     R0(config)#ip access-list standard S0S1G33
     R0(config-std-nacl)#permit host 192.168.1.21
     R0(config-std-nacl)#permit host 192.168.1.33
     R0(config-std-nacl)#exit
     R0(config)#
     R0(config)#ip nat inside source list S0S1G33 pool DynamicNATG33
     R0(config)#exit
     R0#
     R0#sh ip nat
     % Incomplete command.
     R0#sh ip nat st
     R0#sh ip nat statistics 
     Total translations: 1 (1 static, 0 dynamic, 0 extended)
     Outside Interfaces: FastEthernet0/1
     Inside Interfaces: FastEthernet0/0
     Hits: 60  Misses: 8
     Expired translations: 2
     Dynamic mappings:
     -- Inside Source
     access-list S0S1G33 pool DynamicNATG33 refCount 0
      pool DynamicNATG33: netmask 255.255.255.240
            start 11.1.1.4 end 11.1.1.5
            type generic, total addresses 2 , allocated 0 (0%), misses 0
     
    

    Dynamic NAT срабатывает только когда устройство из внутренней сети пытается выйти в Интернет, т.е. проходит между двумя NAT интерфейсами из inside в outside. Попробуем выйти в интернет с сервера Server0, рисунок 6.6.

    Рисунок 6.6 Проверка Dynamic NAT
    Рисунок 6.6 Проверка Dynamic NAT
    
     R0#sh ip nat statistics 
     Total translations: 3 (1 static, 2 dynamic, 2 extended)
     Outside Interfaces: FastEthernet0/1
     Inside Interfaces: FastEthernet0/0
     Hits: 81  Misses: 10
     Expired translations: 2
     Dynamic mappings:
     -- Inside Source
     access-list S0S1G33 pool DynamicNATG33 refCount 2
      pool DynamicNATG33: netmask 255.255.255.240
            start 11.1.1.4 end 11.1.1.5
            type generic, total addresses 2 , allocated 1 (50%), misses 0
     
     R0#sh ip nat translations 
     Pro  Inside global     Inside local       Outside local      Outside global
     ---  11.1.1.3          192.168.1.27       ---                ---
     tcp 11.1.1.4:1025      192.168.1.21:1025  13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.4:1026      192.168.1.21:1026  13.3.1.7:80        13.3.1.7:80	
    
    

    Как видите, установилось две сессии между Server0 и сервером WWW_Internet. Если сейчас попробовать выйти в интернет с сервера Server1, то ему выделится следующий ip адрес - 11.1.1.5. Это должно быть понятно и не интересно. Гораздо интересней будет, если мы очистим динамическую трансляцию и попробуем выйти в интернет через Server1, рисунок 6.7.

    
     R0#clear ip nat translation *
    
    
    Рисунок 6.7 Проверка Dynamic NAT
    Рисунок 6.7 Проверка Dynamic NAT
    
     R0#sh ip nat translations 
     Pro  Inside global     Inside local       Outside local      Outside global
     ---  11.1.1.3          192.168.1.27       ---                ---
     tcp 11.1.1.4:1025      192.168.1.33:1025  13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.4:1026      192.168.1.33:1026  13.3.1.7:80        13.3.1.7:80
    
    

    Супер! После всех этих махинаций серверу Server1 выделили ip адрес 11.1.1.4, такой же какой был недавно у Server0. В этом и заключается динамика.

  4. Настроить Port Address Translator

    Вот мы и подобрались к самому популярному виду NAT - Port Address Translator ( некоторые производители обзывают его Hide NAT, а Cisco называет такой вид NAT - Overload).

    Что бы лучше понять, надо попробовать настроить, но перед настройкой предлагаю удалить сделанные настройки Dynamic NAT.

    
     R0#clear ip nat trans *
     R0#conf t
     Enter configuration commands, one per line.  End with CNTL/Z.
     R0(config)#no ip nat inside source list S0S1G33 pool DynamicNATG33
     R0(config)#no ip nat pool DynamicNATG33 11.1.1.4 11.1.1.5 netmask 255.255.255.240
     R0(config)#no ip access
     R0(config)#no ip access-list st S0S1G33
    
    

    Все команды, которые я удалял, находились в выводе команды show running-config. По идее, можно было только удалить команду, не посредственно устанавливающую Dynamic NAT, оставив nat pool и ACL, но если уж удалять, то лучше все сразу. (последовательность удаления тоже важна)

    Перед настройкой зададимся целью: настроить PAT для сети 192.168.1.0/24, которая будет скрыта за адресом 11.1.1.2 (адрес интерфейса R0).

    Установим диапазон адресов, который будет скрыт. Это делается как и в случае с Dynamic NAT при помощи ACL.

    Далее мы устанавливаем PAT командой ip nat inside source list <ACL (номер или имя)> interface <интерфейс> overload.

    
     R0(config)#access-list 17 permit 192.168.1.0 0.0.0.255
     R0(config)#ip nat inside source list 17 interface fa 0/1 overload 
    
    

    Все. Теперь любое устройство в сети 192.168.1.0/24 будет выходить в Интернет используя адрес 11.1.1.2. Давайте проверим, на нескольких устройствах зайдем на страницу 13.3.1.7 (автор выполнил проверку с устройств ПК3, ПК5, Server0 и WWW, адресация может немного отличаться), а после изучим таблицу трансляций.

    
     R0#sh ip nat trans
     Pro  Inside global     Inside local       Outside local      Outside global
     ---  11.1.1.3          192.168.1.27       ---                ---
     tcp 11.1.1.2:1024      192.168.1.101:1025 13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.2:1025      192.168.1.100:1025 13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.2:1026      192.168.1.100:1026 13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.2:1027      192.168.1.101:1026 13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.2:1029      192.168.1.21:1029  13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.2:1030      192.168.1.21:1030  13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.3:1025      192.168.1.27:1025  13.3.1.7:80        13.3.1.7:80
     tcp 11.1.1.3:1026      192.168.1.27:1026  13.3.1.7:80        13.3.1.7:80
     
     R0#
    
    

    Ничего сложного, но надо пояснить несколько моментов. Обратите внимание, что ПК3 (192.168.1.100) и ПК5 (192.168.1.101) использовали одинаковые порты 1025 и 1026. Первым в Интернет выходил ПК3, поэтому роутер поставил такие же порты к ip адресу 11.1.1.2. Далее попытался пройти ПК5, он использовал такие же порты, как и ПК3. R0 не может установить порты 1025 и 1026, т.к. они используются в другой трансляции, поэтому он просто берет свободные (не используемые) порты - 1024 и 1027. С сервером Server0 (192.168.1.21) все тоже самое, как и с ПК3. Но вот теперь самое интересное. Сервер WWW (192.168.1.27) находится в сети 192.168.1.0/24, но почему-то выходит в интернет под адресом 11.1.1.3. Дело в том, что для этого сервера есть правило Static NAT, а оно имеет больший приоритет чем PAT (Overload).

    При использовании NAT/PAT устройство, выходя в интернет, создает трансляцию, она состоит из ip адресов и портов. Роутер ее запоминает и просматривает каждые вернувшиеся пакеты (и сегменты) на соответствие с текущими трансляциями. Когда найдено точное совпадение ip адресов и портов, роутер меняет адреса в заголовке пакета (если надо меняет и порты в сегменте) и передает дальше, согласно настроенной маршрутизации.

  5. Настроить Static PAT

    Static PAT - это хорошая замена Static NAT, т.к. делает статическую трансляцию только на определенный порт.

    Наша цель сделать Static PAT, используя адрес 11.1.1.6: для telnet к SW0, по tcp порту 777; для сервера Server0 по udp порту 53 (DNS); для сервера Server1 по tcp порту 80 (WWW).

    Static PAT устанавливается при помощи команды ip nat inside source static <протокол> <внутренний ip> <внутренний порт> <внешний ip> <внешний порт>.

    
     R0(config)#ip nat inside source static udp 192.168.1.21 53 11.1.1.6 53
     R0(config)#ip nat inside source static tcp 192.168.1.33 80 11.1.1.6 80 
     R0(config)#ip nat inside source static tcp 192.168.1.10 23 11.1.1.6 777
     R0(config)#exit
     R0#
     R0#clear ip nat translation *
     
    

    Первой командой мы "пробросили" порт 53 (протокол udp/tcp), теперь все что будет приходить по адресу 11.1.1.6 с портом udp/tcp53 будет передаваться на Server0. Такая же ситуация со второй командой, только мы пробросили порт tcp80. Третья команда интересна тем, что внешний порт отличается от внутреннего. Когда роутеру приходят данные для адреса 11.1.1.6 порт tcp777 он передает их на SW0 tcp23 (telnet).

    Время испытаний. На рисунке 6.8 мы указали устройству BOSS_HOME dns-сервер 11.1.1.6 и попробовали зайти на me.gurkin33.lol, если все получилось, страница открылась, это значит dns-запрос успешно прошел через NAT, а так же мы увидели страницу c Server1.

    Рисунок 6.8 Проверка Static PAT
    Рисунок 6.8 Проверка Static PAT

    На рисунке 6.9 мы вызвали команду telnet 11.1.1.6 777, указали ip адрес и порт. Когда на R0 пришел такой пакет, он переделал его на SW0 (192.168.1.10) по порту 23.

    Рисунок 6.8 Проверка Static PAT
    Рисунок 6.9 Проверка Static PAT

    И напоследок таблица трансляций.

    		
    								
     R0#sh ip nat translations 
     Pro  Inside global     Inside local       Outside local      Outside global
     ---  11.1.1.3          192.168.1.27       ---                ---
     udp 11.1.1.6:53        192.168.1.21:53    ---                ---
     udp 11.1.1.6:53        192.168.1.21:53    13.3.1.2:1234      13.3.1.2:1234
     udp 11.1.1.6:53        192.168.1.21:53    140.140.140.2:1234 140.140.140.2:1234
     tcp 11.1.1.6:777       192.168.1.10:23    ---                ---
     tcp 11.1.1.6:777       192.168.1.10:23    140.140.140.2:1025 140.140.140.2:1025
     tcp 11.1.1.6:80        192.168.1.33:80    ---                ---
     tcp 11.1.1.6:80        192.168.1.33:80    13.3.1.2:1025      13.3.1.2:1025
     tcp 11.1.1.6:80        192.168.1.33:80    13.3.1.2:1026      13.3.1.2:1026
     tcp 11.1.1.6:80        192.168.1.33:80    13.3.1.2:1234      13.3.1.2:1234
     tcp 11.1.1.6:80        192.168.1.33:80    13.3.1.2:1235      13.3.1.2:1235
     tcp 11.1.1.6:80        192.168.1.33:80    140.140.140.2:1234 140.140.140.2:1234
     tcp 11.1.1.6:80        192.168.1.33:80    140.140.140.2:1235 140.140.140.2:1235	
    
    

    Технологию Static PAT поддерживают практически все домашние роутеры. Зная как работает эта технология, вы можете настроить ее на своем роутере при помощи графического интерфейса. Например, я прокидывал tcp порт 25565 для minecraft сервера, а так же tcp порт 80 для временного веб-сервера :). Enjoy it!

Наш Спонсор

Наш Спонсор

Информация

Packet Tracer version: 6.2.0

Рабочий файл: скачать

Версия файла: 1.0

Лабораторка



Начальные данные

Все "манипуляции" можно осуществлять только при помощи ADMIN_G33 (либо с других устройств). Пароль от оборудования gurkin33.ru, подключаться используя telnet. Для доступа на сетевое оборудование, используйте адресацию представленную на схеме, так же настроены dns-записи (представлены ниже). Vlan-ы настроены и распределены по портам согласно схеме. Между роутером и коммутатором настроен trunk. На роутере настроены интерфейсы под каждый vlan.

DNS записи (10.33.3.3):
  • sw0.gurkin33.ru - 10.66.6.10
  • r0.gurkin33.ru - 10.66.6.1
  • gurkin33.ru - 10.33.3.3
  • mykebap.wiwi -11.1.23.35
  • kissfinger.ohno - 11.1.23.36

Рисунок 6.10 Схема Лабораторки
Рисунок 6.10 Схема Лабораторки

Задание

  1. Настроить DHCP сервер для vlan 777 (гостевой):
    • DHCP pool 10.77.7.20 - 10.77.7.60
    • Gateway 10.77.7.1
    • DNS 10.33.3.3
  2. Настроить NAT/PAT для vlan 777 (гостевой).
  3. Ограничить доступ для vlan 777 (гостевой). Устройствам в vlan 777 нельзя подключаться к адресам из сетей: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Весть остальной трафик должен быть разрешен.
  4. Настроить Static PAT c трансляциями:
    • tcp 10.33.3.3:80 -- 6.6.6.67:80
    • tcp 10.33.3.3:443 -- 6.6.6.67:8080
    • udp 10.33.3.3:53 -- 6.6.6.67:53
    • tcp 10.66.6.10:23 -- 6.6.6.67:666

Если вы нашли в тексте ошибку, выделите текст и нажмите Ctrl + Enter.

DMCA.com Protection Status vk.com/ciscolearning facebook.com-ciscolearning.png Google+.png
2016 gurkin33, Cisco Packet Tracer лабораторные. Подготовка к CCNA, ICND1, ICND2. feedback@gurkin33.ru