Пакеты OSPF
OSPF выполняет несколько функций:
- Обнаружение соседей для формирования отношений;
- Рассылка link-state информации для формирования на каждом маршрутизаторе LSDB;
- Запуск SPF для расчёта наилучших маршрутов ко всем получателям;
- Наполнение таблицы маршрутизации наилучшими маршрутами ко всем получателям.
Изменение состояние канала может произойти уже после первичного заполнения таблицы маршрутизации. OSPF детектирует эти изменения и реагирует на них рассылкой маршрутизаторам в пределах зоны (или в другие зоны) информации об изменениях, необходимой для поддержания адекватной LSDB.
Типы пакетов:
- Hello - используется для обнаружения соседей и установления соседства между ними.
- Database description (DBD) - Проверяет синхронизацию баз данных между маршрутизаторами.
- Link-State Request (LSR) — запрашивает определенные записи о состоянии каналов от маршрутизатора к маршрутизатору.
- Link-State Update (LSU) — отправляет определенные записи о состоянии каналов в ответ на запрос.
- Link-State Acknowledgment (LSAck) — подтверждает получение других типов пакетов.
Все пять типов пакетов OSPF инкапсулированы в заголовок сетевого уровня, как показано на рисунке 5. Как показано на рисунке, для идентификации пакета используется номер 89. Каждый пакет начинается с заголовка, содержащего:
- Номер версии - 2 для OSPFv2, 3 для OSPFv3 (поддержка IPv6 );
- Тип - 5 типов пакетов (см. выше);
- Длина пакета - длина пакета в байтах;
- Router ID - определяет отправителя пакета
- Area ID - определяет область в которой возник пакет;
- Checksum - для проверки целостности пакета;
- Тип аутентификации (Authentication type) - no, plain или md5;
- Autentication - используется с типом аутентификации;
- Data - содержит различную информацию, зависящую от типа пакета OSPF:
- Hello — список известных соседей
- DBD — содержит суммарную информацию базы данных состояний каналов, которая включает в себя все известные идентификаторы маршрутизаторов и их последние номера последовательностей (sequence number) и другую информацию.
- LSR — содержит тип необходимого LSU и идентификатор маршрутизатора, у которого есть этот LSU.
- LSU — содержит полные записи объявления о состоянии канала. Несколько LSA могут передаваться в одном пакете обновлений.
- LSAck — поле пустое
Содержание
Establishing OSPF Neighbor Adjacencies: Hello
Маршрутизация OSPF зависит от статуса линка между двумя маршрутизаторами. Hello-протокол устанавливает и поддерживает соседские отношения с помощью двухсторонней связи между соседями. Двухсторонняя связь - когда маршрутизатор видит свой собственный ID в hello-пакете, пришедшем от соседа. Соседние маршрутизаторы должны "увидеть" друг друга прежде, чем они смогут обменяться маршрутной информацией.
Каждый интерфейс, участвующий в OSPF, использует мультикаст адрес 224.0.0.5 для рассылки hello-пакетов. Hello-пакеты содержат следующую информацию:
- Идентификатор маршрутизатора (Router ID). Идентификатор маршрутизатора — это 32-битный номер, уникальный для маршрутизатора. По умолчанию выбирается самый большой IP-адрес активного интерфейса, если не настроен интерфейс loopback или идентификатор маршрутизатора, например IP)адресу 172.16.12.1 будет отдано предпочтение над 172.16.1.1. Эта идентификация важна для установления соседских отношений и устранения неполадок в них, а также для координации обмена данными маршрутизации.
- Hello и Dead интервалы - Интервалы приветствия и простоя (Hello and dead intervals). Интервал приветствия определяет период отправки пакетов приветствия маршрутизатором. Интервал приветствия по умолчанию составляет 10 секунд. Интервал простоя — это время в секундах, в течение которого маршрутизатор ожидает пакета приветствия ососеднего маршрутизатора, прежде чем объявить его неисправным. По умолчанию интервал простоя в 4 раза превышает интервал приветствия. Эти таймеры должны быть одинаковы на соседних маршрутизаторах, в противном случае соседские отношения не будут сформированы;
- Neighbors - В поле соседей перечисляются соседние маршрутизаторы, с которыми установлено двусторонне соединение. Это двустороннее соединение устанавливается, когда маршрутизатор опознает себя в поле пакета приветствия, полученного от соседнего маршрутизатора;
- Area ID - Для успешного взаимодействия маршрутизаторы должны находиться в одном сегменте и их интерфейсы должны принадлежать к одной области OSPF в этом сегменте. Кроме того, соседние узлы должны использовать одинаковую подсеть и маску. Все эти маршрутизаторы будут иметь одинаковые данные о состоянии каналов.
- Router priority - 8-битовый номер, приоритет маршрутизатора. Используется для выбора DR и BDR.
- DR и BDR ip адреса - если известны;
- Authentication password - если аутентификация вкл, пароль должен совпадать на всех пирах.
- Флаг тупиковой области (Stub area flag). Тупиковая область — особая область среды OSPF. Два маршрутизатора должны согласовать флаг тупиковой области в пакетах приветствия. Назначение тупиковой области позволяет уменьшить число обновлений маршрутизации, заменив их на маршрут по умолчанию.
Exchange Process and OSPF Neighbor Adjacency States
OSPF Neighbor States
===Maintaining Routing Information