1. Главная страница » Компьютеры » Ospf протокол принцип работы

Ospf протокол принцип работы

Автор: | 16.12.2019

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Популярное и похожее

Зачем вам 802.1X и что он решает?

Модель OSI – это просто!

Таблицы маршрутизации EIGRP

Протокол EIGRP

Протокол OSPF

Про динамическую маршрутизацию

4 минуты чтения

OSPF (Open Shortest Path First) – дословно переводится как «Сперва открытый короткий путь» — надежный протокол внутренней маршрутизации с учетом состояния каналов (Interior gateway protocol, IGP). Как правило, данный протокол маршрутизации начинает использоваться тогда, когда протокола RIP уже не хватает по причине усложнения сети и необходимости в её легком масштабировании.

OSPF наиболее широко используемый протокол внутренней маршрутизации. Когда идёт речь о внутренней маршрутизации, то это означает, что связь между маршрутизаторами устанавливается в одном домене маршрутизации, или в одной автономной системе. Представьте компанию среднего масштаба с несколькими зданиями и различными департаментами, каждое из которых связано с другим с помощью канала связи, которые дублируются с целью увеличения надежности. Все здания являются частью одной автономной системы. Однако при использовании OSPF, появляется понятие «площадка», «зона» (Area), которое позволяет сильнее сегментировать сеть, к примеру, разделение по «зонам» для каждого отдельного департамента.

Для понимания необходимости данных «зон» при проектировании сети, необходимо понять, как OSPF работает. Есть несколько понятий, связанных с этим протоколом, которые не встречаются в других протоколах и являются уникальными:

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

  1. Сперва, когда протокол только запустился на маршрутизаторе, он начинает посылать hello-пакеты для нахождения соседей и выбора DR (designated router, назначенный маршрутизатор). Эти пакеты включают в себя информацию о соседях и состоянии каналов. К примеру, OSPF может определить соединение типа «точка-точка», и после этого в протоколе данное соединение «поднимается», т.е. становится активным. Если же это распределенное соединение, маршрутизатор дожидается выбора DR перед тем как пометить канал активным.
  2. Существует возможность изменить Priority ID для, что позволит быть уверенным в том, что DR-ом станет самый мощный и производительный маршрутизатор. В противном случае, победит маршрутизатор с самым большим IP-адресом. Ключевая идея DR и BDR (Backup DR), заключается в том, что они являются единственными устройствами, генерирующими LSA и они обязаны обмениваться базами данных состояния каналов с другими маршрутизаторами в подсети. Таким образом, все не-DR маршрутизаторы формируют соседство с DR. Весь смысл подобного дизайна в поддержании масштабируемости сети. Очевидно, что единственный способ убедиться в том, что все маршрутизаторы оперируют одной и той же информацией о состоянии сети – синхронизировать БД между ними. В противном случае, если бы в сети было 35 маршрутизаторов, и требовалось бы добавить еще одно устройство, появилась бы необходимость в установлении 35 процессов соседства. Когда база централизована (т.е существует центральный, выбранный маршрутизатор — DR) данный процесс упрощается на несколько порядков.
  3. Обмен базами данных – крайне важная часть процесса по установлению соседства, после того как маршрутизаторы обменялись hello-пакетами. При отсутствии синхронизированных баз данных могут появиться ошибки, такие как петли маршрутизации и т.д. Третья часть установления соседства – обмен LSA. Это понятие будет разобрано в следующей статье, главное, что необходимо знать – нулевая зона (Area 0) особенная, и при наличии нескольких зон, все они должны быть соединены с Area 0. Так же это называется магистральной зоной.

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

Разберем различные типы маршрутизаторов при использовании протокола OSPF:

Area Border Router – маршрутизатор внутри нулевой зоны, через который идет связь с остальными зонами

Designated Router, Backup Designated Router – этот тип маршрутизаторов обсуждался выше, это основной и резервирующий маршрутизаторы, которые ответственны за базу данных маршрутизаторов в сети. Они получают и посылают обновления через Multicast остальным маршрутизаторам в сети.

Autonomous System Boundary Router – этот тип маршрутизаторов соединяет одну или несколько автономных систем для осуществления возможного обмена маршрутами между ними.

Подведем итоги

  • OSPF является быстро сходящимся протоколом внутренней маршрутизации с контролем состояния каналов
  • Процесс соседства формируется между соседними маршрутизаторами через DR и BDR, используя LSA
  • Зоны в данном протоколе маршрутизации используются для ограничения LSA и суммирования маршрутов. Все зоны подключаются к магистральной зоне.
  • Протокол OSPF
  • ospf протокол маршрутизации
  • ip ospf
  • 1643
  • 6

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

Принцип работы протокола. Общая информация

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

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

  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), к которой подключаются остальные зоны. Связь между зонами всегда осуществляется только через магистральную зону.

Читайте также:  One plus one a0001

Всего существует 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:

Читайте также:  Mysql command line client команды

Как только 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.

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

Down — процесс не был запущен. база данных пуста

Init — начался поиск соседей

2WAY — сосед найден и установлена двусторонняя связь

Exstart — процесс выбора DR/BDR

Exchange — взаимный обмен топологической информацией

Loading — запрос дополнительной информации о сети

Full — процесс обмена завершен, все базы данных актуальны.

Существует два класса протоколов маршрутизации внутри автономных систем: Distance Vector, к которому относятся RIP, EIGRP и Link State, к которому относятся OSPF и IS-IS. Идеология Link State подразумевает, что каждый маршрутизатор должен не просто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. OSPF – наиболее распространённый протокол маршрутизации. Это связанно с тем, что его основной конкурент EIGRP вплоть до 2013 года был закрытым протоколом и мог использоваться только на оборудовании Cisco, в то время, как OSPF – это открытый протокол, и он изначально поддерживался как Cisco, так и другими производителями. Таким образом, OSPF завоевал популярность не смотря на некоторые его недостатки в сравнении с EIGRP: меньшую гибкость, отсутствие четкого описания механизма подсчёта метрики, повышенные требования к ресурсам маршрутизатора. В то же время, у OSPF есть и множество достоинств: иерархический дизайн сети (реализуется с помощью зон), удобство при отладке (так как можно видеть карту сети).

Стандартное значение административной дистанции для протокола OSPF – 110, что означает, что его маршруты считаются более приоритетными чем IS-IS, RIP, External EIGRP, Internal BGP, но менее приоритетными чем IGRP, EIGRP BGP. Такая административная дистанция – скорее преференция со стороны Cisco к своим протоколам. Так как с точки зрения здравого смысла, OSPF, конечно предпочтительнее RIP, в современных сетях, но он так же должен быть и предпочтительнее IGRP, который, в силу своего возраста является классовым протоколом маршрутизации. OSPF является бесклассовым (classless) протоколом маршрутизации, что означает передачу вместе с апдейтами информацию о маске подсети (префиксе), в то время, как старые классовые протоколы маршрутизации, опираются на стандартные классы сетей (A, B, C) и по этой причине в настоящее время малоприменимы.

Принцип работы OSPF

Логика работы протокола OSPF следующая:

  1. Маршрутизаторы обмениваются маленькими HELLO-пакетами
  2. Обменявшись пакетами, они устанавливают соседские отношения, добавляя каждый друг друга в свою локальную таблицу соседей
  3. Маршрутизаторы собирают состояния всех своих линков (связей с соседями), включающие в себя id Маршрутизатора, id соседа, сеть и префикс между ними, тип сети, стоимость линка (метрику) и формируют пакет, называемый LSA (Link State Advertisement).
  4. Маршрутизатор рассылает LSA своим соседям, те распространяют LSA дальше.
  5. Каждый маршрутизатор, получивший LSA добавляет в свою локальную табличку LSDB (Link State Database) информацию из LSA.
  6. В LSDB скапливается информация, обо всех парах соединённых в сети маршрутизаторов, то есть каждая строчка таблицы — это информация вида: «Маршрутизатор A имеет соединение со своим соседом маршрутизатором B, между ними сеть такая-то с такими-то свойствами».
  7. После обмена LSA, каждый маршрутизатор знает про все линки, на основании пар строится полная карта сети, включающая все маршрутизаторы и все связи между ними.
  8. На основании этой карты каждый маршрутизатор индивидуально ищет кратчайшие с точки зрения метрики маршруты во все сети и добавляет их в таблицу маршрутизации.

Как видно из описания алгоритма, он достаточно сложный и ресурсоёмкий. Это объясняет высокие требования OSPF к производительности маршрутизатора и оперативной памяти. Теперь, давайте представим, что происходит, если у одного из маршрутизаторов пропадает связь с соседом:

  1. Он рассылает всем новые LSA
  2. Все заново строят карту сети
  3. Заново считают кратчайшие маршруты во все сети
  4. Обновляют свою таблицу маршрутизации

Понятно, что если у нас в много маршрутизаторов, много разных сетей, то такая ситуация будет происходить достаточно часто, вызывая постоянный пересчёт на всех маршрутизаторах и существенно их нагружая. По этой причине, в больших сетях используется разделение на зоны (area), в каждой зоне вычисления производятся автономно, а между зонами распространяется только результат этих вычислений, таким образом, использование зон важно в случае больших сетей. Об использовании нескольких зон стоит прочесть отдельную статью, пока же мы будем пользоваться одной корневой зоной с номером 0 – эта нулевая зона обязана присутствовать в конфигурации OSPF, и маленькие сети обычно находятся целиком в ней одной.

OSPF пакет помещается в IP пакет, у которого адрес отправителя – адрес отправившего пакет маршрутизатора, а адрес получателя, как правило, мультикастовый. Пакет помещается в соответствующий мультикастовый фрейм, например, Ethernet. Следует обратить внимание, что OSPF напрямую инкапсулируется в IP, а не в TCP или UDP. Этот момент важен при написание списков контроля доступа.

Читайте также:  Palit geforce gtx 650 ti 1024mb gddr5

Виды OSPF сообщений

Всего существует пять типов OSPF сообщений:

  1. Hello – отправляются регулярно для поиска соседей и установки соседских отношений
  2. Database Description DBD – используются для проверки синхронизации LSDB у соседних маршрутизаторов
  3. Link state request LSR – принудительный запрос у некого маршрутизатора его LSA. Может использоваться, например, когда маршрутизатор только включился и ему надо узнать текущие связи в сети, или, когда у маршрутизатора пропала сеть, и он хочет узнать нет ли у других маршрутизаторов альтернативных маршрутов к ней.
  4. Link state update LSU – содержит состояния связей маршрутизатора.
  5. Link State Acknowledgment LSAck – пакет-подтверждение, высылается в ответ на другие типы пакетов. Это связано с тем, что OSPF не использует протокол TCP и для надёжной доставки нужен свой собственный механизм подтверждений.

OSPF Hello и Dead интервалы

Hello пакеты рассылаются маршрутизаторами регулярно. Периодичность можно менять в соответствии с задачами, но по умолчанию они шлются раз в 10 секунд в сетях со множественным доступом (BMA) и сетях точка-точка (point-to-point) и раз в 40 секунд в сетях со множественным доступом без возможности широковещательной рассылки (NBMA). Если маршрутизатор не получает ни одного пакета в течении Dead-интервала, то считается, что сосед пропал и отношения разрываются, что влечёт за собой потерю, линка, отправку LSU, пересчёт топологии и т.д. Dead-интервал по умолчанию равен четырём Hello-интервалам, (40 секунд для BMA и 120 для NBMA).

ID маршрутизатора в OSPF

Так как маршрутизаторы строят карту сети, где в качестве узлов используются другие маршрутизаторы, то очень важно, чтобы все они имели уникальные имена. Это необходимо для того, чтобы глядя на полученные из разных источников LSA, понять, что речь идёт об одних и тех же устройствах. В качестве такого уникального имени в OSPF используется поле «Router ID». Идентификатор маршрутизатора выглядит как ip адрес, то есть, состоит из четырёх октетов, разделённых точками. Причём, даже в OSPF для IPv6 идентификатор выглядит как IPv4 адрес. Идентификатор всегда должен присутствовать. Не так важно, какой он будет, важна уникальность идентификаторов в пределах сети. Его можно задать вручную, либо, если этого не сделать, он будет присвоен автоматически.

В общем случае, алгоритм назначения маршрутизатору идентификатора следующий (в порядке приоритета):

  1. Если ID задан явно с помощью команды router-id, то используется именно он
  2. Если router-id не вводился, то берётся самый большой адрес из всех loopback интерфейсов, настроенных на данном маршрутизаторе
  3. Если loopback интерфейсов нет, то берётся самый большой адрес из всех включенных интерфейсов на данном маршрутизаторе. Причём, интерфейс не обязательно должен входить в OSPF процесс, не обязательно его сеть должна быть перечислена при настройке OSPF, достаточно чтобы был настроен адрес и интерфейс был включен.

Здесь под самым большим адресом подразумевается буквальное сравнение по октетам, то есть, например, 10.10.10.20>10.10.10.10, а 2.0.0.1>1.100.100.100, то есть сравниваем по октетам слева направо, как только увидели разницу, то сразу принимаем решение о том, кто больше и дальше не проверяем.

Работа OSPF в сетях со множественным доступом

Одна из проблем подхода OSPF к построению карты сети – использование его в сетях с множественным доступом. Часто используется топология, когда множество маршрутизаторов не подключаются последовательно друг к другу, а соединены через некоторую общую сеть, например, все имеют отдельный интерфейс в некоторой IP-сети для обмена трафиком друг с другом, все подключены один коммутатор, через который обмениваются, или все имеют интерфейс в некотором общем VLAN. В этом случае, OSPF в теории должен устанавливать соседские отношения по принципу «каждый с каждым» в пределах этой общей сети, что приводит к огромным таблицам соседей, повышенной нагрузке на канал, на память и процессор. Ниже приведена таблица, в которой показана зависимость количества соседских отношений от количества маршрутизаторов в одной сети, общая формула для количества отношений имеет вид n(n-1)/2.

Количество маршрутизаторов в сети со множественным доступом Количество соседских отношений
5 10
20 190
100 4950
n n(n-1)/2

Для того чтобы преодолеть эту проблему в OSPF существует механизм выбора Designated Router (DR) и Backup Designated Router (BDR). DR и BDR – это роли маршрутизаторов. Когда имеется сеть со множественным доступом и в ней более двух маршрутизаторов, то один выбирается на роль DR, а второй – на BDR. Каждый маршрутизатор, который хочет отправить, например, LSA, шлёт его не всем в сети, а на специальный мультикастовый адрес, который слушает только DR и BDR, а DR рассылает LSA всем в сети. Таким образом у нас получается не связь «каждый с каждым», а связь «каждый с DR» + «DR с каждым», что позволяет существенно снизить нагрузку в случае, если маршрутизаторов в таком сегменте много. BDR же ничего никому не шлёт – он только слушает то же что и DR и в случае выхода из строя DR-а, BDR мгновенно занимает его место, а среди оставшихся маршрутизаторов проходят выборы нового BDR.

Метрика в OSPF

Сам по себе открытый протокол OSPF не предъявляет никаких требований к тому, как должна считаться метрика и как должно оцениваться «качество маршрута», в стандарте просто говорится, что у каждого линка есть некая стоимость (cost), если маршрут проходит через несколько линков, то их стоимость суммируется. Самым лучшим считается тот маршрут, у которого стоимость меньше остальных. Понятно, что мы имеем дело с той же метрикой, только без внятного механизма его подсчёта. Разные производители могут по разному считать стоимость, поэтому Cisco предусмотрела два варианта вычисления стоимости:

    1. Стоимость считается как обратная величина от скорости линка, например, 1 – для гигабита, 10 – для ста мегабит, 100 – для десяти мегабит, 1000 – для одного мегабита и т.п. Такой вариант хорош, когда мы строим сеть только на оборудовании cisco и знаем, что все маршрутизаторы считают метрику по такому алгоритму. В этом случае стоимость будет считаться автоматически, что существенно упростит настройку.
    2. Стоимость задаётся администратором вручную для каждого линка исходя из своих представлений о качестве этого линка. Такой вариант может применяться в случае, если качество линка не измеряется одной его скоростью. Например, администратор может искуственно завысить метрику для линка, на котором проводится таррификация трафика, или на котором часто возникают ошибки. Это даёт большую гибкость, но требует ручной настройки. Второй случай, когда приходится исползовать этот метод – присутствие в сети маршрутизаторов разных производителей. В этой ситуации надо обеспечить адекватный одинаковые представления о стоимости на всех маршрутизаторах. Надо изучить, как считается стоимость у других производителей, посчитать её так же и задать вручную на маршрутизаторах Cisco.

    При выборе первого способа стоимость считается так: берётся величина в 1 гигабит и делится на скорость интерфейса. Этот подход был придуман в те времена, когда 1 гигабит был максимальной скоростью, которую только можно представить. Если считать метрику таким образом, то стоимость гигабиат будет равна единице, но и стоимость 10 гигабитного канала тоже будет равна единице (так как стоимость – целое положительное число). Для того чтобы изменить то значение, которое делится на скорость линка, есть команда auto-cost reference-bandwidth, после которой указывается скорость в мегабитах. То есть, чтобы 1 Гбит отличался от 10 Гбит по стоимости, надо ввести команду:

    После этого у 10 Гбит будет стоимость 1, у 1 Гб – стоимость 10, у 100 Мб – стоимость 100 и т.д. Важно ввести одинаковое значение на всех маршрутизаторах, чтобы метрика считалась не противоречиво.

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

    После прочтения данной статьи у вас должно быть достаточно информации чтобы перейти к практике: «Настройка OSPF для одной зоны на маршрутизаторах Cisco»

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    *

    code