Перейти к содержанию

Segment Routing

Коротко

Segment Routing (SR) - архитектура маршрутизации от источника. Головной узел выбирает путь и кодирует его как упорядоченный список сегментов (SID). Каждый транзитный узел выполняет инструкцию из верхнего сегмента и удаляет его.

Два data plane:

  • SR-MPLS - использует MPLS метки (20 бит), совместим с существующим оборудованием
  • SRv6 - использует IPv6 заголовки (128 бит SID)

Зачем:

  • Убирает LDP и RSVP-TE из control plane
  • IGP (OSPF/IS-IS) сам распространяет SID
  • Нет per-flow состояния на транзитных узлах
  • Fast reroute < 50ms

Типы сегментов

Prefix SID (глобальный):

  • Привязан к IP-префиксу
  • Кодируется как индекс (смещение от SRGB)
  • IGP строит кратчайший путь до префикса
  • Поддерживает ECMP

Node SID (частный случай Prefix SID):

  • Привязан к loopback-адресу узла
  • Флаг N-Flag = 1

Adjacency SID (локальный):

  • Привязан к конкретному линку
  • Абсолютное значение метки (не индекс)
  • Выделяется динамически из SRLB
  • Нет ECMP - форсирует трафик через конкретный интерфейс

Anycast SID:

  • Один и тот же SID анонсируется несколькими узлами
  • Трафик идет к ближайшему узлу по IGP

Binding SID:

  • Локальный сегмент, представляет SR-TE policy
  • Абстрагирует список сегментов за одной меткой

BGP Prefix SID:

  • Глобальный сегмент для BGP-префикса
  • Используется в inter-domain сценариях (Unified MPLS)

BGP Peering SID:

  • Локальный сегмент для BGP-соседа
  • Форсирует трафик через конкретного BGP peer

Label Blocks

SRGB (Segment Routing Global Block):

  • Диапазон меток для глобальных сегментов (Prefix/Node SID)
  • По умолчанию: 16000-23999
  • Prefix SID = SRGB base + index

SRLB (Segment Routing Local Block):

  • Диапазон меток для локальных сегментов (Adjacency SID)
  • Выделяется отдельно от SRGB

SR-TE (Traffic Engineering)

Segment Routing Traffic Engineering - управление путем через сеть.

SR-TE Policy идентифицируется тройкой: (head-end, color, end-point).

  • head-end: узел, где создается policy
  • color: числовой идентификатор (1-4294967295)
  • end-point: конечная точка

SID-list вставляется в пакет на head-end. Транзитные узлы выполняют инструкции.

Prefix SID в TE:

  • ECMP, устойчивость к изменениям топологии
  • Может удлинить путь

Adjacency SID в TE:

  • Детерминированный путь
  • Нет ECMP, уязвим к отказам

On-Demand Next Hop (ODN)

Автоматическое создание SR-TE policy при появлении BGP-маршрута с color extended community. Head-end применяет шаблон для соответствующего color.

Варианты вычисления пути:

  • Локально (head-end использует свою TE topology database)
  • Централизованно (SR-PCE)

Flexible Algorithm (Flex-Algo)

IGP вычисляет дополнительные пути на основе ограничений. Простой TE без контроллера.

Flex-Algo ID: 128-255 (до 128 алгоритмов).

Параметры:

  • Calculation type: SPF или Strict SPF
  • Metric type: IGP / delay / TE metric
  • Constraints: affinity (include/exclude links), min bandwidth, max delay

Все узлы должны согласовать определение Flex-Algo (FAD). Один узел анонсирует FAD с приоритетом.

Prefix SID для Flex-Algo отличается от обычного - трафик идет по пути, вычисленному с ограничениями.

Применение:

  • Low-latency routing (metric type = delay)
  • Исключение определенных линков (affinity)
  • Разделение трафика по типам сервисов

TI-LFA (Fast Reroute)

Topology Independent Loop-Free Alternate - защита от отказов < 50ms.

Преимущества над классическим LFA/RLFA:

  • 100% покрытие в любой топологии (не зависит от геометрии сети)
  • Не требует LDP для RLFA туннелей
  • Все SID уже в LSDB от IGP

Как работает:

  • PLR (Point of Local Repair) заранее вычисляет backup path
  • При отказе линка/узла - мгновенное переключение на backup
  • Backup path использует SID-list для обхода отказавшего элемента

Защита:

  • Link protection
  • Node protection
  • SRLG protection (Shared Risk Link Group)

Microloop Avoidance

Предотвращение кратковременных петель при конвергенции сети.

Microloop возникает из-за неодновременной конвергенции разных узлов после изменения топологии.

Как работает:

  • После события (link down/up, metric change) узел вычисляет post-convergence path
  • Если возможен microloop - устанавливает SID-list для обхода
  • После таймера (когда все узлы сконвергировались) - переключается на обычный путь

Работает локально - не требует поддержки на всех узлах.

Path Computation Element (PCE)

Централизованный контроллер для вычисления путей. Узнает топологию через IGP или BGP-LS.

PCEP (Path Computation Element Protocol):

  • TCP-based протокол между PCC и PCE
  • PCC (Path Computation Client) - маршрутизатор, запрашивающий путь
  • PCE вычисляет и инициирует SR-TE policy

Сообщения PCEP:

  • PCInitiate - PCE инициирует policy на PCC
  • PCRpt - PCC отчитывается о состоянии
  • PCUpd - PCE обновляет policy
  • PCErr - ошибка

SR-PCE поддерживает stateful режим: PCE хранит состояние всех LSP и может их модифицировать.

Performance Measurement (PM)

Измерение характеристик сети: delay, packet loss, jitter.

Протоколы:

  • TWAMP-Light (RFC 5357) - IP/UDP encap, по умолчанию
  • PM-MPLS (RFC 6374) - MPLS encap

Режимы:

  • Two-way delay (по умолчанию)
  • One-way delay (требует синхронизации PTP)

Применение:

  • Мониторинг SLA
  • Вход для Flex-Algo (metric type = delay)
  • Troubleshooting сети

Заменяет отдельные протоколы мониторинга (BFD для liveness + отдельный PM).

SRv6

Segment Routing поверх IPv6 data plane. SID = 128 бит (IPv6 адрес).

Структура SID:

  • Locator (префикс, маршрутизируемый по IGP)
  • Function (инструкция: End, End.X, End.DT4, и т.д.)
  • Arguments (опционально)

Преимущества:

  • Нативная поддержка в IPv6 сетях
  • Network Programming - богатый набор инструкций
  • Не требует MPLS

Micro-SID (uSID):

  • Компактное кодирование: до 6 uSID в одном 128-бит carrier
  • uSID = 16 бит (вместо 128)
  • Путь из 5 хопов: 16 байт вместо 80 байт
  • Если > 6 uSID - используется SRH (Segment Routing Header)

uSID Block - IPv6 префикс для блока micro-SID. uN - базовая micro-инструкция: shortest path + активация следующего uSID.

VPN Services поверх SR

L3VPN (VPNv4/VPNv6):

Конфигурация не отличается от классического MPLS:

  • VRF на PE
  • MP-BGP для VPNv4 между PE (напрямую или через RR)
  • Транспортные метки - SR вместо LDP

L2VPN:

  • VPWS (point-to-point pseudowire)
  • VPLS (multipoint, flooding/learning)
  • EVPN (control plane learning через BGP)

L2VPN сервисы используют SR-TE policy через preferred-path.

EVPN над SR-MPLS/SRv6 - современный подход для DC и SP сетей.

Inter-Domain SR

Сценарии для multi-area/multi-AS:

Option A - back-to-back VRF на ASBR

Option B - обмен labeled VPN routes между ASBR

Option C - обмен loopback через BGP-LU + VPNv4 через RR - BGP Prefix SID обеспечивает сквозной LSP - Каждый домен имеет свой SRGB

Unified MPLS / Seamless MPLS - end-to-end SR через несколько IGP доменов.

Миграция с LDP

SR совместим с LDP. Варианты миграции:

SR Prefer:

  • Если есть и SR label и LDP label для префикса - используется SR
  • Позволяет постепенную миграцию

Mapping Server:

  • Анонсирует SID для префиксов от LDP-only узлов
  • Позволяет SR узлам достигать LDP узлов

Стандарты

  • RFC 8402 - Segment Routing Architecture
  • RFC 8660 - Segment Routing with MPLS Data Plane
  • RFC 8667 - IS-IS Extensions for Segment Routing
  • RFC 8665 - OSPF Extensions for Segment Routing
  • RFC 8664 - PCEP Extensions for Segment Routing
  • RFC 9256 - Segment Routing Policy Architecture
  • RFC 9862 - PCEP Extensions for SR Policy Candidate Paths
  • RFC 9855 - TI-LFA using Segment Routing
  • RFC 8986 - SRv6 Network Programming