Формат сообщения Hello в протоколе OSPF
Рисунок 4.10
Формат OSPF-сообщений о маршрутах
Рисунок 4.11
Маршрутизаторы обмениваются сообщениями из баз данных OSPF, чтобы инициализировать, а в дальнейшем актуализовать свои базы данных, характеризующие топологию сети. Обмен происходит в режиме клиент-сервер. Клиент подтверждает получение каждого сообщения. Формат пересылки записей из базы данных представлен на рисунке. 4.11
Поля, начиная с тип канала, повторяются для каждого описания канала. Так как размер базы данных может быть велик, ее содержимое может пересылаться по частям. Для реализации этого используются биты I и М. Бит I устанавливается в 1 в стартовом сообщении, а бит M принимает единичное состояние для сообщения, которые являются продолжением. Бит S определяет то, кем послано сообщение (S=1 для сервера, S=0 для клиента, этот бит иногда имеет имя MS). Поле номер сообщения по порядку служит для контроля пропущенных блоков. Первое сообщение содержит в этом поле случайное целое число M, последующие M+1, M+2,...M+L. Поле тип канала может принимать следующие значения:
Таблица 4.4 - Коды типов состояния каналов (LS)
LS-тип | Описание объявления о маршруте |
1 | Описание каналов маршрутизатора, то есть состояния его интерфейсов. |
2 | Описание сетевых каналов. Это перечень маршрутизаторов, непосредственно связанных с сетью. |
3 или 4 | Сводное описание каналов, куда входят маршруты между отдельными областями сети. Эта информация поступает от пограничных маршрутизаторов этих зон. Тип 3 приписан маршрутам, ведущим к сетям, а тип 4 характеризует маршруты, ведущие к пограничным маршрутизаторам автономной системы. |
5 | Описания внешних связей автономной системы. Такие маршруты начинаются в пограничных маршрутизаторах AS. |
Поле идентификатор канала определяет его характер, в зависимости от этого идентификатором может быть IP-адрес маршрутизатора или сети. Маршрутизатор, рекламирующий канал определяет адрес этого маршрутизатора. Поле порядковый номер канала позволяет маршрутизатору контролировать порядок прихода сообщений и их потерю. Поле возраст канала определяет время в секундах с момента установления связи. После обмена сообщениями с соседями маршрутизатор может выяснить, что часть данных в его базе устарела. Он может послать своим соседям запрос с целью получения свежей маршрутной информации о каком-то конкретном канале связи. Сосед, получивший запрос, высылает необходимую информацию. Запрос посылается в соответствии с форматом, показанном ниже (рисунок 4.12):
Формат OSPF-запроса маршрутной информации
Рисунок 4.12
Три поля этого запроса повторяются согласно числу каналов, информация о которых запрашивается. Если список достаточно длинен, может потребоваться несколько запросов. Маршрутизаторы посылают широковещательные (или мультикастинговые) сообщения об изменении состояния своих непосредственных связей.
Сообщение об изменении маршрутов
Рисунок 4.14.
Такое сообщение содержит список объявлений, имеющих формат (рисунок 4.14).
Сообщения об изменениях маршрутов могут быть вызваны следующими причинами:
1. Возраст маршрута достиг предельного значения (LSRefreshTime).
2. Изменилось состояние интерфейса.
3. Произошли изменения в маршрутизаторе сети.
4. Произошло изменение состояния одного из соседних маршрутизаторов.
5. Изменилось состояние одного из внутренних маршрутов (появление нового, исчезновение старого и т.д.)
6. Изменение состояния межзонного маршрута.
7. Появление нового маршрутизатора, подключенного к сети.
8. Вариация виртуального маршрута одним из маршрутизаторов.
9. Возникли изменения одного из внешних маршрутов.
10. Маршрутизатор перестал быть пограничным для данной AS (например, перезагрузился).
Каждое сообщение о состоянии канала начинается с заголовка - "объявление состояния канала" (LS – Link State). Формат этого типа заголовка приведен ниже (20 октетов):
Формат OSPF-сообщения, описывающего состояние канала
Рисунок 4.15
Поле возраст LS информации (рисунок 4.15) определяет время в секундах с момента объявления состояния канала. Поле опции содержит значения типов сервиса (TOS), поддерживаемые маршрутизатором, рассылающим маршрутную информацию. Поле тип LS (тип состояния канала) может принимать значения, описанные выше в таблице 4.5. Следует обратить внимание, что код, содержащийся в этом поле, определяет формат сообщения. Поле длина задает размер сообщения в октетах, включая заголовок. В результате получается сообщение с форматом, показанным на рисунке 4.15. Зарезервированный октет должен быть обнулен. Идентификатор связи определяет тип маршрутизатора, подключенного к каналу. Действительное значение этого поля зависит от поля тип. В свою очередь информация о канале также зависит от поля тип. Число TOS определяет многообразие метрик, соответствующих видам сервиса, для данного канала. Последовательность описания метрик задается величиной кода TOS. Таблица кодов TOS, принятых в OSPF протоколе приведена ниже.
Таблица 4.5 - Коды типа сервиса (TOS)
OSPF-код | TOS-коды | TOS (RFC 1349) |
0 | 0000 | Обычный сервис |
2 | 0001 | Минимизация денежной стоимости |
4 | 0010 | Максимальная надежность |
8 | 0100 | Максимальная пропускная способность |
16 | 1000 | Минимальная задержка |
Если бит V=1 (virtual), маршрутизатор является оконечной точкой активного виртуального канала. Если бит E (external) равен 1, маршрутизатор является пограничным для автономной системы. Бит B=1 (border) указывает на то, что маршрутизатор является пограничным для данной области. Поле тип может принимать значения, приведенные в таблице 4.6.
Таблица 4.6 - Коды типов связей (см. рисунок 4.16)
Код типа связи | Описание |
1 | Связь с другим маршрутизатором по схеме точка-точка |
2 | Связь с транзитной сетью |
3 | Связь с оконечной сетью |
4 | Виртуальная связь (например, опорная сеть или туннель) |
Формат описания типа канала с LS=1
Рисунок 4.16
Поле идентификатор канала характеризует объект, с которым связывается маршрутизатор. Примеры идентификаторов представлены в таблице:
Таблица 4.7 - Коды идентификаторов канала
Код идентификатора | Описание |
1 | Идентификатор соседнего маршрутизатора |
2 | IP-адрес основного маршрутизатора (по умолчанию) |
3 | IP-адрес сети/субсети |
4 | Идентификатор соседнего маршрутизатора |
Маршрутизатор, получивший OSPF-пакет, посылает подтверждение его приема. Этот вид пакетов имеет тип=5 и структуру, отображенную на рисунок 4.17. Получение нескольких объявлений о состоянии линий может быть подтверждено одним пакетом. Адресом места назначения этого пакета может быть индивидуальный маршрутизатор, группа маршрутизаторов или все маршрутизаторы автономной системы.
Формат сообщения о получении OSPF-пакета
Рисунок 4.17
Рекламирование сетевых связей относится к типу 2. Сообщения посылаются для каждой транзитной сети в автономной системе. Транзитной считается сеть, которая имеет более одного маршрутизатора.
Формат сообщения о сетевых связях (тип LS=2)
Рисунок 4.19
Сообщение о сетевых связях должно содержать информацию обо всех маршрутизаторах, подключенных к сети, включая тот, который рассылает эту информацию. Расстояние от сети до любого подключенного маршрутизатора равно нулю для всех видов сервиса (TOS), поэтому поля TOS и метрики в этих сообщениях отсутствуют. Формат сообщения о транзитных сетевых связях показан на рисунок 4.18.
Следует помнить, что приведенные ниже сообщения должны быть снабжены стандартными 24-октетными OSPF-заголовками (на рисунке 4.19 отсутствует).
Сетевая маска относится к описываемой сети, а поле подключенный маршрутизатор содержит идентификатор маршрутизатора, работающего в сети. Информация об адресатах в пределах автономной системы передается LS-сообщениями типа 3 и 4. Тип 3 работает для IP-сетей. В этом случае в качестве идентификатора состояния канала используется IP-адрес сети. Если же адресатом является пограничный маршрутизатор данной AS, то используется LS-сообщение типа 4, а в поле идентификатор состояния канала записывается OSPF-идентификатор этого маршрутизатора. Во всех остальных отношениях сообщения 3 и 4 имеют идентичные форматы (рисунок 4.20):