Segment Routing Primer — SR-MPLS and SRv6
Segmentroutingprimer — SR-MPLS en SRv6
Bronroutering zonder status per stroom: hoe SR RSVP-TE vervangt, wat Node-SID's en Adj-SID's doen, hoe SRv6 instructies in IPv6-adressen codeert en waar SR-TE past in verkeerstechniek.
1. Het probleem met RSVP-TE
RSVP-TE (Resource Reservation Protocol - Verkeerstechniek,RFC3209) maakte expliciete padcontrole in MPLS-netwerken mogelijk, maar introduceerde een aanzienlijke operationele complexiteit:
- Per stroomstatus:Elke LSP vereist de status van elke router langs het pad (RSVP PATH- en RESV-berichten). In een netwerk met duizenden LSP's onderhouden transitrouters enorme soft-state-tabellen die voortdurend moeten worden vernieuwd.
- Head-end signalering:De ingangsrouter (head-end) signaleert het pad via RSVP. Elke topologieverandering vereist hersignalering, waardoor convergentie-overhead ontstaat.
- Schaalbaarheid:Het aantal LSP's groeit met O(N²) voor full mesh, en elke LSP verbruikt LFIB-ingangen op elke transitrouter.
- Complexiteit van snelle omleiding:RSVP-FRR (RFC 4090) beschermt LSP's met vooraf berekende omwegen of bypass-tunnels - een functie die werkt, maar een extra statuslaag toevoegt.
Segmentroutering (RFC-8402) elimineert de status per stroom op transitknooppunten volledig. De bronrouter codeert het volledige doorstuurpad als een geordende lijst vansegmentenin de pakketheader zelf. Transitrouters verwerken alleen het actieve segment en hebben geen LSP-status nodig.
2. SR-architectuur (RFC 8402)
A segmentis een instructie die een router vertelt hoe het pakket moet worden doorgestuurd. Dit kan betekenen 'ga naar dit knooppunt', 'verlaat deze specifieke nabijheid' of 'pas deze VPN-zoekopdracht toe'. Segmenten worden geïdentificeerd door Segment Identifiers (SID's). Een geordende lijst met SID's is desegmentlijst(of SID-lijst). Het actieve segment wordt bij elke hop verwerkt; wanneer de verwerking is voltooid, wordt het segment verwijderd en wordt het volgende actief.
Er bestaan twee datavlak-instantiaties:
- SR-MPLS: SID's zijn MPLS-labels. De segmentlijst is een labelstapel. Achterwaarts compatibel met bestaande MPLS-hardware.
- SRv6: SID's zijn 128-bit IPv6-adressen. De segmentlijst wordt opgenomen in de Segment Routing Header (SRH, IPv6-extensieheader). IPv6-native; geen MPLS vereist.
3. SR-MPLS: knooppunt-SID's, Adj-SID's en de SRGB
SR-MPLS (RFC8660) definieert twee fundamentele SID-typen, geadverteerd door IS-IS (RFC-8667) of OSPF (RFC8665) als TLV-extensies:
| SID-type | Domein | Stabiliteit | Betekenis |
|---|---|---|---|
| Knooppunt-SID | Globaal (SRGB) | Volhardend | "Bezorg dit knooppunt via het kortste IGP-pad." Elke router heeft één Node-SID per loopback/router-ID. Alle routers in het SR-domein moeten dit label programmeren. |
| Nabijheid-SID(Adj-SID) | Lokaal (SRLB of dynamisch) | Kortstondig (per sessie) | "Stuur deze specifieke interface door naar deze specifieke buur." Wordt gebruikt om een pakket op een bepaalde link te forceren, ongeacht het kortste pad. |
| Anycast-SID | Globaal | Volhardend | Gedeeld door een reeks knooppunten (bijvoorbeeld een anycast-groep van routereflectoren of datacenter-PoP's). Pakketten worden afgeleverd bij het dichtstbijzijnde lid. |
DeSRGB(Segment Routing Global Block) is het labelbereik dat is gereserveerd voor mondiaal belangrijke SID's. De algemene standaardwaarde is 16000–23999 (Cisco, Juniper), hoewel dit configureerbaar is. Knooppunt-SID's worden gecodeerd alsindexwaarden(bijvoorbeeld index 100) en omgezet in een label door de index toe te voegen aan de SRGB-basis (bijvoorbeeld 16000 + 100 = label 16100). Alle routers moeten dezelfde SRGB gebruiken om ervoor te zorgen dat globale SID's consistent zijn. Niet-overeenkomende SGRB's tussen leveranciers of configuraties veroorzaken verkeerde labels.
Voorbeeld van SR-MPLS-labelstapel— het verzenden van verkeer van R1 naar R5 via R3 (expliciet waypoint), waarbij het directe pad R1 → R5 wordt vermeden:
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's als IPv6-adressen
SRv6 (RFC8986) codeert SID's als 128-bits IPv6-adressen, gestructureerd als:
| Locator (e.g., /48) | Function (operator-defined, typically 16 bits) | Argument (remaining bits) |
- Zoeker: Routeerbaar IPv6-voorvoegsel toegewezen aan het knooppunt. Transitrouters routeren normaal naar dit voorvoegsel. De locator wordt geadverteerd in het IGP.
- Functie: Identificeert de specifieke bewerking die moet worden uitgevoerd op het SID-eindpunt. Voorbeelden: End (doorsturen naar volgende SID), End.X (specifieke aangrenzende verbinding doorsturen), End.DT4 (decap en IPv4-tabel opzoeken - gebruikt voor IPv4 VPN's), End.DX2 (decap en L2 cross-connect).
- Argument: Optionele aanvullende context voor de functie (bijvoorbeeld een stroom-ID voor entropie).
De segmentlijst wordt in deSRH(Segmentrouteringskop,RFC-8754) — een IPv6-extensieheader met Next Header = 43 (Routing Header), Routing Type = 4. De SRH bevat:
- Segment Left (SL): index in de segmentlijst die naar de actieve SID verwijst
- Tag: hint voor stroomclassificatie
- Segmentlijst[0..n]: de bestelde SID's (laatste SID is de bestemming)
Als de IPv6-bestemming overeenkomt met een lokale SID, voert het knooppunt bij elk SR-bewust knooppunt de functie van de SID uit, verlaagt het segment links en kopieert de segmentlijst [Segment links] naar de IPv6 DA voordat het wordt doorgestuurd.
5. Verkeerskunde met SR-TE
SR-TE (RFC9256— SR Policy Architecture) vervangt RSVP-TE LSP's doorSR-beleid, elk gedefinieerd door:
- Hoofdeinde: Het ingangsknooppunt dat het beleid instantiseert
- Kleur: een 32-bits identificatie die wordt gebruikt om verkeer (via de uitgebreide BGP Color-community) aan het beleid te koppelen
- Eindpunt: Het bestemmingsknooppunt
- Eén of meerkandidaat trajecten, elk met een gewogen segmentlijst
Kandidaatpaden worden berekend door het kopstation (met behulp van lokale CSPF/PCE) of gedistribueerd door een gecentraliseerde SR-PCE/controller via PCEP (RFC5440) of BGP SR-beleid (zieRFC9256§8). Hierdoor wordt het RSVP-signaleringsvlak volledig geëlimineerd, terwijl de expliciete padcontrole behouden blijft.
On-demand volgende hop (ODN)is een SR-TE-functie waarbij het kopstation automatisch een SR-beleid instelt wanneer een BGP-route arriveert bij een specifieke Color-gemeenschap, zonder voorafgaande inrichting, waardoor geautomatiseerde verkeerssturing voor VPN's en CDN-voorvoegsels mogelijk wordt.
6. SR-MPLS versus SRv6 versus RSVP-TE
| SR-MPLS | SRv6 | RSVP-TE | |
|---|---|---|---|
| Gegevensvlak | MPLS-labelstapel | IPv6 + SRH-extensieheader | MPLS-labelstapel |
| Per-stroomstatus tijdens doorvoer | Geen | Geen | Ja (RSVP zachte status) |
| Signaleringsprotocol | IGP (IS-IS/OSPF)-extensies | IGP-extensies | RSVP-TE (PAD/RESV) |
| HW-compatibiliteit | Elke MPLS-HW | Vereist SRv6-compatibele ASIC | Elke MPLS-HW |
| Overhead per pakket | 4 B per etiket | 8 + 16n B (SRH met n SID's) | 0 (MPLS-label al in stapel) |
| VPN-ondersteuning | Via MPLS VPN-labels | Einde.DT4/DT6/DX2 SID-functies | Via MPLS VPN-labels |
| Snelle omleiding | TI-LFA (topologie-onafhankelijk, geen preconfiguratie) | TI-LFA | RSVP-FRR (vooraf ingerichte bypass) |
| Volwassenheid van implementatie | Wijdverbreid in SP/DC | Groeien; ASIC-ondersteuning is nog in ontwikkeling | Volwassen maar in verval |
Referenties
- RFC-8402— Segmentrouteringsarchitectuur
- RFC8660— Segmentroutering met het MPLS-datavlak
- RFC8665— OSPF-extensies voor segmentroutering
- RFC-8667— IS-IS-uitbreidingen voor segmentroutering
- RFC-8669— Segment Routing Prefix SID-extensies voor BGP
- RFC-8754— IPv6 Segment Routing Header (SRH)
- RFC8986— Segmentrouting via IPv6 (SRv6) netwerkprogrammering
- RFC9252— BGP-overlaydiensten op basis van segmentroutering via IPv6 (SRv6)
- RFC9256— Architectuur voor segmentrouteringsbeleid
- IETF SPRING-werkgroep— Bronpakketroutering in Networking (actieve SR-concepten)