Segment Routing Primer — SR-MPLS і 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 на кожному транзитному маршрутизаторі.
- Складність Fast-Reroute:RSVP-FRR (RFC 4090) захищає LSP за допомогою попередньо обчислених обхідних шляхів або обхідних тунелів — функція, яка працює, але додає ще один рівень стану.
Маршрутизація сегментів (RFC 8402) повністю усуває стан кожного потоку на транзитних вузлах. Вихідний маршрутизатор кодує весь шлях пересилання як упорядкований списоксегментиу самому заголовку пакета. Транзитні маршрутизатори обробляють лише активний сегмент і не потребують стану LSP.
2. Архітектура SR (RFC 8402)
A сегментце інструкція, яка вказує маршрутизатору, як пересилати пакет — це може означати «перейти до цього вузла», «вийти на цьому конкретному суміжнику» або «застосувати цей пошук VPN». Сегменти ідентифікуються за допомогою ідентифікаторів сегментів (SID). Упорядкований список SID єсписок сегментів(або SID-список). Активний сегмент обробляється при кожному переході; після завершення обробки сегмент видаляється, а наступний стає активним.
Існує дві екземпляри площини даних:
- SR-MPLS: SID є мітками MPLS. Список сегментів — це стек міток. Зворотна сумісність із існуючим обладнанням MPLS.
- SRv6: SID – це 128-розрядні адреси IPv6. Список сегментів міститься в заголовку маршрутизації сегмента (SRH, заголовок розширення IPv6). IPv6-власний; MPLS не потрібен.
3. SR-MPLS: Node-SID, Adj-SID і SRGB
SR-MPLS (RFC 8660) визначає два основні типи SID, рекламовані IS-IS (RFC 8667) або OSPF (RFC 8665) як розширення TLV:
| Тип SID | Область застосування | Стабільність | Значення |
|---|---|---|---|
| Node-SID | Глобальний (SRGB) | Наполегливий | «Доставити до цього вузла за найкоротшим шляхом IGP». Кожен маршрутизатор має один Node-SID на кожен loopback/router-ID. Усі маршрутизатори в домені SR повинні запрограмувати цю мітку. |
| Суміжність-SID(Adj-SID) | Локальний (SRLB або динамічний) | Ефемерний (за сеанс) | «Переслати цей конкретний інтерфейс цьому конкретному сусіду». Використовується для примусового переходу пакета на певне посилання незалежно від найкоротшого шляху. |
| Anycast-SID | Глобальний | Наполегливий | Спільно використовується набором вузлів (наприклад, групою відбивачів маршрутів anycast або точками доступу до центру обробки даних). Пакети доставляються найближчому учаснику. |
TheSRGB(Глобальний блок сегментної маршрутизації) — це діапазон міток, зарезервований для глобально значущих 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
SRv6 (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 — використовується для IPv4 VPN), End.DX2 (декап і крос-з’єднання L2).
- Аргумент: необов’язковий додатковий контекст для функції (наприклад, ідентифікатор потоку для ентропії).
Список сегментів переноситься вСРЗ(Заголовок маршрутизації сегмента,RFC 8754) — заголовок розширення IPv6 із Next Header = 43 (Routing Header), Routing Type = 4. SRH містить:
- Ліворуч (SL): індекс у списку сегментів, що вказує на активний SID
- Тег: підказка щодо класифікації потоку
- Список сегментів [0..n]: упорядковані SID (останній SID є місцем призначення)
На кожному вузлі з підтримкою SR, якщо адресат IPv6 відповідає локальному SID, вузол виконує функцію SID, зменшує лівий сегмент і копіює список сегментів [сегмент лівий] у IPv6 DA перед пересиланням.
5. Транспортна техніка з SR-TE
SR-TE (RFC 9256— SR Policy Architecture) замінює RSVP-TE LSP наПолітика SR, кожна з яких визначається:
- Головна станція: вхідний вузол, який створює політику
- Колір: 32-розрядний ідентифікатор, який використовується для пов’язування трафіку (через розширену спільноту BGP Color) із політикою
- Кінцева точка: вузол призначення
- Один або більшешляхи кандидатів, кожен зі зваженим списком сегментів
Шляхи-кандидати обчислюються головною станцією (за допомогою локального CSPF/PCE) або розподіляються централізованим SR-PCE/контролером через PCEP (RFC 5440) або BGP SR Policy (дивRFC 9256§8). Це повністю усуває площину сигналізації RSVP, зберігаючи явне керування шляхом.
On-Demand Next-Hop (ODN)— це функція SR-TE, де головна станція автоматично створює політику SR, коли надходить маршрут BGP із певною кольоровою спільнотою, без попередньої підготовки — це дозволяє автоматизовано керувати трафіком для VPN і префіксів CDN.
6. SR-MPLS проти SRv6 проти RSVP-TE
| SR-MPLS | SRv6 | RSVP-TE | |
|---|---|---|---|
| Площина даних | Стек міток MPLS | Заголовок розширення IPv6 + SRH | Стек міток MPLS |
| Стан кожного потоку під час транспортування | Жодного | Жодного | Так (м'який стан RSVP) |
| Протокол сигналізації | Розширення IGP (IS-IS/OSPF). | Розширення IGP | RSVP-TE (PATH/RESV) |
| HW сумісність | Будь-який MPLS HW | Потрібен ASIC, сумісний із SRv6 | Будь-який MPLS HW |
| Накладні витрати на пакет | 4 B на етикетку | 8 + 16n B (SRH з n SID) | 0 (мітка MPLS уже в стеку) |
| Підтримка VPN | Через мітки MPLS VPN | Функції SID End.DT4/DT6/DX2 | Через мітки MPLS VPN |
| Швидка зміна маршруту | TI-LFA (незалежний від топології, без попередньої конфігурації) | 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 Overlay на основі сегментної маршрутизації через IPv6 (SRv6)
- RFC 9256— Архітектура політики маршрутизації сегментів
- Робоча група IETF SPRING— Маршрутизація вихідних пакетів у мережі (активні чернетки SR)