Какие параметры сети учитывают метрики поддерживаемые протоколом ospf
Протокол маршрутизации OSPF
13.1. Общие сведения о протоколе OSPF
Open Shortest Path First (OSPF) является протоколом состояния канала Link-state, который быстро реагирует на изменения в сети, рассылая модификации при изменениях в сетевой топологии всем маршрутизаторам в пределах некоторой области сети. OSPF предназначен для работы в больших гибких составных сетях и может работать с оборудованием разных фирм- производителей, поэтому получил широкое распространение.
Административное расстояние протокола OSPF равно 110 (см. таблицу 11.2). Протокол используется внутри определенной области, в которой маршрутизаторы разделяют маршрутную информацию между собой ( рис. 13.2). Таких областей может быть несколько, среди которых нулевая область ( area 0) является главной или единственной. Далее рассматривается случай единственной области area 0.
Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:
Различают три типа сетей:
В сетях первых двух типов период рассылки Hello-пакетов составляет 10 секунд, а в сетях NBMA – 30 с. Период Dead Interval – в четыре раза больше. Обмен Hello-пакетами производится с использованием адресов 224.0.0.5 или 224.0.0.6 многоадресного режима ( multicast ) без подтверждения доставки.
Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-State Acknowledgment – LSAck).
Когда в сети происходит изменение, например, соседнее устройство становится недостижимым, протоколы состояния связи заполняют всю область обновлениями LSA s с применением многоадресного режима multicast 224.0.0.5. Информация рассылается во все порты, кроме порта, на котором данная информация была получена. Каждый маршрутизатор копирует сообщение LSAs и модифицирует свое состояние связи, т. е. топологическую базу данных, которая содержит весь набор состояний. Затем маршрутизатор передает LSAs на все соседние маршрутизаторы в пределах области ( area ) и они повторно вычисляют маршруты. Итак, обновления маршрутной информации вызываются изменениями в сети.
Пакет OSPF размещается внутри IP-пакета сразу вслед за заголовком. Основной информацией пакета OSPF является:
Существует три механизма выбора маршрутизаторов DR и BDR.
После выбора DR и BDR сохраняют свои роли, даже если к сети добавляются маршрутизаторы с более высоким приоритетом, до тех пор, пока маршрутизаторы не будут переконфигурированы.
Интерфейс loopback должен формироваться с маской подсети на 32 бита – 255.255.255.255. Такая маска называется маской узла, потому что маска подсети определяет сеть одного узла.
Значение приоритета (№) интерфейса может изменяться в пределах от 0 до 255. Приоритет можно посмотреть по команде show ip ospf interface :
Кроме того, идентификатор маршрутизатора может быть задан администратором по команде
Метрика протокола OSPF
Соединение FastEthernet имеет стоимость 1 единица, Ethernet – 10 единиц, канал ОЦК со скоростью 64 Кбит/с – 1562,5 
Суммарное значение метрики будет равно М 
OSPF (часть первая)
Данная статья была написана для себя, чтоб при необходимости быстро освежить память и разобраться с теорией. Решил ее опубликовать, возможно кому-то будет полезна, а может в чем то ошибаюсь.
В данной статье попытаемся разобраться с теорией работы протокола OSPF. Не будем углубляться в историю и процесс создания протокола, данная информация в изобилии есть почти в каждой статье о OSPF. Мы постараемся более детально разобраться как работает протокол OSPF и как строит свою таблицу маршрутизации. Важно дать общее определение протокола:
OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.
Возникает сразу вопрос — Что есть технология отслеживания состояния канала? Данное название считаю не совсем удачным. Сложилось так, что существует два типа протоколов динамической маршрутизации: Link-state и Distance-Vector. Рассмотрим их принципы работы:
В Distance-Vector протоколах, маршрутизатор узнает информацию о маршрутах посредством маршрутизаторов непосредственно подключенных в один с ним сегмент сети. То есть, маршрутизатор имеет информацию о топологии только в границах его соседних маршрутизаторов и понятия не имеет как устроена топология за этими маршрутизаторами, ориентируясь только по метрикам. В Link-state протоколах каждый маршрутизатор должен непросто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. Это достигается за счет построения специальной базы LSDB, но подробнее об этом позже.
Итак, начнем с того, как же строится LSDB из которой маршрутизатор узнает о всех-всех маршрутах? Построим начальную топологию для изучения. Выглядит она так:
Будем настраивать OSPF. С чего начинается OSPF? C установления соседства между маршрутизаторами — после активации OSPF на интерфейсах маршрутизатора, маршрутизаторы начинают рассылать Hello сообщения. Данное сообщение рассылается на мультикастовый адрес — 224.0.0.5 каждые 10 секунд (Hello Timer). Мы включим сначала OSPF на маршрутизаторе vIOS1.
Посмотрим как выглядит Hello-пакет:
В сообщении важно обратить внимание на такие поля как Area ID, Source OSPF Router. При запуске процесса OSPF выбирается Router ID, который необходим для идентифицирования маршрутизатора среди остальных маршрутизаторов OSPF. Правила выбора данного параметра следующие:
1. Настроен специальной командой router-id A.B.C.D — в формате ip адерса.
2. Настроен один loopback-интерфейс и несколько интерфейсов с различными адресами:
Итак, мы включили OSPF на vIOS1 и он начал каждые 10 секунд отправлять Hello-пакеты. Включим OSPF на vIOS2 и проследим как будут устанавливаться отношения соседства.
Итак, внимательно следим за последовательностью сообщений. Сначала Hello отправляет только маршрутизатор 1.1.1.1 ( 192.168.1.1 ), как только мы включим OSPF на 192.168.1.2, то отправится Hello пакет. vIOS1 и vIOS2 получат Hello пакеты друг у друга и для того, чтоб соседство состоялось важно, чтобы в конфигурации OSPF на обоих маршрутизаторах были одинаковыми следующие параметры:
База LSDB будет содержать в себе информацию о маршрутах и данная LSDB после установления соседства должна быть идентичная на всех маршрутизаторах в пределе одной зоны. И, первым делом, маршрутизаторы после установления соседства начинают процесс синхронизаций своих баз данных друг с другом (vIOS1 c vIOS2). Как можно увидеть все начинается с обменом между собой сообщений DB Description (DBD). Чтоб стало более понятно, расскажем о типах сообщений, который использует OSPF:
Объявление о состоянии канала (Link State Advertisement, LSA) — единица данных, которая описывает локальное состояние маршрутизатора или сети. Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB). LSDB состоит из нескольких видов LSA. Очень подробно о каждом LSA написано в этой статье. В сообщениях DBD используется достаточно много флагов для определения состояния синхронизации, а также данные сообщения содержат информацию о собственной базе данных. То есть, vIOS1 сообщает в данных сообщениях, что в моей базе есть информация о таких сетях, как 192.168.0/24, 1.1.1.0/24 (LSA Type 1), а vIOS2 в свою очередь сообщает, что у него есть записи о сетях: 192.168.2.0/24, 2.2.2.0/24 (LSA Type 1). После получения сообщений DBD, каждый маршрутизатор отправляет LSAck в подтверждение о полученном сообщении, и, далее, сравнивает информацию в базе соседа со своей. Если найдено, что не достает какой-либо информации, то маршрутизатор отправляет LS Request, где запрашивает полную информацию о каком-либо LSA. Например, vIOS1 запросил LS Request у vIOS2, vIOS2 отправляет в ответ LS Update, в которой уже содержится подробная информация о каждом маршруте. Ниже показан LS Update:
Как видите, в данном сообщении vIOS2 рассказывает об известных ему подсетях и информацию связанную с ними. Также, vIOS1 рассказывает о своей LSDB. И в конце концов, маршрутизаторы имеют одинаковую LSDB. Как только процесс завершен, запускается алгоритм Дейкстры (Shortest Path First). Он рассчитывает все известные маршруты из LSDB и лучшие из них помещает в таблицу маршрутизации. Лучший, тот у которого метрика ниже, но об этом позже.
Задумаемся о вопросе, что будет, если мы активируем 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? Применяются следующие критерии:
После получения новой информации от vIOS3, DR рассылает LS Update сообщения всем маршрутизаторам на адрес 224.0.0.5, на что остальные маршрутизаторы, получив пакет отправляют LS Acknowledge для DR, но уже на адрес 224.0.0.6 (адрес для DR/BDR).
По такой же схеме у нас подключается и vIOS4. После синхронизации, у всех маршрутизаторов одна и так же LSDB. Посмотрим как выглядят состояния соседства у vIOS3. Команда show ip ospf neighbor:
Как мы можем увидеть, DR — 2.2.2.2, BDR — 1.1.1.1, а с vIOS4 выбрано состояние 2WAY/DROTHER. О состояниях соседства была дана ссылка выше.
А вот состояния соседства на vIOS1 c установленном соседством c vIOS:
Как видите у него два DR потому, что у него имеется сосед и в другом сегменте сети.
Мультизоны
Рассмотрим принципы работы OSPF в случае, когда используется несколько зон. Изменим нашу топологию, добавив новые маршрутизаторы:
Начнем с того, что сконфигурируем 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 — суммарное объявление о состоянии каналов сети:
По своей сути, структура 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 на изменения в топологии.
Посмотрим на нашу топологию и представим, что vIOS3 перестал работать (состояние каналов не изменилось). Поможет в перестроении топологии Dead Interval Timer — 40 секунд. Если в течении данного интервала, маршрутизатор не получает Hello-пакета от соседа, то рушится соседство. В нашем случае, DR разошлет LS Update с LSA Type 2, где укажется, что среди подключенных маршрутизаторов нет vIOS3, это приведет к тому, что запустится SPF и пересчитает LSDB уже без LSA полученных от vIOS3. Важно заметить, что на обычном маршрутизаторе типа vIOS4 даже исчерпание Dead Interval Timer и потеря соседства с vIOS3 не приводит к пересчету топологии, именно сообщение LS Update c LSA Type 2 запускает этот процесс.
Type 2 LSA — Network LSA — объявление о состоянии каналов сети:
Включим обратно 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 с маршрутизатора для обновления данных таймеров:
Далее, DR обработав данный LS Update, отправляет всем остальным маршрутизаторам LS Update на адрес 224.0.0.5. Как только, маршрутизаторы получили новую информацию — они отправляют LSAck. Тем самым достигается хорошая сходимость в OSPF.
Выбор лучшего маршрута
Маршрутизатор выбирает лучший маршрут на основании наименьшего значения метрики. Однако, OSPF учитывает и несколько других факторов при выборе маршрута. В данном случае важен источник маршрута и его тип. Приоритет выбора маршрута следующий:
cost = reference bandwidth / link bandwidth. Reference bandwidth — базис пропусной способности. По умолчанию, на Cisco равен 100Mbit.
ABR Loop Prevention. Как мы говорили выше, между зонами принцип работы OSPF похож на distance-vector протокол. Используя механизмы предотвращения петель, можем получить, что выбирается неоптимальный путь. Например, между зонами существует правило подобное Split Horizon из distance-vector протоколов. Рассмотрим это на примере, если изменить нашу топологию на границе зоны 0 и 4 так:
то мы получим, что vIOS18 будет выбирать неоптимальный путь с метрикой 100 через интерфейс Gi0/0. Происходит это в силу того, что vIOS18 не будет учитывать LSA Type 3, полученные не от зоны 0. Также, выше указанное правило запрещает передавать данный LSA Type 3 обратно в зону 0.
Протокол маршрутизации OSPF
13.1. Общие сведения о протоколе OSPF
Open Shortest Path First (OSPF) является протоколом состояния канала Link-state, который быстро реагирует на изменения в сети, рассылая модификации при изменениях в сетевой топологии всем маршрутизаторам в пределах некоторой области сети. OSPF предназначен для работы в больших гибких составных сетях и может работать с оборудованием разных фирм- производителей, поэтому получил широкое распространение.
Административное расстояние протокола OSPF равно 110 (см. таблицу 11.2). Протокол используется внутри определенной области, в которой маршрутизаторы разделяют маршрутную информацию между собой ( рис. 13.2). Таких областей может быть несколько, среди которых нулевая область ( area 0) является главной или единственной. Далее рассматривается случай единственной области area 0.
Для обмена маршрутной информацией между устройствами протокол OSPF использует пять типов пакетов:
Различают три типа сетей:
В сетях первых двух типов период рассылки Hello-пакетов составляет 10 секунд, а в сетях NBMA – 30 с. Период Dead Interval – в четыре раза больше. Обмен Hello-пакетами производится с использованием адресов 224.0.0.5 или 224.0.0.6 многоадресного режима ( multicast ) без подтверждения доставки.
Для подтверждения принятого пакета обновлений LSU используется пакет подтверждения (Link-State Acknowledgment – LSAck).
Когда в сети происходит изменение, например, соседнее устройство становится недостижимым, протоколы состояния связи заполняют всю область обновлениями LSA s с применением многоадресного режима multicast 224.0.0.5. Информация рассылается во все порты, кроме порта, на котором данная информация была получена. Каждый маршрутизатор копирует сообщение LSAs и модифицирует свое состояние связи, т. е. топологическую базу данных, которая содержит весь набор состояний. Затем маршрутизатор передает LSAs на все соседние маршрутизаторы в пределах области ( area ) и они повторно вычисляют маршруты. Итак, обновления маршрутной информации вызываются изменениями в сети.
Пакет OSPF размещается внутри IP-пакета сразу вслед за заголовком. Основной информацией пакета OSPF является:
Существует три механизма выбора маршрутизаторов DR и BDR.
После выбора DR и BDR сохраняют свои роли, даже если к сети добавляются маршрутизаторы с более высоким приоритетом, до тех пор, пока маршрутизаторы не будут переконфигурированы.
Интерфейс loopback должен формироваться с маской подсети на 32 бита – 255.255.255.255. Такая маска называется маской узла, потому что маска подсети определяет сеть одного узла.
Значение приоритета (№) интерфейса может изменяться в пределах от 0 до 255. Приоритет можно посмотреть по команде show ip ospf interface :
Кроме того, идентификатор маршрутизатора может быть задан администратором по команде
Метрика протокола OSPF
Соединение FastEthernet имеет стоимость 1 единица, Ethernet – 10 единиц, канал ОЦК со скоростью 64 Кбит/с – 1562,5 
Суммарное значение метрики будет равно М 
Протокол маршрутизации OSPF
13.2. Конфигурирование протокола OSPF
Ниже приведен пример конфигурирования протокола OSPF на маршрутизаторах составной сети ( рис. 13.3) с таблицей адресов (таблица 13.1).
Из рис. 13.3 и таблицы 13.1 следует, что Сеть 1 (192.168.10.16/28), Сеть 2 (192.168.10.32/27) и Сеть 4 (192.168.10.128/26) являются подсетями сети 192.168.10.0/24. Причем Сети 1, 2 и Сеть 4 разделены Сетью 5 и Сетью 6.
При конфигурировании протокола OSPF необходимо задать номер процесса (по умолчанию 1) и адреса непосредственно присоединенных сетей с их масками переменной длины (wildcard- mask ). При этом для каждой сети указывается номер области (по умолчанию area 0). Адреса сетей и интерфейсов приведены в таблице 13.1.
Скорость передачи на всех последовательных соединениях по умолчанию равна 128 Кбит/с, т. е. каждое соединение характеризуется метрикой в 781 единицу. Ниже приведены таблицы маршрутизации всех маршрутизаторов (A, B, C).
Таблица маршрутизации R_А:
Маршруты протокола OSPF помечены символом О, административное расстояние – 110. Метрика пути к сети 172.16.20.64 составляет 782 единицы (781 единица последовательное соединение ” точка-точка ” со скоростью 128 кбит/с и соединение Fast Ethernet с метрикой в 1 единицу). В распечатке таблицы маршрутизации Router_А следует обратить внимание на то, что метрика к сети 200.5.5.24 составляет 1562 единицы (два последовательных соединения ” точка-точка “), а к сети 10.10.10.128 – на 1 больше (1563 единицы). Это объясняется тем, что на пути к сети 10.10.10.128 дополнительно имеется соединение Fast Ethernet с метрикой в 1 единицу.
Таблица маршрутизации Router_B:
Из распечатки таблицы маршрутизации R_В следует, что в сети 10.10.10.16/28 и 10.10.10.32/27 можно попасть через шлюз 200.5.5.21, а в сеть 10.10.10.128/26 через интерфейс 200.5.5.26. Таким образом, протокол OSPF не суммирует маршруты в рамках сети полного класса.
Таблица маршрутизации Router_C:
Из распечатки таблицы маршрутизации R_С видно, что существуют маршруты ко всем подсетям сети рис. 13.3.
Введение нового соединения между маршрутизаторами А и С ( рис. 13.4) несколько изменяет топологию сети и таблиц маршрутизации. Сеть 7 имеет адрес 200.5.5.28/30, интерфейс s1/0 маршрутизатора А – 200.5.5.29, интерфейс s1/3 маршрутизатора C – 200.5.5.30.
Таблица маршрутизации R_А:
Из распечатки следует, что путь до сети 10.10.10.128/26 сократился со значения 1563 до 782. В сеть 200.5.5.24 можно попасть как через интерфейс 200.5.5.22, так и через – 200.5.5.30, причем метрика одинакова (1562). Появилась непосредственно присоединенная сеть 200.5.5.28. Остальные параметры таблицы маршрутизации R-А остались без изменений.
Первая строка таблицы маршрутизации R_А содержит родительский маршрут 10.0.0.0/8, где указано, что сеть включает три подсети с масками переменной длины. В этом случае маска /8 относится именно к родительской сети полного класса. Далее указаны три дочерних подсети, каждая со своим префиксом /28, /27, /26.
Таблица маршрутизации R_В:
Изменения в таблице R_В связаны только с новой сетью 200.5.5.28, к которой ведут два равнозначных пути: через 200.5.5.21 и через 200.5.5.26.
Таблица маршрутизации R_С:
Распечатка таблицы маршрутизации R_С позволяет сделать вывод о том, что маршруты к подсетям 10.10.10.16 и 10.10.10.32 сократились практически в два раза ( метрика 782 вместо 1563) и проходят через интерфейс 200.5.5.29 (ранее был 200.5.5.25). Трафик в сеть 200.5.5.20 может передаваться поочередно (режим баланса) как через интерфейс 200.5.5.25, так и через 200.5.5.29. Остальные параметры таблицы маршрутизации остались без изменений.














