Network Working Group Request for Comments: 2328 STD: 54
Obsoletes: 2178 Category: Standards Track
J. Moy Ascend Communications, Inc.
April 1998
Протокол OSPF версии 2
OSPF Version 2
Статус документа
Этот документ содержит спецификацию протокола для сообщества Internet и служит запросом для дальнейшего обсуждения и предложений в целях совершенствования протокола. Точные сведения о статусе документа можно найти в Internet Official Protocol Standards ( STD 1 ). Документ может распространяться свободно.
Авторские права
Copyright (C) The Internet Society (1998). All Rights Reserved.
Тезисы
Этот документ описывает вторую версию OSPF – протокола маршрутизации на основе состояний каналов (link-state routing protocol). Протокол предназначен для использования внутри автономных систем (AS). Все OSPF-маршрутизаторы поддерживают идентичные базы данных с описанием топологии AS. На основании данных из базы рассчитывается маршрут путем конструирования дерева кратчайшего пути.
При изменении топологии OSPF быстро пересчитывает маршруты и не порождает значительного трафика при обновлении маршрутной информации. Протокол OSPF обеспечивает поддержку множества путей с одинаковой стоимостью (equal-cost multipath). Поддерживается «маршрутизация областей» (area routing), обеспечивающая дополнительный уровень защиты маршрутизации и снижение служебного трафика при обмене маршрутной информацией. Кроме того, обмен маршрутной информацией осуществляется с использованием средств аутентификации.
Различия между этим документом и RFC 2178 рассмотрены в Приложении G. Все изменения протокола обеспечивают обратную совместимость.
Реализации описываемого протокола совместимы (интероперабельны) с реализациями RFC 2178, RFC 1583 и RFC 1247.
Комментарии к данному документу направляйте по адресу ospf@gated.cornell.edu.
Оглавление
............................................................................................................................................................... ...................... 1
............................................................................................................................................................... ...................... 1
....................................................................................................................................................................... ..... .... ...... 1
........................................................................................................................................................... ....... ..................... 3
1.1.  Обзор протокола ............................................................................................................................................................................... ..3...
1.2. Терминология .................................................................................................................................................................................. ........4. .
1.3. Краткая история маршрутизации на базе состояния каналов ................................................................................................... ..... 5
1.4. Структура документа ...................................................................................................................................................................... ..... 5. .
1.5. Благодарности ........................................................................................................................................................... ... ........................... 6
2. База данных Link-state: структура и расчеты ................................................................................................................................. ........... 6
2.1. Представление маршрутизаторов и сетей ...................................................................................................................................... ....6. .
2.1.1. Представление сетей без широковещания .................................................................................................................... ........... 7
2.1.2. Пример базы данных о каналах ..................................................................................................................................... ............. 7
2.2.  Дерево кратчайших путей .............................................................................................................................................................. ....9...
2.3. Внешние данные ................................................................................................................................................................................ ...9...
2.4. Множество равноценных путей ......................................................................................................................................... .............. 10
3. Деление AS на области ........................................................................................................................................................ ....... .................. 10
3.1. Магистраль AS ................................................................................................................................................................................... 1..0...
3.2. Маршрутизация между областями .............................................................................................................................................. ..... 1. 0
3.3. Классификация маршрутизаторов ............................................................................................................................................. ...... 11
3.4. Пример конфигурации областей ............................................................................................................................................... ....... 12
3.5. Поддержка подсетей IP .................................................................................................................................................. ...... .. ............. 13
3.6. Поддержка «тупиковых» областей ........................................................................................................................................ .......... 14
3.7. Разделение областей .................................................................................................................................................... ..... .. ................. 14
4. Основные функции ............................................................................................................................................................ ......................... 14
4.1. Междоменная маршрутизация ..................................................................................................................................................... ....1..5
4.2. Внешние маршруты AS ..................................................................................................................................................................... 1. .5...
4.3. Пакеты протокола маршрутизации ............................................................................................................................................. ..... 1. 5
4.4. Основные требования к реализации....
4.5. Дополнительные возможности OSPF..
5. Структуры данных протокола ......................
6. Структура данных области ...........................
7. Организация отношений смежности ...........
.....................................16
......................................17
..................................17
................................18
.....................................19
                                                                                        Перевод RFC 2328
7.1. Протокол Hello ........................................................................................................................................................................... ..... ...19
7.2. Синхронизация баз данных .......................................................................................................................................... ..................... 19
7.3. Выделенный маршрутизатор DR ................................................................................................................................................. ....2. 0
7.4. Резервный маршрутизатор DR ........................................................................................................................................................ .2..0...
7.5. Граф смежности ................................................................................................................................................................................ .2..1....
8. Обработка пакетов протокола ................................................................................................................................................... ................ 21
8.1. Передача пакетов .................................................................................................................................................................. ............. 21
8.2. Прием пакетов протокола .............................................................................................................................................................. ......2. .2.
9.  Структура данных интерфейса .......................................................................................................................................................... ........23
9.1. Состояния интерфейса ............................................................................................................................................................... ....... 24
9.2. События, изменяющие состояние интерфейса ....................................................................................................................... ........ 25
9.3. Машина состояний интерфейса ....................................................................................................................................................... 25
9.4. Назначение DR ................................................................................................................................................................................ ....2. .6. .
9.5. Передача пакетов Hello .......................................................................................................................................... ........................... 27
9.5.1. Передача пакетов Hello в сети NBMA ............................................................................................................................. ......27
10. Структура данных Neighbor ................................................................................................................................................................. ..2. .8...
10.1. Состояния соседей ............................................................................................................................................................ ............... 29
10.2. События, меняющие состояние соседа ....................................................................................................................... .................. 30
10.3. Машина состояний Neighbor .......................................................................................................................................................... 3..0....
10.4. Когда организуется смежность ................................................................................................................................................. ..... 32
10.5. Прием пакетов Hello .................................................................................................................................................................. ..... 3. .2
10.6. Прием пакетов DD .......................................................................................................................................................... ..... ............... 33
10.7. Прием пакетов Link State Request ................................................................................................................................ ..... .............. 34
10.8. Передача пакетов DD .................................................................................................................................................... ..... .. ............. 34
10.9. Передача пакетов Link State Request .............................................................................................................................. ....... ........... 35
10.10. Пример ....................................................................................................................................................................... ...................... 35
11. Структура таблицы маршрутов ............................................................................................................................................................ ....3..5..
11.1. Просмотр таблицы маршрутов ................................................................................................................................. ..... .................... 36
11.2. Пример таблицы маршрутизации без областей ............................................................................................................................ 37
11.3. Пример таблицы маршрутизации с областями ............................................................................................................................ 3. 7
12. Анонсы состояния каналов (LSA) .................................................................................................................................................. ........ 38
12.1. Заголовок LSA ............................................................................................................................................................. ..................... 38
12.1.1. Возраст LS ...................................................................................................................................................................... ......... 38
12.1.2. Опции ...................................................................................................................................................................................... ..3. .9....
12.1.3. Тип LS ................................................................................................................................................................................ .......3. .9
12.1.4.  Link State ID ............................................................................................................................................................................. 3. 9
12.1.5. Анонсирующий маршрутизатор ............................................................................................................................ ..... .. ........... 39
12.1.6. Порядковый номер LS .......................................................................................................................................... ................... 39
12.1.7. Контрольная сумма LS ......................................................................................................................................... .................. 40
12.2. База данных link-state .......................................................................................................................................................... ..... .......... 40
12.3. Представление TOS ............................................................................................................................................................ .............. 40
12.4. Генерация LSA ............................................................................................................................................................................ ..... .4..1
12.4.1.  LSA для маршрутизатора ............................................................................................................................... ..... ..................... 42
12.4.1.1. Описание интерфейсов point-to-point ................................................................................................................. ......... 42
12.4.1.2. Описание интерфейсов в широковещательные и NBMA-сети ................................................................................. .4..2
12.4.1.3. Описание виртуальных соединений ..................................................................................................................... ........ 43
12.4.1.4. Описание интерфейсов Point-to-MultiPoint .................................................................................................. ................ 43
12.4.1.5. Примеры router-LSA ...................................................................................................................................................... .4..3...
12.4.2.  LSA для сети ............................................................................................................................................................................ 4. 4
12.4.2.1. Примеры network-LSA .................................................................................................................................... .. ................ 44
12.4.3.  Summary-LSA ............................................................................................................................................................ ............... 44
12.4.3.1. Генерация summary-LSA в тупиковые области ........................................................................................................ ...4. 5
12.4.3.2. Примеры summary-LSA ......................................................................................................................................... ......... 45
12.4.4.  AS-external-LSA .................................................................................................................................................... ..... .... ............ 46
12.4.4.1. Примеры AS-external-LSA ............................................................................................................................................ ..4. .6. .
13. Процедура лавинной рассылки (Flooding) .................................................................................................................................. .... ........ 47
13.1. Сравнение возраста LSA ............................................................................................................................................................. ....4. .7.
13.2. Инсталляция LSA в базу данных .................................................................................................................................................. .4..8.
13.3. Следующий этап лавинной рассылки ...................................................................................................................................... ...... 48
13.4. Прием собственных (self-originated) LSA ................................................................................................................. ..................... 49
13.5. Передача LSA ............................................................................................................................................................................ ..... .....49
13.6. Повторная передача LSA .......................................................................................................................................................... ........50
13.7. Подтверждение приема состояния канала ............................................................................................................................ ........ 50
14. Старение базы данных LS ................................................................................................................................................... ..................... 50
14.1. Принудительное старение LSA ......................................................................................................................................... ............. 51
15. Виртуальные соединения ..................................................................................................................................................... ....... ............... 51
16. Расчет таблицы маршрутизации ................................................................................................................................................. ............ 52
16.1. Расчет кратчайшего пути для области .................................................................................................................................. ..... ...... 52
16.1.1. Расчет next hop ..................................................................................................................................................... ....... ................ 54
16.2. Расчет междоменных маршрутов ................................................................................................................................................. .5..4.
16.3. Просмотр summary-LSA от транзитных областей ................................................................................................................... ....5. 5
16.4. Расчет внешних маршрутов AS ............................................................................................................................................ ......... 56
16.4.1. Предпочтения для внешнего пути ...................................................................................................................................... ....5..6
16.5. Нарастающие обновления – summary-LSA ........................................................................................................................... ........ 56
16.6. Нарастающие обновления – AS-external-LSA .......................................................................................................................... ....5. 7
16.7. События, генерируемые при изменении таблицы маршрутов ....................................................................................... ............ 57
16.8. Множество равноценных путей .................................................................................................................................. .................... 57
Литература ................................................................................................................................................................................................. ..... .5..7
rfc.com.ru                                                                                     2                                                            rfc.com.ru
Перевод RFC 2328
A. Форматы данных OSPF ........................................................................................................................................................................... 5...9...
A.1 Инкапсуляция пакетов OSPF .................................................................................................................................................. ......... 59
A.2 Поле Options .............................................................................................................................................................. ......................... 59
A.3 Форматы пакетов OSPF ............................................................................................................................................................. ....... 59
A.3.1 Заголовок пакета OSPF ............................................................................................................................................................ ..6..0...
A.3.2 Пакет Hello .............................................................................................................................................................................. .6..0....
A.3.3 Пакет Database Description ...................................................................................................................................................... 61
A.3.4 Пакет Link State Request ...................................................................................................................................... ..................... 61
A.3.5 Пакет Link State Update ..................................................................................................................................................... ..... ...61
A.3.6 Пакет Link State Acknowledgment .......................................................................................................................... .................. 62
A.4 Форматы LSA ....................................................................................................................................................... ...... .......................... 62
A.4.1 Заголовок LSA .......................................................................................................................................................................... 6. .2...
A.4.2 Router-LSA ................................................................................................................................................................ .................. 63
A.4.3 Network-LSA ..................................................................................................................................................... ........ ..................... 64
A.4.4 Summary-LSA ............................................................................................................................................................................ .6..4
A.4.5 AS-external-LSA ............................................................................................................................................................. .. ............ 64
B. Архитектурные константы ................................................................................................................................................... ...... .. .............. 65
C. Настраиваемые константы .............................................................................................................................................................. ......... 66
C.1 Глобальные параметры ................................................................................................................................................................ ...... 6. 6
C.2 Параметры области ................................................................................................................................................................. ........... 66
C.3 Параметры интерфейса маршрутизатора ............................................................................................................................. ........... 66
C.4 Параметры виртуального канала ............................................................................................................................................ ......... 67
C.5 Параметры сетей NBMA .................................................................................................................................................. ................. 68
C.6 Параметры сетей Point-to-MultiPoint ........................................................................................................................................... ....6. .8
C.7 Параметры Host route ........................................................................................................................................................................ 6. .8. .
D. Аутентификация ...................................................................................................................................................................................... ....6. .8...
D.1 Null-аутентификация ............................................................................................................................................................ ............. 68
D.2 Парольная аутентификация ..................................................................................................................................... ........................... 68
D.3 Криптографическая аутентификация ....................................................................................................................................... ....... 69
D.4 Генерация сообщений .................................................................................................................................................................... ...6...9.
D.4.1 Генерация Null-аутентификации ........................................................................................................................................ ...... 69
D.4.2 Генерация простой парольной аутентификации ................................................................................................................. ...7. .0
D.4.3 Генерация криптографической аутентификации ............................................................................................................... .....70
D.5 Верификация сообщений ............................................................................................................................................. ...................... 70
D.5.1 Проверка Null-аутентификации ........................................................................................................................... ..... .. ............... 70
D.5.2 Проверка простой парольной аутентификации ............................................................................................................ .......... 70
D.5.3 Проверка криптографической аутентификации ............................................................................................................. ........ 70
E. Алгоритм установки Link State ID ....................................................................................................................................................... ......7..1
F. Множество интерфейсов в одну сеть/подсеть ...................................................................................................................................... ...7..1.
G. Отличия от RFC 2178 ....................................................................................................................................................................... ......... 72
G.1 Изменение лавинной рассылки ..................................................................................................................................................... ...7..2.
G.2 Смена предпочтений для внешнего пути ................................................................................................................................. ....... 72
G.3 Неполное разрешение виртуальных next hop ............................................................................................................................... ..7..2.
G.4 Просмотр таблицы маршрутизации ........................................................................................................................... ....................... 72
Вопросы безопасности ............................................................................................................................................................. ....................... 72
Адреса авторов ................................................................................................................................................................................ ....... ........... 72
Полное заявление авторских прав ............................................................................................................................................... ................. 73
1. Введение
Этот документ содержит спецификацию протокола OSPF (Open Shortest Path First – по самому короткому пути), служащего для маршрутизации трафика TCP/IP. Протокол OSPF относится к числу внутренних протоколов маршрутизации (Interior Gateway Protocol или IGP) – это означает, что маршрутная информация распространяется между маршрутизаторами одной автономной системы AS. Протокол OSPF работает на основе технологии SPF (link-state – по состоянию канала) в отличие от алгоритмов Bellman-Ford, используемых традиционными протоколами маршрутизации TCP/IP.
Протокол OSPF подготовлен одноименной рабочей группой IETF и предназначен для использования в средах TCP/IP. Протокол включает явную поддержку CIDR и установки меток (tagging) при использовании внешней маршрутной информации. OSPF использует аутентификацию и групповую адресацию (IP multicast) при обмене маршрутными сообщениями. Кроме того, при разработке протокола были приложены значительные усилия по ускорению обработки топологических изменений в сети и снижению уровня служебного трафика.
1.1. Обзор протокола
OSPF обеспечивает маршрутизацию пакетов IP исключительно на основе IP-адресов получателей, определенных из заголовка пакетов IP. Пакеты IP маршрутизируются без их изменения (as is), т. е., не используется инкапсуляция в какие-то иные пакеты. OSPF является динамическим протоколом маршрутизации, обеспечивающим быстрое обнаружение топологических изменений в AS (например, сбои маршрутизаторов или каналов) и расчет новых беспетлевых (loop-free) маршрутов. Период схождения (convergence) – расчет нового маршрута – достаточно короток и уровень служебного трафика невелик.
В протоколах на основе состояния каналов (link-state) каждый маршрутизатор поддерживает базу данных с описанием топологии AS. Эти базы называют базами данных о состоянии каналов1 (link-state database). Базы данных всех маршрутизаторов идентичны. Каждый элемент базы данных представляет собой локальное состояние отдельного маршрутизатора (например, поддерживаемые интерфейсы или доступные соседи). Маршрутизаторы распространяют информацию о своем локальном состоянии путем лавинной маршрутизации (flooding).
1 Для краткости в переводе используется термин «база данных о каналах» или «база каналов». Прим. перев.
rfc.com.ru                                                                          3                                                                        rfc.com.ru
Перевод RFC 2328
Все маршрутизаторы работают в параллель, используя одинаковый алгоритм. На основе базы каналов каждый маршрутизатор строит дерево кратчайших путей, корнем которого является сам маршрутизатор. Это дерево содержит маршруты ко всем адресатам внутри AS. Маршрутная информация внешнего происхождения представляется как листья дерева.
При наличии нескольких путей равной стоимости к одному адресату, трафик поровну распределяется между всеми маршрутами. Стоимость маршрута описывается безразмерной метрикой, представляемой в виде одного числа.
OSPF позволяет группировать сети – такие группы называют областями (area). Топология области невидима для остальной части AS. Такое сокрытие (избыточной) информации позволяет существенно снизить уровень служебного трафика. Кроме того, маршрутизация внутри области определяется исключительно внутренней топологией этой области, что обеспечивает защиту областей от использования некорректной маршрутной информации. Понятие области является обобщением подсетей IP.
OSPF обеспечивает возможность гибкой настройки подсетей IP. Каждый маршрут в OSPF распространяется с указанием адресата и маски подсети. Две разных подсети одной сети IP могут иметь различные размеры (т. е., разные маски) – для обозначения этого обычно используется термин variable length subnetting (переменный размер подсетей). Пакеты маршрутизируются по пути с наилучшим (т. е., самым длинным или более конкретным) соответствием. Маршруты к хостам рассматриваются как пути в подсети с маской из одних единиц (all ones или 0xffffffff 2).
Весь обмен информацией OSPF осуществляется с использованием аутентификации. Это означает, что в маршрутизации внутри AS могут участвовать только уполномоченные маршрутизаторы. Могут использоваться различные схемы аутентификации; в частности, допустимо применение различных схем для каждой подсети IP.
Внешние маршрутные данные (т. е., маршруты, полученные от протоколов внешних шлюзов EGP - например, BGP - [Ref23]) анонсируются через AS. Такие данные сохраняются отдельно от данных OSPF о состоянии каналов. Каждый внешний маршрут может также быть помечен (tagged) анонсирующим его маршрутизатором – это дает возможность передачи дополнительной информации между маршрутизаторами на границе AS.
1.2. Терминология
В этом параграфе приведены определения терминов, имеющих специфическое толкование в контексте протокола OSPF и используемых в тексте. Читателям, не знакомым со стеком протоколов Internet рекомендуется обратиться к работе [Ref13], содержащей вводную информацию по протоколу IP.
Router (маршрутизатор)
Устройство сетевого уровня для пересылки пакетов IP. В литературе прошлых лет для обозначения маршрутизаторов часто использовался термин gateway (шлюз).
Autonomous System (автономная система)
Группа маршрутизаторов, обменивающихся маршрутной информацией на основе общего протокола. Используется также сокращение AS.
Interior Gateway Protocol (протокол внутренней маршрутизации)
Протокол маршрутизации, используемый в пределах одной автономной системы. Для обозначения таких протоколов часто используется аббревиатура IGP. Каждая AS имеет один протокол IGP. В разных автономных системах могут использоваться различные протоколы IGP.
Router ID (идентификатор маршрутизатора)
32-битовое целое число, связываемое с каждым маршрутизатором, использующим протокол OSPF. Этот идентификатор является уникальным в масштабе AS.
Network (сеть)
В контексте документа термин сеть может относиться к сети/подсети/»сети сетей» IP (network/subnet/supernet). Одна физическая сеть может включать множество сетей/подсетей IP – мы будем рассматривать их как разные сети. Физические сети «точка-точка» (point-to-point) являются исключением – такая сеть рассматривается как единое целое, независимо от наличия в ней отдельных сетей/подсетей IP.
Network mask (маска сети)
32-битовое число, показывающее диапазон IP-адресов, относящихся к одной сети/подсети/сети сетей IP. В данной
спецификации маски указываются шестнадцатеричными числами.
Например, маска сети класса C имеет значение 0xffffff00. Обычно для записи такой маски используют форму 255.255.255.0.
Point-to-point networks (сеть на базе соединений точка-точка)
Сеть, соединяющая между собой 2 маршрутизатора. Примером таких сетей являются сети на основе каналов 56 кбит/с.
Broadcast networks (широковещательные сети)
Сети, поддерживающие множество (более 2) подключенных маршрутизаторов с возможностью адресации одного сообщения всем подключенным маршрутизаторам – широковещательная передача (broadcast).
Соседние маршрутизаторы в таких сетях обнаруживаются динамически с использованием протокола OSPF Hello. Протокол Hello использует преимущества широковещательной передачи. Протокол OSPF может также использовать групповую адресацию (multicast), если она поддерживается. Предполагается, что каждая пара маршрутизаторов в широковещательной сети может обмениваться данными напрямую. Примером широковещательных сетей может служить Ethernet.
Non-broadcast networks (сети без широковещания)
Сети, поддерживающие множество (более 2) подключенных маршрутизаторов, но не имеющие возможностей широковещательной передачи. Для обнаружения соседних маршрутизаторов также используется протокол OSPF Hello, однако, в силу отсутствия широковещания, для обнаружения соседей требуются некоторые настройки. В сетях без широковещания пакеты OSPF, обычно передаваемые с использованием групповой адресации, должны адресоваться непосредственно соседним маршрутизаторам. Примером сетей без широковещания могут служить сети X.25. Протокол OSPF в сетях без широковещания может работать в двух режимах. Первый режим называется NBMA (non-broadcast multi-access – множественный доступ без широковещания) имитирует работу OSPF в широковещательных сетях. Второй режим называется Point-to-MultiPoint (один со многими), в этом случае сеть без широковещания трактуется как множество соединений «точка-точка»3. Сети без широковещания мы будем делить на сети NBMA и Point-to-MultiPoint в зависимости от режима работы OSPF.
Interface (интерфейс)
Соединение между маршрутизатором и одной из подключенных к нему сетей. С интерфейсом связана информация о его состоянии, получаемая от протоколов нижележащих уровней и самого протокола маршрутизации. Сетевой интерфейс имеет
2 255.255.255.255. Прим. перев.
3 Далее для краткости будем называть такие соединения парными. Прим. перев.
rfc.com.ru                                                                                     4                                                            rfc.com.ru
Перевод RFC 2328
адрес IP и маску, если этот интерфейс не относится к безадресным (unnumbered) соединениям point-to-point. Применительно к интерфейсу может также употребляться термин соединение, канал (link).
Neighboring routers (соседние маршрутизаторы)
Два маршрутизатора, имеющие интерфейсы в общую сеть. Отношения соседства поддерживаются и детектируются (обычно автоматически) с помощью протокола OSPF Hello.
Adjacency (смежность)
Отношения между соседними маршрутизаторами, организуемые в целях обмен маршрутной информацией. Не всякая пара соседних маршрутизаторов поддерживает отношения смежности.
Link state advertisement (анонс состояния канала)
Единица данных, описывающая состояние маршрутизатора или сети. Для маршрутизатора анонс включает состояние интерфейсов и отношения смежности. Каждый анонс рассылается с использованием лавинной маршрутизации в масштабах домена маршрутизации. Анонсы состояний всех маршрутизаторов и сетей формируют базу данных о каналах, используемую протоколом. В настоящем документе для обозначения анонсов состояния канала используется аббревиатура LSA.
Hello Protocol (протокол приветствия)
Часть протокола OSPF, используемая для организации и поддержки отношений соседства между маршрутизаторами. В широковещательных сетях протокол Hello может служить для динамического обнаружения соседних маршрутизаторов.
Flooding (лавинная маршрутизация)
Часть протокола OSPF, отвечающая за распространение и синхронизацию базы данных о каналах между маршрутизаторами OSPF.
Designated Router (указанный маршрутизатор)
Каждая широковещательная или NBMA-сеть, в которой есть не менее двух маршрутизаторов, имеет среди них выделенный -Designated Router (DR). Выделенный маршрутизатор генерирует анонсы LSA для сети и выполняет другие специальные действия для обеспечения работы протокола. Маршрутизатор DR задается протоколом Hello.
Концепция выделенного маршрутизатора DR позволяет уменьшить число смежных пар, требуемых для широковещательных сетей и сетей NBMA, что обеспечивает снижение уровня служебного трафик и уменьшение базы данных о каналах.
Lower-level protocols (протоколы нижележащих уровней)
Протоколы нижележащих уровней, предоставляющих свои услуги протоколу IP и OSPF. Примерами таких протоколов могут служить X.25 или протоколы канального уровня Ethernet.
1.3. Краткая история маршрутизации на базе состояния каналов
OSPF относится к числу протоколов маршрутизации на основе данных о состоянии каналов. Такие протоколы также называют протоколами на базе SPF или протоколами с распределенной базой данных (distributed-database protocol). В этом параграфе приведено краткое описание технологии link-state в контексте ее влияния на протокол OSPF.
Первый протокол маршрутизации по состоянию каналов был разработан для использования в сети ARPANET, работавшей на основе коммутации пакетов. Этот протокол описан в работе [Ref3]. Протокол послужил отправной точкой для разработки всех остальных протоколов link-state. Гомогенная среда ARPANET, содержащая однотипные коммутаторы, соединенные синхронными последовательными каналами, существенно упростила разработку и реализацию первого варианта протокола.
В работе [Ref4] был предложен измененный вариант этого протокола. Изменения позволили повысить устойчивость протокола маршрутизации к сбоям – к таким изменениям относится, прежде всего, добавление контрольных сумм LSA, позволяющее детектировать повреждения баз данных. В этой работе также были предложены способы снижения уровня служебного трафика протокола link-state за счет использования механизма, позволяющего увеличить на порядок интервал между последовательными передачами LSA.
Алгоритм link-state был также предложен для использования в качестве протокола маршрутизации ISO IS-IS, описанного в работе [Ref2]. Этот протокол обеспечивал методы снижения трафика при работе в широковещательных сетях за счет введения выделенного маршрутизатора DR для каждой широковещательной сети. Этот маршрутизатор обеспечивает генерацию LSA для своей сети.
Рабочая группа IETF OSPF продолжила разработки в этом направлении, создав протокол OSPF. Концепция выделенного маршрутизатора DR была существенно доработана, что позволило добиться дополнительного снижения служебного трафика. Дополнительное снижение расхода полосы было обеспечено также за счет использования групповой адресации. Была разработана схема областей маршрутизации (area routing), обеспечивающая защиту информации, ее сокрытие и сокращение объема. И, наконец, алгоритмы были приспособлены для использования в межсетевой среде TCP/IP.
1.4. Структура документа
В трех первых разделах документа приведен общий обзор возможностей протокола и его функций. Главы 4 - 16 содержат детальное описание различных механизмов работы протокола. Формат пакетов, константы и элементы настройки описаны в приложениях.
Метки типа HelloInterval, встречающиеся в тексте, обозначают константы протокола, которые могут иметь фиксированные или настраиваемые значения. Архитектурные константы описаны в Приложении B, а настраиваемые константы – в Приложении C.
При описании протокола используется множество структур данных. Такое представление позволяет дать более точные объяснения. При реализации протокола требуется точное соблюдение функциональных требований, но сохранение приведенных в спецификации структур данных не является обязательным.
1.5. Благодарности
Автор выражает свою признательность Ran Atkinson, Fred Baker, Jeffrey Burgan, Rob Coltun, Dino Farinacci, Vince Fuller, Phanindra Jujjavarapu, Milo Medin, Tom Pusateri, Kannan Varadhan, Zhaohui Zhang и остальным участникам рабочей группы OSPF за их идеи и поддержку проекта.
Интерфейс OSPF Point-to-MultiPoint основан на результатах работы Fred Baker.
Средства криптографической аутентификации OSPF Cryptographic Authentication разработали Fred Baker и Ran Atkinson.
2. База данных Link-state: структура и расчеты
В следующих параграфах описана организация базы данных о каналах протокола OSPF и расчеты маршрутов, выполняемые для заполнения таблиц маршрутизации.
rfc.com.ru                                                                          5                                                                        rfc.com.ru
Перевод RFC 2328
2.1. Представление маршрутизаторов и сетей
База каналов AS описывается направленным графом. Вершины графов показывают маршрутизаторы и сети. Ребро графа соединяет два маршрутизатора, если между ними существует физическая сеть point-to-point. Ребро графа соединяет два маршрутизатора с сетью, если маршрутизатор имеет интерфейс в данную сеть. Сеть может быть транзитной или оконечной (stub). Транзитные сети могут также передавать трафик, который не связан с данной сетью, т. е., отправитель и получатель принадлежат другим сетям. Транзитные сети представляются вершинами графов, имеющими входящее и исходящее ребро. Вершины графов для оконечных сетей имеют только входящее ребро.
Соседство каждого сетевого узла на графе зависит от типа сети (point-to-point, широковещательная, NBMA или Point-to-MultiPoint) и числа маршрутизаторов, имеющих интерфейс в данную сеть. На рисунке 1a показано три варианта. Прямоугольники представляют маршрутизаторы, круги и эллипсы – сети. В обозначениях маршрутизаторов используется префикс RT, для сетей – префикс N. Интерфейсы маршрутизаторов именуются с префиксом I. Линии между маршрутизаторами показывают сети point-to-point. В левой части рисунка показаны сети с подключенными к ним маршрутизаторами, а справа приведено представление в виде графов.
От узла
RT1
RT2
К
RT1 RT2
X
_______X_______
узл
Ia
X
у oint-to
К
Ib -point
RT7 N3
X
От узла
узл у
RT7 X
N3_______
RT1
Ia
Ib
RT2
RT7
N3
Оконечные сети