Úvod do technológie Segment Routing

Peter Filo

Senior Systems Engineer

peter.filo@alef.com

Segment Routing sa čoraz častejšie označuje za budúcu transportnú technológiu  v SP sieťach, ktorá má riešiť nedostatky tých súčasných.

Často sa prezentuje ako nástupnícka technológia po  MPLS, zároveň ale má dokázať natívne fungovať aj nad IPv6 protokolom so všetkými nadstavbovými službami ako L3 a L2VPN a navyše má byť pripravená na éru SDN.

Typická SP sieť je dnes MPLS sieť pozostávajúca z P, PE a CE routerov, ktorá poskytuje L3 a L2VPN služby. Na prenos paketov využíva „label-switching“ mechanizmus, pri ktorom je každý paket je označkovaný 4 bajtovou značkou/tagom, na základe ktorej P/PE routre vedia, kam majú poslať prichádzajúci paket. Ako vnútorný smerovací protokol je použitý OSPF/IS-IS, na výmenu značiek/tagov sa používa LDP a na výmenu rôznych VPN informácií BGP protokol. Na garanciu šírky pásma pre vybrané dátové toky, alebo modifikáciu trasy dátového toku sieťou sa používa zase RSVP-TE protokol. 

Nedostatky v existujúcich SP sieťach sa dajú zhrnúť do týchto pár bodov:

  • Cesta po ktorej sú prenášané pakety v SP sieti sa vyberá na základe najkratšej cesty k cieľovej adrese výstupného smerovača, nie podľa požiadaviek zdroja dát, ktorým môže byť vstupný PE router, ToR switch v dátovom centre, alebo priamo aplikácia
  • Zdroj dát nemá možnosť dynamicky meniť šírku pásma a oneskorenie podľa požiadaviek aplikácie, ktorá vyžaduje prenos (s výnimkou použitia RSVP-TE, kde ide skôr o statickú konfiguráciu)
  • Synchronizácia LDP a OSPF/IS-IS protokolu. Konvergencia LDP a OPSF/IS-IS bez vzájomnej synchronizácie oboch procesov môže viesť k dočasnej strate prenášaných dát.
  • Príliš veľa signalizácie.  RSVP-TE je založený na hop-by-hop princípe, nie na end-to-end princípe. Manipulácia s cestami po ktorých sú prenášané dátové toky, alebo garancia šírky pásma pre vybrané dátové toky vyžaduje konfiguráciu RSVP-TE protokolu v celej SP sieti.
  • Chýbajúca podpora pre online alebo proaktívne kapacitné plánovanie 

Ako rieši tieto nedostatky Segment Routing?

Najprv si predstavte Segment Routing ako architektúru, ktorá rovnako ako MPLS, využíva na prenos paketov „label-switching“  mechanizmus, ale bez nutnosti bežať LDP a RSVP-TE protokol. Segment Routing totiž používa na distribúciu segmentov priamo OSPF alebo IS-IS routovací protokol a nepotrebuje LDP.

Značky/tagy sa v SR svete volajú segmenty. Pod segmentami si predstavte inštrukcie, ktoré do paketu vkladá zdroj dát (vstupný PE router, ToR switch alebo priamo aplikácia), na základe ktorých budú potom smerovače v SP sieti prenášať paket. Inak povedané, zdroj dát nakóduje do paketu cestu, ktorou bude paket prenášaný v SP sieti.  Benefitom tohto kódovania je, že v SP sieti nie je viac potrebný RSVP-TE protokol, ani žiadna dodatočná signalizácia. Iba zdroj dát vie akou cestou budú pakety v sieti prenášané,  ostatné smerovače v SP sieti iba prenášajú pakety na základe zakódovaných inštrukcií.

Segment Routing sa často označuje ako Source Routing technológia. Pod označením Source Routing sa v tomto prípade ale neskrýva smerovanie na základe zdrojovej IP adresy, alebo na základe nejakých nakonfigurovaných pravidiel (policy based routing), Source Routing znamená že priamo zdroj dát rozhoduje o ceste, ktorou budú dáta prenášané.

Segmenty sa vkladajú do paketu ako štandardné 4 bajtové MPLS značky/tagy.  Routre v SP sieti vykonávajú s takto vloženými značkami rovnaké operácie ako je bežné v MPLS sieťach – push, swap, pop. Na prvý pohľad sa teda Segment Routing a MPLS technológie od seba líšia iba iným spôsobom distribúcie značiek/tagov, „label-switching“ mechanizmus prenosu paketov ostáva zhodný pri oboch technológiách.

Segmenty sa delia na dve veľké skupiny:

  • Globálne Segmenty
    • tejto inštrukcii rozumie každý router v tzv. Segment Routing doméne
    • každý SR router si nainštaluje túto inštrukciu do LFIB tabuľky
    • Identifikátor segmentu (Segment ID) je MPLS značka/tag prislúchajúci tejto inštrukcii. Tento MPLS tag  je jedinečný v celej SR doméne a prideľuje sa (konfiguruje sa manuálne) z dedikovaného bloku značiek rezervovaného pre tieto účely (štandardne rozsah 16000-23999, označovaný ako SRGB).   
  • Lokálne segmenty
    • Tejto inštrukcii rozumie len router, ktorý je zdrojom tejto inštrukcie 
    • Značka/tag sa prideľuje automaticky z lokálneho rozsahu značiek (MPLS Label Range bez SRGB) a nemusí byť jedinečný v SR doméne

Segmenty ktoré sa šíria pomocou vnútorného smerovacieho protokolu (IGP segmenty) sa delia na dve skupiny:

  • Prefix segmenty
    • Ide o globálny segment
    • Ide o segment ktorý je asociovaný s IPv4 alebo IPv6  prefixom
    • Segment ktorý je asociovaný s Loopback rozhraním routera sa označuje ako Node Segment a  jednoznačne popisuje router v SR doméne (IP adresa Loopback rozhrania má pridelený jedinečný tag z SRGB rozsahu)
    • Inštrukcia prestavuje najkratšiu cestu k prefixu
    • Segment je distribuovaný pomocou OSPF/IS-IS 
  • Adjacency segmenty   
    • Ide o lokálny segment 
    • Segment prezentuje asociáciu so susedným routerom
    • Segment je distribuovaný pomocou OSPF/IS-IS 

 

Príklady použitia IGP segmentov

1. Node Segment

  • Router Z oznamuje IP adresu Loopback rozhrania spolu s manuálne prideleným Node segment ID 16065 cez OSPF/IS-IS
  • Každý router si nainštaluje do LFIB tento záznam a vie, že IP adresa Z je dostupná cez segment 16065
  • Každý paket so segmentom 16065 bude poslaný na router Z najkratšou cestou

2. Node Segment a ECMP

  • Router F oznamuje IP adresu Loopback rozhrania spolu s manuálne prideleným Node segment ID 16068 cez OSPF/IS-IS
  • Segment Routing na rozdiel od MPLS umožňuje ECMP
  • Router A rozkladá záťaž smerom routeru F cez všetky ECMP cesty

3. Adjacency Segment

  • Router B pridelí lokálny segment 29003 červenej linke BE
  • Router B oznamuje pridelenie lokálneho segmentu cez OSPF/IS-IS
  • Router B je jediný, ktorý si nainštaluje záznam do LFIB tabuľky
  • Keď na router B dorazí paket s tagom 29003, tak bude preposlaný ďalej po červenej linke medzi BE

4. Explicit path s využitím Node a Adjacency Segmentov

  • Router A má poslať pakety smerovaču Z cez trasu ABCčervená linka medzi C-GHZ
  • Router Z oznamuje IP adresu Loopback rozhrania so segmentom ID 16065
  • Router C  oznamuje IP adresu Loopback rozhrania so segmentom ID 16066
  • Router C pridelí lokálny segment 29003 červenej linke CG
  • Router A zakóduje do prichádzajúceho paketu/otaguje paket segmentami 16005,29003 a 16066

Ako je to s podporou IPv6?

V úvode bolo spomenuté že Segment Routing vie fungovať natívne aj nad IPv6 protokolom (SR-IPv6), bez potreby „label-switching“ mechanizmu. Porovnanie oboch architektúr – natívna IPv6 a MPLS je na nasledovnom obrázku (prenos z A na H cez B,C,F a G):

Z obrázku vyplýva že rozdiel medzi MPLS a IPv6 implementáciou Segment Routingu nie je vo funkcionalite, ale iba v spôsobe zakódovania inštrukcie do paketu. Segment - inštrukcia, sa v prípade natívneho IPv6 prostredia prenáša v rozširujúcej IPv6 hlavičke (Segment Routing Header).  Na rozdiel od MPLS sveta sa segment kóduje do 128 bitov a zoznam inštrukcií sa dá chápať ako zoznam IPv6 adries, ktoré popisujú cestu, cez ktorú má byť paket v SP sieti prenesený.

Využitie rozširujúcej IPv6 hlavičky pre SR účely nie je niečo nové, čo do IPv6 sveta priniesol Segment Routing. SR-IPv6 len prevzal a využil pre svoje účely Routing Extension hlavičku definovanú v RFC2460.

Ako je to s modifikáciou trasy po ktorej sú prenášané dátové toky?

Čo keď je moja najkratšia cesta, ktorú vypočítal OSPF/IS-IS smerovací protokol, preťažená a potrebujem odkloniť nejaké dátové toky po záložných linkách? Čo keď potrebujem pre špecifický dátový tok dodržať garantované SLA parametre?

V prípade MPLS sveta sa táto vlastnosť označuje ako MPLS-TE (Traffic Engineering) a vyžaduje mať nakonfigurovaný a spustený RSVP-TE protokol v celej SP sieti, kvôli signalizácii novej trasy a následnej distribúcii značiek/tagov pre novú trasu.   

V Segment Routing doméne môžeme túto možnosť označiť ako SR-TE a jediné čo Headend Router potrebuje vedieť k modifikácii trasy, sú parciálne segmenty cesty (Node, Adjacency segmenty), po ktorých majú byť prenášané dátové toky. Len pre zopakovanie, tie sú mu oznamované prostredníctvom OSPF/IS-IS protokolu, router ich udržuje v Link-State databáze a používa v LFIB tabuľke.

Čo sa týka konfigurácie SR-TE, tak rozlišujeme tri spôsoby:

  • Manuálna konfigurácia SR-TE tunela a explicitné definovanie cesty. Toto je ekvivalent k MPLS-TE konfigurácii a explicitnému definovaniu cesty pomocou zoznamu IP adries smerovačov, cez ktoré má byť paket prenášaný
  • Manuálna konfigurácia SR-TE tunela a na výpočet cesty pouzijeme SDN controller. SDN controller pre tieto účely sa často označuje ako PCE (Path Control Element). Headend Router na ktorom konfigurujeme začiatok SR-TE tunela sa stáva PCC klientom (Path Computation Client) a na komunikáciu s PCE používa PCEP (Path Computation Element Protocol). PCE musí mať kompletný prehľad o sieťovej topológii, aby vedel vypočítať cestu podľa požadovaných parametrov. PCC, PCE, PCEP funkcionalita je popísaná v RFC4655. V Cisco produktovom portfóliu možno nájsť PCE pod označením Cisco WAE (WAN Automation Engine)
  • Dynamická konfigurácia SR-TE tunela a výpočet cesty pomocou PCE. PCE disponuje API rozhraním, pomocou ktorého užívateľ alebo priamo aplikácia zadefinuje začiatok, koniec tunela a požadované SLA parametre. PCE vypočíta parametre tunela, pošle požiadavku na vytvorenie tunela do PCC. PCC automaticky nakonfiguruje SR-TE tunel a následne sa ešte pýta PCE na trasu, po ktorej majú byť dáta prenášané.  

Na štandardizácii Segment Routing architektúry spolupracuje IETF pracovná skupina so sympatickým názvom SPRING – Source Packet Routing in Networking.