Стандарты Интернета №3, апрель 2016

Протокол OSPF: состояние канала

Эси Линдем
Єси Линдем

Рабочая группа OSPF – одна из старейших рабочих групп IETF. После более чем двух десятилетий деятельности можно было бы подумать, что она перешла в режим поддержки и обслуживания. Однако в действительности мы находимся на распутье, в поиске пути стандартизации гибких механизмов расширения на основе метода тип-длина-запись TLV. Благодаря этим механизмам протокол OSPF может использоваться для поддержки некоторых новых, захватывающих приложений, таких как сегментная маршрутизация.

Протокол Open Shortest Path First (OSPF) является одним из двух внутренних протоколов маршрутизации (IGP, Interior Gateway Protocol), которые стандартизируются в рамках IETF.

Этот протокол широко используется как в корпоративных сетях, так и в сетях провайдеров услуг, он является предпочтительным протоколом управления в оптических сетях. Рабочая группа OSPF (OSPF Working Group) – это одна из старейших рабочих групп IETF. После более чем двух десятилетий деятельности можно было бы подумать, что она перешла в режим поддержки и обслуживания. Однако в действительности мы находимся на перекрестке, поскольку необходимо стандартизировать гибкие механизмы расширения на основе метода тип-длина-запись (type-length-value, TLV).

Для OSPFv2 мы решили оставить базовый протокол в неизменном виде и инициировать отдельные сообщения о состоянии канала (Link State Advertisements, LSA), чтобы объявлять TLV для таких приложений, как сегментная маршрутизация (segment routing) и максимально избыточные деревья (maximally redundant trees). Проект документа «OSPFv2 Prefix/Link Attributes» (атрибуты канала/ префикса OSPFv2) прошел последний звонок рабочей группы, после чего была запрошена его публикация. В настоящее время существует не менее пяти известных реализаций. Однако у этого подхода есть один недостаток, который заключается в том, что атрибуты дополнительных приложений объявляются независимо от базовой топологии OSPF и IP-достижимости. Поэтому приложения должны увязывать базовые LSA с LSA атрибутов.

Для OSPFv3 предлагается более амбициозный подход, в рамках которого даже базовые LSA заменяются на LSA, полностью основанные на методе TLV. Благодаря такой кодировке вся информация для данного префикса или канала может быть объявлена в одном и том же сообщении LSA, что значительно упрощает реализацию и уменьшает накладные расходы. Эти механизмы превращают версию протокола OSPFv3 в идеального кандидата на роль внутреннего протокола маршрутизации (IGP) следующего поколения, поскольку OSPF имеет заметные преимущества по сравнению с другими протоколами IGP: с его помощью можно разделять информацию и объявлять ее с помощью нескольких LSA – в отличие от монолитных блоков протокольных данных (PDU). При использовании OSPFv3, если в сети происходит изменение топологии или достижимости, то требуется повторно объявлять только те LSA, которые затронуты этими изменениями. Эти механизмы определяются в проекте расширенных сообщений LSA протокола OSPFv3. Обсуждения, редактирование и анализ прошли хорошо, и в настоящее время мы ожидаем реализаций. В основном реализации мешают два препятствия. Первое препятствие заключается в том, что OSPFv3 отнюдь не так широко распространен, как OSPFv2, и в результате существует меньше стимулов для его расширения. Второе препятствие – это сложность, добавляемая механизмами обратной совместимости протокола.

Благодаря этим механизмам расширения базовых сообщений LSA протокол OSPF используется для поддержки некоторых новых, захватывающих приложений. Наиболее важным из них, вероятно, является Сегментная Маршрутизация (Segment Routing), поскольку она пользуется существующей технологией передачи данных Multi-Protocol Label Switching (MPLS) без задействования каких-либо специфических протоколов управления MPLS (т.е. без LDP или RSVP). Кроме того, Сегментная Маршрутизация упрощает управление трафиком и лучше поддерживает IPFRR (IP Fast Reroute), поскольку позволяет направлять пакеты через любые граничащие системы (adjacency).

В число других приложений, использующих кодировки OSPF на основе метода TLV, входят алгоритм IPFRR, известный как Maximally Redundant Trees (MRT), поддержка метода мультикастинга BIER (Bit-Indexed Egress Replication) и поддержка дополнительных метрик OSPF в спутниковых сетях.

Программируемость на основе моделей (MDP, Model-Driven Programmability) является обычным требованием для многих рабочих групп IETF. В рамках рабочей группы OSPF мы сформировали проектную группу с участием специалистов от нескольких производителей, которая еженедельно собиралась на протяжении почти целого года для определения общей модели YANG для OSPF.

Мы достигли консенсуса, даже несмотря на значительные различия в конфигурации производителей. Одним из ключевых решений было согласие на принятие модели, ориентированной на виртуальную маршрутизацию и передачу (VRF, Virtual Routing and Forwarding), а не модели, ориентированной на протоколы. В рамках VRF-ориентированной модели конфигурации протокола для отдельных VRF-экземпляров содержатся внутри этих VRF, а не консолидируются внутри отдельного экземпляра протокола маршрутизации.

Еще одно ключевое иерархическое решение, которое окажет воздействие на многочисленные модели IETF, заключается в том, следует ли принимать предложение Open Config о группировании (информации) рабочего состояния на том же уровне, что и конфигурация. В текущей версии модели OSPF существуют отдельные иерархии YANG конфигурации и рабочего состояния. Однако ко времени публикации этой статьи модель, по всей вероятности, будет пересмотрена. Поскольку это решение влияет на многие модели YANG, соответствующее обсуждение также происходит в рамках рабочей группы NETMOD.

И наконец, наша рабочая группа также рассматривает способы для масштабирования протокола OSPF за пределы своих практических ограничений.

Одно из таких предложений – это возможность определения так называемой топологически-прозрачной зоны (TTZ, Topology Transparent Zone), позволяющее выделить произвольную часть сети OSPF в качестве полной «сетки» соединений между маршрутизаторами, ограждающими эту абстрагированную топологию. Еще одно предложение касается соседей-«заглушек» OSPF (stub neighbor), призванное оптимизировать лавинное распространение LSA в звездообразных (веерных) топологиях.

Источник: Open Shortest Path First: The State of The Link State

«Слишком много неизвестных терминов?»

Tуре-length-value (TLV)

TLV (тип-длина-значение) — широко распространённый метод записи коротких данных в компьютерных файлах и телекоммуникационных протоколах.

Метод определяет простую двоичную структуру из трёх полей: тег, длина данных и собственно данные. Первые два поля имеют фиксированную длину (обычно один или два октета на поле), длина третьего поля определяется значением второго поля (значение указывается в байтах).

Тег является идентификатором данных, определяя их назначение.

Источник: https://ru.wikipedia.org/wiki/Tag-length-value

Сегментная маршрутизация

Сегментная маршрутизация (СМ) основана на парадигме маршрутизации от источника. Узел направляет пакет через упорядоченный список инструкций, называемых сегментами. Сегментом может являться любая инструкция, топологическая или основанная на услугах. Семантика сегмента может быть локальной по отношению к конкретному узлу или глобальной, распространяющейся на определенную область.

СМ позволяет направить поток данных через любой топологический путь или цепь услуг, и в то же время состояние каждого потока хранится только в узле, входном в СМ-область.

СМ можно непосредственно применить к архитектуре MPLS. Сегмент в этом случае является меткой MPLS. Упорядоченный список сегментов представляет собой стэк меток. Обрабатываемый сегмент находится на верхушке стэка. После окончания обработки сегмента соответствующая метка удаляется из стэка.

Источник: http://www.segment-routing.net/

Bit Index Explicit Replication (BIER)

Архитектура BIER предназначена для передачи данных мультикаста. Она позволяет оптимизировать передачу мультикаст-пакетов через «область мультикаста». Однако она не требует специального протокола для построения распределительных деревьев мультикаста и не требует от промежуточных узлов сохранения состояния. Когда мультикаст-пакет передается в область, входной маршрутизатор определяет выходные маршрутизаторы, которым необходимо отправить пакет. Входной маршрутизатор инкапсулирует пакет в заголовок BIER. Этот заголовок содержит строку битов, в которой каждый бит соответствует определенному выходному маршрутизатору.

Исключение требования хранения состояния для каждого потока и необходимости отдельных протоколов для построения дерева приводит к существенному упрощению системы.

Источник: https://tools.ietf.org/html/draft-ietf-bier-architecture-03

Virtual Routing and Forwarding (VRF)

В компьютерных IP-сетях под VRF понимают технологию, которая позволяет нескольким экземплярам таблицы маршрутизации сосуществовать на одном и том же маршрутизаторе. Поскольку эти экземпляры независимы, те же самые или пересекающиеся блоки IP-адресов могут использоваться без возникновения конфликтов.

Источник: https://en.wikipedia.org/wiki/Virtual_routing_and_forwarding