Почему все области должны подключаться к магистрали области 0 в OSPF?

22

Этот вопрос является буквальным репостом того же вопрос попросил на общинных поддержки Cisco . Ответы уникальны для Stack Exchange.


Почему область 0 является основной в OSPF? Почему все остальные области должны подключаться к нему?

Я искал правильную причину, почему все области должны быть связаны с областью 0 в OSPF. У меня есть небольшая идея, но мне не ясна вся эта концепция.

Если 2 области не соединены через область 0 (непрерывно), как OSPF, ведущий себя как протокол состояния канала, увеличивает вероятность петель маршрутизации?

троянский
источник

Ответы:

39

OSPF Магистраль

Почему область 0 является основной в OSPF? Почему все остальные области должны подключаться к нему?

Это очень хорошо объяснено в RFC 3509, раздел 1.2 1 :

1.2 Мотивация

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

Протокол OSPF обычно считается протоколом состояния канала . Некоторым не хватает того, что OSPF использует как протокол состояния канала, так и алгоритм протокола векторного расстояния .

  • Маршруты в магистральной или не магистральной области вычисляются как протокол состояния канала (см . Алгоритм Дейкстры ).
  • Когда OSPF должен переносить не магистральные маршруты через магистраль, он использует некоторое поведение вектора расстояния (то есть части алгоритма Беллмана Форда ) для распространения метрик LSA Type3 в не магистральные области.

Простой пример поведения вектора расстояния OSPF :

<-- Area 5 --><-- Area 0 --><--           Area 4           -->

R5-----------R1-----------R2------------R3---------------------R4
     Cost 3      Cost 5        Cost 7            Cost 12

               LSA-->          LSA-->
               Type3 LSA       Type3 LSA
               {From R1}       {From R2}
               R5 cost is 3    R5 cost is 8

Рассмотрим, что происходит с / 32 Loopback-маршрутом для R5.

  1. R5 отправляет LSA Type1, содержащий / 32 Loopback
  2. R1 (зона 5 ABR), соединена с зоной 0; он переводит LSA Type1 в LSA Type3 стоимостью 3.
  3. R2 (область 4 ABR) получает LSA типа 3 R1 (метрика 3) и изменяет метрику на обратную связь R5, исходя из стоимости R2, на R1 . Теперь LSA Type3 R2 для R5 имеет стоимость 8. Это поведение вектора расстояния, о котором я упоминал выше.

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

Соединение неосновных областей OSPF в ABR

Если 2 области не соединены через область 0 (непрерывно), как OSPF, ведущий себя как протокол состояния канала, увеличивает вероятность петель маршрутизации?

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


1 RFC 3509 описывает поведение ABR Cisco IOS

Майк Пеннингтон
источник
18

Область 0 была выбрана в качестве основы, число 0 или 0.0.0.0 - это просто число.

Поскольку OSPF является состоянием канала, LSDB должен быть идентичным в пределах области. Это необходимо для обеспечения согласованности расчета SPF и предотвращения петель маршрутизации.

Если работает OSPF с одной областью, можно использовать любую область, нет необходимости иметь область 0.

При запуске мультизонального OSPF необходимо использовать ABR. ABR - это маршрутизатор со смежностью в области 0 и, по крайней мере, в одной другой области.

ABR принимают LSA типа 1 и 2 и объявляют их как сводные LSA типа 3 в других областях. Это не обобщение префиксов, это краткое изложение топологической информации. Это на самом деле поведение вектора расстояния.

Поскольку другие области не имеют полной информации друг о друге, весь межобластной трафик должен проходить через область 0. В противном случае могут возникнуть петли маршрутизации, поскольку они не имеют полной топологии.

Благодаря такому дизайну OSPF не должен запускать полный SPF, когда ссылки идут вверх / вниз в других областях. Это увеличивает масштабируемость.

Даниэль Диб
источник
цель области 0 ospf - предотвращение петель маршрутизации в его области ospf, я прав?
Троян
3
Основная цель области 0 - обеспечить связь с другими областями. Благодаря тому, что дизайн OSPF выглядит как концентратор и спица, где область 0 является концентратором, петли маршрутизации могут быть предотвращены.
Даниэль Диб
9

Из "OSPF: Анатомия протокола маршрутизации" Джона Мой, который написал большую часть спецификации OSPF.

Обмен информацией о маршрутизации между областями по сути является вектором расстояний. С помощью Vector Vector, чем больше у вас избыточных путей, тем хуже становятся ваши свойства сходимости. OSPF требует, чтобы все области были присоединены непосредственно к магистрали, поэтому он ограничивает топологию простым концентратором и топологией луча. Это исключает избыточные пути и предотвращает возникновение проблем «считать до бесконечности».

user6238
источник