OSPF

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

OSPF (Open Shortest Path First) - протокол динамічної маршрутизації, заснований на технології відстеження стану каналу (про стан каналу технологій) і використовує для знаходження найкоротшого шляху алгоритм Дейкстри.

Протокол OSPF був розроблений IETF в 1988 році. Остання версія протоколу представлена ​​в RFC 2328. Протокол OSPF являє собою протокол внутрішнього шлюзу (Interior Gateway Protocol - IGP). Протокол OSPF поширює інформацію про доступні маршрути між маршрутизаторами однієї автономної системи.

OSPF пропонує вирішення наступних завдань:

  • Збільшення швидкості збіжності (у порівнянні з протоколом RIP2, так як немає необхідності вичікування багаторазових тайм-аутів по 30с);
  • Підтримка мережевих масок змінної довжини (VLSM);
  • Досяжність мережі (швидко виявляються маршрутизатори, що відмовили і топологія мережі змінюється відповідним чином);
  • Оптимальне використання пропускної спроможності (так як будується мінімальний остовний граф за алгоритмом Дейкстри);
  • Метод вибору шляху.

Опис роботи протоколу

  • Маршрутизатори обмінюються hello-пакетами через всі інтерфейси, на яких активований OSPF. Маршрутизатори, що розділяють загальний канал передачі даних, стають сусідами, коли вони приходять до домовленості про певні параметри, зазначених в їх hello-пакетах.
  • На наступному етапі роботи протоколу маршрутизатори будуть намагатися перейти в стан суміжності з маршрутизаторами, які перебувають з ними у межах прямого зв'язку (на відстані одного хопу). Перехід у стан суміжності визначається типом маршрутизаторів, які обмінюються hello-пакетами, і типом мережі, по якій передаються hello-пакети. OSPF визначає кілька типів мереж і кілька типів маршрутизаторів. Пара маршрутизаторів, що знаходяться в стані суміжності, синхронізує між собою базу даних стану каналів.
  • Кожен маршрутизатор посилає оголошення про стан каналу маршрутизаторам, з якими він знаходиться в стані суміжності.
  • Кожен маршрутизатор, який отримав оголошення від суміжного маршрутизатора, записує передану в ньому інформацію в базу даних стану каналів маршрутизатора і розсилає копію оголошення всім іншим суміжним з ним маршрутизаторам.
  • Розсилаючи оголошення через зону, всі маршрутизатори будують ідентичну базу даних стану каналів маршрутизатора.
  • Коли база даних побудована, кожен маршрутизатор використовує алгоритм Дейкстри для обчислення графа без петель, який буде описувати найкоротший шлях до кожного відомого пункту призначення з собою в якості кореня. Цей граф - дерево найкоротших шляхів.
  • Кожен маршрутизатор будує таблицю маршрутизації зі свого дерева найкоротших шляхів.

Типи мереж, підтримувані протоколом OSPF

  • Широкомовні мережі з множинним доступом (Ethernet, Token Ring)
  • Точка-точка (T1, E1, комутований доступ)
  • Мережі з множинним доступом (NBMA) (Frame relay)
  • Віртуальні канали (virtual links)

Типи оголошень про стан каналу (LSA)

Type 1 LSA - Router LSA - оголошення про стан каналів маршрутизатора. Ці LSA поширюються всіма маршрутизаторами. У LSA міститься опис усіх каналів маршрутизатора і вартість (cost) кожного каналу. Поширюються тільки в межах однієї зони.

Type 2 LSA - Network LSA - оголошення про стан каналів мережі. Поширюється DR в мережах з множинним доступом. У LSA міститься опис всіх маршрутизаторів приєднаних до мережі, включаючи DR. Поширюються тільки в межах однієї зони.

Type 3 LSA - Network Summary LSA - сумарне оголошення про стан каналів мережі. Оголошення поширюється прикордонними маршрутизаторами. Оголошення описує тільки маршрути до мереж поза зоною і не описує маршрути усередині автономної системи. Прикордонний маршрутизатор відправляє окреме оголошення для кожної відомої йому мережі.

Коли маршрутизатор отримує Network Summary LSA від прикордонного маршрутизатора він не запускає алгоритм обчислення найкоротшого шляху. Маршрутизатор просто додає до вартості маршруту, вказаного в LSA вартість маршруту до прикордонного маршрутизатора. Потім маршрут до мережі через прикордонний маршрутизатор поміщається в таблицю маршрутизації.

Type 4 LSA - ASBR Summary LSA - сумарне оголошення про стан каналів прикордонного маршрутизатора автономної системи. Оголошення поширюється прикордонними маршрутизаторами. ASBR Summary LSA відрізняється від Network Summary LSA тим, що поширюється інформація не про мережу, а про прикордонний маршрутизаторі автономної системи.

Type 5 LSA - AS External LSA - оголошення про стан зовнішніх каналів автономної системи. Оголошення поширюється прикордонним маршрутизатором автономної системи в межах всієї автономної системи. Оголошення описує маршрути зовнішні для автономної системи OSPF або маршрути за замовчуванням (default route) зовнішні для автономної системи OSPF.

Type 6 LSA - Multicast OSPF LSA - спеціалізований LSA, який використовують мультікаст OSPF додатки (Not implemented by CISCO).

Type 7 LSA - AS External LSA for NSSA - оголошення про стан зовнішніх каналів автономної системи в NSSA зоні. Це оголошення може передаватися тільки в NSSA зоні. На кордоні зони прикордонний маршрутизатор перетворює type 7 LSA в type 5 LSA.

Type 8 LSA - Link LSA - анонсує link-local адреса і префікс (и) маршрутизатора всім маршрутизаторам розділяє канал (link). Відправляється тільки якщо на каналі присутні більше ніж один маршрутизатор. Поширюються лише в межах каналу (link).

Формат заголовка OSPF-пакета

OSPF-пакет інкапсулюється безпосередньо в полі даних IP-пакета. Значення поля «протокол верхнього рівня» в заголовку IP-дейтаграми для OSPF дорівнює 89.

      0               1               2               3
      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   version     |     type      |         packet length         |
     +---------------+---------------+-------------------------------+
     |                          router ID                            |
     +---------------------------------------------------------------+
     |                           area ID                             |
     +-------------------------------+-------------------------------+
     |           checksum            |      authentication type      |
     +-------------------------------+-------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+
  • Version - номер версії протоколу OSPF. Поточна версія OSPF для мереж IPv4 - 2.
  • Type - тип OSPF-пакета. В RFC 2328 описано 5 типів пакетів.
  • Packet length - довжина пакету, включаючи заголовок.
  • Router ID - ідентифікатор маршрутизатора - унікальне 32-хбітное число, ідентифікує

маршрутизатор в межах автономної системи.

  • Area ID - 32-хбітний ідентифікатор зони.
  • Checksum - поле контрольної суми. Підраховується для всього пакету, включаючи заголовок.
  • Authentication type - тип використовуваної схеми аутентифікації. Можливі значення:
    • 0 - аутентифікація не використовується
    • 1 - аутентифікація відкритим текстом
    • 2 - MD5-аутентифікація
  • Authentication - поле даних аутентифікації.

Формат Hello-пакета

      0               1               2               3
      0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   version     |     type      |         packet length         |
     +---------------+---------------+-------------------------------+
     |                          router ID                            |
     +---------------------------------------------------------------+
     |                           area ID                             |
     +-------------------------------+-------------------------------+
     |           checksum            |      authentication type      |
     +-------------------------------+-------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+
     |                        network mask                           |
     +-------------------------------+---------------+---------------+
     |        hello interval         |    options    |router priority|
     +-------------------------------+---------------+---------------+
     |                     router dead interval                      |
     +---------------------------------------------------------------+
     |                      designated router                        |
     +---------------------------------------------------------------+
     |                   backup designated router                    |
     +---------------------------------------------------------------+
     |                          neighbor ID                          |
     +---------------------------------------------------------------+
     |                          neighbor ID                          |
     +---------------------------------------------------------------+
     |                             ...                               |

Нижче наведено короткий опис полів hello-пакета.

  • Network mask - мережева маска інтерфейсу, через який відправляється hello-пакет.
  • Hello interval - hello-інтервал задає частоту розсилки вітальних повідомлень для виявлення сусідів в автономній системі. Для LAN значення за замовчуванням дорівнює 10 секундам.
  • Options - 8-бітове поле опцій. Описує можливості маршрутизатора.
  • Router priority - пріоритет маршрутизатора - 8-бітове число, яке символізує пріоритет маршрутизатора при виборі DR і BDR.
  • Router dead interval - період часу, протягом якого маршрутизатор очікує відповіді сусідів.
  • Designated router (DR) - IP-адреса DR.
  • Backup designated router (BDR) - IP-адреса BDR.
  • Neighbor ID - ідентифікатор сусіда. Список складається з ідентифікаторів сусідів, від яких маршрутизатор отримав hello-пакети протягом часу, заданого в поле router dead interval.

Переваги та недоліки OSPF

Переваги OSPF

  • Для кожної адреси може бути кілька маршрутних таблиць, по одній на кожен вид IP-операції (TOS).
  • Кожному інтерфейсу привласнюється безрозмірна ціна, що враховує пропускну здатність, час транспортування повідомлення. Для кожної IP-операції може бути привласнена своя ціна (коефіцієнт якості).
  • При існуванні еквівалентних маршрутів OSFP розподіляє потік рівномірно по цих маршрутах.
  • Підтримується адресація субмереж (різні маски для різних маршрутів).
  • При зв'язку точка-точка не потрібно IP-адресу для кожного з кінців. (Економія адрес!)

Застосування мультикастингу замість широкомовних повідомлень знижує завантаження не залучених сегментів.

Недоліки

  • Важко отримати інформацію про перевагу каналів для вузлів, що підтримують інші протоколи, або зі статичною маршрутизацією.
  • OSPF є лише внутрішнім протоколом.