Для чего нужен протокол ospf
Протокол маршрутизации OSPF
Протокол OSPF, наряду с IS-IS, принадлежит к классу протоколов маршрутизации Link State. Принципы этого класса заключается в том, что в памяти маршрутизатора помимо всех оптимальных маршрутов в удаленные сети должна быть полная карта сети, в том числе с действующими связями между другими маршрутизаторами. OSPF изначально создавался как открытый протокол, что сделало его самым распространенным среди протоколов маршрутизации. Его алгоритм позволяет достаточно легко выстраивать стек протоколов для OSPF. Поэтому для специалистов, имеющих отношение к сетям, важно понимание, по крайней мере, общих принципов его работы.
Разберем, что такое сетевой протокол OSPF для чайников.
Принцип работы OSPF
Работа протокола OSPF строится по следующему алгоритму:
Учитывая ресурсоемкий и сложный принцип работы OSPF, от каждого маршрутизатора требуется достаточно высокая производительность и значительный объем оперативной памяти.
В случае разрыва связи с соседом у одного из маршрутизаторов, он отправляет по сети новые пакеты LCA, и повторяется вся процедура формирования таблицы маршрутизации. Чтобы исключить постоянный пересчет в крупных сетях с большим количеством маршрутизаторов, в них применяют разделение на отдельные зоны. В каждой из них выполняются автономные вычисления с передачей между зонами только итогового результата. В любой конфигурации OSPF должна присутствовать корневая зона с индексом 0. Малые сети обычно помещаются в ее пределах, а для больших — требуется формирование дополнительных зон.
Пакет OSPF помещается в пакет IP с мультикастовым адресом получателя. Отправителю же в нем соответствует адрес маршрутизатора. Пакет помещается в мультикастовый фрейм, например, в Ethernet. При формировании списков контроля доступа нужно учитывать, что OSPF инкапсулируется непосредственно в IP, а не в UDP или TCP.
Виды OSPF сообщений
Протокол маршрутизации OSPF поддерживает 5 типов сообщений:
Hello пакеты отправляются с установленной периодичностью. По умолчанию она составляет 1 раз в 10 секунд для сетей BMA и point-to-point и 1 раз в 40 секунд для сетей NBMA. Также существует понятие Dead-интервала, который по умолчанию равняется 4 Hello-интервалам. Если в течение этого периода маршрутизатор не получает ни одного пакета, то он считает, что сосед отключился. За этим следует пересчет и обновление таблицы маршрутизаторы.
ID маршрутизатора в OSPF
Учитывая, что при построении карты сети маршрутизаторами в качестве узлов выступают другие маршрутизаторы, большое значение имеет наличие у каждого из них уникального имени. Для определения такого имени используется поле Router ID.
Идентификатор записывается в виде IP-адреса IPv4. Неважно, какое он примет значение, главное, чтобы он был уникальным в пределах этой сети. ID маршрутизатора в OSPF можно задать вручную. Если он не задан, то будет присвоен автоматически.
Принцип работы протокола OSPF предусматривает следующий алгоритм назначения ID маршрутизатора:
Для определения большего адреса используется прямое сравнение по октетам слева направо.
Работа OSPF в сетях с множественным доступом
К основным проблемам OSPF можно отнести работу протокола в сетях с множественным доступом. Распространена топология, при которой множество маршрутизаторов объединяются не через последовательное подключение друг к другу, а через общую сеть. Теоретически OSPF должен выстраивать соседства в пределах общей сети на основе принципа «каждый с каждым». Однако это требует формирования огромных таблиц, работа с которыми сильно перегружает процессор и память.
Решение этой проблемы достигается посредством механизма выбора Designated Router (DR) и Backup Designated Router (BDR), которые представляют собой роли маршрутизаторов. В сети с множественным доступом, к которой подключены более 2 маршрутизаторов, один из них назначается на роль DR, а второй — на роль BDR. При отправке любым маршрутизатором какого-либо пакета, он поступает не всем устройства в сети, а подается на отдельный мультикастовый адрес, доступный только DR и BDR. В свою очередь, DR рассылает пакет всем маршрутизаторам в сети. Такое посредничество значительно снижает нагрузку. BDR выполняет резервную функцию и моментально принимает роль DR при его отключении. После этого среди остальных маршрутизаторов сразу выбирается новый BDR.
Метрика в OSPF
Открытый протокол маршрутизации не устанавливает отдельных требований к расчету метрики и оценки маршрутов. Его стандарт определяет стоимость каждого линка. В случае прохождения маршрута через несколько линков их стоимость суммируется. Оптимальным признается маршрут с наименьшей стоимостью. При этом принципы подсчета стоимости линка зависят от принципов, примененных конкретным производителем сетевого оборудования.
Например, Cisco применяет два варианта расчета стоимости.
В первом случае стоимость линка рассчитывается как обратная величина от его скорости (1000 — для 1 Мбит, 100 — для 10 Мбит, 10 — для 100 Мбит, 1 — для 1 Гбита и т. д.). Этот вариант подойдет при условии, что все маршрутизаторы будут считать стоимость по данному алгоритму, аэто требует использование только устройств Cisco.
Второй способ предусматривает задание стоимости администратором на основе собственного определения качества линка. Этот вариант используют в тех случаях, когда качество линка определяется не одной только его скоростью. В том числе метрика может быть завышена для линка, на котором чаще других появляются ошибки или осуществляется тарификация трафика. Этот способ применим в сетях, где установлены маршрутизаторы разных производителей.
Типы маршрутизаторов OSPF
Принцип действия протокола OSPF предусматривает использование следующих типов маршрутизаторов:
Отдельно следует выделить описанные выше типы маршрутизаторов DR, BDR, обеспечивающие работу протокола в сети с множественным доступом при минимальных нагрузках на оборудование. Маршрутизатор DR в этой паре является основным, а BDR — резервным.
Урок 30. Принцип работы протокола OSPF
Принцип работы протокола. Общая информация
Д ругим типом протоколов маршрутизации являются протоколы, которые учитывают пропускную способность канала. То есть при выборе наилучшего маршрута они руководствуются не количеством промежуточных узлов, а скоростью канала. В отличие от векторных протоколов они обладают быстрой конвергенцией (сходимостью) и могут использоваться в больших сетях.
Принцип работы заключается в следующем:
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 маршрутизатор, то есть не подключается к другим автономным сетям.
Такая же сеть, как и Stub, однако в дополнение не принимает анонсы о других зонах. Маршруты к другим зонам заменены на маршрут по умолчанию.
Такая же сеть, как и Stub, однако может иметь ASBR маршрутизатор.
“Усиление” NSSA, кроме того маршруты к другим зонам заменены на маршрут по умолчанию.
Мы же рассмотрим только магистральные и стандартные зоны.
Следует выделить специальные маршрутизаторы, играющие определенную роль при разделении на зоны:
К маршрутизаторам BR, ABR, ASBR предъявляются большие требования по мощности и пропускной способности, так как они оперируют с большими потоками данных.
Составление таблиц протокола
При работе протокола OSPF в каждом маршрутизаторе создаются 3 таблицы, необходимые для нормальной работы сети.
Чтобы понять назначение всех этих таблиц сравним работу протокола с работой обычного навигатора, установленного в машине. Водителю необходимо доехать из пункта А в пункт В. Для этого в навигатор загружают карту, чтобы он смог найти дорогу. Эта карта и является аналогом Топологической таблицы LSDB. Затем навигатор вычисляет оптимальный маршрут, учитывая при этом множества параметров:
Подобные параметры также учитываются протоколами SPF.
В результате на экране навигатора отображаются один или несколько маршрутов. Эти маршруты являются аналогом таблицы маршрутизации протокола OSPF.
Как же строятся таблицы смежности и топологии?
Для этого маршрутизаторы рассылают друг другу специальные обновления, называемые анонсами LSA (Link State Advertisements). Анонсы рассылаются по адресам 224.0.0.5 и 225.0.0.6. Существуют несколько типов анонсов. Мы их рассмотрим ниже в этом уроке.
Маршрутизация работает на уровне L3, однако для того, чтобы связать маршрутизаторы другом с другом, используются различные технологии, работающие на уровнях L1 и L2. Одна из таких технологий Ethernet. Существуют и другие технологии такие, как Frame Relay, ATM, ISDN и так далее. Мы подробно их изучим в одной из следующих глав. Сейчас вкратце остановимся на том, каковы особенности работы протокола OSPF в сетях, где используются перечисленные технологии.
Прежде всего следует знать, что в некоторых типах сетей, протокол выбирает выделенный (Designated, DR) и резервный выделенный (Backup Designated Router, BDR) маршрутизаторы. Сделано это с целью уменьшения служебного трафика. Об этом подробнее чуть далее.
Выделяют следующие типы OSPF сетей:
В данном курсе рассматривать сети 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?
В OSPF каждый маршрутизатор обязан иметь свой ID. ID представляет собой 32-х битный десятичный номер, который выглядит как IP адрес. Поэтому в качестве ID выбирается IP адрес работающего порта. Затем все маршрутизаторы сравнивают свои ID. Побеждает тот у кого ID имеет большее значение. Весь процесс выбора DR автоматический, однако на его результаты можно повлиять.
Для этого можно настроить один из следующих параметров:
Если приоритет установлен на 0, то маршрутизатор никогда не будет выбран в качестве DR/BDR. На блок-схеме внизу указан процесс выбора ID OSPF маршрутизатора:
Сам процесс выбора DR и BDR рассмотрен подробнее в конце данного урока.
Принцип работы протокола. Типы пакетов, состояния связей
Углубимся немного в детали протокола. Рассмотрим типы пакетов, а также узнаем какие стадии проходит маршрутизатор в процессе конвергенции.
Рассмотрим весь процесс по порядку на примере сети
1. Чтобы обнаружить соседей каждые 10 с каждый маршрутизатор отправляет пакет Hello по адресу 224.0.0.5, а также сам принимает такой же пакет от соседей.
3. Первый пакет Hello не содержит ID соседа. Пакет посылается по групповому адресу 224.0.0.5:
Как только R2 получит пакет от R1, то R2 в начале сравнит все параметры. если они совпадают, то адрес R1 вносится в таблицу соседей. После этого R2 вложит ID R1 в следующий пакет. Hello, который отправляется по адресу маршрутизатора R1, то есть ответный пакет Hello не использует групповой адрес:
После того, как определены все соседи, маршрутизатор с более высоким 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.
Итак, подведем итоги.
Для своей работы OSPF использует следующие типы пакетов:
В процессе работы протокола маршрутизатор проходит через следующие состояния:
Для чего нужен протокол ospf
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
OSPF (Open Shortest Path First) — протокол динамической маршрутизации:
На этой странице описаны общие принципы работы протокола, без привязки к конкретной реализации.
Содержание
[править] Основы протокола
(продублировано в Википедии: [1])
OSPF инкапсулируется в IP. Номер протокола 89.
Для передачи пакетов использует мультикаст адреса:
OSPF представитель семейства Link-State протоколов.
[править] Терминология протокола OSPF
Базовые термины OSPF:
[править] Описание работы протокола
Тут приведено краткое описание работы протокола, которое подробнее описано ниже, в соответствующих разделах. Часть из этих этапов, специфичны для конкретной реализации, и указаны на соответствующих страницах настройки OSPF.
Задача этого раздела дать общее понимание того, как работает протокол. Не все пункты могут быть до конца понятны, но общее представление, скорее всего, появится.
[править] Выбор Router ID
При запуске процесса OSPF на любом маршрутизаторе, обязательно должен быть выбран Router ID.
Router ID — это уникальное имя маршрутизатора, по которому он известен в AS.
В зависимости от реализации, Router ID может выбираться по-разному:
После изменения Router ID, процесс OSPF должен быть перезагружен, а все LSA, которые сгенерировал этот маршрутизатор, должны быть удалены из AS, до перезагрузки.
[править] Соседи. Установка отношений соседства
Обнаружение соседей начинается после того как:
Для обнаружения и мониторинга соседей используются сообщения Hello.
Процедура установки отношений соседства зависит от типа сети, в которой работает OSPF.
[править] Типы сетей, поддерживаемые протоколом OSPF
В разных типах сетей работа OSPF отличается. В том числе отличается процесс установления отношений соседства и настройки протокола.
В реальной жизни, чаще всего используются два типа сетей:
Для broadcast и nonbroadcast сетей (то есть, для сетей с множественным доступом), выбираются DR и BDR.
Как правило, тип сети определяется автоматически, по типу интерфейса. Но может быть задан и вручную.
[править] Отношения соседства (adjacency)
Различают понятия сосед и отношения соседства:
Для того чтобы маршрутизаторы стали соседями:
OSPF не проверяет сеть и маску сети при установке отношений соседства в point-to-point сетях. Поэтому можно использовать IP unnumbered интерфейсы.
Для того чтобы маршрутизаторы установили отношения соседства у них, кроме уже перечисленных критериев, должны совпадать значения IP MTU на интерфейсах. Информация о значении IP MTU передается в DD-пакетах и сравнивается в начале обмена DD-пакетами.
Отношения соседства устанавливаются только на primary адресах.
На интерфейсе может быть настроен secondary адрес. Маршрутизаторы не отправляют hello-пакеты с secondary адреса, не устанавливают отношения соседства на secondary адресах, но сеть secondary адреса может анонсироваться.
[править] Возможные состояния
[править] Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR)
В сетях со множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами. Это приводит к тому, что рассылается большое количество копий LSA. Если, к примеру, количество маршрутизаторов в сети со множественным доступом равно n, то будет установлено n(n-1)/2 отношений соседства. Каждый маршрутизатор будет рассылать n-1 LSA своим соседям, плюс одно LSA для сети, в результате сеть сгенерирует n² LSA.
Для предотвращения проблемы рассылки копий LSA в сетях со множественным доступом выбираются DR и BDR.
Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.
Недостатком в схеме работы с DR маршрутизатором является то, что при выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR.
Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется.
Маршрутизатор, выбранный DR или BDR в одной присоединенной к нему сети со множественным доступом, может не быть DR (BDR) в другой присоединенной сети. Роль DR (BDR) является свойством интерфейса, а не свойством всего маршрутизатора.
[править] Таймеры протокола
[править] Константы протокола
Некоторым параметрам OSPF присвоены фиксированные значения. Ниже описаны эти параметры, их названия и соответствующие им значения:
Каждые 5 минут (CheckAge) выполняется проверка контрольной суммы всех LSA (в Cisco каждые 10 минут).
[править] Зоны OSPF
При разделении автономной системы на зоны, маршрутизаторам, принадлежащим к одной зоне, неизвестна информация о детальной топологии других зон.
Разделение на зоны позволяет:
Каждой зоне присваивается идентификатор зоны (area ID). Идентификатор может быть указан в десятичном формате или в формате записи IP-адреса. Однако идентификаторы зон не являются IP-адресами, и могут совпадать с любым назначенным IP-адресом.
В OSPF взаимодействия между зонами возможно только через зону 0: