Segment Routing Primer — SR-MPLS and SRv6
Руководство по маршрутизации сегментов — SR-MPLS и SRv6
Маршрутизация источника без состояния каждого потока: как SR заменяет RSVP-TE, что делают Node-SID и Adj-SID, как SRv6 кодирует инструкции в адресах IPv6 и где SR-TE подходит для управления трафиком.
1. Проблема с RSVP-TE
RSVP-TE (Протокол резервирования ресурсов — Управление трафиком,RFC 3209) включил явное управление маршрутом в сетях MPLS, но внес значительную сложность в эксплуатацию:
- Состояние каждого потока:Каждому LSP требуется состояние каждого маршрутизатора на пути (сообщения RSVP PATH и RESV). В сети с тысячами LSP транзитные маршрутизаторы поддерживают огромные таблицы мягкого состояния, которые необходимо постоянно обновлять.
- Головная сигнализация:Входной (головной) маршрутизатор сигнализирует о пути через RSVP. Любое изменение топологии требует повторной сигнализации, что приводит к издержкам конвергенции.
- Масштабируемость:Число LSP растет с O(N²) для полносвязной сети, и каждый LSP использует записи LFIB на каждом транзитном маршрутизаторе.
- Сложность быстрого перенаправления:RSVP-FRR (RFC 4090) защищает LSP с помощью заранее рассчитанных обходных путей или туннелей обхода объектов — функция, которая работает, но добавляет еще один уровень состояния.
Маршрутизация сегментов (RFC 8402) полностью исключает состояние каждого потока в транзитных узлах. Исходный маршрутизатор кодирует весь путь пересылки в виде упорядоченного спискасегментыв самом заголовке пакета. Транзитные маршрутизаторы обрабатывают только активный сегмент и не нуждаются в состоянии LSP.
2. Архитектура SR (RFC 8402).
A сегмент— это инструкция, которая сообщает маршрутизатору, как пересылать пакет — это может означать «перейти к этому узлу», «выйти на этом конкретном соседстве» или «применить этот поиск VPN». Сегменты идентифицируются идентификаторами сегментов (SID). Упорядоченный список SID — этосписок сегментов(или SID-список). Активный сегмент обрабатывается на каждом прыжке; когда обработка завершена, сегмент удаляется и становится активным следующий.
Существуют два экземпляра плоскости данных:
- СР-МПЛС: SID — это метки MPLS. Список сегментов представляет собой стек меток. Обратная совместимость с существующим оборудованием MPLS.
- СРв6: SID — это 128-битные адреса IPv6. Список сегментов содержится в заголовке маршрутизации сегмента (SRH, заголовок расширения IPv6). IPv6-родной; MPLS не требуется.
3. SR-MPLS: Node-SID, Adj-SID и SRGB.
СР-МПЛС (RFC 8660) определяет два фундаментальных типа SID, объявленных IS-IS (RFC 8667) или OSPF (RFC 8665) как расширения TLV:
| Тип SID | Объем | Стабильность | Значение |
|---|---|---|---|
| Node-SID | Глобальный (SRGB) | Настойчивый | «Доставить на этот узел, используя кратчайший путь IGP». Каждый маршрутизатор имеет один Node-SID для каждого шлейфа/идентификатора маршрутизатора. Все маршрутизаторы в домене SR должны запрограммировать эту метку. |
| Смежность-SID(Adj-SID) | Локальный (SRLB или динамический) | Эфемерный (за сеанс) | «Переслать этот конкретный интерфейс этому конкретному соседу». Используется для принудительной передачи пакета по определенному каналу независимо от кратчайшего пути. |
| Anycast-SID | Глобальный | Настойчивый | Совместно используется набором узлов (например, группой произвольной рассылки отражателей маршрутов или точками доступа центра обработки данных). Пакеты доставляются ближайшему участнику. |
The СРГБ(Глобальный блок сегментной маршрутизации) — это диапазон меток, зарезервированный для глобально значимых идентификаторов SID. Обычное значение по умолчанию — 16000–23999 (Cisco, Juniper), хотя его можно настроить. Node-SID кодируются какзначения индекса(например, индекс 100) и преобразуется в метку путем добавления индекса к базе SRGB (например, 16000 + 100 = метка 16100). Все маршрутизаторы должны использовать один и тот же SRGB для обеспечения согласованности глобальных SID — несовпадение SGRB между поставщиками или конфигурациями приводит к неправильной маркировке.
Пример стека меток SR-MPLS— отправка трафика от R1 к R5 через R3 (явная путевая точка), избегая прямого пути R1→R5:
Ingress R1 pushes: [Node-SID(R3)] [Node-SID(R5)] R1→R2: outer label = SID(R3), inner = SID(R5) R2→R3: pops SID(R3) (PHP or explicit-null) R3 sees top label = SID(R5); forwards on shortest path to R5 R5 pops SID(R5); delivers to local application
4. SRv6: SID как адреса IPv6
СРв6 (RFC 8986) кодирует SID как 128-битные адреса IPv6, имеющие следующую структуру:
| Locator (e.g., /48) | Function (operator-defined, typically 16 bits) | Argument (remaining bits) |
- Локатор: маршрутизируемый префикс IPv6, назначенный узлу. Транзитные маршрутизаторы обычно направляются к этому префиксу. Локатор объявляется в IGP.
- Функция: определяет конкретную операцию, которую необходимо выполнить в конечной точке SID. Примеры: End (пересылка к следующему SID), End.X (пересылка определенной смежности), End.DT4 (декапирование и поиск в таблице IPv4 — используется для VPN IPv4), End.DX2 (декапирование и кросс-соединение L2).
- Аргумент: Необязательный дополнительный контекст для функции (например, идентификатор потока для энтропии).
Список сегментов содержится вСРЗ(Заголовок маршрутизации сегмента,RFC 8754) — заголовок расширения IPv6 с Next Header = 43 (заголовок маршрутизации), тип маршрутизации = 4. SRH содержит:
- Левый сегмент (SL): индекс в списке сегментов, указывающий на активный SID.
- Тег: подсказка по классификации потоков
- Список сегментов[0..n]: упорядоченные идентификаторы SID (последний SID — это пункт назначения).
На каждом узле, поддерживающем SR, если пункт назначения IPv6 соответствует локальному SID, узел выполняет функцию SID, уменьшает значение левого сегмента и копирует список сегментов [слева сегмента] в DA IPv6 перед пересылкой.
5. Организация дорожного движения с помощью SR-TE
СР-ТЕ (RFC 9256— Архитектура политики SR) заменяет LSP RSVP-TE наПолитика СР, каждый из которых определяется:
- Головная станция: входной узел, который реализует политику.
- Цвет: 32-битный идентификатор, используемый для связывания трафика (через расширенное сообщество BGP Color) с политикой.
- Конечная точка: Узел назначения
- Один или несколькопути-кандидаты, каждый со взвешенным списком сегментов
Пути-кандидаты вычисляются головной станцией (с использованием локального CSPF/PCE) или распределяются централизованным SR-PCE/контроллером через PCEP (RFC 5440) или Политику BGP SR (см.RFC 9256§8). Это полностью исключает плоскость сигнализации RSVP, сохраняя при этом явное управление маршрутом.
Следующий переход по требованию (ODN)— это функция SR-TE, при которой головная станция автоматически создает экземпляр политики SR, когда маршрут BGP поступает с определенным цветовым сообществом, без предварительной подготовки, что обеспечивает автоматическое управление трафиком для префиксов VPN и CDN.
6. SR-MPLS против SRv6 против RSVP-TE
| СР-МПЛС | СРв6 | RSVP-TE | |
|---|---|---|---|
| Плоскость данных | Стек меток MPLS | Заголовок расширения IPv6 + SRH | Стек меток MPLS |
| Состояние каждого потока при транзите | Никто | Никто | Да (мягкое состояние RSVP) |
| Протокол сигнализации | Расширения IGP (IS-IS/OSPF) | IGP-расширения | RSVP-TE (ПУТЬ/RESV) |
| Аппаратная совместимость | Любое аппаратное обеспечение MPLS | Требуется ASIC с поддержкой SRv6. | Любое аппаратное обеспечение MPLS |
| Накладные расходы на пакет | 4 Б на этикетку | 8 + 16n B (SRH с n SID) | 0 (метка MPLS уже в стеке) |
| Поддержка VPN | Через метки MPLS VPN | End.DT4/DT6/DX2 функции SID | Через метки MPLS VPN |
| Быстрое перенаправление | TI-LFA (независимо от топологии, без предварительной настройки) | ТИ-ЛФА | RSVP-FRR (предварительно предусмотренный обход) |
| Зрелость развертывания | Широко распространено в SP/DC. | Растущий; Поддержка ASIC все еще развивается | Зрелый, но падающий |
Ссылки
- RFC 8402— Архитектура сегментной маршрутизации
- RFC 8660— Сегментная маршрутизация с использованием плоскости данных MPLS.
- RFC 8665— Расширения OSPF для сегментной маршрутизации
- RFC 8667— Расширения IS-IS для сегментной маршрутизации
- RFC 8669— Расширения SID префикса маршрутизации сегмента для BGP.
- RFC 8754— Заголовок маршрутизации сегмента IPv6 (SRH)
- RFC 8986— Сегментная маршрутизация через IPv6 (SRv6) Сетевое программирование
- RFC 9252— Службы наложения BGP на основе сегментной маршрутизации через IPv6 (SRv6)
- RFC 9256— Архитектура политики сегментной маршрутизации
- Рабочая группа IETF SPRING— Маршрутизация исходных пакетов в NetworkingG (активные проекты SR)