Все объявления о состоянии связей (LSA) состоят из заголовка и тела и пересылаются в сообщениях OSPF типа 4, а заголовки отдельно также пересылаются в сообщениях типа 2 и 5. Заголовок LSA имеет одинаковый формат для всех типов LSA.
Значения полей:
· LS Age (2 октета) – возраст связи (связей), содержащихся в данном LSA.
· Options (1 октет) – содержимое октета аналогично такому же октету в сообщении Hello.
· LS Type (1 октет) – тип LSA.
· Link State ID (4 октета) – идентификатор связи (связей), объявляемых в данном LSA, интерпретация этого поля зависит от типа LSA:
Тип LSA | Link State ID |
1 | то же, что и «Advertising Router» |
2 | IP‑адрес интерфейса выделенного маршрутизатора, подключенного к данной сети множественного доступа |
3 | IP‑адрес сети, находящейся за пределами области |
4 | идентификатор ASBR |
5 | IP‑адрес сети, находящейся за пределами системы |
· Advertising Router (4 октета) – идентификатор маршрутизатора, ответственного за объявление и поддержку связи (связей), содержащихся в данном LSA.
· Link State sequence number (4 октета) – порядковый номер (версия) состояния связи (связей), содержащихся в данном LSA.
· LS Checksum (2 октета) – контрольная сумма, вычисляется таким же методом, что и контрольная сумма IP‑заголовка; защищает как заголовок, так и тело LSA.
· length (2 октета) – длина LSA в октетах, включая 20 октетов заголовка LSA.
Значения полей:
· VEB (3 бита) – первый октет обнулен за исключением трех старших бит V (бит 5), E (бит 6) и B (бит 7). Установленные значения этих бит говорят о том, что маршрутизатор, объявивший данное LSA, является:
o бит B– пограничным маршрутизатором области (ABR);
o бит Е – пограничным маршрутизатором системы (ASBR);
o битV– оконечной точкой виртуальной связи.
· Число связей (2 октета) – число связей, объявленных в данном LSA.
· Объявление о каждой связи состоит из полей «LinkID», «LinkData», «Type», «#TOS», «TOS 0 metric», за которыми может следовать 0 или более 32‑разрядных слов, состоящих из полей «TOS», нулевого октета и «TOSmetric». Количество таких слов определяется полем «#TOS».
· LinkID(4 октета), LinkData (4 октета), Type (1 октет) – интерпретация полей «LinkID» и «LinkData» зависит от значения поля «Type» (ниже в колонке «LinkData» под IP‑адресом понимается IP‑адрес интерфейса объявляющего маршрутизатора, подключенного к той связи, которую он объявляет):
Type | Link ID | Link Data |
1 – двухточечная связь между маршрутизаторами | идентификатор соседа | IP‑адрес |
2 – связь с транзитной сетью | IP‑адрес интерфейса выделенного маршрутизатора | IP‑адрес |
3 – связь с тупиковой сетью (см. также конец этого пункта) | IP‑адрес тупиковой сети | маска тупиковой сети |
4 – виртуальная связь | идентификатор соседа по магистрали, с которым установлена виртуальная связь | IP‑адрес |
#TOS(1 октет) – число метрик для маршрутизации по типу сервиса для данной связи (0 – метрики для маршрутизации по типу сервиса не определены).
· TOS 0 metric (2 октета) – метрика данной связи для маршрутизации без учета типа сервиса (метрика по умолчанию).
· TOS (1 октет), TOSmetric (2 октета) – метрика данной связи («TOSmetric») для указанного типа сервиса («TOS»). Число таких метрик определено полем «#TOS» и может быть равно нулю. Значение TOS определяется, как в заголовке IP‑дейтаграммы. Несмотря на то, что маршрутизация по типу сервиса исключена из последней версии стандарта OSPF, эти поля поддерживаются для совместимости с предыдущими версиями.
Кроме собственно связей с тупиковыми сетями, следующие связи объявляются как связи с тупиковыми сетями:
· связь с собственным интерфейсом (интерфейсами) типа loopback (LinkID=IP‑адрес интерфейса, LinkData заполняется единицами);
· cвязь с хостом, подключенным к маршрутизатору по двухточечной линии (LinkID=IP‑адрес хоста, LinkData заполняется единицами);
· связь с сетью, представляющей собой двухточечное соединение между маршрутизаторами (в дополнение к собственно двухточечной связи между маршрутизаторами); в случае, если этой сети не присвоены адрес и маска, LinkID равен IP‑адресу интерфейса соседнего маршрутизатора, LinkData заполняется единицами;
· связь с собственным интерфейсом, подключенным к соединению типа point-to-multipoint (в дополнение к двухточечным связям с каждым из соседей, подключенным к этому соединению); LinkID=IP‑адрес интерфейса, LinkData заполняется единицами.
Значения полей:
· Network Mask (4 октета) – маска сети множественного доступа (адрес этой сети указан в поле «Link State ID» заголовка LSA).
· Attached Router (4 октета) – идентификатор маршрутизатора, подключенного к сети множественного доступа. Перечисляются все маршрутизаторы, установившие отношения смежности с выделенным маршрутизатором. Длина списка маршрутизаторов определяется из общей длины LSA, указанной в заголовке LSA.
LSA этого типа описывает связи, направленные в графе системы от вершины типа «транзитная сеть» к маршрутизаторам этой сети. Метрика этих связей не указывается, поскольку она считается равной нулю.
LSA типа 3 или 4 содержит объявление о расстоянии только до одной IP‑сети, лежащей за пределами области (до одного пограничного маршрутизатора). Адрес сети или идентификатор маршрутизатора указан в поле «LinkStateID» заголовка LSA.
Поле «NetworkMask» (4 октета) содержит значение маски сети, если это LSA типа 3, или все единицы, если это LSA типа 4. Далее следует 32‑битное слово, два последних октета которого содержат метрику расстояния по умолчанию (тип сервиса 0), после которого может следовать 0 или более 32‑битных слов, объявляющих метрики расстояний для маршрутизации по типам сервиса – аналогично тому, как это сделано в LSA типа 1. Несмотря на то, что маршрутизация по типу сервиса исключена из последней версии стандарта OSPF, эти поля поддерживаются для совместимости с предыдущими версиями.
Поле «#TOS» здесь отсутствует, т. к. число объявлений метрик для типов сервиса можно вычислить из общей длины LSA, указанной в заголовке LSA.
LSA типа 3 и 4 распространяются областными пограничными маршрутизаторами как внутри периферийных областей, так и в магистрали. LSA, распространяемые в периферийной области, содержат информацию о достижимости сетей и ASBR, находящихся в магистрали и других периферийных областях. LSA, распространяемые в магистрали, содержат информацию о достижимости сетей и ASBR, находящихся в периферийной области.
Если возможно, адреса нескольких сетей агрегируются в общий адрес с более короткой маской, что уменьшает количество LSA и размер базы данных.
Значения полей:
NetworkMask (4 октета) – маска внешней IP‑сети. IP‑адрес этой сети указан в поле «LinkStateID» заголовка LSA.
Далее следует одна или более записей с указанием метрики и других характеристик маршрута до данной сети для разных типов сервиса (поля «ETOS», «TOSmetric», «ForwardingAddress», «ExternalRouteTag»). Первыми указываются характеристики для TOS=0 (т.е. когда тип сервиса не учитывается), эта часть присутствует обязательно. Число прочих типов сервиса, представленных в LSA, определяется из общей длины LSA, указанной в заголовке LSA. Несмотря на то, что маршрутизация по типу сервиса исключена из последней версии стандарта OSPF, соответствующие поля поддерживаются для совместимости с предыдущими версиями.
· E (ETOS) – младший бит октета, содержащего значение TOS (самим значением TOS используются биты 3–6). Имеет следующие значения:
o Е установлен à метрика внешнего маршрута исчисляется в единицах, не сравнимых с исчислением метрик в OSPF (протоколы внешней маршрутизации, поставляющие данные о внешних маршрутах, не обязаны использовать совместимые с OSPF значения метрик); в этом случае метрика, указанная для соответствующего TOS, должна считаться больше любой метрики в OSPF‑системе;
o Е сброшен à метрика внешнего маршрута может складываться с метриками внутренних маршрутов.
· TOS 0 metric(TOSmetric) (2 октета) – метрика для соответствующего значения TOS.
· ForwardingAddress (4 октета) – адрес маршрутизатора, которому следует пересылать дейтаграммы, адресованные в объявляемую внешнюю сеть. Это поле используется, когда ASBR считает, что он сам – не лучший «следующий маршрутизатор» на пути в данную внешнюю сеть. Например, в одной IP‑сети с ASBR находится маршрутизатор G, не поддерживающий протокол OSPF (а поддерживающий, например, BGP), причем через G лежат кратчайшие маршруты к определенным внешним сетям. ASBR, который также поддерживает и BGP, узнаёт от G об этих маршрутах и объявляет их в автономной системе, однако с помощью «ForwardingAddress» он тут же указывает, что дейтаграммы, адресованные в эти сети, лучше сразу же направлять маршрутизатору G.
Возможны и другие примеры. Если поле «ForwardingAddress» обнулено, то дейтаграммы следует пересылать тому ASBR, который объявил данное LSA.
· ExternalRouteTag (4 октета) – поле, используемое ASBR для целей внешней маршрутизации; модулем OSPF игнорируется.
Если возможно, адреса нескольких внешних сетей агрегируются в общий адрес с более короткой маской, что уменьшает количество LSA и размер базы данных.
Конфигурирование OSPF‑маршрутизатора
Для конфигурирования OSPF‑маршрутизатора потребуются, как минимум, следующие шаги:
· указать связи, которые будут включены в OSPF‑систему; если это широковещательные сети, то указать адреса этих сетей; в случае нешироковещательных сетей и двухточечных связей указать адреса возможных соседей;
· если требуется, указать тип cоединения (двухточечный, point-to-multipoint);
· если есть разбиение на области, для каждой связи указать номер области и ее тип;
· если требуется, сконфигурировать виртуальные связи;
· сконфигурировать внешние маршруты или организовать их получение от протоколов внешней маршрутизации, или установить маршрут по умолчанию – на пограничных маршрутизаторах системы.