Úvod do technológie Segment Routing
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.