OSPF
Материал из Википедии — свободной энциклопедии
Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите её в соответствии с правилами написания статей. |
OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации в сетях IPv4 и IPv6.
OSPF был разработан для больших и развивающихся сетей. Основанный на технологии отслеживания состояния канала (link-state technology), протокол выполняет две основные функции, присущие любому алгоритму маршрутизации:
- Выбор пути
- Коммутация по выбранному пути
Протокол OSPF был разработан IETF в 1988 году. Последняя версия протокола представлена в RFC 2328. Протокол OSPF представляет собой протокол внутреннего шлюза (Interior Gateway Protocol — IGP). Протокол OSPF распространяет информацию о доступных маршрутах между маршрутизаторами одной автономной системы.
OSPF предлагает решение следующих задач:
- Увеличение скорости сходимости
- Поддержка сетевых масок переменной длины (VLSM)
- Достижимость сети
- Использование пропускной способности
- Метод выбора пути
Содержание |
[править] Терминология протокола OSPF
- Интерфейс — соединение маршрутизатора и одной из подключенных к нему сетей.
- Состояние канала — состояние канала между двумя маршрутизаторами; обновления происходят при помощи пакетов LSA (Link-State advertisements).
- Стоимость — метрика, присваиваемая каналу.
- Автономная система — группа маршрутизаторов, обменивающаяся маршрутизирующей информацией с помощью одного протокола маршрутизации.
- Зона — совокупность сетей и маршрутизаторов, имеющих один и тот же идентификатор зоны.
- Соседи — два маршрутизатора, имеющие интерфейсы в общей сети.
- hello-протокол — используется для поддержания соседских отношений.
- База данных соседей — список всех соседей.
- База данных состояния каналов (топологическая база) — список всех записей о состоянии каналов.
- Таблица маршрутизации — база данных пересылки.
[править] Топологии сетей, поддерживаемые протоколом OSPF
- Широковещательные топологии (Ethernet)
- Точка-точка (T1)
- Нешироковещательные топологии со множественным доступом (NBMA) (frame-relay, X.25)
Установка двустороннего обмена данными под управлением протокола OSPF базируется на принципе приветствий маршрутизаторов, при помощи специальных hello пакетов.
[править] Формат заголовка OSPF-пакета
OSPF-пакет инкапсулируется непосредственно в поле данных IP-пакета. Значение поля «протокол верхнего уровня» в заголовке IP-дейтаграммы для OSPF равно 89.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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-пакета
Hello-пакет представляет собой первый (Type 1) из пяти типов OSPF-пакетов.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | network mask | +-------------------------------+---------------+---------------+ | hello interval | options |router priority| +-------------------------------+---------------+---------------+ | router dead interval | +---------------------------------------------------------------+ | designated router (DR) | +---------------------------------------------------------------+ | backup designated router (BDR) | +---------------------------------------------------------------+ | neighbor ID | +---------------------------------------------------------------+ | neighbor ID | +---------------------------------------------------------------+ | ... |
Ниже приведено краткое описание полей hello-пакета.
- network mask — сетевая маска интерфейса, через который отправляется hello-пакет.
- hello interval — hello-интервал задает частоту рассылки приветственных сообщений для обнаружения соседей в автономной системе. Для LAN значение по умолчанию равно 10 секундам.
- options — 8-битное поле опций. Описывает возможности маршрутизатора.
- router priority — приоритет маршрутизатора — 8-битное число, символизирующее приоритет маршрутизатора при выборе DR (англ. Designated router) и BDR (англ. Backup designated router).
- router dead interval — период времени, в течение которого маршрутизатор ожидает ответа соседей.
- designated router (DR) — IP-адрес DR.
- backup designated router (BDR) — IP-адрес BDR.
- neighbor ID — идентификатор соседа. Список составляется из идентификаторов соседей, от которых маршрутизатор получил hello-пакеты в течение времени, заданного в поле router dead interval.