98 подписчиков

Простой тоннель в Cisco Packet Tracer

Сегодня изучим создание простейшего тоннеля.

Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная. Но зато, пока вы не разберетесь с тем, что такое тоннель и как он настраивается, я так просто вас из тоннеля не отпущу ;) поехали!

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.

Зачем нужен тоннель? Ну, например, соединить два офиса.

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

Сначала попробуем без тоннеля соединить два офиса

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

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

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-2

Для простоты я не указываю маски сетей. Используем маски стандартные классовые. По этой же причине (а еще чтобы не запутались вы) не используем /30.

Далее настраиваем роутеры

Для Router0

en

conf t

hostname router0

int gi0/0/0

ip addr 192.168.1.1 255.255.255.0

no shut

int gi0/0/1

ip addr 10.0.0.1 255.0.0.0

no shut

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-3
Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-4

Для простоты я не указываю маски сетей. Используем маски стандартные классовые. По этой же причине (а еще чтобы не запутались вы) не используем /30.

Далее настраиваем роутеры

Для Router1

en

conf t

hostname router1

int gi0/0/0

ip addr 192.168.2.1 255.255.255.0

no shut

int gi0/0/1

ip addr 10.0.0.2 255.0.0.0

no shut

do ping 10.0.0.1

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-5

Обратите внимание, что перед сохранением с помощью do wr мы также проверили пинг do ping 10.0.0.1

Это важно, потому что, может, например вдруг мы не в тот интерфейс включили провод или не тому интерфейсу присвоили IP-адрес.

Теперь настроим лэптопы (была книжка Фигурнова давным давно, там это слово почему-то назвали лэптор и оно перекочевало и в другие всякие энциклопедии ;)

Laptop0

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-6

Laptop1

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-7

А если не хочется статически настраивать, можно настроить DCHP на роутере, у меня на эту тему есть отдельная статья: https://dzen.ru/a/ZegoS1XGFzahibu3

Настроить настроили, давайте проверим, что каждый "лэптор" пингует свой роутер. Так мы проверяем и правильность подключения и правильность сетевых настроек.

Laptop0

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-8

Laptop1

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-9

Но если мы попробуем с Laptop1 пинговать Laptop0 нас ждет ожидаемая проблема.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-10

Чтобы пакеты доходили, нужно настроить маршрутизацию.

То есть роутеру Router 1 сказать, что сеть 192.168.1.0 находится за Router0 (то есть за 10.0.0.1)

А чтобы ответ мог вернуться, нужно Router0 сообщить, что сеть 192.168.2.0 находится за Router1 (то есть за 10.0.0.2)

Hастраиваем статическую машрутизацию

Подробнее о маршрутизации я написал статью: https://dzen.ru/a/Zfx2NbgccxBY1vX7

Итак на Router0

ip route 192.168.2.0 255.255.255.0 10.0.0.2

do sh ip ro

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-11

Обратите внимание, что перед сохранением мы посмотрели таблицу маршрутов. Если бы мы ошиблись, в некоторых случаях маршрут не поднялся бы (например, если адрес шлюза, через который мы указываем маршрут, был бы не доступен либо до него нельзя было сделать ARP запрос).

Настраиваем router1

ip route 192.168.1.0 255.255.255.0 10.0.0.1

do sh ip ro

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-12

Теперь проверяем работу.

Наши два офиса соединены прямым проводом и между приватными сетями имеется связность.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-13

Пингунем с Laptop1 ноутбук Laptop0 и видим, что пинг есть*.

Можно включить режим симуляции, в фильтрах отключить все, добавить только ICMP и повторить пинг, чтобы увидеть движение пакета.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-14

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

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

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-15

Но в жизни такое не посмотришь.
Потому используем трассировку.

Кстати у меня есть подробная статья о том, Как трассировка работает https://dzen.ru/a/Zc5YZ8iXmxSMHb1p

В windows и его имитации в лэптопе на CPT трассировка выполняется командой tracert:

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-16

Теперь подготовим подключение через "Интернет"

Прежде всего, удалим прямое подключение.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-17

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

На router0

int gi0/0/1

no ip addr 10.0.0.1 255.0.0.0

do sh run | sec int

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-18

Обратите внимание, с помощью do sh run | sec int мы смотрим настройки в running-config интерфейсов, и убеждаемся, что действительно, адрес 10.0.0.1 больше не присвоен ничему.

На router1

int gi0/0/1

no ip addr 10.0.0.2 255.0.0.0

do sh run | sec int

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-19

А вот маршруты мы НЕ удаляем. Они нам понадобятся. Но это исключение из правила. В реальной же жизни нужно было сделать no ip route .....

Теперь добавляем роутер, и подписываем будущие адреса.

Для сети, ведущей к Router0 возьмем 5.0.0.0. Часть адресов этой, скажем так, "сети" (на самом деле такие крупные сети уже давно не сети, а просто диапазоны) выделены компании Яндекс.

Пусть Router0 будет 5.0.0.5 а промежуточный Router2 5.0.0.2

Для сети, ведущей к Router1 возьмем 8.0.0.0. Часть адресов из этой "сети" (диапазона точнее) выделены компании Гугл.

Пусть Router1 будет 8.0.0.8, а промежуточный Router 8.0.0.2

Адреса же 10.0.0.1 и 10.0.0.2 мы со схемы никуда не удаляем. Пусть они пока ничему не присвоены мы потом их присвоим виртуальным - туннельным интерфейсам.

Ну а пока:

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-20

Настроим адрес на Router0

int gi0/0/1

ip addr 5.0.0.5 255.0.0.0

do sh ip int br

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-21

no shut не используем, так как уже ранее к этому интерфейсу применяли эту команду, зато проверяем, присвоен ли был этот адрес интерфейсу с помощью команды do sh ip int br.

Видим, что адрес присвоен, но протокол down, так как мало "включить" интерфейс, нужно чтобы и провод был подключен, и чтобы интерфейс был включен с другой стороны провода. Это попозже, а пока, не обращая внимания, что символ интерфейса горит красным цветом, настроим router1

На router1

int gi0/0/1

ip addr 8.0.0.8 255.0.0.0

do sh ip int br

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-22

Теперь настроим Router2

en

conf t

hostname router2

int gi0/0/0

ip addr 5.0.0.2 255.0.0.0

no shut

int gi0/0/1

ip addr 8.0.0.2 255.0.0.0

no shut

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-23

do ping 5.0.0.5

do ping 8.0.0.8

do sh ip int bt

do sh ip ro

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-24

Пингуем соседей, смотрим на интерфейсы и на маршруты (которые поднялись, как только были подняты интерфейсы, в статье "Маршрутизация" https://dzen.ru/a/Zfx2NbgccxBY1vX7 я об этом рассказывал).

Дальше у нас пока нет задачи обеспечить связность между компьютерами. Это мы сделаем настройкой тоннеля. Но нам важно, чтобы router0 и router1 могли пинговать друг друга. Пока они этого сделать не могут.

Почему? Потому что маршрутов нет.

Router0 должен знать, что сеть гугла (8.0.0.0) находится за router2.

А router1 должен знать, что сеть яндекса (5.0.0.0) находится... в данном случае тоже за router2.

На router0

ip route 8.0.0.0 255.0.0.0 5.0.0.2

Смотрите, не перепутайте где что мы указываем!

И сразу do sh ip ro

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-25

На router1

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-26

Пинг есть.

Теперь все готов к настройке тоннеля.

Настраиваем "Интернеты"

На схеме виртуальную линию мы нарисуем простой линией. К ней мы приурочем оставшиеся подписи туннельных интерфейсов.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-27

Также, так как Router2 нас не интересует (в жизни там могло быть и 2 и 3 и более роутера), можно спрятать его в "облачко".

Для этого следует его выделить и нажать на значок "облачко+"

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-28

Итог будет выглядеть так

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-29

Но вообще я не рекомендую так делать.

Потому лучше сразу нажать на отмену.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-30

А если уже потом опомнились, то нужно зайти в облачко. И мы увидим внутри этого "интернета" наш единственный роутер. Чтобы открепить его от облачка, нужно нажать на значок со стрелками

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-31

После чего нажать на роутер и выбрать Move to root

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-32

После чего можно нажать на стрелку "На уровень выше"

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-33

Облачко перекрыло роутер

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-34

Просто хватаем его мышкой и перетаскиваем. Также его можно удалить

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-35

Вот именно с такой схемой я и рекомендую тренироваться.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-36

Но для удобства этой статьи я все-таки спрячу Router2 за облачком, чтобы подчеркнуть: мы настраиваем тоннель для работы через внешнюю сеть.

в режиме конфигурирования переходим в настройки виртуального тоннельного интерфейса

int tun0

в tunnel source мы указываем интерфейс, в который будут уходить "упакованные" IP-пакеты

tunnel source gi0/0/1

в tunnel destination мы указываем IP-адрес роутера, который выступает для нас сервером, который будет извлекать из "упакованного" IP-пакета завернутый в него пакет с туннельными IP-адресами

tunnel destination 8.0.0.8

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

Проверим интерфейсы и сразу сохраним

do sh ip int br

do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-37

Настроим на Router1 тоннель

в режиме конфигурации

int tun0

ip addr 10.0.0.2 255.0.0.0

tunnel source gi0/0/1

tunnel destination 5.0.0.2

также посмотрим на сетевые интерфейсы

do sh ip int br

и на то как выглядит running-config

do sh run | sec in

обратите внимание на поле Mtu (о нем поговорим отдельно).

Сохраним do wr

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-38

Можно сразу было отфильтровать (только не tun0, как я сначала пытался, а Tun или полностью)

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-39

Проверяем туннель

Сначала просто пинг

В прошлый раз мы пинговали с Laptop1 на Laptop0, потому в этот раз с Laptop1 на Laptop0

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-40

Посмотрим трассировку.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-41

Теперь самое время посмотреть, что происходит в трассировке.

Запускаем симуляцию, запускаем команду пинг, и нажимаем "Play"

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-42

Видим, как пакет движется по внешней сети.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-43

Нам важно поймать его, пока он движется по "внешней сети".

Для этого по описанной выше схеме извлечем "роутер" из облака.

Кликаем на пакет, когда он обрабатывается на Router2

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-44

Получилось.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-45

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

Нажмем на Outbound PDU и чуть растянем окно.

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-46

Обратите внимание, что в пакетидущий от 5.0.0.5 на 8.0.0.8 вложен заголовок GRE в который вложен снова IP-пакет, уже идущий от 192.168.1.2 на 192.168.1.3

Более детально исследуя, вы также можете заметить, что после прохождения Router2 TTL внешнего пакета меняется, а внутреннего нет. Router2 не видим для внутреннего пакета, не видим его и в TTL.

А теперь ответ, почему MTU 1476

Для сравнения стандартный MTU 1500 (вывод ifconfig в linux)

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-47

Разница 24 байта. Заголовок IP имеет 20 байт (видно это и на картинке выше 5 32битных слов, в выводе симулятора занимающих одну строчку).

Заголовок GRE - еще одно 32 битное слово, или 4 байта. Вот и приходится дополнительно из полезной нагрузки фрейма еще и 24 байта вычитать.

Итак, с тоннелем на примере GRE мы разобрались.

Подписывайтесь на мой канал https://dzen.ru/olinux

и читайте заметки о неочевидных моментах в работе GNU/Linux и сетевых протоколов.

Всегда с вами,
Сергей Кручинин
преподаватель GNU/Linux и компьютерных сетей

Сегодня изучим создание простейшего тоннеля. Будет ли у нас сегодня свет в конце тоннеля? Запускайте Cisco Packet Tracer и мужайтесь -- статья очень длинная.-48