Backbone area 0 что это

Обновлено: 05.07.2024

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

  • Что такое динамическая маршрутизация и для чего она используется.
  • Протоколы динамической маршрутизации на коммутаторах SNR.
  • Протокол OSPF и примеры настройки протокола OSPF на коммутаторах SNR.

OSPF (часть первая)

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

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

OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.

Возникает сразу вопрос — Что есть технология отслеживания состояния канала? Данное название считаю не совсем удачным. Сложилось так, что существует два типа протоколов динамической маршрутизации: Link-state и Distance-Vector. Рассмотрим их принципы работы:

В Distance-Vector протоколах, маршрутизатор узнает информацию о маршрутах посредством маршрутизаторов непосредственно подключенных в один с ним сегмент сети. То есть, маршрутизатор имеет информацию о топологии только в границах его соседних маршрутизаторов и понятия не имеет как устроена топология за этими маршрутизаторами, ориентируясь только по метрикам. В Link-state протоколах каждый маршрутизатор должен непросто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. Это достигается за счет построения специальной базы LSDB, но подробнее об этом позже.

Итак, начнем с того, как же строится LSDB из которой маршрутизатор узнает о всех-всех маршрутах? Построим начальную топологию для изучения. Выглядит она так:

image

Посмотрим как выглядит Hello-пакет:

image

1. Настроен специальной командой router-id A.B.C.D — в формате ip адерса.
2. Настроен один loopback-интерфейс и несколько интерфейсов с различными адресами:

  • Адрес присвоенный loopback-интерфейсу будет Router ID.
  • Наибольший IP-адрес присвоенный любому из loopback-интерфейсов будет Router ID.
  • Наибольший IP-адрес из всех активных интерфейсов будет Router ID.

Итак, мы включили OSPF на vIOS1 и он начал каждые 10 секунд отправлять Hello-пакеты. Включим OSPF на vIOS2 и проследим как будут устанавливаться отношения соседства.

image

  • Hello — используется для обнаружения соседей, проверки параметров, построения отношений соседства с ними и мониторинга доступности.
  • Database Description (DBD) — проверяет состояние синхронизации баз данных на маршрутизаторах.
  • Link-State Request (LSR) — запрашивает определенные записи о состоянии каналов от маршрутизатора к маршрутизатору для синхронизации.
  • Link-State Update (LSU) — отправляет определенные записи о состоянии каналов в ответ на запрос.
  • Link-State Acknowledgment (LSAck) — подтверждает получение других типов пакетов.

image

Задумаемся о вопросе, что будет, если мы активируем OSPF на vIOS3? Так как vIOS3 придется строить LSDB и синхронизировать её с другими маршрутизатора, то встает вопрос с кем именно синхронизировать? С vIOS1 или vIOS2? С каждым по отдельности? Насколько это оптимально? Поэтому в OSPF есть такое понятие как DR — Designated router. Введем данное понятие:

Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.

Другими словами, если в сегменте сети появляется новый маршрутизатор, то он будет синхронизировать свою LSDB именно с DR. Также важно заметить, что и не только новые, но и все остальные маршрутизаторы при изменении сети или появлении нового маршрута будут сообщать об этом DR, а остальные будут забирать данную информацию с DR. Но тут же возникают вопросы — Что будет, если DR выйдет из строя? Как выбирается DR?

При выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR — Backup designated router:

Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется. Таким образом, у нас в сети получаются не только DR, но и BDR. Остальные маршрутизаторы будут получать и сообщать актуальную информацию о сети только посредством их. DR и BDR выбирается только внутри одного сегмента, а не зоны! То есть, у маршрутизаторов vIOS1, vIOS2, vIOS3, vIOS4 будут выбраны одни DR и BDR, а, например, между vIOS и vIOS1 будут определены свои DR и BDR уже относительно их сегмента сети, даже, если они в одной Area 0. Для общения с DR и BDR, маршрутизаторы используют мулитькастовый адрес — 224.0.0.6.

Следующий вопрос — Как выбирается DR/BDR? Применяются следующие критерии:

  1. DR: Маршрутизатор с самым высоким приоритетом интерфейса OSPF.
  2. BDR: Маршрутизатор со вторым самым высоким приоритетом интерфейса OSPF.
  3. Если приоритеты интерфейсов OSPF равны, самый высокий ID маршрутизатора используется, чтобы осуществить выбор. Как мы говорили, что маршрутизаторы определяют свой Router-ID. В начале, когда OSPF запускался на vIOS1 и vIOS2, помимо установления соседства, также происходили выборы DR/BDR. В данном споре победил vIOS2 c ID — 2.2.2.2, когда vIOS1 имел ID — 1.1.1.1. vIOS1 был выбран в качестве BDR. Важно заметить, что процесс выбора DR и BDR не происходит сразу после получения первых Hello-пакетов от второго маршрутизатора. Для этого существует специальный таймер равный Router Dead Interval — 40 секунд. Если за это время не будет получен Hello-пакет с лучшим ID, то произойдет выбор на основе уже имеющихся Hello-пакетов.

image

По такой же схеме у нас подключается и vIOS4. После синхронизации, у всех маршрутизаторов одна и так же LSDB. Посмотрим как выглядят состояния соседства у vIOS3. Команда show ip ospf neighbor:

image

Как мы можем увидеть, DR — 2.2.2.2, BDR — 1.1.1.1, а с vIOS4 выбрано состояние 2WAY/DROTHER. О состояниях соседства была дана ссылка выше.

А вот состояния соседства на vIOS1 c установленном соседством c vIOS:

image

Как видите у него два DR потому, что у него имеется сосед и в другом сегменте сети.

Мультизоны

Рассмотрим принципы работы OSPF в случае, когда используется несколько зон. Изменим нашу топологию, добавив новые маршрутизаторы:

image

Начнем с того, что сконфигурируем OSPF на vIOS1 и vIOS так, что их интерфейсы Gi0/1 на vIOS и vIOS1 будут находиться в зоне 1. Посмотрим, что изменитcя. vIOS1 теперь имеет интерфейсы и в Area 0 (Gi0/0), и в Area 1 (Gi0/0). Такой маршрутизатор называется ABR — Area Border Router ( чуть ниже дадим более корректное определение ABR). ABR будет рассылать информацию о маршрутах из одной зоны в другую. Делается это посредством LSA Type 3:

Type 3 LSA — Network Summary LSA — суммарное объявление о состоянии каналов сети:

  • Объявление распространяется пограничными маршрутизаторами
  • Объявление описывает маршруты к сетям вне локальной зоны
  • Содержит информацию о сетях и о стоимости пути к этим сетям, но не отправляет информацию о топологии сети
  • По умолчанию, пограничный маршрутизатор отправляет отдельное объявление для каждой известной ему сети. При необходимости, на ABR сети могут быть просуммированы
  • Link-state ID — номер сети назначения.

image

По своей сути, структура LSA Type 3 не сильно отличается от LSA Type 1, но они по-разному влияют на работу протокола. При получения обновленного или при потере какого-либо LSA Type 1&2, запускается заново SPF (алгоритм вычисления кратчайшего пути) и пересчитывает LSDB.

При получении LSA Type 3, данный процесс не происходит — получается маршрут с метрикой в LSA Type 3. В этом LSA хранится данные о том, через какой ABR был получен данный маршрут ( ABR указан в поле Advertising Router) и метрика, чтоб достичь данный ABR уже имеется в LSDB. Таким образом, метрика из LSA Type 3 суммируется с метрикой маршрута до ABR и получаем готовый маршрут без перезапуска SPF. Данный процесс называется Partial SPF calculation. Это довольно важно потому, что в больших сетях размеры LSDB могут быть довольно большими и часто запускать SPF не есть хорошо. Также, создание LSA Type 3 говорит о том, что изменения и пересчет LSDB это дела одной зоны. ABR только сообщает, что с каким-то маршрутом что изменилось.

Также важно заметить, что любой маршрут из ненулевой зоны в любую ненулевую зону проходит через Area 0. Если есть ABR, он не может быть не подключен к Area 0 (исключаем вариант с virtual-link). Area 0 является ядром, которое соединяет все остальные зоны и обеспечивает маршрутизацию между зонами. Определение ABR выглядит так:

Пограничный маршрутизатор (area border router, ABR) — соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У пограничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов.
Разобрались с установлением соседства, созданием LSDB и SPF, с обычной зоной. А сейчас разберемся с сходимостью и реакцией OSPF на изменения в топологии.

Type 2 LSA — Network LSA — объявление о состоянии каналов сети:

  • Распространяется DR в сетях со множественным доступом
  • Network LSA не создается для сетей в которых не выбирается DR
  • Распространяются только в пределах одной зоны
  • Link-state ID — IP-адрес интерфейса DR

Включим обратно vIOS3 и установим соседство заново. Следующим экспериментом будет — реакция на отключения интерфейса Gi0/1 на vIOS3. Как только vIOS3 детектирует падения линка, он моментально отправляет LS Update к DR на адрес 224.0.0.6, где сообщается о падении определенных маршрутов при помощи выставления флага в LSA — LS Age равный 3600 секунд. Для LSDB это Max Age и все LSA c Max Age не учитываются при SPF, поэтому их не будет в таблице маршрутизации. Возникает вопрос: А когда Age LSA естественным путем достигает Max Age, что происходит? Для этого в OSPF есть LSRefreshTime — равный половине Max Age, через каждые 1800 секунд отправляется LS Update с маршрутизатора для обновления данных таймеров:

image

Далее, DR обработав данный LS Update, отправляет всем остальным маршрутизаторам LS Update на адрес 224.0.0.5. Как только, маршрутизаторы получили новую информацию — они отправляют LSAck. Тем самым достигается хорошая сходимость в OSPF.

Выбор лучшего маршрута

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

  • Внутренние маршруты зоны (intra-area)
  • Маршруты между зонами (interarea)
  • Внешние маршруты типа 1 (E1)
  • Внешние маршруты типа 2 (E2)

cost = reference bandwidth / link bandwidth. Reference bandwidth — базис пропусной способности. По умолчанию, на Cisco равен 100Mbit.

ABR Loop Prevention. Как мы говорили выше, между зонами принцип работы OSPF похож на distance-vector протокол. Используя механизмы предотвращения петель, можем получить, что выбирается неоптимальный путь. Например, между зонами существует правило подобное Split Horizon из distance-vector протоколов. Рассмотрим это на примере, если изменить нашу топологию на границе зоны 0 и 4 так:

image

то мы получим, что vIOS18 будет выбирать неоптимальный путь с метрикой 100 через интерфейс Gi0/0. Происходит это в силу того, что vIOS18 не будет учитывать LSA Type 3, полученные не от зоны 0. Также, выше указанное правило запрещает передавать данный LSA Type 3 обратно в зону 0.

Урок 30. Принцип работы протокола OSPF

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

Принцип работы заключается в следующем:

  1. После включения маршрутизаторов протокол ищет непосредственно подключенных соседей и устанавливает с ними “дружеские” отношения.
  2. Затем они обмениваются друг с другом информацией о подключенных и доступных им сетях. То есть они строят карту сети (топологию сети). Данная карта одинакова на всех маршрутизаторах.
  3. На основе полученной информации запускается SPF (Shortest Path First - Выбор наилучшего пути) алгоритм, который рассчитывает оптимальный маршрут к каждой сети. Данный процесс похож на построение дерева, корнем которого является сам маршрутизатор, а ветви - пути к доступным сетям. Данный процесс, то есть конвергенция, происходит очень быстро.

SPF протоколы не рассылают периодические обновления, как это делают векторные алгоритмы. Вместо этого они рассылают обновления каждые 30 минут, причем не всю базу данных, а только определенную часть, не загружая при этом сеть.

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

Для сравнения возьмем сеть и посмотрим как протоколы RIP и SPF построят маршрут от узла А до сети Е.

RIP построит следующий маршрут, учитывая наименьшее расстояния до цели:


SPF протоколы построят иной маршрут, но с учетом скорости и надежности канала:


У SPF протоколов маршрут получился гораздо длиннее, однако пропускная способность канала гораздо выше, чем у RIP.

К SPF протоколам относят OSPF и IS-IS. Это 2 похожих протокола, которые были разработаны разными организациями. Мы будем рассматривать только протокол OSPF.

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

Иерархия и структура сети

OSPF прекрасно работает в любой сети, однако, если сеть большая, то необходимо разделить ее на зоны.

Представим сеть, состоящую из 100 и более маршрутизаторов. Каждый маршрутизатор должен хранить в базе данных полную информацию о подключенных маршрутизаторах и интерфейсах всей сети. Кроме того, алгоритм SPF требует значительных ресурсов памяти и процессора. Чтобы уменьшить нагрузку на сеть и маршрутизаторы протоколом OSPF предусмотрено разделение сети на зоны:


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

В OSPF зона 0 (Area 0) всегда является магистральной (backbone), к которой подключаются остальные зоны. Связь между зонами всегда осуществляется только через магистральную зону.

Всего существует 6 зон:

Название зоны

Отвечает за межзональную маршрутизацию. Всегда присутствует в топологии сети

Обычная зона. Может содержать пограничные маршрутизаторы зоны ABR и пограничные маршрутизаторы автономной системы ASBR, то есть может подключаться к другим автономным системам.

Не принимает анонсы о внешних сетях всей автономной зоны, однако принимает анонсы о других зонах. Маршрут к внешним сетям заменен на маршрут по умолчанию. Не может иметь ASBR маршрутизатор, то есть не подключается к другим автономным сетям.

Totally Stub - полностью тупиковая

Такая же сеть, как и Stub, однако в дополнение не принимает анонсы о других зонах. Маршруты к другим зонам заменены на маршрут по умолчанию.

Not-So-Stubby-Area (NSSA) - частично тупиковая сеть

Такая же сеть, как и Stub, однако может иметь ASBR маршрутизатор.

“Усиление” NSSA, кроме того маршруты к другим зонам заменены на маршрут по умолчанию.

Мы же рассмотрим только магистральные и стандартные зоны.

Следует выделить специальные маршрутизаторы, играющие определенную роль при разделении на зоны:

Магистральный маршрутизатор ( Backbone router, BR ) - используется только в зоне 0.

Пограничный маршрутизатор ( Area Border Router, ABR ) - включается на стыке 2-х и более зон.

Внутренний маршрутизатор ( Internal Route r) - обычный внутризонный маршрутизатор.

Пограничный маршрутизатор автономной сети ( AS Boundary router, ASBR ) - подключается на стыке разных автономных систем


К маршрутизаторам BR, ABR, ASBR предъявляются большие требования по мощности и пропускной способности, так как они оперируют с большими потоками данных.

Составление таблиц протокола

При работе протокола OSPF в каждом маршрутизаторе создаются 3 таблицы, необходимые для нормальной работы сети.

Таблица смежности или таблица соседей ( Adjacency table ) - содержит всех непосредственно подключенных соседей:



Топологическая таблица (Link State Data Base, LSDB) - содержит информацию обо всех маршрутизаторах своей зоны и активных интерфейсах этих маршрутизаторах. Все маршрутизаторы одной зоны имеют одинаковую таблицу


Таблица маршрутизации (Route table) - вычисляется алгоритмом SPF на основе информации из топологической таблицы


Чтобы понять назначение всех этих таблиц сравним работу протокола с работой обычного навигатора, установленного в машине. Водителю необходимо доехать из пункта А в пункт В. Для этого в навигатор загружают карту, чтобы он смог найти дорогу. Эта карта и является аналогом Топологической таблицы LSDB. Затем навигатор вычисляет оптимальный маршрут, учитывая при этом множества параметров:

  • пробки на дорогах
  • дорожное покрытие
  • скоростное ограничение
  • платные и бесплатные дороги
  • радары и многое другое.

Подобные параметры также учитываются протоколами SPF.

В результате на экране навигатора отображаются один или несколько маршрутов. Эти маршруты являются аналогом таблицы маршрутизации протокола OSPF.

Как же строятся таблицы смежности и топологии?

Для этого маршрутизаторы рассылают друг другу специальные обновления, называемые анонсами LSA (Link State Advertisements). Анонсы рассылаются по адресам 224.0.0.5 и 225.0.0.6. Существуют несколько типов анонсов. Мы их рассмотрим ниже в этом уроке.

Типы OSPF сетей

Маршрутизация работает на уровне L3, однако для того, чтобы связать маршрутизаторы другом с другом, используются различные технологии, работающие на уровнях L1 и L2. Одна из таких технологий Ethernet. Существуют и другие технологии такие, как Frame Relay, ATM, ISDN и так далее. Мы подробно их изучим в одной из следующих глав. Сейчас вкратце остановимся на том, каковы особенности работы протокола OSPF в сетях, где используются перечисленные технологии.

Прежде всего следует знать, что в некоторых типах сетей, протокол выбирает выделенный (Designated, DR) и резервный выделенный (Backup Designated Router, BDR) маршрутизаторы. Сделано это с целью уменьшения служебного трафика. Об этом подробнее чуть далее.

Выделяют следующие типы OSPF сетей:

  • Point-to-Point (сети типа точка-точка) - связь организуется только между парой маршрутизаторов. DR и BDR не выбираются. Например, 2 маршрутизатора связаны с помощью технологии ISDN.


  • Broadcast (широковещательные сети) - сети с множественным доступом (то есть объединяет сразу несколько маршрутизаторов) с поддержкой широковещательных рассылок. Например, сеть Ethernet. DR и BDR в данном случае выбираются


  • Nonbroadcast multiaccess, NBMA - сеть с множественным доступом, однако широковещательная рассылка в них не поддерживается. В таких сетях задействованы технологии Frame Relay, ATM, X.25. DR и BDR в них могут выбираться, а могут и не выбираться. Все зависит от режима работа сети NBMA


В данном курсе рассматривать сети NBMA мы не будем, однако для общей информации приведу таблицу режимов работы сетей NBMA

Режим работы

Похож на режим Broadcast в Ethernet, однако необходимо вручную указать всех соседей. Все маршрутизаторы должны находиться в одной подсети. Выбираются DR и BDR, работает в полносвязной топологии.

Сеть воспринимается как набор нескольких соединений point-to-point. Соседи обнаруживаются автоматически за счет многоадресной (multicast) рассылки пакетов Hello. Все маршрутизаторы должны находиться в одной подсети. DR и BDR не выбираются, все соседи обнаруживаются автоматически.

Похож на режим point-to-point, то есть устанавливается только парное соединение. DR и BDR не выбираются.

Похож на режим Broadcast в Ethernet.Соседи обнаруживаются автоматически за счет многоадресной (multicast) рассылки пакетов Hello. Все маршрутизаторы должны находиться в одной подсети. Выбираются DR и BDR, работает в полносвязной топологии.

Похож на режим Point-to-multipoint, однако необходимо вручную указывать всех соседей. Multicast и Broadcast рассылка пакетов Hello не поддерживается. DR и BDR не выбираются.


Итак, для чего же нужны DR и BDR?

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

Если взглянуть на сеть Ethernet, то отношения смежности установятся каждый с каждым. Это приведет к резкому увеличению служебного трафика. Чтобы снизить трафик была выбрана концепция с применением DR и BDR.

Данный принцип основан на следующих правилах:

  • Выбираются DR и BDR
  • Если DR выходит из строя, то BDR сразу становится DR. После этого выбирается другой BDR.
  • Отношения смежности устанавливаются только с DR и BDR. Это означает, что передача топологической информации осуществляется только между выделенным и невыделенным (DROther) маршрутизаторами.
  • Для связи с DR и BDR используется адрес групповой рассылки 224.0.0.6.
  • DR и BDR связываются с остальными маршрутизаторами по адресу 224.0.0.5
  • При любом изменении сети, обновления передаются всегда только DR и BDR (по каналу 224.0.0.6). И только после этого DR оповещает остальные маршрутизаторы (по каналу 224.0.0.5).
  • BDR не принимает активного участия в рассылке обновлений, однако содержит идентичную базу данных, что и DR на случай отказа последнего.



А как выбираются DR и BDR?

В OSPF каждый маршрутизатор обязан иметь свой ID. ID представляет собой 32-х битный десятичный номер, который выглядит как IP адрес. Поэтому в качестве ID выбирается IP адрес работающего порта. Затем все маршрутизаторы сравнивают свои ID. Побеждает тот у кого ID имеет большее значение. Весь процесс выбора DR автоматический, однако на его результаты можно повлиять.

Для этого можно настроить один из следующих параметров:

  • Приоритет интерфейса
  • Router ID
  • IP адрес loopback интерфейса

Если приоритет установлен на 0, то маршрутизатор никогда не будет выбран в качестве DR/BDR. На блок-схеме внизу указан процесс выбора ID OSPF маршрутизатора:


Сам процесс выбора DR и BDR рассмотрен подробнее в конце данного урока.

Принцип работы протокола. Типы пакетов, состояния связей

Углубимся немного в детали протокола. Рассмотрим типы пакетов, а также узнаем какие стадии проходит маршрутизатор в процессе конвергенции.

Рассмотрим весь процесс по порядку на примере сети


Как только включили маршрутизаторы они находятся в состоянии Down , то есть никаких отношений соседства нет и они даже не знают друг о друге.

1. Чтобы обнаружить соседей каждые 10 с каждый маршрутизатор отправляет пакет Hello по адресу 224.0.0.5, а также сам принимает такой же пакет от соседей.

  • Свой ID (Router ID)
  • Hello Interval
  • Dead Interval
  • ID своих соседей (Neighbors)
  • Маску подесети (Subnet mask)
  • Номер зоны (Area ID)
  • Приоритет маршрутизатора (Router Priority)
  • Адреса DR и BDR маршрутизаторов
  • Пароль аутентификации

2. Сразу после отправки пакета маршрутизаторы переходят в состояние Init .

3. Первый пакет Hello не содержит ID соседа. Пакет посылается по групповому адресу 224.0.0.5:


Как только R2 получит пакет от R1, то R2 в начале сравнит все параметры. если они совпадают, то адрес R1 вносится в таблицу соседей. После этого R2 вложит ID R1 в следующий пакет. Hello, который отправляется по адресу маршрутизатора R1, то есть ответный пакет Hello не использует групповой адрес:


R1, приняв пакет от R2 тоже сравнит параметры. И если они совпадают, то адрес R2 вносится в таблицу соседей. Затем R1 анализирует ID соседей в принятом пакете. Как только R1 увидит свой ID в пакете от R2, то перейдет в состояние двусторонней связи 2WAY . Аналогичный процесс происходит и с R2. Весь процесс проиллюстрирован ниже:

4. Если тип сети Broadcast, то выбирается DR/BDR. В процессе выбора все маршрутизаторы переходят в состояние Exstart . Изначально на стадиях INIT и 2WAY все маршрутизаторы в пакетах Hello указывают, что DR и BDR = 0.0.0.0, то есть не определены.


После того, как определены все соседи, маршрутизатор с более высоким ID указывает себя в качестве DR во пакетах Hello. Остальные маршрутизаторы, приняв такой пакет, сравнивают свои ID c ID “самопровозглашенного” DR. Если их ID меньше, то они с этим соглашаются и также передают его ID в своих пакетах Hello.

Аналогичным способом выбирается и BDR.


Что будет, если после выбора DR/BDR в сети появится маршрутизатор с большим ID?

Ничего. Процесс выбора DR/BDR запускается лишь раз. Если DR отключится, то его место займет BDR, а вместо BDR может стать новый маршрутизатор с более высоким ID.

Если тип сети Point-to-Point, то данный процесс пропускается.

5. Затем начинается процесс обмена топологическими данными. Для этого маршрутизаторы рассылают друг другу пакеты DBD ( Database Description ). Маршрутизаторы переходят в состоянии Exchange. На основе данных, полученных от DBD строится топологическая таблица. Для подтверждения приема пакета DBD маршрутизатор отправляет пакет LSAck ( Link State Acknowledgment ), в котором говорится: “Я все принял.” На данной стадии маршрутизаторы используют одноадресатные пакеты (unicast), то есть не используют групповой адрес 224.0.0.5.

6. Если у маршрутизатора отсутствует часть информации о структуре сети либо его база данных устарела и он хочет ее обновить, то отправит запрос LSR ( Link State Request ), в котором говорится: “Моя база данных неполная либо устарела. Отправьте мне актуальную информацию.” Ответом на запрос LSR будет пакет LSU ( Link State Update ). Получив LSU маршрутизатор подтвердит его получение пакетом LSAck. Во время данного процесса маршрутизатор пребывает в состоянии Loading .

7. Когда у маршрутизаторов больше нет вопросов друг к другу и их базы данных актуальны и равны они переходят в состоянии FULL .

Итак, подведем итоги.

Для своей работы OSPF использует следующие типы пакетов:

Hello - keep-alive пакет, которые рассылается каждые 10 с. Предназначен для установления “добрососедских” отношений между маршрутизаторами, которые непосредственно подключены друг к другу. А также для объявления соседям, что канал/маршрутизатор все еще “жив”. С ним связан Dead интервал, который ждет 40с (всегда в 4 раза больше, чем Hello интервал). Если маршрутизатор не примет Hello от соседа в течении 40 c, то вся таблица пересчитывается снова. А соседям сразу высылается новый анонс.

Database Description , DBD - передает топологическую информацию сети.

Link State Request , LSR - запрос соседям на передачу части данных о состоянии каналов для обновления топологической базы данных.

Link State Update , LSU - ответ маршрутизатора на запрос LSR

Link State Acknowledgment , LSAck - подтверждение в получении LSU.

В процессе работы протокола маршрутизатор проходит через следующие состояния:

Standard Areas

ospf_standard_area

В примере выше, router 2 выступает в роли ABR (Area Border Router) между Standard Area и Backbone Area. R3 пересылает маршруты из внешнего (не OSPF) домена и соответственно выступает как ASBR (Autonomous System Border Router).

Как упоминалось ранее, LSA типов 1 и 2 распространяются между маршрутизаторами в одной area. Это справедливо для всех типов area, т.к. эти типы LSA используются для построения SPF дерева области, которое описывает ее топологию и не имеет прямого отношения к другим областям. Другими словами, алгоритм SPF рассчитывает маршруты внутри области, а между областями действуют другие принципы выбора лучших маршрутов.

LSA типов 3 и 5, которые переносят информацию о ,соответственно, внутренних и внешних (по отношению к OSPF домену) маршрутах пересылаются между стандартными областями через Backbone area. Внешние маршруты генерируются ASBR, внутренние ABR.

Так-же стоит обратить внимание на LSA типа 4. Эти LSA отправляются в backbone ABR и содержат информацию о маршруте к ASBR, для того, чтобы все маршрутизаторы OSPF домена имели информацию о маршруте к ASBR.

Standard Area обеспечивают оптимальное построение маршрутов в OSPF домене, но в то-же время пораждают ряд недостатков связанных с тем, что каждый маршрутизатор должен хранить и обрабатывать информацию о всех маршрутах в сети. В некоторых случаях в таком подходе нет необходимости, а иногда (в случае использования низкопроизводительных маршрутизаторов не способных хранить и обрабатывать информацию о всех маршрутах сети) и вовсе невозможно использовать standard area на всех маршрутизаторах в домене. Для таких случаев существует возможность настроить stub area для того чтобы ограничить распространение некоторых типов LSA тем самым снизив нвгрузку на маршпутизаторы.

Stub Areas

ospf_stub_area

Для того, чтобы сконфигурировать area, как stub, все маршрутизаторы подключенные к этой area должны быть настроены для нее как stub. Важно то, что stub маршрутизаторы не могут установить соседство c non-stub маршрутизаторами.

Totally Stubby Areas

ospf_total_stub_area

Для того чтобы настроить totally stubby area необходимо использовать следующую команду:

Таким образом, Stub и totally stubby area могут быть использованы для уменьшение нагрузки на маршрутизаторы путем фильтрации LSA и уменьшения количества маршрутов в их таблицах маршрутизации. Тем не менее ни один из этих типов area не поддерживает подключения ASBR т.к. LSA типов 4 и 5 запрещены к передаче внутри областей указанных типов. Для решения этой проблемы, несмотря на возможно одно из самых нелепых названий, инженеры Cisco предложили концепцию not-so-stubby area.


Базовая настройка OSPF

В качестве первого примера рассмотрим случай, если у нас всего одна магистральная зона (Area 0).

Допустим, у нас имеются коммутаторы SNR-S2995G-24FX, которые используются на уровне агрегации в сети оператора связи. На R1 терминируются клиенты с подсетью 10.10.11.0/24, которую мы хотим анонсировать и передать на BRAS, а также хотим, чтобы между коммутаторами была L3-связность.

Для такой ситуации оправдано применение протокола OSPF, т.к. количество коммутаторов и подсетей будет расти в будущем. Сложность масштабируемости и настройки статической адресации также будут быстро увеличиваться. В случае применения OSPF нам необходимо лишь выполнить первоначальную настройку и в будущем OSPF будет самостоятельно анонсировать добавленные подсети (добавленные на SVI подсети будут иметь тип Connected. Для того, чтобы OSPF перекладывал маршруты из Connected в OSPF, необходимо применить команду redistribute connected . Это мы рассмотрим во втором примере данной статьи).

В нашем примере схема будет выглядеть следующим образом:

Динамическая маршрутизация на коммутаторах SNR

conf t
vlan 10;3000
interface vlan 10
ip address 172.31.1.1 255.255.255.252
!
interface vlan 1000
ip address 10.10.11.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.11 255.255.255.255
!
interface E1/0/1
switchport access vlan 10
!
router ospf 1
ospf router-id 10.10.10.11
network 172.31.1.0/30 area 0
network 10.10.11.0/24 area 0
network 10.10.10.11/32 area 0
end

conf t
vlan 10
interface vlan 10
ip address 172.31.1.2 255.255.255.252
!
interface Loopback1
ip address 10.10.10.12 255.255.255.255
!
interface E1/0/1
switchport access vlan 10
!
router ospf 1
ospf router-id 10.10.10.12
network 172.31.1.0/30 area 0
network 10.10.10.12/32 area 0
end

  1. DOWN - начальное состояние;
  2. Init - после отправки Hello другому коммутатору, он ожидает от другого коммутатора свой hello. В этот момент он находится в состоянии Init;
  3. Full - когда коммутаторы получили всю информацию и LSDB синхронизирована, оба коммутатора переходят в состояние fully adjacent (FULL).

Убедимся, что соседство установилось и подсети R1 доступны через R2 и наоборот:

Динамическая маршрутизация на коммутаторах SNR

Как мы видим, соседство установилось и был выбран DR. В нашем случае, R2.

Динамическая маршрутизация на коммутаторах SNR

То же мы видим и на R2. Адрес Loopback1 и клиентская подсеть доступны с R2.

Настройка OSPF с использованием нескольких зон

Производительность коммутаторов ограничена. Размеры LSDB могут достигать размеров в тысячи маршрутов, при этом коммутатор тратит много ресурсов на просмотр своей таблицы маршрутизации, а если учесть, что помимо OSPF коммутатор должен обрабатывать и другие задачи, загрузка CPU может достигать критически высоких значений, что скажется на производительности коммутатора. В таких случаях целесообразно применение деления на зоны, которые помогут уменьшить количество маршрутов в LSDB, тем самым снизив нагрузку на CPU. Давайте рассмотрим пример использования NSSA и Totally Stubby area на следующей схеме:

Динамическая маршрутизация на коммутаторах SNR

R1:
vlan 1;100;300;1000
Interface Ethernet1/0/1
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 100
!
Interface Ethernet1/0/3
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 300
!
interface Vlan100
ip address 172.31.1.1 255.255.255.252
!
interface Vlan300
ip address 172.31.3.2 255.255.255.252
!
interface Vlan1000
ip address 10.10.100.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.1 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.1
passive-interface Vlan1000
network 172.31.1.0/30 area 0
network 172.31.3.0/30 area 0
redistribute connected
!

vlan 1;100;200;400
!
Interface Ethernet1/0/1
description R1
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 100
!
Interface Ethernet1/0/2
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 200
!
Interface Ethernet1/0/4
description R4
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 400
!
interface Vlan100
ip address 172.31.1.2 255.255.255.252
!
interface Vlan200
ip address 172.31.2.1 255.255.255.252
!
interface Vlan400
ip address 172.31.4.1 255.255.255.252
!
interface Loopback1
ip address 10.10.10.2 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.2
area 1 stub no-summary
network 172.31.1.0/30 area 0
network 172.31.2.0/30 area 0
network 172.31.4.0/30 area 1
redistribute connected
!

vlan 1;200;300;500
!
Interface Ethernet1/0/2
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 200
!
Interface Ethernet1/0/3
description R1
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 300
!
Interface Ethernet1/0/5
description R5
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 500
!
interface Vlan200
ip address 172.31.2.2 255.255.255.252
!
interface Vlan300
ip address 172.31.3.1 255.255.255.252
!
interface Vlan500
ip address 172.31.5.1 255.255.255.252
!
interface Loopback1
ip address 10.10.10.3 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.3
area 2 nssa default-information-originate
network 172.31.2.0/30 area 0
network 172.31.3.0/30 area 0
network 172.31.5.0/30 area 2
redistribute connected
!

vlan 1;400;3000
!
interface Vlan400
ip address 172.31.4.2 255.255.255.252
!
interface Vlan3000
ip address 10.10.120.1 255.255.255.0
!
Interface Ethernet1/0/4
description R2
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 400
!
interface Loopback1
ip address 10.10.10.4 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.4
passive-interface Vlan3000
area 1 stub
network 10.10.10.4/32 area 1
network 10.10.120.0/24 area 1
network 172.31.4.0/30 area 1
!

vlan 1;500;2000
!
Interface Ethernet1/0/5
description R3
switchport discard packet untag
switchport mode trunk
switchport trunk allowed vlan 500;2000
!
interface Vlan500
ip address 172.31.5.2 255.255.255.252
!
interface Vlan2000
ip address 10.10.110.1 255.255.255.0
!
interface Loopback1
ip address 10.10.10.5 255.255.255.255
!
router ospf 1
ospf router-id 10.10.10.5
passive-interface Vlan2000
area 2 nssa
network 172.31.5.0/30 area 2
redistribute connected
!

На данной схеме приведена сеть, в которой используется как Totally stubby (R2-R4), так и NSSA (R3-R5) зоны.

Внешние маршруты других зон в NSSA (R5) будут заменены на маршрут по умолчанию.

Для Totally stubby-зоны (R4) все маршруты будут заменены на маршрут по умолчанию.

Для анонса сетей, находящихся в Totally stubby зоне, необходимо указать их в Router OSPF.

Для анонса адресов Loopback в Area 0 используем команду redistribute connected . Это позволит нам не только упростить конфигурацию, но и сократить количество маршрутов, которые будут анонсироваться в другие типы зон, так как такие маршруты будут считаться External.

Для того, чтобы коммутаторы не искали соседей за SVI, на котором находятся клиентские подсети, применим команду passive-interface . Для R2 также применим команду redistribute connected metric-type 1 для того, чтобы увидеть разницу в типе метрик.

Посмотрим на таблицу маршрутов OSPF для маршрутизатора R1:

Динамическая маршрутизация на коммутаторах SNR

В данной таблице мы видим все маршруты, которые анонсируются на R1 путем OSPF. Маршруты до Loopback-адресов R2, R3 и R5 анонсируются как "E" (LSA Type 5), то есть, получены путем перекладывания маршрутов из другого протокола маршрутизации (в нашем случае из connected). Цифра 1 или 2 после буквы "E" показывает на тип метрики. 1 тип увеличивает метрику маршрута при расчете SPF, а 2 тип нет:

Динамическая маршрутизация на коммутаторах SNR

Давайте посмотрим на таблицу маршрутизации OSPF на R2 и R4:

Динамическая маршрутизация на коммутаторах SNR
Динамическая маршрутизация на коммутаторах SNR

Здесь мы наглядно видим зачем в принципе используются Totally stub - зоны. Вместо десятков маршрутов для нас доступен всего один - маршрут по умолчанию (для того, чтобы R2 анонсировал только маршрут по умолчанию, используем команду area 1 stub no-summary ). Несмотря на то, что маршрут всего один, все маршрутизаторы и сети доступны:

Динамическая маршрутизация на коммутаторах SNR

R4 не может генерировать LSA Type 5, так как находится в stub-зоне. Адрес Loopback и подсети, подключенные к R4 указаны вручную командой network .

Давайте посмотрим что у нас в NSSA на R5:

Динамическая маршрутизация на коммутаторах SNR

Как мы видим, маршруты, которые были redistribute, на R5 не попали, но они доступны через default, анонсируемый R3. Для того, чтобы R3 передавал информацию о маршруте по умолчанию мы применили команду area 2 nssa default-information-originate .

Динамическая маршрутизация на коммутаторах SNR

Так как R5 находится в NSSA, то он может выступать в качестве ASBR, а также перекладывать маршруты из других протоколов маршрутизации. Это значит, что в NSSA могут находится External-маршруты в виде специального LSA Type 7, который может находиться только в NSSA. На границе зоны пограничный коммутатор преобразует LSA Type 7 в LSA Type 5.

Для фильтрации маршрутов можно также воспользоваться функционалом ACL. Например, если на коммутаторе в NSSA-зоне мы хотим принимать только маршрут по умолчанию и маршруты из подсети 172.31.0.0/16, то необходимо создать ACL на R5 типа:

access-list 100 permit ip host-source 0.0.0.0 any-destination
access-list 100 permit ip 172.31.0.0 0.0.255.255 any-destination
access-list 100 permit ospf host-source 0.0.0.0 any-destination
access-list 100 permit ospf 172.31.0.0 0.0.255.255 any-destination
access-list 100 deny ospf any-source any-destination
access-list 100 deny ip any-source any-destination
!
router ospf 1
filter-policy 100
!

В таком случае таблица маршрутов будет иметь следующий вид:

Динамическая маршрутизация на коммутаторах SNR

Количество маршрутов сократилось, но все адреса Loopback и подсетей доступны через маршрут по умолчанию.

Заключение

В данной статье мы рассмотрели принципы работы протокола OSPF и его настройке на коммутаторах SNR. В будущем также планируется выход второй части данной статьи, посвященный протоколу BGP.

Not-so-stubby Areas

ospf_nssa

NSAA так-же может быть двух типов stub и totally stubby area. Для настройки stub (normal) NSSA все маршрутизаторы должны быть настроены следующим образом:

LSA типа 3 будут попадать в эту area а так-же отправляться из нее. В отличии от обычной stub area маршрут по-умолчанию не будут отправлятся в эту area если это специально не настроено.

Для добавления функцианала totally stubby area, который позволит фильтровать LSA типа 3 все ABR необходимо настроить с параметром no-summary:

ABR totally NSSA (или если хотите not-so-totally-stubby area) отправляет маршрут по умолчанию без дополннительной конфигурации.


Динамическая маршрутизация

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

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

Типы маршрутизаторов в OSPF

  • Internal router - маршрутизатор, у которого все стыковочные интерфейсы находятся в одной зоне. Такой маршрутизатор не обменивается маршрутной информацией с другими AS и имеет одну LSDB.
  • Area border router (ABR) - маршрутизатор, который находится на границе с магистральной зоной, и служит шлюзом для трафика, который проходит между зонами. Хотя бы один интерфейс такого маршрутизатора должен находиться в магистральной зоне. Для каждой зоны ABR имеет отдельную LSDB.
  • Backbone router - магистральный маршрутизатор. Хотя бы один интерфейс такого маршрутизатора должен находиться в магистральной зоне. Внутренний маршрутизатор, у которого есть интерфейсы, принадлежащие нулевой зоне, тоже будет считаться магистральным. Может быть как ABR, так и не быть им.
  • AS boundary router (ASBR) - такой маршрутизатор может обмениваться маршрутами с маршрутизаторами в других AS, или маршрутизаторами, использующими другой протокол маршрутизации. ASBR может быть в любом месте AS и являться как магистральным, так и внутренним или пограничным.


Типы зон OSPF

Разделение AS на зоны OSPF может снизить загрузку CPU маршрутизаторов, сократить размер LSDB и сократить количество пакетов LSA.

  • Backbone (Area 0) - Магистральная зона OSPF. Это обычная зона, через которую происходят все взаимодействия между другими зонами.
  • Normal - Зона с номером отличным от 0. Такой тип устанавливается по умолчанию, если в конфигурации не указан иной.
  • Stub - Маршрутизаторы в такой зоне не принимают информацию об External-маршрутах, но принимают маршруты из других зон. Маршрутизатор в Stub-зоне не может выступать в качестве ASBR. Чтобы передавать трафик за границу AS, будет использован маршрут по умолчанию, транслируемый от ASR. Для настройки такого типа зон используется команда area X stub .
  • Totally Stub - Stub-зона, которая принимает только маршрут по умолчанию. Для настройки такого типа зон используется команда area X stub no-summary .
  • NSSA - Stub-зона, но маршрутизатор в такой зоне может выступать в качестве ASBR. Для трансляции External маршрутов используется LSA Type 7, которые трансформируются в LSA Type 5 на ASR. Для настройки такого типа зон используется команда area X nssa .
  • Totally NSSA - Totally stub зона, но в ней может находиться ASBR. Имеет только маршрут по умолчанию. Для настройки такого типа зон используется команда area X nssa no-summary .

Вывод

Читайте также: