Принципы работы OSPF
Создана 22.02.2024
Отредактирована 26.06.2024
Отредактирована 26.06.2024
Маршрутизация по протоколу OSPF осуществляется в 3 этапа:
- Инициализация отношений соседства и смежности;
- Обмен пакетами LSA;
- Вычисление дерева SPF.
Ниже рассматривается каждый из этих этапов.
Инициализация отношений соседства и смежности
Вначале рассмотрим, как происходит поиск соседей и выбор смежных маршрутизаторов. Это очень важный этап маршрутизации в среде OSPF. Процесс формирования отношений соседства и смежности, как правило, является достаточно простым в двухточечных конфигурациях. Однако в сетях с множественным и широковещательным доступом эта процедура становится намного более сложной.
В процессе инициализации отношений соседства и смежности соседи последовательно переходят из одного состояние в другое. Всего таких состояний восемь:
- Down - Начальное состояние разговора с соседом, показывающее, что от того в последнее время не приходило информации. Пакеты Hello на интерфейс не поступают. В сетях NBMA сообщения Hello могут передаваться соседям в состоянии Down;
- Attempt - Это состояние корректно только для соседей, подключенных к сетям NBMA, и показывает, что в последнее время от соседа не поступало информации, но попытки ее получения должны продолжаться путем передачи пакетов Hello с интервалом HelloInterval. Данное состояние конфигурируется вручную;
- Init - Это состояние говорит о недавнем приеме пакета Hello от соседа, с которым еще не организована двухсторонняя связь (т. е. данный маршрутизатор еще не включен в пакет Hello от соседа). Все соседи в этом состоянии (и более высоких) указываются в пакетах Hello, передаваемых связанным с ними интерфейсом;
- 2-Way - Между соседями организована двухсторонняя связь, обеспечивающая работу протокола Hello. С этого состояния начинается организация отношений смежности. Маршрутизаторы DR и BDR выбираются из числа соседей в состоянии 2-Way или выше. Маршрутизаторы получили Hello пакеты, которые уже содержат в поле "Neighbor" идентификационный номер маршрутизатора (Router ID);
- ExStart - Первый этап организации отношений смежности (adjacency), обеспечивающий согласование режимов ведущий-ведомый и выбор начального порядкового номера DD (Database Description - описание баз данных). Обмен данными между соседями в этом и более высоких состояниях называют отношениями смежности. Ведущим (master) становится маршрутизатор с наибольшим ID. Ведущий маршрутизатор передает пакет Database Description (это единственная часть обмена, которую при необходимости можно повторять). Ведомый (slave) маршрутизатор может лишь отвечать на пакеты Database Description.;
- Exchange - Выполняется обмен пакетами DD и запросами о состоянии каналов связи (LSR);
- Loading - В этом состоянии соседу передаются пакеты Link State Request для получения свежих LSA, которые были обнаружены (но еще не получены) в состоянии Exchange;
- Full - В этом состоянии обеспечивается полная смежность соседних маршрутизаторов. Отношения смежности отражаются в анонсах router–LSA и network–LSA.
Требования соседства в OSPF
Для того чтобы процесс формирования соседства и смежности между маршрутизаторами был в рабочем состоянии, нужно учесть следующие совпадения:
- совпадение Area;
- совпадение Authentication;
- совпадение Subnet;
- совпадение Timers.
Down ⇒ Init ⇒ 2-Way ⇒ ExStart ⇒ Exchange ⇒ Loading ⇒ Full
Рассмотрим пример инициализации отношений смежности в сети с широковещательным множественным доступом. На рис. 1 схематически изображены все стадии процесса инициализации. Процесс начинается с рассылки пакетов Hello. Каждый маршрутизатор, получающие эти пакеты, добавляет исходный маршрутизатор в свою таблицу соседей. Каждый маршрутизатор, рассылающий приветствия, включает в них свои данные, полученные им самим в пакетах Hello. Исходный маршрутизатор корректирует свою таблицу соседей с учетом этой информации.
Рис. 1. Инициализация равноправного маршрутизатора OSPF
Исходный маршрутизатор выполняет поиск соседей и выбор смежных маршрутизаторов с помощью протокола Hello путем периодической рассылки пакетов-приветствий (пакеты Hello) по групповым адресам через все свои физические интерфейсы (включая виртуальные каналы). Интервал рассылки (HelloInterval) по умолчанию составляет 10 секунд. В приветствиях содержится обширная информация, относящаяся к исходному маршрутизатору. Важно подчеркнуть, что идентификационные номера (Router ID) маршрутизатора и области (Area ID), а также аутентификационные (Authentication) данные помещаются в общий заголовок пакета OSPF.
Пакеты Hello относятся к типу 1 (Type = 1) .
Рис. 2. Пакет Hello
Для всех маршрутизаторов, подключенных к общей сети, должны быть согласованы параметры Network mask, HelloInterval и RouterDeadInterval. Эти параметры включаются в пакеты Hello, поэтому рассогласование может влиять на формирование соседских отношений. Ниже представлены данные, передаваемые пакетам-приветствия.
Данные относятся к заголовку пакета OSPF
Version #
Номер версии протокола OSPF.
Packet length
Размер пакета OSPF в байтах с учетом стандартного заголовка OSPF.
Router ID
Идентификатор маршрутизатора источника пакета.
Area ID
Идентификационный номер (32-битовый идентификатор) области, к которой принадлежит интерфейс исходного маршрутизатора. Все пакеты OSPF связываются с определенной (единственной) областью. Большинство пакетов передается лишь на один интервал (hop). Пакеты, передаваемые через виртуальные каналы, помечают идентификатором магистральной области 0.0.0.0.
Checksum
Стандартная контрольная сумма IP для всего пакета, начиная с заголовка OSPF, но без учета 64-битового поля аутентификации. Если размер пакета не равен целому числу 16-битовых слов, пакет дополняется справа соответствующим числом нулей до вычисления контрольной суммы. Определение контрольной суммы рассматривается как часть процесса аутентификации, но для некоторых типов аутентификации подсчет контрольной суммы не применяется.
AuType
Определяет используемую для пакета процедуру аутентификации.
Authentication
64-битовое поле, используемое схемой аутентификации. Идентификационный пароль и другие данные, необходимые для подтверждения достоверности информации, содержащейся в пакетах.
Данные относятся к пакету Hello
Network mask
Маска сети, связанной с интерфейсом маршрутизатора.
HelloInterval
Число секунд между передачей пакетов Hello.
Options
Дополнительные возможности, поддерживаемые маршрутизатором, влияющие на формирование отношений соседства.
Rtr Pri
Значение Router Priority для маршрутизатора, используемое при выборе DR и BDR. Нулевое значение блокирует возможность стать DR и BDR. Для двухточечных каналов не задается.
RouterDeadInterval
Интервал времени, в течение которого должен быть получен пакет Hello. В противном случае сосед считается неработоспособным.
Designated Router
Указывает выделенный маршрутизатор DR для данной сети с точки зрения передающего маршрутизатора. DR идентифицируется в сети по IP-адресу. Если маршрутизатора DR нет, поле имеет значение 0.0.0.0.
Backup Designated Router
Идентифицирует маршрутизатор Backup DR с точки зрения передающего пакет маршрутизатора. Backup DR идентифицируется адресом IP для интерфейса в данную сеть. При отсутствии Backup DR это поле содержит значение 0.0.0.0.
Neighbor
Значения Router ID для каждого маршрутизатора, чьи пакеты Hello были недавно (RouterDeadInterval секунд) видны в сети.
Форматы пакетов OSPF
Как говорилось выше, пакет Hello относится к типу 1, всего типов пакетов OSPF 5 штук, они перечислены в таблице 1 и кратко представлены на рисунке 4, обратите внимание, что у всех этих пакетов один и тот же заголовок пакета OSPF.
Рис. 4. Форматы пакетов OSPF
Таблица 1. Типы пакетов OSPF
Тип | Название | Назначение | |
---|---|---|---|
1 | Hello | Обнаружение и поддержка соседства | Пакеты Hello передаются периодически во все интерфейсы (включая виртуальные каналы) для организации и поддержки соседских отношений. Кроме того, пакеты Hello рассылаются по групповым адресам в сетях, обеспечивающих такую возможность, для динамического обнаружения соседних маршрутизаторов. |
2 | Database Description | Сводка содержимого БД | Обмен этими пакетами происходит при инициализации отношений смежности (adjacency). Пакеты описывают содержимое базы данных о каналах. |
3 | Link State Request | Загрузка БД | После обмена пакетами DD с соседом маршрутизатор может понять, что часть его базы данных устарела. Пакеты LSR служат для запроса более современных фрагментов базы данных у соседа. При обновлении может использоваться множество пакетов LSR. |
4 | Link State Update | Обновление БД | Пакеты LSU используются для лавинной рассылки LSAs (Advertisements). Каждый пакет LSU передает набор LSA на один интервал от точки их происхождения. В одном пакете может содержаться множество LSA. |
5 | Link State Acknowledgment | Подтверждение лавинной рассылки | Для обеспечения надежности лавинной рассылки LSAs (Advertisements), все анонсы должны подтверждаться в явной форме. Подтверждения обеспечиваются с помощью пакетов LSAck, каждый из которых может подтверждать прием множества LSA. |
Пакет Database Description
Пакеты DD относятся в OSPF к типу 2. Обмен этими пакетами происходит при инициализации отношений смежности (adjacency). Пакеты описывают содержимое базы данных о каналах. Для описания базы данных может использоваться множество пакетов с использованием процедуры poll–response (опрос-отклик). Один из маршрутизаторов является ведущим (master), а второй – ведомым (slave). Ведущий маршрутизатор передает пакеты DD, которые подтверждаются пакетами DD от ведомого маршрутизатора. Отклики связываются с опросом через порядковые номера (sequence number) пакетов DD.
Формат пакетов DD очень похож на формат пакетов LSR и LSAck. Все эти три типа пакетов содержат список элементов, каждый из которых описывает часть базы данных о каналах маршрутизатора.
Канал — это интерфейс маршрутизатора или логический интерфейс коммутатора L3, сегмент сети,
который соединяет два маршрутизатора или тупиковую сеть (stub network), такую как Ethernet LAN,
которая подключена к одному маршрутизатору. Данные о состоянии этих каналов также называются
состоянием канала.
Вся информация о состоянии канала включает префикс сети, длину префикса и стоимость.
Рис. 5. Пакет Database Description
Данные относятся к пакету Database Description
Interface MTU
Размер (в байтах) максимальной дейтаграммы IP, которая может быть передана через интерфейс без фрагментации. Значения MTU для типовых каналов Internet можно найти в таблице 7-1 работы [Ref22]. В пакетах DD, передаваемых через виртуальные каналы, должно устанавливаться Interface MTU = 0.
Options
Дополнительные возможности маршрутизатора:
I - Бит Init, устанавливаемый для первого (по порядку) пакета DD.
M - Бит More, указывающий на присутствие других (последующих) пакетов DD.
MS - Бит Master/Slave, определяющий отношения маршрутизаторов при Database Exchange (1 – ведущий, 0 – ведомый).
M - Бит More, указывающий на присутствие других (последующих) пакетов DD.
MS - Бит Master/Slave, определяющий отношения маршрутизаторов при Database Exchange (1 – ведущий, 0 – ведомый).
DD sequence number
Используется для нумерации пакетов DD. Начальное значение (указывается флагом Init) должно быть уникальным. Далее порядковый номер DD увеличивается на 1 для каждого пакета вплоть до передачи всей базы данных.
Остальная часть пакета содержит (возможно неполный) список частей базы данных link–state. Каждая запись LSA в базе описывается заголовком LSA (Link State Advertisements), содержащим все данные для уникальной идентификации LSA и текущего экземпляра.
Пакет Link State Request
Пакеты LSR относятся в OSPF к типу 3. После обмена пакетами DD с соседом маршрутизатор может понять, что часть его базы данных устарела. Пакеты LSR служат для запроса более современных фрагментов базы данных у соседа. При обновлении может использоваться множество пакетов LSR.
Маршрутизатор, передающий запрос LSR, должен помнить конкретный экземпляр запрашиваемого фрагмента базы данных. Экземпляры идентифицируются порядковым номером, возрастом и контрольной суммой, но эти поля не указываются в самом пакете LSR. Маршрутизатор в ответ на запрос может получить более свежий (по сравнению с запрошенным) экземпляр.
Каждый запрошенный анонс LSA указывается его типом, а также значениями Link State ID и Advertising Router. Эти параметры уникально описывают LSA, но не конкретный экземпляр анонса. Понятно, что пакеты LSR используются для запроса последнего экземпляра анонса.
Рис. 6. Пакет Link State Request
Пакет Link State Update
Пакеты LSU относятся в OSPF к типу 4 и используются для лавинной рассылки (flooding) LSA. Каждый пакет LSU передает набор LSA на один интервал от точки их происхождения. В одном пакете может содержаться множество LSA.
Пакеты LSU являются групповыми для сетей поддерживающих широковещательную и групповую адресацию. Для обеспечения надежности процедуры лавинной рассылки отправленные LSA подтверждаются в пакетах LSAck. Если требуется повтор передачи некоторых LSA, они всегда передаются соседу напрямую.
Рис. 7. Пакет Link State Update
# LSAs
Число LSA, включенных в этот пакет обновления.
Тело пакетов LSU содержит список LSA, начинающихся со стандартного 20-байтового заголовка, описанного ниже. Описания различных типов LSA будут приведены ниже.
Пакет Link State Acknowledgment
Пакеты LSAck относятся в OSPF к типу 5. Для обеспечения надежности лавинной рассылки LSA, все анонсы должны подтверждаться в явной форме. Подтверждения обеспечиваются с помощью пакетов LSAck, каждый из которых может подтверждать прием множества LSA.
В зависимости от состояния передающего интерфейса и отправителя соответствующего пакета LSU, пакеты LSAck передаются по групповым (AllSPFRouters или AllDRouters) или индивидуальным адресам.
Формат пакетов подтверждения похож на формат пакетов DD. Тело пакета просто содержит список заголовков подтверждаемых LSA.
Рис. 8. Пакет Link State Acknowledgment
Форматы LSA (Link State Advertisements - анонсы состояния каналов)
В документе RFC 2328 описывается 5 различных типов LSA. Каждый анонс LSA начинается со стандартного 20-байтового заголовка LSA, описанного ниже.
Каждый анонс LSA описывает часть маршрутного домена OSPF. Каждый маршрутизатор порождает router-LSA. В дополнение к этому при выборе маршрутизатора в качестве DR, этот маршрутизатор порождает network-LSA. Кроме того, маршрутизаторы могут создавать и другие типы LSA. Для всех LSA выполняется лавинная рассылка через домен маршрутизации OSPF. Алгоритм лавинной рассылки является надежным способом доставки всем маршрутизаторам одного набора LSA. Рассылаемый набор LSA называют базой данных о состоянии каналов.
Из базы данных о состоянии каналов каждый маршрутизатор создает дерево кратчайших путей с собой в качестве корня. Это дает в результате таблицу маршрутизации.
Заголовок LSA
Все записи LSA начинаются с однотипного заголовка размером 20 байтов. Информации из заголовка достаточно для уникальной идентификации LSA (LS type, Link State ID и Advertising Router). В области маршрутизации может одновременно существовать множество экземпляров LSA. Для определения последнего из них служат поля LS age, LS sequence number и LS checksum из заголовка LSA.
Рис. 9. Заголовок LSA
LS age
Время (в секундах) с момента генерации LSA.
Options
Дополнительные возможности, которые поддерживаются в описываемой части домена маршрутизации.
LS type
Тип LSA, определяющий формат анонса. Определенные в данной спецификации 5 типов LSA.
Link State ID
Это поле идентифицирует часть сети, описываемую анонсом LSA. Содержимое поля зависит от типа LSA. Например, в network–LSA поле Link State ID содержит IP-адрес интерфейса маршрутизатора DR для данной сети (по этому адресу определяется номер сети).
Advertising Router
Значение Router ID маршрутизатора, породившего LSA (в network–LSA это поле содержит Router ID маршрутизатора DR).
LS sequence number
Порядковый номер служит для обнаружения дубликатов и старых LSA. Следующий экземпляр LSA имеет следующий порядковый номер.
LS checksum
Контрольная сумма Флэтчера (Fletcher) для всего содержимого LSA, включая заголовок LSA, но без учета поля LS age.
length
Размер LSA в байтах с учетом 20-байтового заголовка LSA.
Типы анонсов OSPF (LSA)
Далее представлена таблица 2 с 5 типами анонсов OSPF (LSA), обратите внимание, что у них общий заголовок LSA рис 10.
Рис. 10. Заголовок LSA и типы анонсов OSPF (LSA)
Таблица 2. Типы анонсов OSPF (LSA)
Тип | Имя LSA | Описание LSA |
---|---|---|
1 | Router-LSAs | Генерируются всеми маршрутизаторами. Этот тип LSA описывает состояния интерфейсов маршрутизатора в область. Анонс рассылается в лавинном режиме внутри области. |
2 | Network-LSAs | Генерируется выделенным маршрутизатором DR для широковещательных и NBMA-сетей. Этот тип LSA включает список маршрутизаторов, подключенных к сети. Рассылается в лавинном режиме внутри области. |
3 и 4 | Summary-LSAs | Генерируется граничными маршрутизаторами областей и рассылается в лавинном режиме в пределах связанной с LSA области. Каждый анонс summary–LSA описывает маршрут к адресату за пределами данной области, но внутри данной AS (маршрут между областями). Тип 3 summary–LSA описывает маршруты в сети, а тип 4 – к граничным маршрутизаторам AS. |
5 | AS-external-LSAs | Генерируется граничными маршрутизаторами AS и рассылается по всей автономной системе. Каждый анонс AS–external–LSA описывает маршрут к адресатам в другой AS. Принятые по умолчанию маршрутизаторы AS также могут описываться в AS–external–LSA. |
Router-LSAs
Router–LSA относятся к типу 1 и порождаются каждым маршрутизатором области. Эти LSA описывают состояние и стоимость (cost) каналов (интерфейсов) маршрутизатора в область. Все каналы маршрутизатора в область должны описываться в одном анонсе router–LSA.
Рис. 11. Router-LSA
В router-LSA поле Link State ID содержит OSPF Router ID. Анонсы Router–LSA рассылаются в пределах области.
bit V
Этот флаг устанавливается в тех случаях, когда маршрутизатор является конечной точкой одного или нескольких виртуальных каналов с полной смежностью, для которых описываемая область является транзитной (V – virtual).
bit E
Этот флаг устанавливается для граничных маршрутизаторов AS (E – external).
bit B
Этот флаг устанавливается для граничных маршрутизаторов области (B – border).
# links
Число каналов маршрутизатора, описываемых в LSA (должно совпадать в числом интерфейсов маршрутизатора в область).
Перечисленные ниже поля используются для описания каждого канала (интерфейса) маршрутизатора. Каждый канал имеет определенный тип (поле Type) – канал в транзитную сеть, к другому маршрутизатору или в тупиковую сеть. Значения остальных полей, описывающих канал маршрутизатора, зависят от типа канала. Например, каждый канал имеет 32-битовое поле Link Data. Для каналов в тупиковые сети это поле содержит маску адреса, а для остальных типов – IP-адрес интерфейса маршрутизатора.
Type
Краткое описание канала маршрутизатора (см. таблицу ниже) Отметим, что маршруты к хостам классифицируются как каналы в тупиковые сети с маской 0xffffffff.
Тип | Описание |
---|---|
1 | Соединение «точка-точка» с другим маршрутизатором. |
2 | Соединение с транзитной сетью. |
3 | Соединение с тупиковой сетью. |
4 | Виртуальный канал. |
Link ID
Идентифицирует объект, к которому подключен маршрутизатор. Содержимое поля зависит от типа соединения (поле Type). При соединении с объектом, генерирующим LSA (другой маршрутизатор или транзитная сеть) поле Link ID содержит значение Link State ID из LSA соседа. Это обеспечивает ключ поиска LSA соседей в базе данных при расчете таблицы маршрутов.
Тип | Идентификатор |
---|---|
1 | Router ID соседнего маршрутизатора |
2 | IP-адрес маршрутизатора DR |
3 | IP-номер сети/подсети |
4 | Router ID соседнего маршрутизатора |
Link Data
Содержимое этого поля зависит от типа соединения (Type). Для соединений с тупиковыми сетями поле Link Data содержит маску IP, для безадресных соединений «точка-точка» – ifIndex (MIB–II для интерфейса [Ref8]), а для остальных типов соединений – IP-адрес интерфейса маршрутизатора. Это поле обеспечивает последнюю часть информации, требуемой для построения таблицы маршрутов когда рассчитывается IP-адрес следующего маршрутизатора (next hop).
# TOS
Число метрик TOS, заданных для данного соединения, без учета требуемой метрики канала (обозначается как TOS 0, [Ref9]). Например, при отсутствии дополнительной метрики TOS это поле имеет значение 0.
metric
Стоимость использования этого канала маршрутизатора.
В анонс может также включаться дополнительная информация, связанная с TOS и используемая для совместимости с предыдущими версиями OSPF [Ref9]. Для каждого канала, которому нужна информация TOS, могут использоваться указанные ниже поля.
TOS
Тип обслуживания, к которому относится метрика.
TOS metric
Связанная с TOS метрическая информация.
Network-LSAs
Network–LSA относятся к типу 2 и генерируются для каждой широковещательной и NBMA-сети в области, поддерживающей более 1 маршрутизатора. Анонсы network–LSA создаются DR и описывают все подключенные к сети маршрутизаторы, включая DR. Поле Link State ID содержит IP-адрес интерфейса DR. Дистанция от сети до всех подключенных маршрутизаторов равна 0, поэтому поле метрики не включается в network–LSA.
Рис. 12. Network-LSA
Network Mask
Маска сети (например, IP-сеть класса A имеет маску 0xff000000).
Attached Router
Идентификаторы Router ID каждого из подключенных к сети маршрутизаторов. Реально перечисляются только маршрутизаторы, установившие полные отношения смежности с DR, и сам DR. Число включенных в список маршрутизаторов можно определить из поля длины в заголовке LSA.
Summary-LSAs
Summary–LSA относятся к типам 3 и 4 и генерируются граничными маршрутизаторами областей. Анонсы Summary–LSA описывают маршруты между областями.
Анонсы summary–LSA типа 3 используются в тех случаях, когда адресатом является сеть IP. В этом случае поле Link State ID содержит IP-номер сети (при необходимости Link State ID может включать также биты адреса хоста).
Когда адресатом является граничный маршрутизатор AS, используется summary–LSA типа 4 и поле Link State ID содержит OSPF Router ID граничного маршрутизатора AS (ASBR). За исключением различий в использовании поля Link State ID анонсы summary–LSA типов 3 и 4 идентичны.
Когда адресатом является граничный маршрутизатор AS, используется summary–LSA типа 4 и поле Link State ID содержит OSPF Router ID граничного маршрутизатора AS (ASBR). За исключением различий в использовании поля Link State ID анонсы summary–LSA типов 3 и 4 идентичны.
Рис. 13. Summary-LSA
Для тупиковых областей summary–LSA типа 3 могут также описывать принятые по умолчанию маршруты (по областям). Такие маршруты используются в тупиковых областях взамен лавинной рассылки полного набора внешних маршрутов. При описании используемого по умолчанию маршрута поле Link State ID в summary–LSA всегда содержит значение DefaultDestination (0.0.0.0), а Network Mask = 0.0.0.0.
Network Mask
Для summary-LSA типа 3 это поле показывает маску сети адресата. Например, при анонсировании адресата из сети класса A будет использоваться значение 0xff000000. Это поле не используется в summary–LSA типа 4 и должно иметь нулевое значение.
metric
Стоимость маршрута, выраженная в таких же единицах, как стоимость в анонсах router–LSA.
Дополнительная информация, связанная с TOS, может включаться для обеспечения совместимости с предыдущей версией OSPF [Ref9]. Для всех желаемых уровней TOS информация представляется следующим образом:
TOS
Тип обслуживания, к которому относится метрика.
TOS metric
Связанная с TOS метрическая информация.
Вычисление дерева OSPF
Деревья кратчайшего пути (деревья SPF) - это пути в сетях к любому адресату. К каждой известной сети ведет некоторый путь. Протокол OSPF работает с адресатами двух типов: сеть и маршрутизатор. Маршрутизатор назначения является либо граничным маршрутизатором области (ABR), либо граничным маршрутизатором автономной системы (ASBR).
После того как все маршрутизаторы OSPF синхронизирует свои базы данных о состоянии каналов, каждый маршрутизатор самостоятельно вычисляет дерево SPF к любой известной сети назначения. Расчеты выполняются с помощью алгоритма Дейкстры. При этом должна быть известна метрика для каждого канала связи.
Вычисление дерева OSPF
В протоколе OSPF используется метрика, называемая стоимостью. Значение стоимости присваивается каждому выходному интерфейсу в дереве SPF. Полная стоимость пути равна сумме стоимостей выходных интерфейсов на всем протяжении пути. Согласно спецификации RFC 2338, стоимость является произвольной величиной. Поэтому компания Cisco применяет свою собственную формулу расчета стоимости для любого OSPF-интерфейса: 108/полоса пропускания, где знаменатель представляет собой конфигурируемую полосу пропускания интерфейса.
Показатель стоимости может быть изменен с помощью команды ip ospf cost и задан в пределах от 1 до 65 535. Так как значение стоимости присваевается всем каналам, этот параметр необходимо задавать для каждого интерфейса.