Материалы CISCO CCNA (Маршрутизация)

Сертификации R&S больше нет, но данная информация по-прежнему полезна.
Материалы CISCO CCNA (Маршрутизация) — материалы для подготовки к CCENT (первая и вторая части курса CISCO CCNA R&S).
Тут записи идут вразнобой, а не по урокам — как есть.
Маска подсети
Основное понятие в IPv4 адресации. Для понимания нужно выучить двоичную систему исчисления.
Сетевой адрес IPv4 в двоичном выражении имеет длину 32 бита и неявно состоит из 2 частей: сначала сетевая часть и потом хостовая. Это первое важное понятие. Наверное самое важное.
Для удобства чтения сетевой адрес разделён на 4 части (на 4 октета) точками. Сетевая часть определяет подсеть, из которой был взят адрес и имеет большое значение при маршрутизации пакетов. Хостовая часть менее значима. Конец сетевой части может совпадать с концом октета, а может не совпадать.
Для выделения частей из адреса используется маска подсети . Второе важное понятие. Маска подсети имеет также длину 32 бита. Маска состоит из последовательных 1, минимум 0 единиц, максимум 32. Оставшаяся часть маски дополняется нулями до 32 бит.
Для того, чтобы выделить сетевую часть из адреса, адрес IPv4 должен быть написан в двоичном виде, а маска должна быть написана под ним. Выполняя побитовое умножение адрес на маску получим сетевую часть:
Другой способ записи маски: считается количество 1 в маске, подписывается к адресу через слеш:
Сетевой инженер с помощью листка бумаги и ручки (без онлайн калькулятора) должен выделять подсети из адресов любой сложности:
Это основа основ. Если нет чёткого понимания советую пару часиков потренироваться. Вот в помощь видео (скорость воспроизведения лучше в 1.25).
Маршруты
Алгоритм пересылки пакетов:

Таблица IP маршрутизации CISCO не является плоской базой данных. Таблица маршрутизации — это иерархическая структура, которая используется для ускорения процессов поиска маршрутов и пересылки пакетов.
Иерархия таблицы маршрутизации в CISCO IOS изначально реализована с использованием схемы классовой маршрутизации. Хотя таблица маршрутизации включает классовую и бесклассовую адресацию, общая структура по-прежнему строится на основе классовой схемы.
Виды маршрутов
Независимо от того, как был получен маршрут, если интерфейс, пересылка через который должна осуществятся согласно данному маршруту, выключен, то маршрут не попадёт в таблицу маршрутизации (или исчезнет оттуда сразу после выключения интерфейса).
- Интерфейсы локального маршрута — добавляются, когда интерфейс настроен и активен (запись отображается только в IOS 15 или более поздних версиях для IPv4-маршрутов и во всех версиях IOS для IPv6-маршрутов);
- Интерфейсы с прямым подключением — добавляются в таблицу маршрутизации, когда интерфейс настроен и активен;
- Статические маршруты — добавляются, когда маршрут настроен вручную и активен выходной интерфейс;
- Протокол динамической маршрутизации — добавляется, когда определены сети и реализуются протоколы маршрутизации, которые получают информацию о сети динамически.
Обозначение маршрутов
Код определяет, каким образом был получен маршрут:
- L — указывает адрес, назначенный интерфейсу маршрутизатора. Данный код позволяет маршрутизатору быстро определить, что полученный пакет предназначен для интерфейса, а не для пересылки;
- C — определяет сеть с прямым подключением;
- S — определяет статический маршрут, созданный для достижения конкретной сети;
- D — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола EIGRP;
- O — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола маршрутизатора OSPF;
- R — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола RIP.

Временная метка маршрута — количество времени, прошедшее с тех пор, как был получен маршрут.
Критерии маршрутов в таблице маршрутизации
- Окончательный маршрут — окончательный маршрут представляет собой запись в таблице маршрутизации, содержащую либо IPv4-адрес следующего перехода, либо выходной интерфейс. Напрямую подключённые, динамически получаемые и локальные маршруты являются окончательными;
- Маршрут 1-го уровня — маршрут 1-го уровня представляет собой маршрут с маской подсети, значение которой равно или меньше значения классовой маски сетевого адреса;
- Родительский маршрут 1-го уровня — это маршрут 1-го уровня сети, разделенной на подсети. Родительский маршрут никогда не может быть окончательным маршрутом;
- Дочерний маршрут 2-го уровня — маршрут, являющийся подсетью классового сетевого адреса. Дочерние маршруты 2-го уровня также являются окончательными маршрутами.
Источником маршрута 1-го уровня может быть напрямую подключённая сеть, статический маршрут или протокол динамической маршрутизации.
Как и в случае с маршрутом 1-го уровня, источником маршрута 2-го уровня может быть напрямую подключённая сеть, статический маршрут или динамически полученный маршрут.
IPv6 является бесклассовым протоколом, все маршруты, по сути, являются окончательными маршрутами 1-го уровня.
Добавление маршрутов в таблицу маршрутизации
Предположим, что есть сеть назначения и к ней найдено несколько разных маршрутов. Вариации: несколько статических маршрутов, несколько динамических внутри одного протокола, несколько динамических из разных протоколов, статические и динамические и так далее.
В таблицу маршрутизации (Route Information Base, RIB) добавляются не все маршруты, а только лучший маршрут для данной сети. Лучшие маршруты выбираются как внутри каждого протокола, так и между протоколами. Внутри протокола лучший маршрут выбирается по метрике: только маршрут с наименьшей метрикой добавляется в таблицу маршрутизации. Между протоколами маршрут выбирается по административной дистанции: только маршрут с наименьшей административной дистанцией добавляется в таблицу маршрутизации.
Административная дистанция по умолчанию:

Административную дистанцию можно изменять. Для лучшего понимания приведу точный алгоритм добавления маршрутов в RIB. Допустим, для некоторой подсети роутер обнаружил новый маршрут. Тут 2 ситуации:
- Маршрут был добавлен как статический администратором, тогда это сразу кандидат для добавления в RIB;
- Маршрут был выучен через динамический протокол. Протокол ищет внутри себя другие маршруты к этой подсети. Новый маршрут становится кандидатом для RIB, когда нет других маршрутов к этой подсети или есть маршрут/маршруты, но с бОльшей метрикой, чем у нового.
Далее RIB уведомляется о новом маршруте и происходит анализ нового маршрута:
- Маршрута для данной подсети нет в RIB, маршрут добавляется в RIB;
- Маршрут для данной подсети уже есть в RIB, сравниваются AD маршрутов. Для маршрута, который уже в RIB, AD меньше. Новый маршрут отбрасывается;
- Маршрут, который уже в RIB, имеет AD больше чем у нового. Новый маршрут добавляется в RIB, старый убирается из неё.
Если маршрут, с которым производятся действия в RIB, предоставлен динамическим протоколом, процесс этого протокола уведомляется о результате. В честности, процесс динамического протокола «договаривается» с процессом RIB о повторной попытке добавления маршрута-кандидата, в случае если существующий в RIB наилучший маршрут в эту подсеть по каким-то причинам отвалится.
Процесс RIB называется Routing Table Manager (RTM):

Пример 1
Тоже касается статических маршрутов: только маршрут с наименьшей административной дистанцией (AD) добавляется в таблицу маршрутизации.
Два статических маршрута по умолчанию:
У второго статического маршрута добавлена AD = 5. Этот маршрута в таблице маршрутизации не будет. Попасть в таблицу маршрутизации он сможет только когда ляжет interface1 и первый маршрут окажется недействительным. Как только interface1 поднимется, второй маршрут исчезнет из таблицы маршрутизации, а первый снова появится.
Пример 2
Два маршрута EIGRP к одной подсети назначения через разные интерфейсы с разной метрикой:
Хотя маршрута к 10.10.10.0/30 два, только маршрут через GigabitEthernet0/0 попадёт в таблицу маршрутизации.
Пример 3
Три маршрута к одной подсети назначения статический, EIGRP и OSPF. Пока доступен статический маршрут именно он будет присутствовать в таблице маршрутизации:
Убираем статический маршрут, его место занимает EIGRP с AD 90:
Убираем подсеть назначения из EIGRP, остаётся маршрут OSPF с AD 110:
Equal-Cost Multipathing
Большинство протоколов динамической маршрутизации (RIP, EIGRP, OSPF, IS-IS) поддерживают распределение нагрузки (load
sharing) через несколько маршрутов с одинаковой метрикой к одной и той же подсети назначения. Обычно поддерживается до 4 маршрутов. И это количество ещё можно увеличить настройкой протокола. Называется такая технология equal-cost multipathing (ECMP). При ECMP в таблицу маршрутизации добавляется сразу несколько маршрутов к подсети назначения.
Unequal-Cost Load Balancing
Наконец, EIGRP поддерживает технологию подобную ECMP, но для маршрутов с неравной стоимостью. По умолчанию она выключена. Требуется включение и настройка. В результате в таблице маршрутизации может оказаться несколько маршрутов к подсети назначения и у этих маршрутов будет разная метрика.
Поиск маршрута в таблице маршрутизации
Адрес назначения прикладывается к записи в таблице маршрутизации и вычисляется побитово совпадающая часть. Совпадение должно быть в переделах маски записи. В качестве маршрута выбирается наилучшее совпадение.
Наилучшее совпадение — это самое длинное совпадение.

Отсюда видно, что маршрут по умолчанию:
- Совпадает с любым адресом назначения;
- Используется, если нет других совпадений.

- Если оптимальным совпадением является окончательный маршрут 1-го уровня, то для пересылки пакета используется именно он;
- Если оптимальным совпадением является родительский маршрут 1-го уровня, перейдите к следующему шагу;
- Если есть совпадение с дочерним маршрутом 2-го уровня, подсеть используется для пересылки пакета;
- Если совпадений с дочерними маршрутами 2-го уровня нет, перейдите к следующему шагу.
- Если найдено менее точное совпадение с маршрутами по умолчанию или маршрутами суперсети 1-го уровня, маршрутизатор использует такой маршрут для пересылки пакета;
- При отсутствии совпадения с любым маршрутом в таблице маршрутизации маршрутизатор отбрасывает пакет.
Иерархия таблицы маршрутизации в CISCO IOS использует схему классовой маршрутизации. Родительский маршрут 1-го уровня представляет собой классовый сетевой адрес маршрута подсети. Это относится даже к тем случаям, когда протокол бесклассовой маршрутизации является источником маршрута подсети.
Поскольку IPv6 является бесклассовым протоколом, все маршруты, по сути, являются окончательными маршрутами 1-го уровня. Родительских маршрутов 1-го уровня для дочерних маршрутов 2-го уровня не существует.
Это был рассказ про классическую схему поиска маршрута. CISCO использует CEF (будет далее) для пересылки пакетов. В CEF все возможные адреса назначения (с данной таблицей маршрутизации) уже рассчитаны и маршрутизатор сразу знает куда пересылать пакет (или отбросить). При изменении в таблице маршрутизации CEF делает перерасчёт возможных адресов назначения.
Внешние маршруты
Внешние маршруты определяются для динамических протоколов маршрутизации. Связаны они с понятием автономная система (AS, будет далее). Маршруты внутри AS считаются внутренними, маршруты, полученные из-за переделов AS, внешними.
Внешние маршруты принадлежат либо к внешнему типу 1 (E1), либо к внешнему типу 2 (E2).
Разница между этими двумя типами заключается в способе расчёта стоимости (метрики) маршрута.
Стоимость маршрута типа 2 — это всегда внешняя стоимость, вне зависимости от внутренней стоимости для достижения этого маршрута.
Стоимость маршрута типа 1 — это сумма внешней и внутренней стоимостей, используемых для достижения маршрута.
Для достижения одного и того же назначения маршрут типа 1 всегда предпочтительнее маршрута типа 2.
Внешние маршруты (частично) рассматриваются далее в курсе CCNA, в частности при изучении OSPF для нескольких областей. Полностью рассмотрение в курсе CCNP ROUTE.
Устранение неполадок
Основные причины отсутствие маршрута в таблице маршрутизации:
- Сбой интерфейса;
- Разрыв соединения;
- Переполнение каналов;
- Неверно заданная администратором конфигурация.
Основные команды для проверки и выявления проблем:
Команда show cdp neighbors detail выполняет проверку соединения второго уровня и, как следствие — первого уровня.
Например, если соседнее устройство указано в выходных данных команды, но эхо-запрос к нему не может быть выполнен, следует искать проблему в адресации третьего уровня.
Статические маршруты
Статическая маршрутизация, как правило, используется в следующих случаях:
- Обеспечение упрощённого обслуживания таблицы маршрутизации в небольших сетях, которые не планируется существенно расширять;
- Невозможность использования на роутерах динамических протоколов маршрутизации из-за слабого CPU роутера либо малого количества памяти;
- Маршрутизация к тупиковой сети и из неё (тупиковой сетью является сеть с одним исходящим маршрутом по умолчанию, не имеющая данных о других удалённых сетях);
Статические маршруты по умолчанию обычно используются при подключении пограничного маршрутизатора к сети интернет-провайдера или тупикового маршрутизатора — маршрутизатора только с одним соседним маршрутизатором в восходящем направлении.
- Использование единого маршрута по умолчанию (для представления пути к любой сети, не имеющего более точного совпадения с другим маршрутом в таблице маршрутизации);
- Маршрут выученный с помощью динамического маршрутизации нужно заменить на другой. Используется статический маршрут


Типы статических маршрутов
В зависимости от того, как указано место назначения, создаётся один из трёх возможных типов маршрута:
- Маршрут следующего перехода (Recursive static route) — указывается только IP-адрес следующего перехода;
- Напрямую подключённый статический маршрут (Directly attached static routes) — указывается только выходной интерфейс маршрутизатора;
В результатах вывода нет AD и метрики. Сравни с выводом для маршрута следующего перехода.
- Полностью заданный статический маршрут — указываются IP-адрес следующего перехода и выходной интерфейс.
Почему Recursive static route? В статическом маршруте следующего перехода указывается только IP адрес следующего перехода. Такой маршрут изначально являлся рекурсивным, то есть требовал дополнительного просмотра таблицы маршрутизации. Выходной интерфейс, через который нужно отправить пакет, определяется исходя из адреса следующего перехода при этом дополнительном проходе.
Такая операция называется разрешимостью маршрута. С появлением CEF эта проблема решилась.
Важно. Независимо от того, настроен ли статический маршрут с IP адресом следующего перехода или выходным интерфейсом, в случае если выходной интерфейс, используемый для переадресации пакета, не включён в таблицу маршрутизации (например выключен), статический маршрут также не включается в таблицу маршрутизации.
На самом деле, если задан статический маршрут с адресом следующего перехода и адрес следующего перехода доступен через другой интерфейс, то маршрут останется в таблице. Но это частная ситуация. В результате может получиться неоптимальная маршрутизация. Для устранения этого нужно заменить маршрут с адресом следующего перехода на полностью заданный статический маршрут.
Для интерфейсов типа точка-точка (не использующих ARP) можно использовать статические маршруты, указывающие на выходной интерфейс или адрес следующего перехода. Но лучше указывающие на выходной интерфейс.
Для многоточечных или широковещательных интерфейсов (Ethernet) рекомендуется использовать статические маршруты, указывающие на адрес следующего перехода. Настройка статического маршрута указывающего на выходной интерфейс для Ethernet приведёт к тому, что запрос ARP будет выполняться для каждого нового адреса назначения. При этом увеличивается нагрузка на CPU и память роутера.
При использовании CEF настройка полностью заданного статического маршрута не требуется. В таком случае следует использовать статический маршрут, использующий адрес следующего перехода.
Статический маршрут IPv4
Виды статических маршрутов (по назначению)
- Стандартный статический маршрут;
- Статический маршрут по умолчанию;
- Суммарный статический маршрут;
- Плавающий статический маршрут.
Добавление статического маршрута
Добавление маршрута по умолчанию:
Статический маршрут IPv4 по умолчанию обычно называют маршрутом с четырьмя нулями (quad-zero).
Параметр distance используется для создания плавающего статического маршрута путём настройки значения административного расстояния, превышающего значение административного расстояния маршрута, получаемого динамически.
Для каждого маршрута, который ссылается только на IPv4 адрес следующего перехода и не ссылается на выходной интерфейс, должен быть указан IPv4-адрес следующего перехода, преобразованный с помощью другого маршрута в таблице маршрутизации для выходного интерфейса.
Административное расстояние
- AD статического маршрута равно 1;
- AD напрямую подключённого интерфейса маршрутизатора равно 0;
- AD плавающего статического маршрута определено значением distance.
Команды просмотра
Статический маршрут IPV6
Прежде нужно включить маршрутизацию для IPv6:
Добавление статического маршрута:
Добавление маршрута по умолчанию:
В отличие от IPv4 в IPv6 не указывается явно,
что маршрут IPv6 по умолчанию является шлюзом «последней надежды».
При использовании CEF статический маршрут, использующий только IPv6 адрес следующего перехода,
будет предпочтительным методом даже в том случае, когда выходной интерфейс является сетью с множественным доступом.
Рекурсивный статический маршрут IPv6 является допустимым (то есть является кандидатом для добавления в таблицу маршрутизации), только если указанный следующий переход прямо или косвенно связан с допустимым выходным интерфейсом.
Если статический маршрут IPv6 использует IPv6 адрес типа link-local в качестве адреса следующего перехода, то необходимо использовать полностью заданный статический маршрут, включающий выходной интерфейс.
Команды просмотра
Суммарные маршруты
Объединение маршрутов – также известное, как агрегация префиксов. Маршруты при этом объединяются в один маршрут, что позволяет уменьшить размер таблиц маршрутизации.
Например, один суммарный статический маршрут может заменить несколько отдельных объявлений статического маршрута.
Суммарные маршруты можно настроить:
- Вручную используя статические маршруты;
- Автоматически для протоколов RIP и EIGRP с включённой опцией auto-summary (включена по умолчанию);
- Вручную для протокола OSPF;
- Вручную для EIGRP, как при включённом auto-summary, так и при отключённом.
Более подробно ручное объединении маршрутов EIGRP и OSPF рассматривается в 3 части курса.
Когда маршрут объединённой сети включён в таблицу маршрутизации, например в качестве статического маршрута, классовый протокол маршрутизации не добавляет этот маршрут в свои обновления.
Несколько статических маршрутов можно объединять в один статический маршрут в следующих случаях:
- Сети назначения являются смежными и могут быть объединены в один сетевой адрес;
- Все статические маршруты используют один и тот же выходной интерфейс или один IP адрес следующего перехода.
Организация суперсетей – происходит в тех случаях, когда маска объединения маршрута имеет меньшее значение, чем стандартная классовая маска по умолчанию:
- Объединённая сеть (суперсеть) всегда является суммой маршрута, однако сумма маршрута не всегда является объединённой сетью.
Для определения суммарного маршрута и маски подсети IPv4 необходимо выполнить следующие три шага:
- Запись сети в двоичном формате;
- Подсчёт количества крайних слева совпадающих битов — учитываются как нули так и единицы. Таким образом, определяется длина префикса или маска подсети для суммарного маршрута;
- Копирование совпадающих битов и последующее добавление нулевых битов к остальной части адреса, что позволяет определить адрес суммарной сети.
Объединение сетей IPv6 в один префикс и длину префикса IPv6 может выполняться в семь этапов:
- Создание списка сетевых адресов (префиксов) и определение той части, где адреса различаются;
- Расширение записи IPv6, в случае, если он записан в сокращённом виде;
- Преобразование различающихся частей из шестнадцатеричного в двоичный код;
- Подсчёт количества крайних слева совпадающих битов для определения длины префикса суммарного маршрута;
- Выделение совпадающих битов и добавление нулевых битов для определения суммарного сетевого адреса (префикса);
- Преобразование части в двоичном коде обратно в шестнадцатеричный;
- Присоединение префикса суммарного маршрута (из результата шага 4).







Маршрутизация между VLAN
Маршрутизация между VLAN требует наличие устройства 3 уровня для осуществления маршрутизации. Рассматривается 3 основных способа такой маршрутизации:
- Устаревший метод;
- Многоуровневая коммутация — маршрутизация с использованием коммутатора 3 уровня;
- Router-on-a-stick.
Устаревший метод — по 1 интерфейсу коммутатора из каждой VLAN соединяется с интерфейсом маршрутизатора. Недостаток в том, что для каждой VLAN нужен отдельный интерфейс маршрутизатора.
Маршрутизация с использованием коммутатора 3 уровня — предпочтительный метод не требующий маршрутизатора. Многоуровневая коммутация масштабируется лучше, чем любая другая реализация маршрутизации между VLAN.
Коммутация 3 уровня обычно настраивается на уровне распределения и ядра. Между уровнями ядра и распределения, как раз часто используются порты 3 уровня (маршрутизируемые).
Router-on-a-stick — маршрутизатор и коммутатор соединены 1 транковым каналом, который передаёт информацию для всех VLAN. Максимальное количество VLAN при данном методе — 50. При данном методе на интерфейсе маршрутизатора настраиваются подынтерфейсы.
- Должно быть настроено столько подынтерфейсов, сколько есть VLAN, требующих передачи данных;
- По умолчанию Native VLAN — это VLAN 1. Для задания Native VLAN отличной от VLAN 1 к команде encapsulation dot1qvlan нужно добавить ключевой параметр native.
Настройка идентификаторов подынтерфейсов таким образом, чтобы они совпадали с номером VLAN, облегчает управление конфигурацией маршрутизации между VLAN, но не является обязательным условием.
В отличие от физических интерфейсов, sub-interface нельзя включить с помощью команды no shutdown. Ввод команды no shutdown на уровне sub-interface ни к чему не приведёт. Все настроенные sub-interfaces активируются, когда физический интерфейс включается с помощью команды no shutdown. Соответственно, если отключить физический интерфейс, то все sub-interfaces также отключаются.

Маршрутизация на коммутаторе
Очень интересная тема. Большая часть материала этого подзаголовка не из курса CCNA.
Изначальное предназначение маршрутизации на коммутаторе — организации маршрутизации между VLAN. При этом пропадает необходимость в дополнительном устройстве 3 уровня — маршрутизаторе. Это сокращает расходы и упрощает топологию, а значит повышает надежность сети.
В дальнейшем грань между маршрутизатором и многоуровневым коммутатором начала стираться. Однако, при этом коммутатор с возможностями маршрутизации не всегда является полноценной заменой маршрутизатору.
Преимущества коммутатора 3 уровня над маршрутизатором:
- Аппаратная обработка пакетов с помощью специализированных микросхем (ASIC).
Такая обработка происходит на 2 уровне. На 3 уровне все устройства CISCO используют технологию CEF (CISCO Express Forvarding) для быстрой пересылки пакетов, которая изначально являлась программной. Данная технология обрабатывает пакеты без выполнения сложных вычислений на CPU. Сейчас CEF поддерживается аппаратно на всех MLS (Multi Layer Switch) коммутаторах CISCO. При этом быстродействие коммутатора 3 уровня может быть в десятки раз выше чем у маршрутизатора.
Преимущества маршрутизатора над коммутатором 3 уровня:
- Поддержка различных типов портов;
- Модульная структура. Для CISCO это будут модули HWIC;
- Поддержка большего числа маршрутов в таблице маршрутизации, нет аппаратного ограничения;
- Маршрутизаторы поддерживают множество дополнительных функций, которых просто нет у коммутатора, например, файрвол.
Функционал маршрутизатора выше. Главное тут: механизмы различных вариантов защиты от атак и спуфинга. По этой причине граничный маршрутизатор, смотрящий в интернет — это всегда именно маршрутизатор. Коммутаторы используются для маршрутизации внутри сети предприятия.
С точки зрения CISCO: Скорее, многоуровневый коммутатор можно рассматривать в качестве устройства 2-го уровня, в которое добавили некоторые возможности маршрутизации.
Схема применения
Коммутатор 2 уровня может осуществлять маршрутизацию только между VLAN плюс небольшое число статических маршрутов. Коммутатор 3 уровня может служить заменой маршрутизатору, но только там, где он вписывается в топологию по необходимым портам и ресурсам. И для этих топологий он будет гораздо более производительным, чем маршрутизатор.
Коммутаторы 3 уровня имеют возможность перевода каждого порта в режим маршрутизируемого порта с помощью команды:
В отличие от маршрутизаторов CISCO IOS, маршрутизируемые порты на коммутаторе CISCO IOS не поддерживают подынтерфейсы.
Кроме того, поскольку функциональные возможности 2 уровня были удалены, протоколы 2 уровня, например STP, не действуют на маршрутизируемом интерфейсе. Однако на 3 уровне работают такие протоколы, как EtherChannel и LACP (протокол управления агрегацией канала).
Изначально место коммутатора 2 уровня — уровень доступа, коммутатора 3 уровня — уровень распределения.
Теперь же многоуровневые коммутаторы, как правило, развертываются на уровнях ядра и распределения коммутируемой сети предприятия.
По умолчанию на коммутаторах Catalyst 3560 и 4500 интерфейсы настроены как интерфейсы 2-го уровня, поэтому их необходимо вручную настроить в качестве маршрутизируемых портов. Все коммутаторы семейства Catalyst 6500 по умолчанию используют интерфейсы 3 уровня.
Маршрутизируемые порты не поддерживаются на коммутаторах серии Catalyst 2960.
Коммутатор Catalyst 2960 (серии Base, серия Lite не умеет ничего) может функционировать в качестве устройства 3-го уровня и маршрутизировать данные между сетями VLAN и ограниченным количеством статических маршрутов.
Коммутатор 2960 поддерживает до шестнадцати статических маршрутов (включая маршруты, заданные пользователем, и маршрут по умолчанию) и любое количество напрямую подключенных маршрутов, а также маршрут по умолчанию для интерфейса управления.
Полнофункциональные и относительно недорогие многоуровневые коммутаторы CISCO Catalyst серии 3550/3560 поддерживают протоколы маршрутизации EIGRP, OSPF и BGP.
Диспетчер базы данных SDM
SDM коммутатора Cisco (Switch Database Manager) содержит несколько шаблонов для коммутатора:
- Default;
- Dual-ipv4-and-ipv6;
- Lanbase-routing;
- QoS bias.
Шаблон по умолчанию не поддерживает статическую маршрутизацию, при включённой IPv6-адресации шаблоном по умолчанию будет dual-ipv4-and-ipv6.
Команда ip routing автоматически включена на маршрутизаторах CISCO, однако соответствующая команда для IPv6 ipv6 unicast-routing на маршрутизаторах и коммутаторах CISCO выключена по умолчанию.
К основным типам интерфейсов уровня 3 относятся следующие:
- Маршрутизируемый порт— простой интерфейс 3-го уровня, аналогичный физическому интерфейсу на маршрутизаторе Cisco IOS;
- Виртуальный интерфейс коммутатора (SVI) — виртуальный интерфейс сети VLAN для маршрутизации между VLAN. Другими словами, интерфейсы SVI — это виртуально маршрутизируемые интерфейсы VLAN;
- EtherChannel уровня 3— логический интерфейс на устройстве Cisco, который связан с группой маршрутизируемых портов.
Помимо интерфейсов SVI и EtherChannel уровня 3 другие логические интерфейсы на устройствах Cisco содержат интерфейсы возвратной петли (loopback) и интерфейсы туннеля.
Коммутация 3 уровня с интерфейсами SVI — это форма маршрутизации между VLAN. Маршрутизируемый порт является физическим портом, работающим аналогично интерфейсу маршрутизатора. В отличие от порта доступа маршрутизируемый порт не связан с определённой VLAN.
Порядок включение маршрутизации на коммутаторе
На коммутаторе 2 уровня:
- Включить маршрутизацию ip routing;
- Изменить шаблон по умолчанию sdm-prefer landbase-roiting для поддержки статической маршрутизации;
- Перезагрузить коммутатор.
На коммутаторе 3 уровня:
- Перевести порт в маршрутизируемый командой no switchport;
- Назначить порту IP адрес.
Подробнее о CEF
Существует 3 варианта пересылки пакетов внутри маршрутизатора:
- Process switching — для каждого пакета просматривается таблица маршрутизации (с использованием ресурсов CPU маршрутизатора). Просмотр происходит обычно рекурсивно — за 1 проход по IP адресу назначения находится IP адрес следующего перехода, за 2 проход по IP адресу следующего перехода находится выходной интерфейс;
- Fast switching — просмотр таблицы маршрутизации происходит только при первом прохождении пакета, при этом заполняется кеш — информация из таблицы маршрутизации, указывающая на IP адрес следующего перехода, соответствующий выходной интерфейс маршрутизатора, MAC адрес следующего перехода. Кеш является сводной информацией уровня 2 и уровня 3. Остальные пакеты из потока пересылаются с помощью информации кеша (без использования ресурсов CPU маршрутизатора);
- CISCO Express Forwarding — после того как сеть сошлась таблица маршрутизации уже содержит все необходимые маршруты. По этим данным заранее создается 2 таблицы кеша: 3 уровня с информацией из таблицы маршрутизации Forwarding Information Base (FIB) и 2 уровня с информацией из таблицы ARP — Adjacency table.
CEF обеспечивает возможность оптимизированного поиска для эффективной пересылки пакетов:
- Записи FIB упорядочены по префиксам для более быстрого поиска — от общего к частному (от 0 к 32);
- Каждая запись FIB ссылается на запись Adjacency table, где хранится заранее сформированный заголовок 2 уровня. Тут надо вспомнить, что при движении пакета от источника к назначению, в каждом локальном сегменте меняется только заголовок 2 уровня (MAC адрес следующего перехода).
Поэтому смысл пересылки внутри маршрутизатора — это подставить нужный заголовок 2 уровня и кинуть пакет в нужный интерфейс, что и реализуется при CEF.
Когда сеть изменяется, то после её схождения, CEF рассчитывается заново, но только 1 раз. При этом Adjacency table наполняется по мере нахождения новых связей.
Для просмотра таблицы CEF используется команда:

IPv4 CEF включён по умолчанию, IPv6 CEF выключен. CEF для IPv6 включается автоматически командой ipv6 unicast-routing.
При этом механизм CEF способен обработать не все действия с пакетами, подробнее: //twistedminds.ru/2013/05/switch-operations-1/ а также:
- They use IP header options;
- They have anexpiring IP Time To Live (TTL) counter;
- They are forwarded to a tunnel interface;
- They arrive with unsupported encapsulation types;
- They are routed to an interface with unsupported encapsulation types;
- They exceed the maximum transmission unit (MTU) of an output interface and must be fragmented.
Вывод: если маршрутизатор испытывает перегрузки в использовании CPU, то нужно пересмотреть все эти варианты, когда происходит Process switching и сократить их по максимуму.
Различают 2 вида CEF: Software CEF и Hardware CEF, подробнее: //xgu.ru/wiki/Cisco_Express_Forwarding
Количество поддерживаемых маршрутов по умолчанию:

Протоколы маршрутизации можно классифицировать по различным группам в соответствии с их характеристиками. В частности, протоколы маршрутизации можно классифицировать по следующим признакам:
- Назначение — протокол внутренней маршрутизации (IGP) или протокол внешней маршрутизации (EGP);
- Принцип работы — дистанционно-векторный протокол, по состоянию канала или векторов маршрутов;
- Поведение — протоколы классовой маршрутизации (устаревший метод) или бесклассовой маршрутизации.
Например, протоколы маршрутизации IPv4 можно классифицировать следующим образом:
- RIPv1 (устаревший) — дистанционно-векторный классовый протокол внутренней маршрутизации;
- IGRP (устаревший) — дистанционно-векторный классовый протокол внутренней маршрутизации, разработанный компанией Cisco (не используется после выхода IOS 12.2 и более поздних версий);
- RIPv2 — дистанционно-векторный бесклассовый протокол внутренней маршрутизации;
- EIGRP — дистанционно-векторный бесклассовый протокол внутренней маршрутизации, разработанный компанией Cisco;
- OSPF — бесклассовый протокол внутренней маршрутизации, по состоянию канала;
- IS-IS — бесклассовый протокол внутренней маршрутизации, по состоянию канала;
- BGP — бесклассовый протокол внешней маршрутизации, по вектору маршрута.


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

Из данной картинки нужно запомнить следующее:
- Дистанция это метрика (для дистанционно-векторных протоколов);
- Путь это набор атрибутов (для BGP).
Метрика
Кроме административной дистанции динамический протоколы маршрутизации вводят понятие метрики:
Метрики — это показатели, которые можно измерить. Протоколы маршрутизации выбирают оптимальный путь для отправки данных, исходя из различных метрик. К этим метрикам относятся количество переходов, полоса пропускания, задержка, надёжность, стоимость маршрута и другое.
Наиболее оптимальным путём к сети является путь с наименьшей метрикой.
Метрики, измеренные в одном протоколе маршрутизации, не применимы к другому протоколу. Это значит что при выборе маршрута из двух маршрутов с разными протоколами используется административное расстояние, при выборе маршрута из двух внутри одного протокола используется метрика.
Итак, сначала AD, потом метрика.

Различные протоколы маршрутизации используют различные способы расчёта оптимального пути (различную метрику): протокол RIP выбирает путь с наименьшим числом переходов, а протокол OSPF — путь с самой высокой пропускной способностью.
Если маршрутизатор располагает двумя или более путями к пункту назначения с метриками равной стоимости ( в рамках одного протокола маршрутизации естественно), он отправляет пакеты по обоим путям. Это называется распределением нагрузки в соответствии с равной стоимостью.
Распределение нагрузки с равной стоимостью можно настроить на использование как динамических протоколов маршрутизации, так и статических маршрутов.
Только протокол EIGRP поддерживает распределение нагрузки с неравной стоимостью.
Классовость
Кроме этого динамические протоколы маршрутизации бывают классовые и бесклассовые:
Главное различие между классовыми и бесклассовыми протоколами маршрутизации заключается в том, что классовые протоколы маршрутизации не отправляют данные о маске подсети в обновлениях маршрутизации и соответственно не могут использоваться в бесклассовой междоменной маршрутизации (CIDR).
К классовым протоколам маршрутизации относятся только протоколы RIPv1 и IGRP. Все остальные протоколы маршрутизации IPv4 и IPv6 являются бесклассовыми.
Классовые протоколы маршрутизации также создают определённые в проблемы в разорванных сетях. Сеть считается разорванной в том случае, когда подсети в рамках одной классовой основной сети разделены другим классовым сетевым адресом.
Сравнение со статическими маршрутами

Внешние и внутренние протоколы маршрутизации

Автономная система (AS) — представляет собой систему маршрутизаторов, управляемых одним оператором (например компанией или организацией).
Протоколы внутренней маршрутизации (IGP — internal gateway protocol), используемые для маршрутизации внутри автономной системы.
Протоколы внешней маршрутизации (EGP — external gateway protocol), используемые для маршрутизации между автономными системами.
На данный момент протокол BGP представляет собой единственный практически выполнимый и официальный протокол внешней маршрутизации.
Дистанционно-векторный протокол
Означает, что маршруты объявляются путём указания двух характеристик:
- Расстояние— определяет удалённость сети назначения; основывается на таких метриках, как число переходов, стоимость, полоса пропускания, значение задержки;
- Вектор — определяет направление маршрутизатора следующего перехода или выходного интерфейса маршрута для доступа к адресу назначения.
В основе дистанционно-векторного протокола лежит алгоритм маршрутизации, RIP использует алгоритм Беллмана-Форда, IGRP и EIGRP используют алгоритм DUAL.
Существует 4 дистанционно-векторных протокола внутренней маршрутизации IPv4:
- RIPv1 — устаревшая версия протокола первого поколения;
- RIPv2 — простой дистанционно-векторный протокол;
- IGRP — запатентованный протокол Cisco первого поколения (на сегодняшний день также устаревший, заменён протоколом EIGRP);
- EIGRP — расширенная версия дистанционно-векторного протокола.
Дистанционно-векторные протоколы не имеют фактической карты топологии сети. Единственные данные, которые известны маршрутизатору об удалённой сети — расстояние или метрика до такой сети, а также путь или интерфейс, используемые для доступа к ней.
Дистанционно-векторные протоколы, как правило, предотвращают появление петли маршрутизации при сходимости сети с помощью метода разделения горизонта. Метод разделения горизонта запрещает отправку данных о маршрутах из того же интерфейса, от которого они были получены.
RIP
Протокол RIPv1 обладает следующими ключевыми характеристиками:
- Широковещательная рассылка обновлений маршрутизации (255.255.255.255) выполняется каждые 30 секунд;
- В качестве метрики для выбора пути служит число переходов;
- Число переходов превышающее 15 считается бесконечным, слишком удалённым. Маршрутизатор 15 перехода не передаёт обновление маршрутизации на следующий маршрутизатор.
Административная дистанция 120.
RIP каждые 30 секунд отправляет обновление всем соседним устройствам даже в том случае, если топология сети не изменялась (широковещательная рассылка). RIPv2 и EIGRP используют групповые адреса, EIGRP также может отправлять одноадресные сообщения соседнему устройству.
Настройка RIP
Команда выполняет следующие действия:
- Включает протокол RIP на всех интерфейсах, которые относятся к конкретной сети. Связанные интерфейсы теперь могут и отправлять, и получать пакеты обновлений протокола RIP;
- Объявляет указанную сеть в обновлениях маршрутизации RIP, отправляемых другим маршрутизаторам каждые 30 секунд.
Если указан адрес подсети, IOS автоматически преобразует его в классовый сетевой адрес. Следует помнить о том, что протокол RIPv1 является протоколом классовой маршрутизации для IPv4.
Пример. При вводе команды network 192.168.1.32 в текущем файле конфигурации выполняется автоматическое преобразование входных данных в — network 192.168.1.0.
Все протоколы маршрутизации поддерживают команду passive-interface для отключения рассылок обновлений на интерфейсе.
Вариант 1, настройка на интерфейсе:
Вариант 2, общая настройка:
Для того чтобы передать маршрут по умолчанию по сети через RIP, граничный маршрутизатор требуется настроить с использованием:
- Статического маршрута по умолчанию с помощью команды:
Затем команды конфигурации маршрутизатора:
Недостатки RIP
Отправка ненужных обновлений в сеть LAN имеет следующие последствия:
- Необоснованное расходование полосы пропускания: полоса пропускания используется для передачи ненужных обновлений. Поскольку обновления RIP отправляются в рамках многоадресной или широковещательной рассылки, коммутаторы также пересылают обновления из всех портов.
- Потребление ресурсов: все устройства в сети LAN должны обрабатывать пакеты обновлений до транспортных уровней, на которых пакеты отбрасываются.
- Риски для информационной безопасности: объявление обновлений по широковещательной рассылке представляет собой угрозу информационной безопасности. Пакеты обновлений протокола RIP могут быть перехвачены с помощью ПО для анализа сетевых протоколов (снифферы). Обновления маршрутизации можно изменить и отправить обратно на маршрутизатор, что вызывает повреждение таблицы маршрутизации из-за ложных метрик, которые неверно направляют трафик.
RIPv2
В протоколе RIPv2 представлены следующие усовершенствования:
- Бесклассовый протокол маршрутизации: протокол поддерживает использование VLSM и CIDR, поскольку включает маску подсети в обновления маршрутизации.
- Повышенная эффективность: протокол пересылает обновления на групповой адрес 224.0.0.9, а не на адрес широковещательной рассылки 255.255.255.255.
- Меньшее число записей маршрутизации: протокол поддерживает ручное объединение маршрутов на любом интерфейсе.
- Безопасность: протокол поддерживает механизм аутентификации, что обеспечивает безопасность обновлений таблиц маршрутизации между соседними устройствами.
Административная дистанция 120.

Обновления протокола RIP инкапсулируются в сегмент протокола UDP, при этом номера портов источника и назначения настроены на порт UDP 520.
Настройка RIPv2
Настраивается точно также как и RIPv1, за исключение того, что автоматическое суммирование можно отключить. RIPv2 необходимо включить до отключения функции автоматического объединения.
Для RIP и RIPv2: маршрутизатор следующего перехода считается 1 переходом.
Команды для проверки и отладки RIP
RIPng
RIPng — это RIP для IPv6.
Административная дистанция 120.
В основе протокола RIPng лежит протокол RIPv2. В протоколе до сих пор действует ограничение в 15 переходов, а административная дистанция равна 120.
В протоколе RIPng передающий маршрутизатор считает себя удалённым на расстояние одного перехода, то есть все метрики больше на единицу чем в IPv4.
Отличие от RIPv2, протокол RIPng активируется через интерфейс, а не в режиме глобальной конфигурации маршрутизатора:

Чтобы передать маршрут по умолчанию, маршрутизатор необходимо настроить с использованием:
- статического маршрута по умолчанию, использующего команду глобальной конфигурации:
- команду режима конфигурации интерфейса:
Команды для проверки и отладки RIPng
IGRP
На сегодняшний день данный протокол не используется.
- Для создания составной метрики используются характеристики полосы пропускания, задержки, нагрузки и надёжности;
- Широковещательная рассылка обновлений маршрутизации выполняется по умолчанию каждые 90 секунд.
EIGRP
Этот протокол заменил IGRP и является предпочтительным на маршрутизаторах CISCO.
Административная дистанция внутренних маршрутов 90, внешних 170, суммарных 5.
- Протокол EIGRP принимает во внимание множество метрик. Однако для определения оптимального маршрута по умолчанию используются полоса пропускания и задержка. Максимум 255 переходов;
- Связанные обновления по событию: протокол не отправляет регулярные обновления. Распространению подлежат только изменения в таблице маршрутизации, что позволяет снизить нагрузку на сеть, связанную с работой протокола. Связанные обновления по событию указывают на то, что протокол EIGRP отправляет обновления только тем соседним устройствам, которым они требуются. Такие обновления используют меньший размер полосы пропускания, особенно в больших сетях с множеством маршрутов;
- Механизм keepalive (Hello): выполняется регулярная отправка и приём небольших сообщений-приветствий для поддержания отношений смежности с соседними маршрутизаторами. То есть, в отличие от регулярных обновлений, механизм keepalive обеспечивает низкое потребление ресурсов сети. Если ответа на интерфейсе не получено, то на нем приостанавливается процесс маршрутизации и рассылка приветствия;
- Обработка таблицы топологии: обработка и сохранение всех маршрутов, принятых от соседних устройств (не только оптимальных путей), в таблице топологии. Алгоритм DUAL может выполнять вставку резервных маршрутов в таблицу топологии EIGRP;
- Быстрая сходимость: в большинстве случаев этот протокол является протоколом внутренней маршрутизации с самой быстрой сходимостью, поскольку он обрабатывает альтернативные маршруты, обеспечивая практически мгновенную сходимость. В случае сбоя основного маршрута маршрутизатор может использовать указанный альтернативный маршрут. Переключение на альтернативный маршрут выполняется немедленно и не требует взаимодействия с другими маршрутизаторами;
- Поддержка протоколов на нескольких уровнях сети: протокол EIGRP использует протоколозависимые модули (PDM), он является единственным протоколом с поддержкой не только IPv4 и IPv6, но и других протоколов (например, устаревших протоколов IPX и AppleTalk).

Более подробно EIGRP рассматривается в 3 части курса.
Протокол по состоянию канала
Канал представляет собой интерфейс на маршрутизаторе.
Маршрутизаторы, использующие протокол маршрутизации по состоянию канала, могут создавать полное представление или топологию сети путём сбора данных от остальных маршрутизаторов. Они используют алгоритм маршрутизации кратчайшего пути (SPF) Эдсгера Дейкстры.
Каждый маршрутизатор создаёт собственное дерево кратчайших путей SPF независимо от остальных маршрутизаторов.
Существует два протокола внутренней маршрутизации IPv4 по состоянию канала:
- OSPF — широко используемый стандартный протокол;
- IS-IS — протокол, распространённый в сетях операторов связи.
Достижение сходимости
- Каждый маршрутизатор получает данные о каждой из своих напрямую подключённых сетей;
- Каждый маршрутизатор отвечает за отправку hello-сообщений соседним устройствам в рамках напрямую подключённых сетей;
- Когда два маршрутизатора с маршрутизацией по состоянию канала узнают, что они являются соседями, они переходят в состояние смежности. Два смежных соседних устройства продолжают обмениваться этими небольшими hello-пакетами, которые выполняют функцию keepalive-проверки в целях мониторинга состояния соседнего устройства. Если с определённого момента маршрутизатор не получает hello-пакеты от соседнего устройства, такое соседнее устройство считается недоступным, и отношения смежности нарушаются;
- Каждый маршрутизатор создаёт пакет состояния канала (LSP), в котором содержатся данные о состоянии каждого из напрямую подключённых каналов;
- Каждый маршрутизатор выполняет лавинную рассылку пакетов состояния канала всем соседним устройствам, которые затем сохраняют полученные пакеты в базу данных;
- На последнем этапе процесса маршрутизации по состоянию канала каждый маршрутизатор использует базу данных для построения полной карты топологии и вычисляет оптимальный путь к каждой из сетей назначения.
Каждый раз при получении маршрутизатором пакета состояния канала от соседнего устройства маршрутизатор немедленно отправляет такой пакет на все остальные интерфейсы (без каких-либо промежуточных вычислений), кроме интерфейса, на который получен пакет состояния канала.
Этот процесс позволяет выполнить лавинную рассылку пакетов состояния канала от всех маршрутизаторов по всей зоне маршрутизации.
По завершении лавинной рассылки протоколы маршрутизации по состоянию канала рассчитывают алгоритм поиска кратчайшего пути. В результате протоколы маршрутизации по состоянию канала очень быстро достигают состояния сходимости.
Cходимость сети считается достигнутой, когда все маршрутизаторы получили полные и точные данные обо всей сети. Время сходимости — время, требуемое маршрутизатору для обмена данными, расчёта оптимальных путей и обновления таблиц маршрутизации. Сеть не является полностью рабочей до момента полной сходимости,
По завершении сходимости сети обновление состояния канала отправляется только в случае изменений в топологии сети.
Этот процесс одинаков для протоколов OSPF для IPv4 и протоколов OSPF для IPv6.
Регулярная рассылка пакетов состояния канала не требуется. Пакеты состояния канала необходимо отправлять только в следующих случаях:
- Во время начального запуска протокола маршрутизации на маршрутизаторе (например, при перезагрузке маршрутизатора);
- При изменениях в топологии (например, в случаях деактивации или повторной активации канала, установлении или разрыве отношений смежности с соседними устройствами).
Пакет LSP
Пакет LSP содержит данные о состоянии каждого из напрямую подключённых каналов.
Пример. Упрощённая версия LSP содержит следующие данные:
- R1; сеть Ethernet 10.1.0.0/16; стоимость 22.
- R1 -> R2; последовательная сеть точка-точка; 10.2.0.0/16; стоимость 203.
- R1 -> R3; последовательная сеть точка-точка; 10.3.0.0/16; стоимость 54.
- R1 -> R4; последовательная сеть точка-точка; 10.4.0.0/16; стоимость 20.

Данные о состоянии канала включают в себя:
- IPv4 адрес и маску подсети интерфейса;
- тип сети (например, Ethernet (с широковещательной рассылкой) или последовательный канал «точка-точка»);
- Стоимость этого канала;
- Все соседние маршрутизаторы на этом канале (соседним устройством считается любой маршрутизатор, настроенный с использованием того же протокола маршрутизации по состоянию канала).

Помимо данных о состоянии канала в пакет состояния канала также включаются такие данные, как порядковые номера и сведения о времени создания, что позволяет управлять процессом лавинной рассылки. Эти данные используются каждым из маршрутизаторов, чтобы определить, был ли пакет состояния канала от другого маршрутизатора получен ранее, или пакет содержит более свежие данные, чем те, что уже добавлены в базу данных о состоянии канала. Этот процесс позволяет маршрутизатору сохранять самую актуальную информацию в базе данных о состоянии канала.
Необходимость применения протокола по состоянию канала
Применение протоколов маршрутизации по состоянию канала является целесообразным в следующих случаях:
- Сеть имеет иерархическую структуру IP адресации, что как правило, характерно для крупных сетей;
- Быстрая сходимость сети имеет критическое значение;
- Администраторы хорошо разбираются в работе протокола маршрутизации по состоянию канала.
Во всех других случаях для оборудования CISCO предпочтителен EIGRP.
Достоинства и недостатки протокола по состоянию канала
- Создание карты топологии;
- Быстрая сходимость;.
- Обновления по событию;
- Иерархическая структура ( протоколы маршрутизации по состоянию канала используют концепцию областей).
- Требования к памяти (для создания и обслуживания базы данных состояний каналов и дерева кратчайших путей SPF);
- Требования к обработке (ресурсы обработки ЦП);
- Требования к полосе пропускания (лавинная рассылка пакетов).
OSPF для одной области
Характеристики OSPF
- Бесклассовость;
- Эффективность — изменения маршрутизации запускают обновления маршрутизации (без регулярных обновлений);
- Быстрая сходимость;
- Масштабируемость — подходит для использования, как в небольших, так и в больших сетях, можно сгруппировать в области;
- Безопасность — поддерживает аутентификацию Message Digest 5 (MD5).
Административная дистанция 110.
Метрика (стоимость маршрута)
При реализации протокола OSPF CISCO метрика маршрутизации OSPF указывается как стоимость интерфейса (линка).
Стоимость интерфейса обратно пропорциональна его пропускной способности.
Стоимость маршрута OSPF (метрика) представляет собой аккумулированное значение (сумму стоимостей отдельных линков) от маршрутизатора до сети назначения.
Формула расчёта стоимости OSPF:
- Стоимость = заданная пропускная способность / пропускная способность интерфейса
Ввиду того, что эталонная пропускная способность по умолчанию задана со значением 100 000 000 bit/s, все каналы, скорость которых выше Fast Ethernet, имеют значение стоимости 1.

Возможно настраивать заданную пропускную способность:
В команде число задается как Mbit/s, а при расчете стоимости как bit/s — тут надо запомнить и не ошибаться.
Пример. Рассчитаем метрику от R1 до сети 172.16.2.0/24:

Метрика = 64 + 1 = 65

Базы данных OSFP
Протокол OSPF создает и обслуживает три базы данных:
- База данных смежности — создаёт таблицу соседних устройств (show ip ospf neighbor);
- База данных о состоянии каналов (LSDB) — создаёт таблицу топологии (show ip ospf database);
- База данных пересылки — создаёт таблицу маршрутизации (show ip route).


Типы пакетов
Протокол OSPF осуществляет обмен сообщениями для передачи данных маршрутизации, используя для этого пять типов пакетов:
- Тип 1: пакет приветствия (hello) — используется для установления и поддержания отношений смежности с маршрутизаторами OSPF.
Пакеты приветствия используются в следующих целях:
- Обнаружение соседних устройств OSPF и установление отношений смежности с ними;
- Объявление параметров, при которых два маршрутизатора обязаны согласиться установить отношения смежности.
- В сетях с множественным доступом (Ethernet и Frame Relay) необходимо выбрать выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR). Для каналов типа «точка-точка» наличие DR или BDR не требуется.
- Тип 2: пакет описания базы данных (DBD) — содержит сокращённый список базы данных состояний каналов отправляющего маршрутизатора. Используется принимающими маршрутизаторами для сверки с локальной базой данных о состоянии канала. Для построения точного дерева кратчайших путей SPF маршрутизаторы с маршрутизацией по состоянию канала в пределах области должны использовать идентичную базу данных состояний каналов.
- Тип 3: пакет запроса состояния канала (LSR) — принимающие маршрутизаторы могут запросить дополнительные данные о любой записи в пакете описания базы данных (DBD), отправив пакет запроса состояния канала (LSR).
- Тип 4: пакет обновления состояния канала (LSU) — используется для отправки отклика на пакеты запроса состояния канала (LSR) и объявления новых данных. Пакеты обновления состояния канала (LSU) содержат семь различных типов LSA.
- Тип 5: пакет подтверждения состояния канала (LSAck) — при получении LSU маршрутизатор отправляет LSAck для подтверждения приёма LSU. Поле данных LSAck является пустым.


Маршрутизаторы изначально обмениваются пакетами DBD (пакетами типа 2), то есть сокращёнными списками базы данных состояний каналов отправляющего маршрутизатора, которые используются принимающими маршрутизаторами для сверки с локальной базой данных состояний каналов.
Пакет LSR (пакет типа 3) используется принимающими маршрутизаторами для запроса дополнительных данных о записи в пакете DBD.
Пакет LSU (пакет типа 4) используется для отправки отклика на полученный пакет LSR.
Каждый заголовок записи LSA содержит данные о типе состояния канала, адресе объявляющего маршрутизатора, стоимости канала и порядковом номере. Маршрутизатор использует порядковый номер для определения актуальности полученных данных о состоянии канала.


Алгоритм поиска кратчайшего пути
- Создаёт дерево кратчайших путей SPF путём размещения каждого маршрутизатора в корне дерева и расчёта кратчайших путей к каждому из узлов.
- После этого дерево кратчайших путей SPF используется для расчёта оптимальных маршрутов.
- Протокол OSPF вносит оптимальные маршруты в базу данных пересылки.
- База данных пересылки применяется для создания таблицы маршрутизации.
Алгоритм сходимости
- Установление отношений смежности с соседними устройствами: маршрутизаторы с поддержкой OSPF должны выполнить обнаружение друг друга в сети, чтобы обмениваться данными. Маршрутизатор, использующий OSPF, отправляет пакеты приветствия из всех интерфейсов с включенным OSPF для определения всех соседних устройств в пределах этих каналов. При наличии соседнего устройства маршрутизатор, использующий OSPF, пытается установить с ним отношения смежности.

- После установления отношений смежности маршрутизаторы выполняют обмен объявлениями о состоянии канала (LSA). LSA содержат состояние и стоимость каждого напрямую подключенного канала. Маршрутизаторы отправляют свои LSA смежным устройствам. При получении LSA смежные устройства мгновенно отправляют свои LSA напрямую подключенным соседям; данный процесс продолжается до тех пор, пока все маршрутизаторы области не получат все LSA.

- Создание таблицы топологии: после получения объявлений о состоянии канала (LSA) маршрутизаторы, использующие OSPF, создают базу данных топологии на базе полученных пакетов.

- Выполнение алгоритма поиска кратчайшего пути SPF.

- Алгоритм поиска кратчайшего пути создаёт дерево кратчайших путей SPF.


Оптимальные маршруты вносятся в таблицу маршрутизации из дерева кратчайших путей SPF.
Области OSFP
Протокол OSPF использует концепцию разделения на области в целях масштабируемости.
Протокол OSPF можно реализовать одним из следующих способов:
- OSPF для одной области — все маршрутизаторы находятся в одной области, называемой магистральной или нулевой областью (область 0).

- OSPF для нескольких областей — Все области должны быть подключены к магистральной области (область 0). Маршрутизаторы, с помощью которых осуществляется соединение между областями, называются пограничными маршрутизаторами (ABR).

При использовании иерархической маршрутизации выполняется маршрутизация между областями (межобластная маршрутизация), но многие из операций маршрутизации, потребляющих ресурсы процессора (например, повторный расчёт базы данных), выполняются в пределах одной области.
Изменения топологии распределяются по маршрутизаторам в других областях в дистанционно-векторном формате — эти маршрутизаторы обновляют только свои таблицы маршрутизации и не должны повторно выполнять алгоритм поиска кратчайших путей.
Возможности иерархической топологии OSPF для нескольких областей обеспечивают ряд следующих преимуществ:
- Таблицы маршрутизации меньшего размера — меньшее число записей в таблицах маршрутизации, так как сетевые адреса могут объединяться между областями. Функция объединения маршрутов отключена по умолчанию.
- Снижение нагрузки, вызванной обновлениями состояния канала — минимизация требований к ресурсам процессора и памяти.
- Снижение частоты расчётов кратчайшего пути — локализация воздействия изменений топологии в пределах области. Таким образом, сокращается воздействие обновлений маршрутизации, так как лавинная рассылка объявлений LSA прекращается на границе области.

Структура пакета OSPF
- Заголовок кадра канала данных Ethernet — определяет групповой MAC-адрес назначения 01-00-5E-00-00-05 или 01-00-5E-00-00-06.
- Заголовок IP-пакета — определяет поле 89 протокола IPv4, указывающее, что этот пакет является пакетом OSPF. Он также определяет один из двух групповых адресов OSPF (224.0.0.5 или 224.0.0.6).
- Заголовок пакета OSPF — определяет тип пакета OSPF, идентификатор маршрутизатора и идентификатор области.
- Данные в зависимости от типа пакета OSPF — содержат данные о типе пакета OSPF. Содержимое может отличаться в зависимости от типа пакета.

Пакет приветствия (hello):

- Тип — определяет тип пакета. Число 1 обозначает пакет приветствия. Значение 2 обозначает пакет DBD, 3 — пакет LSR, 4 — пакет LSU, а 5 — пакет LSAck;
- Идентификатор маршрутизатора — 32-битное значение, выраженное в десятичном формате с разделением точкой (IPv4-адрес), используется для уникального обозначения исходного маршрутизатора;
- Идентификатор области — область, в которой создан пакет;
- Маска подсети — маска подсети, связанная с отправляющим интерфейсом;
- Интервал приветствия (HelloInterval) — интервал (в секундах), по истечении которого маршрутизатором отправляется следующий пакет приветствия. В сетях с множественным доступом интервал приветствия по умолчанию задан со значением 10 секунд. В соседних маршрутизаторах должен использоваться один и тот же таймер, иначе отношения смежности не устанавливаются;
- Приоритет маршрутизатора — используется при выборе DR/BDR. По умолчанию для всех маршрутизаторов OSPF задан приоритет 1, однако его можно изменить вручную, выбрав значение в диапазоне от 0 до 255. Чем выше это значение, тем больше вероятность того, что маршрутизатор будет использоваться как выделенный маршрутизатор (DR) на этом канале;
- Интервал простоя (RouterDeadInterval) — интервал (в секундах) ожидания маршрутизатором сигнала от соседнего устройства, по истечении которого соседний маршрутизатор объявляется «мёртвым». Как правило, значение интервала простоя равно четырёхкратному значению интервала приветствия. В соседних маршрутизаторах должен использоваться один и тот же таймер, иначе отношения смежности не устанавливаются;
- Выделенный маршрутизатор (DR) — идентификатор маршрутизатора DR;
- Резервный выделенный маршрутизатор (BDR) — идентификатор маршрутизатора BDR;
- Список соседних устройств — список, определяющий идентификаторы всех смежных маршрутизаторов;
Hello передаются на групповой адрес 224.0.0.5 в сети IPv4 и на адрес FF02::5 в сети IPv6 со следующими интервалами:
- Каждые 10 секунд (по умолчанию в сетях с множественным доступом и сетях типа «точка-точка»);
- Каждые 30 секунд (по умолчанию в не широковещательных сетях множественного доступа, например, Frame Relay).
Состояния OSPF
Если на интерфейсе активирован протокол OSPF, маршрутизатор должен определить наличие другого соседнего устройства OSPF в канале. Для этого маршрутизатор отправляет пакет приветствия,
содержащий идентификатор маршрутизатора, из всех интерфейсов с поддержкой OSPF.

- Если протокол OSPF активирован, интерфейс, использующий этот протокол, переходит из состояния Down в состояние Init.

- Если соседний маршрутизатор, на котором активирован протокол OSPF, получает пакет приветствия с идентификатором маршрутизатора, который не включён в список его соседних устройств, принимающий маршрутизатор пытается установить с инициирующим маршрутизатором отношения смежности.

3. Действие, выполняемое в состоянии Two-Way, определяется типом взаимодействия между смежными маршрутизаторами:
- Если два смежных соседних устройства взаимодействуют посредством канала типа точка-точка, они немедленно переходят из состояния Two-Way в фазу синхронизации базы данных.
- Если маршрутизаторы взаимодействуют посредством общей сети Ethernet, необходимо выбрать выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR).
Следует помнить, что выбор DR и DBR происходит в фазе Two-Way.

Для чего необходимо выбрать выделенный и резервный выделенный маршрутизаторы?
- Избежать установления большого количества отношений смежности;
- Избежать избыточной лавинной рассылки пакетов LSA.

4. В состоянии ExStart между маршрутизаторами и их смежными маршрутизаторами DR и BDR устанавливаются отношения ведущего и ведомых устройств.

5. В состоянии Exchange ведущие и ведомые маршрутизаторы обмениваются одним или несколькими пакетами DBD.

6. Если пакет DBD содержит более актуальную запись о состоянии канала, маршрутизатор переходит в состояние Loading.

- После того как на все пакеты LSR для данного маршрутизатора отправлен отклик, смежные маршрутизаторы считаются синхронизированными и переведёнными в состояние Full.
После синхронизации топологических баз данных пакеты обновлений (LSU) отправляются соседним устройствам только в следующих случаях:
- Получение изменений (инкрементные обновления);
- По истечении 30 минут.
OSPFv2 (IPv4)
Настройка стоимости на интерфейсах
К тому, что уже было сказано по поводу расчёта метрики, нужно добавить следующее: можно явно переопределить пропускную способность на интерфейсе.
Пропускную способность необходимо настроить на каждом из концов каналов.
Команда bandwidth не изменяет физическую пропускную способность канала. Команда изменяет только метрики пропускной способности, используемые протоколом OSPF.
Либо можно сразу задать непосредственно стоимость на интерфейсе:
Рекомендуется использовать данную настройку в неоднородных средах, где маршрутизаторы сторонних производителей могут использовать для расчёта значений стоимости OSPF метрику, отличную от значения пропускной способности.
Изменение метрик стоимости канала с помощью команды ip ospf cost — это наиболее простой и предпочтительный способ изменения стоимости маршрутов OSPF.

И затем нужно проверить результат:
Настройка OSPFv2
Маршрутизатор с поддержкой протокола OSPF использует идентификатор в следующих целях:
- Уникальная идентификация маршрутизатора — идентификатор маршрутизатора используется другими маршрутизаторами для уникальной идентификации в пределах домена OSPF каждого из маршрутизаторов, а также всех пакетов, исходящих от них.
- Участие в выборе маршрутизатора DR — в сети LAN множественного доступа выбор маршрутизатора DR осуществляется в процессе исходной организации сети OSPF. При активации каналов OSPF устройство маршрутизации, для которого настроен наивысший приоритет, назначается маршрутизатором DR. В случае если приоритет не настроен или он одинаков, маршрутизатор с самым высоким значением идентификатора выбирается маршрутизатором DR. Устройство маршрутизации со следующим значением идентификатора выбирается как маршрутизатор BDR.
Выбор Router-id
Маршрутизаторы CISCO выводят идентификатор на основе одного из трёх критериев в следующем порядке предпочтения:
- Идентификатор маршрутизатора настраивается напрямую посредством команды router-idrid . Значение rid является любым 32-битным значением, выраженным как IPv4-адрес. Данный метод является рекомендуемым для назначения идентификатора маршрутизатора. Некоторые ранние версии IOS не распознают команду router-id.
- Если идентификатор маршрутизатора не настроен напрямую, маршрутизатор выбирает самое высокое значение IPv4-адреса любого из настроенных интерфейсов loopback. IPv4-адрес интерфейса loopback необходимо настроить, используя 32-битную маску подсети (255.255.255.255). Таким образом создаётся маршрут узла.
- При отсутствии настроенных интерфейсов loopback маршрутизатор выбирает самое высокое значение активного IPv4-адреса любого из своих физических интерфейсов. Данный метод не рекомендуется использовать, так как в этом случае администратору сложнее различать маршрутизаторы.
Если маршрутизатор использует самое высокое значение IPv4-адреса для идентификатора маршрутизатора, интерфейс не должен обязательно поддерживать протокол OSPF. Единственным требованием в этом случае является активность интерфейса и его работоспособность.
Идентификатор маршрутизатора выглядит как IP-адрес, однако его маршрутизация невозможна.
После выбора маршрутизатором идентификатора активный процесс OSPF не позволяет изменять этот идентификатор до тех пор, пока маршрутизатор не будет перезагружен или процесс OSPF не будет удалён.
Удаление процесса OSPF является предпочтительным методом сброса идентификатора маршрутизатора.
Если для двух соседних маршрутизаторов используется одинаковый идентификатор маршрутизатора, в этом случае маршрутизатор выводит сообщение об ошибке.
Команды просмотра
Команда отображает следующие выходные данные:
- Neighbor ID — идентификатор соседнего маршрутизатора;
- Pri — приоритет OSPF интерфейса. Это значение используется при выборе маршрутизаторов DR и BDR;
- State — состояние OSPF интерфейса. Состояние FULL означает, что маршрутизатор и его соседнее устройство имеют идентичные базы данных состояний каналов OSPF. В сетях с множественным доступом (например, Ethernet) состояние двух маршрутизаторов, состоящих в отношениях смежности, может отображаться как 2WAY. Тире указывает на то, что использование в данном типе сети выделенного маршрутизатора DR или резервного выделенного маршрутизатора BDR не требуется;
- Dead Time — интервал времени, в течение которого маршрутизатор ожидает получения пакета приветствия от соседнего устройства прежде, чем объявит его недействующим. Данное значение сбрасывается при получении интерфейсом пакета приветствия;
- Address — IPv4-адрес интерфейса соседнего устройства, к которому напрямую подключен этот маршрутизатор;
- Interface — интерфейс, на котором этот маршрутизатор установил отношения смежности с соседним устройством.
Пример. Следующая топология:

Вывод команды show ip ospf neighbor на R1:


Поиск и устранение неполадок в OSPFv2
Для устранения неполадок в сети OSPF необходимо знать следующие команды:
Условия формирования смежности OSPFv2 довольно сложны (по сравнению с EIGRP). Для начала роутеры должны обменяться пакетами Hello, это возможно если:
- Есть подключение 3 уровня между роутерами;
- OSPF на интерфейсах был активирован, то есть должна присутствовать команда network, соответствующая IP адресу на интерфейсе;
- Интерфейсы не должны быть пассивными;
Далее, когда пакеты Hello получены выполняется целый ряд проверок:
- IPv4 адреса интерфейсов должны быть в одной подсети;
Хотя интерфейсы с адресами 192.168.0.1/24 и 192.168.0.2/30 способны взаимодействовать друг с другом на 3 уровне, соотношения смежности OSPF они установить не смогут.
- Интерфейсы обоих роутеров должны быть настроены в одной области OSPF;
- Router ID должен быть уникальным как каждом роутере;
- На интерфейсах обоих роутеров должен быть одинаковый MTU;
Если значения MTU на двух подключенных роутерах не совпадают, то они все равно попытаются сформировать отношения смежности. Но не смогут обменяться LSDB, из-за чего отношения соседства не установятся.
- На роутерах должны быть одинаковые таймеры OSPF (hello-interval, dead-interval);
- Если настроена аутентификация, то параметры этой аутентификации должны совпадать на обоих роутерах
OSPFv3 (IPv6)
Сходства с OSPFv2

Auto-cost reference-bandwidth для OSPFv3 не влияет на OSPFv2.
Отличия от OSPFv2


Аутентификация OSPFv3 — это встроенный в IPv6 IPSec.
В протоколе OSPFv3 для установления отношений смежности с соседними маршрутизаторами не требуется сопоставление подсетей. Это связано с тем, что отношения смежности с соседними устройствами устанавливаются посредством адресов типа link-local, а не посредством глобальных индивидуальных адресов.
Если адрес типа link-local не настроен вручную, маршрутизаторы CISCO создают его, используя процесс EUI-64. с префиксом FE80::/10. EUI-64 предусматривает использование 48-битного MAC-адреса Ethernet, вставку FFFE в центр и инверсию седьмого бита. Для последовательных интерфейсов маршрутизаторы CISCO используют MAC-адрес интерфейса Ethernet. В этом случае link-local адрес может быть одинаковым для нескольких интерфейсов.
Рекомендуется настроить link-local адрес вручную, выбрав его одинаковым для всех интерфейсов. Например:
- R1 — FE80::1
- R2 — FE80::2
- .
Этапы настройки


Протоколы маршрутизации IPv6 включаются на интерфейсе, а не из режима конфигурации маршрутизатора, как в IPv4. Команда режима конфигурации маршрутизатора IPv4 network недоступна в IPv6.
После того как маршрутизатор OSPFv3 установил идентификатор маршрутизатора, идентификатор не может быть изменён до тех пор, пока маршрутизатор не будет перезагружен или процесс OSPF не будет удалён.
Удаление процесса является предпочтительным действием. При этом протокол OSPF на маршрутизаторе R1 принудительно выполняет повторное установление отношений смежности с соседними устройствами с использованием нового идентификатора маршрутизатора.
Process-id при этом должен совпадать с идентификатором процесса, используемым при создании процесса.
Команды просмотра
Состояние должно быть FULL, иначе это может привести к появлению ошибочных деревьев кратчайших путей SPF и таблиц маршрутизации.

Для сравнения вывод соседей для OSPFv2:

Как можно увидеть столбец Address для IPv4 в IPv6 заменяет столбец Interface ID.
Более подробно OSPF для одной и нескольких областей рассматривается в 3 части курса.
Статическая маршрутизация на Cisco
Ранее мы с вами создали несколько вланов в процессе настройки коммутаторов нашей локальной сети. Проблема сейчас в том, что хосты из разных вланов банально не видят друг друга. Серверная часть также существует где-то там совершенно обособленно. Исправим это.
В московском подразделении нашей шарообразной компании в вакууме будем использовать роутер Cisco 2811 для маршрутизации трафика между вланами.
Роутер будет терминировать вланы, в маршрутизаторе кадры заканчивают свою жизнь, из них извлекаются IP-пакеты, а заголовки с информацией канального уровня отбрасываются.
В принципе, настройка маршрутизатора не является особенно сложным процессом. Нет-нет, он очень сложный, но настройка для наших нужд в целом простая.
0. Сначала закончим с коммутатором msk-arbat-dsw1. На нём нам нужно настроить транковый порт в сторону маршрутизатора, чего мы не сделали в прошлый раз.
1. Назначаем имя маршрутизатора командой hostname, а для развития хорошего тона, надо упомянуть, что лучше сразу же настроить время на устройстве. Это поможет вам корректно идентифицировать записи в логах.
И да, желательно сразу настроить синхронизацию времени посредством NTP-сервера. Им может выступать сервис в интернете, коих много или же можно добавить данный функционал к одной из железок Cisco у вас в сети.
2. Теперь включим интерфейс, который смотрит в нашу локалку.
3. Создадим виртуальный интерфейс или иначе его называют подинтерфейс или ещё сабинтерфейс (sub-interface).
Что мы сейчас сделали? Всё довольно просто. Мы сначала указываем самым обычным образом физический интерфейс (fa0/0), к которому подключена нужная нам сеть, а после точки у нас будет стоять некий уникальный идентификатор этого виртуального интерфейса. Чтобы не запутаться и не взорвать свой мозг, дадим ему такой же номер, что и влану, который этот интерфейс терминирует.
4. Что еще. Ах да, как же стандарт 802.1q, забыли? Да-да, тот самый, который тегирует кадр меткой соответствующего влана. Теперь скажем маршрутизатору, чтобы он помечал кадры исходящие с этого виртуального интерфейса тегом 2-го влана. Соответственно, кадры входящие на физический интерфейс fa0/0 и имеющие тег 2 будут отправлены на виртуальный интерфейс fa0/0.2
Команда простейшая:
5. Навесим IP физическому L3-интерфейсу. Этот же IP будет являться шлюзом по-умолчанию (default gateway) для всех устройств в данном влане.
Точно также настраиваем остальные вланы. 101-ый, например:

Проверим, что из сети ПТО мы сможем увидеть сеть управления:
Абсолютно также настраиваются остальные интерфейсы.
Ранее мы говорили, что происходит с данными, передаваемыми в пределах одной подсети — т.е. хосты имеют IP-адреса в одном диапазоне, с одинаковой маской и одинаковым же шлюзом (GW, gateway).
Вот такой хост, например:
IP: 172.16.3.2
Mask: 255.255.255.0
GW: 172.16.3.1
Пока мы работаем с устройствами из одного диапазона 172.16.3.1-172.16.3.254 всё у нас будет хорошо. Посмотрим как это выглядит.
Данные для отправки должны быть упакованы в Ethernet-кадр с указанием в заголовке MAC-адреса назначения. Но откуда его брать вообще?
Для этого существует протокол ARP. Ваш компьютер для начала отправляет широковещательный ARP-запрос, в пакет которого помещается IP-адрес искомого хоста, а вот MAC-адрес при инкапсуляции будет указан как FF:FF:FF:FF:FF:FF, то есть предназначаться всем устройствам в сети. Кадр уходит на ближайший коммутатор, где рассылается на все порты вашего влана (конечно, кроме порта-источника). Получатели принимают широковещательный запрос, т.к. могут оказаться искомым хостом и извлекают данные из кадра. Если IP из ARP-запроса не совпадает с IP хоста, то запрос спокойно игнорируется. А если IP совпал, то получатель вышлет запросившему свой MAC-адрес.
Отправитель поместит полученный MAC в таблицу соответствия IP и MAC, т.н. ARP-кэш.
Командой arp -a можно увидеть эту таблицу.

Отлично, теперь в наш полезный пакет информации помещается IP-адрес назначения, а при упаковке в Ethernet-кадр указывается взятый из ARP-кэша MAC-адрес. А дальше на коммутаторе данные отправляются на нужный порт в соответствии с MAC-таблицей этого коммутатора.
Но что если хосты находятся в разных вланах? В обычном случае ARP-запрос ничего нам не вернет, т.к. его не пропустит маршрутизатор за пределы искомого широковещательного L2-домена. Нужная сеть находится где-то там, за ним. А коммутатор тоже не пропустит кадры из одного влана в другой.
Для этого и нужен шлюз по-умолчанию (default gateway) на вашем компьютере. Если пакет предназначен для хоста в вашей подсети, то кадру навешивается метка с MAC-адресом конечного устройства и коммутатор отсылает его на соответствующий порт. Если же IP находится в любой другой подсети, то кадр отправляется на шлюз по-умолчанию и ему присваивается MAC destination маршрутизатора.
1. Устройство с IP 172.16.3.2/24 хочет отправить данные для ПК с IP 172.16.4.5.

Естественно, он видит, что IP находится в другой подсети, поэтому данные должны уйти на шлюз по-умолчанию. Что же делать? Тогда ПК нужен MAC-шлюза, и он делает запрос к своему ARP-кэшу, а там пусто!

2. Тогда ПК отправляет широковещательный ARP-запрос в локальную сеть.
Структура запроса будет такоева:
На канальном уровне в качестве получателя — широковещательный адрес (FF:FF:FF:FF:FF:FF), в качестве отправителя — MAC-адрес интерфейса устройства, пытающегося выяснить IP
На сетевом — собственно ARP запрос, в нем содержится информация о том, какой IP и кем ищется.

3. Коммутатор, на который попал кадр, рассылает его копии во все порты этого влана (того, которому принадлежит изначальный хост), кроме того, откуда он получен. Здесь всё как обычно.
4. Все устройства, получив этот кадр и, видя, что он широковещательный, предполагают, что он адресован им.
5. Распаковав кадр, все хосты, кроме маршрутизатора, видят, что в ARP-запросе не их адрес. А маршрутизатор посылает unicast’овый ARP-ответ со своим MAC-адресом.
6. Изначальный хост получает ARP-ответ, теперь у него есть MAC-адрес шлюза. Он формирует пакет из тех данных, что ему нужно отправить на 172.16.4.5. В качестве MAC-адреса получателя ПК ставит адрес шлюза. При этом IP-адрес получателя в пакете остаётся 172.16.4.5

7. Кадр уходит в сеть и коммутаторы доставляют его на маршрутизатор.
8. Кадр приходит на соответствующий влану сабинтерфейс маршрутизатора. Данные канального уровня откидываются.
9. Из заголовка IP-пакета, роутер узнаёт адрес получателя (DST, destination address), а из своей таблицы маршрутизации видит, что тот находится в непосредственно подключенной к нему сети (directly connected) на определённом сабинтерфейсе (в нашем случае FE0/0.102).
show ip route
10. Маршрутизатор отправляет ARP-запрос с этого сабинтерфейса — узнаёт MAC-адрес получателя.
11. Пришедший на роутер IP-пакет не изменяясь инкапсулируется уже в новый кадр. Какие у него отличия по сравнению с первоначальным?
• в качестве MAC-адреса источника указывается адрес интерфейса шлюза
• IP-адрес источника — адрес изначального хоста (в нашем случае 172.16.3.2)
• в качестве MAC-адреса получателя указывается адрес конечного хоста
• IP-адрес получателя — адрес конечного хоста (в нашем случае 172.16.4.5)
и отправляется в сеть с сабинтерфейса FastEthernet0/0.102, получая при этом метку 102-го влана.
12. И в итоге кадр доставляется коммутатором до конечного хоста, получателя.
На примере всё той же практической схемы будем двигаться далее. Сеть нашей компании растёт и перед нами встает задача подключить новых клиентов. Теперь всё будет выглядеть так:

То есть помимо Мск у нас появляются две точки в Спб и две в Кемерово. А для простоты представления всё это будет соединять один глобальный провайдер, который на выгодных тарифах предоставляет нам L2VPN. Позднее нужно будет рассказать об этом типе соединения подробнее, ну а пока грубо говоря скажем, что это VLAN проброшенный через коммутационную сеть провайдера.
Мы уже обсуждали IP-адресацию в самом начале, так что исходя из регламента распределим диапазоны вот таким образом:

Этот регламент крайне упрощенный, но мы теперь по крайней мере будем знать, что у шлюза всегда будет 1-ый адрес, IP-шники до 12-го мы выдадим различному сетевому оборудованию (типа коммутаторов и всяких WiFi-точек), диапазон 172.16.х.13-172.16.х.23 уйдет для серверов. Регламент можно сколько угодно дополнять и расширять по своему вкусу, вплоть до IP-адреса каждого хоста, добавлять в него правило формирования имён устройств, доменных имён, политику списков доступа и т.д. Чем точнее будет выстроена адресация, тем проще и удобнее впоследствии всё эксплуатировать и дебажить.
Теперь нужно составить IP-план для всех точек нашего присутствия. Использовать будем сети с маской 24 бита (255.255.255.0 или /24), в которых может быть максимум 254 устройства.
Можно было бы рассказать и про маски, но это будет далеко не в двух словах. Чтобы вникнуть, курните эту статью на хабре.
Резюмируем план, который составлялся в нулевом выпуске. Пул в Мск у нас 172.16.0.0-172.16.6.255, но под возможность расширения зарезервируем туда IP-адреса до 172.16.15.0/24 включительно. Пул адресов 172.16.0.0-172.16.15.255 кратко может быть представлен как 172.16.0.0/20. Данная сеть с префиксом /20 будет являться так называемой суперсетью, а операция объединения подсетей в суперсети называется суммированием подсетей (суммированием маршрутов, если быть точным, route summarization).
Для удобства существует множество IP-калькуляторов для расчета пулов и масок сетей, например вот этот.
С диапазоном в Мск мы разобрались, теперь перейдем к Спб. Там имеются две точки с подсетями 172.16.16.0/24 и 172.16.17.0/24, но мы зарезервируем адреса 172.16.18.0-172.16.23.255 под возможное расширение. Этот пул объединяется в 172.16.16.0/21.
В Кемерово наше присутствие не так велико, поэтому кусок /21 (2048 адресов или 8 подсетей /24) будет там явным переборомЮ не говоря о /20 как в Мск (4096 или 16 подсетей /24). Ограничимся 1024 адресами или 4 подсетями /24, которым соответствует маска /22.
Таким образом сеть 172.16.24.0/22 (адреса 172.16.24.0-172.16.27.255) будет у нас для Кемерово.

Делать всё вот так аккуратно, конечно, но обязательно, но. Если у вас несколько подряд идущих подсетей разбросаны по разным концам сети, то каждой из них соответствует одна запись в таблице маршрутизации каждого маршрутизатора. Если при этом вы вдруг используете только статическую маршрутизацию, то это ещё колоссальный труд по настройке и отслеживанию корректности настройки.
А если же они у вас все идут подряд, то несколько маленьких подсетей вы можете суммировать в одну большую.
Взглянем на наш с вами Питер:
Это 8 команд и 8 записей в таблице. Но при этом пришедший на маршрутизатор пакет в любую из сетей 172.16.16.0/21 в любом случае будет отправлен на устройство с адресом 172.16.2.2.
Вместо этого мы поступим так:
Коротко и ясно, так ведь куда удобнее? Раньше причиной такой рационализации была мощность процессоров у маршрутизаторов, а сейчас скорее правило хорошего тона. Но это больше исключение, т.к. фрагментация маршрутов с ростом сети вещь неизбежная.
Теперь ещё несколько слов о линковых сетях. В среде сетевых администраторов так называются сети точка-точка (Point-to-Point) между двумя маршрутизаторами.
Вот опять же в примере с Питером. Два маршрутизатора (в Москве и в Петербурге) соединены друг с другом прямым линком (неважно, что у провайдера это сотня коммутаторов и маршрутизаторов — для нас это просто влан). То есть кроме вот этих 2-х устройств здесь не будет никаких других. Мы знаем это наверняка. В любом случае на интерфейсах обоих устройств (смотрящих в сторону друг друга) нужно настраивать IP-адреса. И нам точно незачем назначать на этом участке сеть /24 с 254 доступными адресами, ведь 252 в таком случае пропадут почём зря. В этом случае есть прекрасный выход — бесклассовая IP-адресация.
Почему она бесклассовая? Если вы помните, то в нулевой части мы говорили о трёх классах подсетей: А, В и С. По идее только их вы и могли использовать при планировании сети. Бесклассовая междоменная маршрутизация (CIDR) позволяет очень гибко использовать пространство IP-адресов.
Берем самую маленькую сеть из 4 IP-адресов, это будет сетка с маской 30 (255.255.255.252). Совсем мелкая сеть 32 (255.255.255.255) нам не подойдет, т.к. состоит из 1 IP-адреса, а 31 (255.255.255.254) — это уже 2 адреса, но один из них (первый) — это адрес сети, а второй (последний) — широковещательный, поэтому на хосты у нас адресов не остается. Так что берем /30, где именно 2 адреса и остаются на наши маршрутизаторы.
Вообще говоря, самой узкой маской для подсетей в cisco таки является /31. При определённых условиях их можно использовать на P-t-P-линках.
Что же касается маски /32, то такие подсети, которые суть один единственный хост, используются для назначения адресов Loopback-интерфейсам.
Именно поэтому при подготовке мы зарезервировали сетку 172.16.2.0/24, которые распилим аж на 64 сети с размером /30. Их хватит на 64 линка.

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

Я сижу перед ПК с IP 172.16.3.2, а моей задачей является получить доступ через телнет на L3-железку 172.16.17.1.
Откуда компьютеру знать, куда слать данные?
1. Этот момент мы уже обсуждали. Если IP получателя находится в другой подсети, то пакеты отправляются на шлюз по-умолчанию.
2. Следует ARP-запрос в ходе которого ПК узнает MAC-адрес маршрутизатора.
3. ПК создает кадр, в который инкапсулирует пакет информации и отправляет его по назначению. На маршрутизатор. А ПК уже тем временем выполнил свою работу, в дальнейшем он участия не принимает.
4. Кадр попадает на коммутатор, где исходя из таблицы MAC-адресов отправляется на маршрутизатор RT1.
5. Маршрутизатор ограничивает искомый широковещательный домен и поэтому изначальный кадр дальше уже не пройдет. Маршрутизатор откидывает заголовок канального уровня, ему нужен только пакет.
6. Задачей маршрутизатора является теперь принять решение, что делать с этим пакетом дальше. На какой интерфейс его отправлять?
Делать он это будет в соответствии с таблицей маршрутизации, которую можно посмотреть командой show ip route:
Каждая строка — это маршрут, способ добраться до той или иной конечной цели.
К примеру, пакет адресованный в сеть 172.16.17.0/24 отправится на IP 172.16.2.2.
Посмотрим поближе, из чего формируется таблица маршрутизации. Вариантов тут множество:
• Непосредственно подключенные сети (directly connected) — это сети, которые начинаются непосредственно на нём. В примере 172.16.3.0/24 и 172.16.2.0/30. В таблице они обозначаются буквой C;
• Статический маршруты (static route) — это те, которые вы прописали вручную командой ip route. Обозначаются буквой S;
• Маршруты, полученные с помощью протоколов динамической маршрутизации (OSPF, EIGRP, RIP, BGP и других).
7. В общем данные из сети 172.16.17.0 (мы же хотим приконнектиться к устройству 172.16.17.1) должны быть отправлены на следующий хоп, а этим следующим прыжком будет являться маршрутизатор 172.16.2.2. А таблица маршрутизации нам подсказывает, что этот IP находится за интерфейсом FE0/1.4 (подсеть 172.16.2.0/30)
8. Возможна ситуация, что в ARP-кэше циски нет соответствующего MAC-адреса устройства с IP 172.16.2.2, тогда следует выполнить ARP-запрос. RT1 посылает широковещательный кадр с порта FE0/1.4. В этом широковещательном домене присутствуют только два устройства, а значит получатель может быть только один. RT2 получает ARP-запрос, отбрасывает заголовок Ethernet и, понимая из данных протокола ARP, что искомый адрес принадлежит ему отправляет ARP-ответ со своим MAC-адресом.
9. Само собой, изначальный IP-пакет, пришедший от RT1 не меняется, просто инкапсулируется в совершенно новый кадр, который уйдет на интерфейс FE0/1.4, получив при этом метку VLAN 4.
10. Полностью аналогичные действия будут произведены на следующем маршрутизаторе. И далее на следующем, пока пакет не дойдет до крайнего маршрутизатора, к которому подключена искомая сеть.
11. Ну и последний маршрутизатор (хорошо-хорошо, в нашей практической задачке это L3-коммутатор) видит, что искомый IP-адрес принадлежит ему самому, извлекает данные транспортного уровня и понимает, что это telnet, передавая данные верхним уровням.
Таким образом путешествуют пакеты в сети от одного маршрутизатора к другому. При этом ни один маршрутизатор не знает дальнейшую судьбу пакета, он просто отправляет его дальше в соответствии со своей таблице маршрутизации.
Циска в Мск у нас имеет два интерфейса — FE0/0 смотрит в нашу локальную сеть, а FE0/1 используется для выхода в интернет и для подключения удаленных офисов. Для начала создадим саб-интерфейсы. Для Спб выделим VLAN 4, для Кемерово — 5. Адресация в соответствии с планом.
Теперь о настройке со стороны провайдера. В нашей практике позволим немного абстракции. Провайдер для нас может быть представлен в виде одного большого коммутатора. Какова будет настройка? В общем ничего сложного. Нужно принять транком линк с Арбата, а двумя другими портами отдадим их на удаленные узлы в Спб и Кемерово. Еще раз повторимся. Эти порты физически находятся на удалении в сотни километров, соединены сложной MPLS-сетью и только логически находятся «близко».
Наш игрушечный провайдер будет настроен таким образом:
В Питере у нас имеется железка spb-vsl-gw1, обратимся к ней.

Пусть FA0/0 смотрит в локалку, FA1/1 — на L3-коммутатор в Озерках, а вот FA1/0 будет у нас Uplink.
К слову по нумерации портов.
FastEthernet — это тип порта (Ethernet, Fastethernet, GigabitEthernet, POS, Serial или другие)
x/y/z.w=Slot/Sub-slot/Interface.Sub-interface.
Нужно договориться заранее как провайдер будет отдавать вам канал — транком или аксесом. В нашем примере мы решили, что это будет транк, т.к. чуть выше уже настроили коммутатор провайдера.
Добавим сюда локальную сеть:
Проверяем доступность адреса 172.16.2.2 с Москвы msk-arbat-gw1:
А вот 172.16.16.1 мы всё также не видим:
Конечно, ведь маршрутизатор не знает, куда ему слать пакет:
Надо это исправить:
Снова пробуем пинг-запросы:
Ура? Заработало? Не совсем. Проверяем связь с ПК:

Что за ерунда? Компьютер же знает, что пакет нужно отправлять на свой шлюз 172.16.3.1, маршрутизатор тоже в свою очередь в курсе, что дальше пакет следует отправить на хост 172.16.2.2. Пакет уходит на spb-vsl-gw1, который знает, что пингуемый адрес 172.16.16.1 принадлежит ему.
Мозг взрывается? Нет? Ну, хорошо. Пакет ведь нужно отправить ответом на адрес 172.16.3.3 в сеть 172.16.3.0, но до неё у него попросту нет маршрута, поэтому пакеты с неизвестным назначением дропаются.
Ну ка.
spb-vsl-gw1#sh ip route
Но тогда почему был пинг с msk-arbat-gw1 до 172.16.16.1? Разве есть разница между 172.16.3.1 или 172.16.3.2, они же в одной сети!
Из таблицы маршрутизации всем видно, что следующий хоп — 172.16.2.2, при этом адрес из 172.16.2.1 принадлежит интерфейсу этого маршрутизатора, поэтому он и ставится в заголовок в качестве IP-адреса отправителя, а не 172.16.3.1. Пакет отправляется на spb-vsl-gw1, тот его принимает, передаёт данные приложению пинг, которое формирует echo-reply. Ответ инкапсулируется в IP-пакет, где в качестве адреса получателя фигурирует 172.16.2.1, а 172.16.2.0/30 — непосредственно подключенная к spb-vsl-gw1 сеть, поэтому без проблем пакет доставляется по назначению. То есть в сеть 172.16.2.0/30 маршрут известен, а в 172.16.3.0/24 нет.
По хорошему бы просто прописать на spb-vsl-gw1 маршрут в сеть 172.16.3.0, но тогда его придется прописывать и для других сетей. В Мск, потом в Кемерово, а при расширении сети еще черт знает где. Заметим, что выход в мир у нас получается через Мск, т.к. гейт в Озерки тупиковый, поэтому большая часть трафика все же будет идти в Москву (там и сетей большинство, и выход в интернет). И чем нам это поможет?
А вот чем.
Есть такое понятие как маршрут по-умолчанию (default route), он же «шлюз последней надежды».
Когда маршрутизатор решает, куда отправить пакет, он просматривает всё таблицу маршрутизации и, если не находит нужного маршрута, пакет отбрасывается — это если у вас не настроен шлюз последней надежды, если же настроен, то сиротливые пакеты отправляются именно туда — просто не глядя, предоставляя право уже следующему хопу решать их дальнейшую судьбу. То есть если некуда отправить, то последняя надежда — маршрут по умолчанию.
Настройка проста:
Проверяем!

Данная фича позволяет уменьшить сложность настройки и разгрузить таблицу маршрутизации отдельно взятых роутеров.
Настроим остальные маршрутизаторы. Санкт-Петербург. Озерки — в дальнейшем spb-ozerki-gw1.
Как мы помним у нас здесь L3-коммутатор, который для идеализации ситуации связан с spb-vsl-gw1 арендованным у провайдера волокном. Да, схема слишком идеальная, но о сложностях будем говорить в следующий раз.
Для начала ответим вопрос, зачем использовать коммутатор L3 уровня? Во-первых, интервлан роутинг в этом случае делается аппаратно и не нагружает процессор, в отличие от маршрутизатора. Во-вторых, один L3-коммутатор обойдётся вам значительно дешевле, чем L2-коммутатор и маршрутизатор по отдельности. Правда, в этом случае вы и полного функционала маршрутизатора не получите, поэтому заранее взвесьте все за и против.
Подготовим spb-vsl-gw1.
Для сети Озерков мы выделили 172.16.17.0/24, поэтому сразу настроим туда маршрут:
Объяснять следует? В качестве некст хопа мы указали IP-адрес интерфейса в Озерках — 172.16.2.6.
Теперь настраиваем железо в Озерках. Втыкаем на Васильевском острове кабель в spb-vsl-gw1: fa1/1 (порт уже настроен, как мы помним) и в 24-ый порт Cisco 3560 в Озерках. По дефолту все порты на ней работают в режиме обычного L2-свича, которые умеют во вланы. Но любой из них можно перевести в L3-режим, сделав портом маршрутизатора. Настраиваем на нем IP:
Теперь настроим локальную сеть. Вендоры (в т.ч. циска) не рекомендуют использовать дефолтный влан, поэтому у нас будет VLAN 2.
Теперь все устройства во 2-ом влане будут иметь шлюзом 172.16.17.1:

И еще один магический пасс, превращающий коммутатор в почти маршрутизатор:
Тем самым мы включаем возможность маршрутизации. А маршрут нам понадобится только один, который по-умолчанию:
Проверяем связность с spb-vsl-gw1:
А вот с Москвой мы пока не подружились:
Конечно, дело тут в отсутствии маршрута. Воспользуемся трассировкой для локализации проблемы — traceroute.
От spb-vsl-gw1 ответ приходит, а дальше тишина, только мертвые с косами стоят. Существуют две самых очевидных вероятности:
> На хопе с адресом 172.16.2.5 не прописан маршрут в нужную сеть (но у нас там настроен маршрут по умолчанию, которого достаточно);
> Стоп. Или на следующем хопе нет обратного маршрута?
И правда, отсутствует маршрут в сеть 172.16.17.0/24. Можно его взять и прописать, а можно подумать чуть подольше. Мы отгрузили в Питер сеть 172.16.16.0/21, поэтому достаточно прописать общий агрегированный маршрут:
А теперь проверим доступность Москвы с spb-ozerki-gw1:
Нифига. А если в качестве source address указать 172.16.17.1:
Даже с ПК 172.16.17.26 он доступен:

Товарищи, да у нас проблемы с маршрутизацией!
Дело в том, что наш msk-arbat-gw1 прекрасно осведомлен о сети 172.16.17.0/24, а вот о 172.16.2.4/30 не имеет ни малейшего понятия. А именно IP 172.16.2.6 — адрес ближайшего к адресату интерфейса (имеется ввиду интерфейс, с которого отправляется IP-пакет — указывается в качестве источника, source address.
Вуаля.
Пропишем маршрут в подсеть 172.16.3.0/24 на роутере Васильевского острова не в Москву, а в Озерки.
Что произойдет? Образуется кольцо маршрутизации, сети 172.16.3.0/24 и 172.16.16.0/21 перестанут видеть друг друга. Пакет из spb-ozerki-gw1 в сеть 172.16.3.0 попадает сначала на spb-vsl-gw1, где прописан маршрут “172.16.3.0/24 ищите за 172.16.2.6”, а это опять spb-ozerki-gw1, который говорит нам “172.16.3.0/24 ищите за 172.16.2.5”. Пакет будет ходить туда-сюда, пока не истечет его срок жизни, TTL.
Суть в том, что проходя через каждый маршрутизатор значение в поле TTL у заголовка будет уменьшаться на 1 со значения по-умолчанию 255. И когда TTL=0 маршрутизатор дропнет этот пакет. Это дает сети стабильность, не позволяя образовавшимся петлям существовать бесконечно до полного забивания канала.
А вот на канальном Ethernet-уровне такого механизма защиты нет, и при возникновении петли коммутатор будет плодить широковещательные (Broadcast) запросы до полного падения канала, что называется широковещательный шторм. Есть технология борьбы с этим — STP, но об этом позднее.
Очевидное следствие существования TTL — невозможность существования связной сети из более 255 маршрутизаторов. Но это и не требуется, т.к. даже самые длинные трейсы состоят максимум из 20-30 хопов.
А выглядит этот маршрутизатор таким образом:

Маршрутизатор связан с коммутатором одним кабелем, и посредством разных вланов внутри него передается и локальный и внешний трафик. Основная причина такого решения — обычно экономия средств. Ну один порт на маршрутизаторе, а покупать дополнительную плату или другой маршрутизатор накладно.
Подключение будет выглядеть так:

Настроим Uplink коммутатора. Помним, что договорились с провайдером на 5-ый влан транком.
Для локальной сети выберем VLAN 2. Ничего страшного, что такой уже имеется в Москве и Питере, они ведь не пересекаются, поэтому все в порядке. Тут как хотите, можете пилить для LAN один и тот же VLAN, а можете наделать уникальных VLAN ID.
Настроим транк в сторону маршрутизатора, там 5-ым вланом будут тегироваться кадры внешнего трафика, а 2-ым — локального.
Осталось настроить маршрутизатор:
Пара слов напоследок. Для траблшутинга, связанного с ошибками маршрутизации пользуйтесь командами traceroute и show ip route. В первом случае вам будет полезен адрес источника, а вторую можно применять с определенными параметрами. Например:
Да, в таблице маршрутизации нет записи по сети 172.16.17.0, но маршрутизатор покажет вам следующий хоп.
Также повторим важные вещи:
• Когда блок данных попадает на маршрутизатор, заголовок Ethernet полностью отбрасывается и при отправке формируется совершенно новый кадр. Но IP-пакет остаётся неизменным;
• Каждый маршрутизатор в случае статической маршрутизации принимает решение о судьбе пакета исключительно самостоятельно и не знает ничего о чужих таблицах;
• Поиск в таблице идёт НЕ до первой попавшейся подходящей записи, а до тех пор, пока не будет найдено самое точное соответствие (самая узкая маска). Например, если у вас таблица маршрутизации выглядит так:
И вы передаёте данные на 172.16.10.5, то он не пойдёт ни по маршруту через 172.16.2.22 ни через 172.16.2.26, а выберет самую узкую маску (самую длинную) /30 через 172.16.2.30.
• Если IP-адресу получателя не будет соответствовать ни одна запись в таблице маршрутизации и не настроен маршрут по умолчанию (шлюз последней надежды), пакет будет просто отброшен.
На этом первое знакомство с маршрутизацией можно закончить. Нам кажется, что читатель сам видит, сколько сложностей поджидает его здесь, может предположить, какой объём работы предстоит ему, если сеть разрастётся до нескольких десятков маршрутизаторов. Но надо сказать, что в современном мире статическая маршрутизация, не то чтобы не используется, конечно, ей есть место, но в подавляющем большинстве сетей, крупнее районного пионер-нета внедрены протоколы динамической маршрутизации. Среди них OSPF, EIGRP, IS-IS, RIP, которым мы посвятим отдельный выпуск и, скорее всего, не один. Но настройка статической маршрутизации в значительной степени поможет вашему общему пониманию маршрутизации.
Static Route. TraceRoute
Роутеры передают пакеты используя маршруты в таблице маршрутизации, котрые могут быть поделены на два типа. Static Route (Статические Маршруты) — маршруты установленные вручную. Маршруты относящиеся к Динамической Маршрутизации Dynamic Routing — маршруты добавленные протоколами маршрутизации (например, RIP, OSPF, BGP).
Administrative Distance (Административная Дистанция) — используется роутерами что бы выбрать наилучший маршрут, когда имеется больше одного маршрута к одной и той же подсети (не в cisco-железках, есть аналог под названием Metric или метрика, например, в windows, linux, checkpoint, fortigate).
Administrative Distance (AD) для статических маршрутов, по умолчанию равна 1, а для маршрутов подключенных напрямую 0 и является неизменной. При добавлении статического маршрута можно вручную указать AD.
Traceroute
Начнем издалека. В американской терминологии пакеты не передаются между роутерами, а «прыгают» (hop). В заголовке пакета есть атрибут под названием Time To Live (TTL), который определяет время жизни пакета или количество «прыжков» между роутерами. При создании пакета, устройство указывает атрибут TTL (максимум 255) и каждый раз после «прыжка» его значение уменьшается на единицу. Когда роутер принимает пакет с TTL равным 1, он вычитает единицу и получает 0, в итоге тогда он отбрасывает этот пакет и отправляет сообщение об ошибке. Теперь мы очень близки к тому, что бы понять как работает traceroute
Traceroute — утилита, помогающая определить количество роутеров (или «прыжков») между устройством запустившим эту утилиту и другим устройством в сети. Traceroute использует TTL для определения всех роутеров на пути. В начале он отправляет пакет с TTL равным единице, а в ответ получает сообщение об ошибке, в которой содержится информация о первом роутере, потом выставляет TTL равным двум, получает сообщение об ошибке со второго роутера и т.д, рисунок 2.1.
Рисунок 2.1 Traceroute
Красный конвертик, который идет в обратную сторону от каждого роутера, это сообщение об ошибке в которой сказано, что время жизни пакета истекло (TTL равен 0), а так же информация о том кто создал это сообщение.
Наш Спонсор

Наш Спонсор

Информация
Packet Tracer version: 6.2.0
Рабочий файл: скачать
Версия файла: 1.0
Практика
Начальные данные
Все «манипуляции» можно осуществлять только при помощи ПК_ADMIN (либо с других ПК в сети).
В данной практической работе сеть уже спланирована, большая часть настроена (рисунок 2.2). На схеме вы можете найти всю адресацию. Например, на ПК_ADMIN вы можете видеть «.10», это означает, что он имеет ip адрес 10.7.7.10. На всем сетевом оборудовании настроен telnet-сервер, пароль — gurkin33.ru.
Рисунок 2.2 Схема сети из практической работы
- Добавить статические маршруты на роутеры R0 и R1. Проверить доступность.
- Добавить на R2 «маршрут по умолчанию». Настроить gateway на SW0 и SW1. Проверить доступность.
- Познакомиться с командой tracert .
Выполнение
Добавить статические маршруты на роутеры R0 и R1. Проверить доступность.
Чтобы добавить статический маршрут надо использовать команду — ip route <номер сети> <маска> <ip адрес следующего роутера> <метрика> , разберем команду на примере, добавим на R0 маршрут к сети 10.1.1.0/30.
Этот маршрут указывает роутеру, что если к нему приходит пакет с адресом из диапазона 10.1.1.0-10.1.1.3 (в диапазоне 4 адреса), то надо передать его на роутер, который имеет адрес 10.2.2.2 (R1). Метрика не указана, т.к. это не обязательный параметр. Посмотрим в таблицу маршрутизации.
Буква S означает static — это статический маршрут. Сеть 10.1.1.0/30 доступна через (via) 10.2.2.2 (R1). Обратите внимание на [1/0], первое число это метрика или административная дистанция (по умолчанию, метрика для статического маршрута равна единице), второе число относится к динамическим маршрутам, поэтому для статических маршрутов всегда имеет значение 0.
- ПК_ADMIN формирует пакет к серверу Server0, ip адрес отправителя 10.7.7.10, ip адрес получателя 10.1.1.2. ПК_ADMIN отправит этот пакет на R0, согласно настроенному gateway (шлюзу по умолчанию).
- R0 получает пакет, его интересует только адрес получателя — 10.1.1.2. Пройдясь по своей таблице маршрутизации, он находит подходящий маршрут, который указывает на R1 (10.2.2.2). R0 отправляет пакет на R1.
- R1 получает пакет, его так же интересует только адрес получателя — 10.1.1.2. Пройдясь по своей таблице маршрутизации, он находит подходящий маршрут, который указывает, что устройство с адресом 10.1.1.2 подключено к нему напрямую (10.1.1.0/30 is directly connected). R1 отправляет пакет на устройство Server0.
- Server0 получает пакет и формирует ответ, в котором указывает ip адрес отправителя 10.1.1.2 и ip адрес получателя 10.7.7.10. Server0 отправит этот пакет на R1, согласно настроенному gateway (шлюзу по умолчанию).
- R1 получает пакет, его интересует только адрес получателя — 10.7.7.10. R1 смотрит в свою таблицу маршрутизации и не находит маршрута, а значит просто отбрасывает этот пакет.
Рисунок 2.3 Движение пакета от ПК_ADMIN до Server0
На рисунке 2.3, после того как R1 понял, что у него нет маршрута для пришедшего пакета, он отбрасывает его и формирует сообщение об ошибке (красный конверт), которое передает отправителю этого пакета (10.1.1.2). В красном конверте содержится фраза — Destination host unreachable или по-русски — «Устройство-получатель не доступно».
Исправим этот недочет добавив соответствующий маршрут на R1. Подключение к R1 можно осуществить с R0.
Теперь можно убедиться, что связь между ПК_ADMIN и Server0 есть. Проверка представлена на рисунке 2.4.
Рисунок 2.4 Проверка доступности между ПК_ADMIN и Server0
Для выполнения следующих пунктов в этой практической работе, нам надо добавить еще несколько маршрутов на R0 и R1, ниже представлены «копипасты» для каждого роутера.
Обратите внимание, что R0 не знает о существовании сети 10.3.3.0/30. Для выполнения заданных целей это не нужно.
Добавить на R2 «маршрут по умолчанию». Настроить gateway на SW0 и SW1. Проверить доступность.
«Маршрут по умолчанию» можно сравнивать с «Черной дырой» (сравнение автора 🙂 ), потому что по этому маршруту уходят все пакеты, которые не имеют конкретного маршрута. Этот маршрут можно добавить при помощи команды ip route 0.0.0.0 0.0.0.0 <ip адрес «Черной дыры»> . Сочетание 0.0.0.0 0.0.0.0 (или 0.0.0.0/0) означает — все имеющиеся ip адреса. Давайте добавим этот маршрут на R2, указав 10.3.3.1 в качестве «Черной дыры». Подключиться к R2 можно c роутера R1.
Теперь надо обратить внимание на новый маршрут у роутера R2 — S* 0.0.0.0/0 [1/0] via 10.3.3.1. Как мы уже знаем S означает static, но теперь у нас появился новый символ * — candidate default (кандидат на маршрут по умолчанию). А так же обратите внимание на фразу Gateway of last resort is 10.3.3.1 to network 0.0.0.0, она говорит о том, что если роутер смотрит в таблицу маршрутизации и не знает куда отправить пакет, то он отправит на адрес 10.3.3.1.
На рисунке 2.5 представлена проверка связи между ПК_ADMIN и ПК2.
Рисунок 2.5 Проверка доступности между ПК_ADMIN и ПК2
Теперь научимся устанавливать шлюз по умолчанию (gateway) на коммутаторах, это делается при помощи команды ip default-gateway <ip адрес> . Настроим на SW1. На SW1 можно подключиться с ПК2.
После добавления gateway на SW1 ( ip default-gateway 10.6.6.1 ), была выполнена проверка доступности ПК_ADMIN, с помощью команды ping 10.7.7.10 , знак восклицания ! говорит о том, что ПК_ADMIN ответил на ping-запрос. Это означает, что теперь, можно создать telnet соединение между ПК_ADMIN и SW1.
Коммутатор SW0 настраивается аналогично, gateway ip адрес у него 10.7.7.1.
Познакомиться с командой tracert
Вызовем команду tracert 10.6.6.12 на ПК_ADMIN, рисунок 2.6.
Рисунок 2.6 Трасировка от ПК_ADMIN к ПК2
Теперь прокомментируем рисунок 2.6. В начале ПК_ADMIN отправляет пакет с атрибутом TTL равным 1, в ответ он получает сообщение об ошибке, с роутера R0 (10.7.7.1). Делает он это три раза, для того что бы пользователь мог отследить задержку. Каждый раз отправляя пакет, ПК_ADMIN засекает время и, когда приходит ответ, отмечает время прибытия ответа (такой же таймер имеет команда ping ). Команда tracert очень полезна, когда надо выяснить на каком участке в сети возникла проблема. На сisco-устройствах эта команда вызывается так traceroute <ip адрес> .