Segment Routing med MPLS -introduktion

Jacob Zartmann CCIE Conscia Segment Routing MPLS

Segment Routing (SR) kallas också SPRING (Source Packet Routing in Networking). Två varianter av SR finns:

  • SR med MPLS
  • SRv6 (IPv6 Segment Routing Header (SRH))

Vi kommer bara att täcka SR med MPLS i det här inlägget. Om du redan kan MPLS kommer det att vara ganska enkelt att lära sig om SR. Om vi ​​snabbt tittar på funktionens namn och bryter ner den kommer det att bli tydligt vad det handlar om.

Segment

Ett segment är inget annat än en instruktion. Och med MPLS som dataplane översätts den direkt till en etikett.

Routing

Vi routar baserat på segmenten (etiketterna).

 

Typer av segment

SR har två övergripande typer av segment. Åtminstone om vi pratar om grundläggande SR.

De är:

  • Prefix-SID
    • Globalt unikt
  • Adj-SID

En prefix-SID (Segment Identifier) ​​är en etikett för ett prefix. Om det inte är explicit annonserat är Prefix-SID:et globalt unikt. För prefixet för loopback-gränssnittet i exemplet nedan sätts en speciell flagga som markerar denna som en nod-SID. Detta värde är globalt unikt precis så som IP-adressen för gränssnittet måste vara.

Adj-SID (Adjacency-SID) är en etikett för en specifik länk. Värdet på etiketten är vanligtvis lokalt unikt, men kan vara globalt unikt. En anledning till det är för att kunna återanvända etiketten i hela nätverket och därmed minska SID-listdjupet. Fördelen är att plattformar är beroende av djupet som de kan hantera en SID-lista på. Det betyder antalet etiketter som utgör MSD (maximalt SID-djup). MSD är också annonserat i IGPn för att undvika att man använder noder som inte kan hantera antalet SIDar för ett paket.

För att säkerställa att etiketterna som tilldelats Prefix-SID:s är globalt unika, har ett speciellt omfång på 8000 etiketter tilldelats för att användas med SR. Vi kallar detta intervall SRGB (Segment Routing Global Block). Det börjar vid 16000, åtminstone för Cisco-implementationer. Andra tillverkare kan välja att använda andra intervall. Det rekommenderas att SRGB förblir samma inom routningsdomänen.

Etiketter för Adj-SIDs tilldelas från samma dynamiska pool som LDP, BGP och RSVP-TE också använder, vilket betyder alla etiketter förutom de som har värdena 0-15 och 16000-23999.

 

Kontrollplanet vid Segment Routing

Med SR behöver vi inte LDP. För att distribuera etiketterna har det definierats nya TLVer för ISIS och nya Opaque LSAer för OSPF. Vi kan den fullständiga topologin inom vår nivå eller vårt område, och därför finns det inget behov av den extra komplexitet som LDP annars skulle medföra när vi hanterar MPLS.

Med alla etiketter som distribueras av IGP behövs inget signalprotokoll för att göra TE (Traffic Engineering). SR-TE handlar om att specificera en TE-policy och köra CSPF (Constraint-based Shortest Path First) eller att helt enkelt definiera en ERO (explicit route). Allt görs i huvudänden utan att använda någon av de andra routrarna. Detta gäller också TI-LFA (Topology Independent LFA (Loop Free Alternate)).

För snabb referens är här några TLV och LSA för SR:

 

ISIS TLVer för segment routing

ISIS TLV Segment Routing MPLS Zartmann Conscia

 

OSPF LSA för segment routing

OSPF LSA Segment Routing MPLS Zartmann Conscia

 

Dataplanet vid Segment Routing

Med alla etiketter i vår LSDB är det enkelt att skapa en etikettsamling eller SID-lista som vi kallar det med SR. Detta gör vi vid källan – till exempel vid vår ingress PE. Vidarebefordran fungerar som vi är vana vid i MPLS, inklusive funktioner som PHP.

 

Konfiguration vid Segment Routing

Vi kommer att använda följande topologi:

Segment Routing MPLS topology Zartmann Conscia

Alla routrar kör XRv och vi använder ISIS.

XRV1-konfiguration:

XRV1 config Segment Routing MPLS Zartmann Conscia

Här ser vi en enkel ISIS-konfigurering med bara två kommandon för att aktivera SR.

Först aktiveras SR för ISIS. Detta aktiverar de nya TLVerna och möjliggör MPLS på alla icke-passiva gränssnitt. Därefter definierar vi ett prefix-SID för Loopback0. Här har vi använt ett absolut värde. Det kommer dock att översättas till ett index i LSDB:

Här har vi LSP (Link State Packet) för XRV1. Om vi ​​börjar med sektionen ”Router Cap:” Det är här SR syns för första gången i denna LSP. Detta är en SR-kapabel router som har SRGB konfigurerad som standard. Flaggorna som används för denna TLV är:

 

Flaggor för routerförmåga

Segment Routing Flags Zartmann Conscia

En wireshark-inspelning med fokus på routerns förmåga:

Därefter ser vi några Adj-SID med etiketter från 24000 och över.

 

Adj-SID-flaggor

Wireshark-inspelning av Adj-SID SubTLV:

I den sista TLVn ser vi Prefix-SIDet. Observera att även om vi använde ett absolut värde för att definiera SIDet kommer LSDB alltid att använda indexvärdet!

 

Adj-SID-flaggor

 

Wireshark-inspelning av Prefix-SID SubTLV:

Vi kan verifiera om gränssnitten har aktiverats för MPLS:

Ser bra ut. Observera att vi inte använder LDP alls. Gränssnitten är bara aktiverade för MPLS.

Vi kan också titta på LFIB för verifiering:

Och slutligen en traceroute för att verifiera dataplaneten. Detta görs från loopbacks från XRV1 till XRV5. Detta bör ge oss en SID-lista på 16005.

Det kanske inte är så uppenbart för den här vägen, men hade vi tagit den längre vägen genom XRV2, skulle spårningen sett ut så här (när länken mot XRV4 på XRV1 är nedstängd):

Lägg märke till att det är samma värde som används på det första och det andra hoppet. Det är inte slumpmässigt. Alla routrar använder detta etikettvärde för att nå XRV5-ans loopback0-gränssnitt.

Om vi ​​konfigurerar ett mätvärde på 20 på länken mellan XRV1 och XRV2, bör vi avsluta med viss lastdelning. Vi väljer 20, eftersom standardvärden för en länk med ISIS är 10.

Verifiering med routing-tabellen:

Notera SR parametern för denna väg.

Och LFIB:

Vi använder fortfarande bara etiketten 16005 och nu har vi t.o.m. lastbalansering med SR!

 

Slutsats – Segment Routing med MPLS

För att sammanfatta är SR ett nytt sätt att använda MPLS med färre protokoll involverade. Det finns inget behov av LDP eftersom IGP hanterar distributionen av etiketter åt oss. Eftersom alla routrar känner till alla etiketter kan varje router oberoende bygga en SIB-lista för att välja den väg de vill använda i hela nätverket. Att konfigurera SR kräver bara några få kommandon under IGP och vi använder de verifieringskommandon som vi är vana vid för att förenkla så mycket som möjligt.

Om du vill driftsätta ett nytt MPLS-nätverk är det starkt rekommenderat att använda SR om dina enheter stödjer den funktionaliteten.

Jag hoppas att du gillade det här inlägget.

Ett alternativ till MPLS för allt fler verksamheter idag är SD-WAN. Läs vår SD-WAN Guide här eller se vårt SD-WAN seminarium!

Jacob Zartmann är en hängiven nätverksexpert med många års erfarenhet inom Ciscos nätverkslösningar, där han särskilt är intresserad av DNA Center med ett särskilt fokus på SD-Access. Jacob har en CCIE-certifiering inom Routing & Switching, som han utökar med en CCIE SP-certifiering. Privat slappnar han av med långa framfotslöpturer. Ovan inlägg är en godkänd översättning från Jacobs blogg.

 

Kontakta oss!
Svar inom 24h