Segment Routing Primer — SR-MPLS og SRv6
Kilderuting uten per-flyt-tilstand: hvordan SR erstatter RSVP-TE, hva Node-SID og Adj-SID gjør, hvordan SRv6 koder instruksjoner i IPv6-adresser, og hvor SR-TE passer i trafikkteknikk.
1. Problemet med RSVP-TE
RSVP-TE (Resource Reservation Protocol – Trafikkteknikk,RFC 3209) aktivert eksplisitt banekontroll i MPLS-nettverk, men introduserte betydelig operasjonell kompleksitet:
- Per-flyt tilstand:Hver LSP krever tilstand på hver ruter langs banen (RSVP PATH og RESV-meldinger). I et nettverk med tusenvis av LSP-er opprettholder transittrutere enorme soft-state-tabeller som må oppdateres kontinuerlig.
- Head-end-signalering:Ingress (head-end) ruteren signaliserer banen gjennom RSVP. Enhver topologiendring krever re-signalering, og skaper konvergensoverhead.
- Skalerbarhet:Antall LSP-er vokser med O(N²) for full mesh, og hver LSP bruker LFIB-oppføringer på hver transittruter.
- Rask omdirigering kompleksitet:RSVP-FRR (RFC 4090) beskytter LSP-er med forhåndsberegnet omveier eller bypass-tunneler for anlegg – en funksjon som fungerer, men legger til et nytt lag av tilstand.
Segmentruting (RFC 8402) eliminerer per-flyt tilstand ved transittnoder helt. Kilderuteren koder hele videresendingsbanen som en ordnet liste oversegmenteri selve pakkeoverskriften. Transitrutere behandler bare det aktive segmentet og trenger ikke LSP-status.
2. SR-arkitektur (RFC 8402)
A segmenter en instruksjon som forteller en ruter hvordan den skal videresende pakken - det kan bety "gå til denne noden", "avslutt på denne spesifikke grensen" eller "bruk dette VPN-oppslaget." Segmenter identifiseres av Segment Identifiers (SID-er). En ordnet liste over SID-er ersegmentliste(eller SID-liste). Det aktive segmentet behandles ved hvert hopp; når behandlingen er fullført, fjernes segmentet og det neste blir aktivt.
Det eksisterer to dataplaninstanser:
- SR-MPLS: SID-er er MPLS-etiketter. Segmentlisten er en etikettstabel. Bakoverkompatibel med eksisterende MPLS-maskinvare.
- SRv6: SID-er er 128-biters IPv6-adresser. Segmentlisten føres i Segment Routing Header (SRH, IPv6 extension header). IPv6-native; ingen MPLS nødvendig.
3. SR-MPLS: Node-SID, Adj-SID og SRGB
SR-MPLS (RFC 8660) definerer to grunnleggende SID-typer, annonsert av IS-IS (RFC 8667) eller OSPF (RFC 8665) som TLV-utvidelser:
| SID-type | Omfang | Stabilitet | Betydning |
|---|---|---|---|
| Node-SID | Global (SRGB) | Vedvarende | "Lever til denne noden ved å bruke den korteste IGP-banen." Hver ruter har én Node-SID per loopback/ruter-ID. Alle rutere i SR-domenet må programmere denne etiketten. |
| Adjacency-SID(Adj-SID) | Lokal (SRLB eller dynamisk) | Kortvarig (per økt) | "Videresend dette spesifikke grensesnittet til denne spesifikke naboen." Brukes til å tvinge en pakke inn på en bestemt lenke uavhengig av den korteste veien. |
| Anycast-SID | Global | Vedvarende | Delt av et sett med noder (f.eks. en anycast-gruppe med rutereflektorer eller datasenter PoPs). Pakker leveres til nærmeste medlem. |
DeSRGB(Segment Routing Global Block) er etikettområdet reservert for globalt signifikante SID-er. Vanlig standard er 16000–23999 (Cisco, Juniper), selv om den er konfigurerbar. Node-SID er kodet somindeksverdier(f.eks. indeks 100) og løst til en etikett ved å legge indeksen til SRGB-basen (f.eks. 16000 + 100 = etikett 16100). Alle rutere må bruke samme SRGB for at globale SID-er skal være konsistente – feilaktige SGRB-er mellom leverandører eller konfigurasjoner forårsaker feilmerking.
Eksempel på SR-MPLS-etikettstabel— sende trafikk fra R1 til R5 via R3 (eksplisitt veipunkt), og unngå den direkte R1→R5-stien:
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-er som IPv6-adresser
SRv6 (RFC 8986) koder SID-er som 128-biters IPv6-adresser strukturert som:
| Locator (e.g., /48) | Function (operator-defined, typically 16 bits) | Argument (remaining bits) |
- Locator: Ruterbart IPv6-prefiks tildelt noden. Transportrutere ruter mot dette prefikset normalt. Lokalisatoren er annonsert i IGP.
- Funksjon: Identifiserer den spesifikke operasjonen som skal utføres ved SID-endepunktet. Eksempler: End (frem til neste SID), End.X (send ut spesifikk adjacency), End.DT4 (decap og IPv4-tabelloppslag – brukt for IPv4 VPN-er), End.DX2 (decap og L2 cross-connect).
- Argument: Valgfri tilleggskontekst for funksjonen (f.eks. en flyt-ID for entropi).
Segmentlisten føres iSRH(Segmentrutingsoverskrift,RFC 8754) — en IPv6-utvidelse-header med Next Header = 43 (Routing Header), Ruting Type = 4. SRH-en inneholder:
- Segment Left (SL): indekser inn i segmentlisten som peker til den aktive SID
- Tag: flytklassifisering hint
- Segmentliste[0..n]: de bestilte SID-ene (siste SID er destinasjonen)
Ved hver SR-bevisst node, hvis IPv6-destinasjonen samsvarer med en lokal SID, utfører noden SID-funksjonen, reduserer Segment Left og kopierer Segment List [Segment Left] til IPv6 DA før videresending.
5. Trafikkteknikk med SR-TE
SR-TE (RFC 9256— SR Policy Architecture) erstatter RSVP-TE LSPer medSR retningslinjer, hver definert av:
- Headend: Inngangsnoden som instansierer policyen
- Farge: En 32-bits identifikator som brukes til å knytte trafikk (via BGP Color utvidet fellesskap) med policyen
- Endepunkt: Destinasjonsnoden
- En eller flerekandidatveier, hver med en vektet segmentliste
Kandidatbaner beregnes av hovedenden (ved hjelp av lokal CSPF/PCE) eller distribueres av en sentralisert SR-PCE/kontroller over PCEP (RFC 5440) eller BGP SR Policy (seRFC 9256§8). Dette eliminerer RSVP-signaleringsplanet fullstendig, samtidig som eksplisitt banekontroll bevares.
On-Demand Next-Hop (ODN)er en SR-TE-funksjon der headend automatisk instansierer en SR-policy når en BGP-rute ankommer med et spesifikt fargefellesskap, uten forhåndsprovisionering – som muliggjør automatisert trafikkstyring for VPN-er og CDN-prefikser.
6. SR-MPLS vs SRv6 vs RSVP-TE
| SR-MPLS | SRv6 | RSVP-TE | |
|---|---|---|---|
| Dataplan | MPLS etikettstabel | IPv6 + SRH-utvidelsesoverskrift | MPLS etikettstabel |
| Per-flyt tilstand ved transitt | Ingen | Ingen | Ja (RSVP myk tilstand) |
| Signaleringsprotokoll | IGP (IS-IS/OSPF) utvidelser | IGP-utvidelser | RSVP-TE (PATH/RESV) |
| HW-kompatibilitet | Enhver MPLS HW | Krever SRv6-kompatibel ASIC | Enhver MPLS HW |
| Overhead per pakke | 4 B per etikett | 8 + 16n B (SRH med n SID-er) | 0 (MPLS-etikett allerede i stabel) |
| VPN-støtte | Via MPLS VPN-etiketter | End.DT4/DT6/DX2 SID-funksjoner | Via MPLS VPN-etiketter |
| Rask omdirigering | TI-LFA (topologiuavhengig, ingen forhåndskonfigurasjon) | TI-LFA | RSVP-FRR (forhåndsbestemt bypass) |
| Utplasseringsmodenhet | Utbredt i SP/DC | Voksende; ASIC-støtte modnes fortsatt | Moden, men avtagende |
Referanser
- RFC 8402— Segmentrutingsarkitektur
- RFC 8660— Segmenter ruting med MPLS-dataplanet
- RFC 8665— OSPF-utvidelser for segmentruting
- RFC 8667— IS-IS-utvidelser for segmentruting
- RFC 8669— Segment Routing Prefix SID Extensions for BGP
- RFC 8754— IPv6 Segment Routing Header (SRH)
- RFC 8986— Segmentruting over IPv6 (SRv6) nettverksprogrammering
- RFC 9252— BGP-overleggstjenester basert på segmentruting over IPv6 (SRv6)
- RFC 9256— Segmentrutingspolitikkarkitektur
- IETF SPRING arbeidsgruppe— Kildepakkeruting i nettverk (aktive SR-utkast)