Segment Routing v prostredí IPv6

Peter Filo

Senior Systems Engineer

peter.filo@alef.com

Ak predpokladáme že IPv6 bude raz jediným protokolom v sieťach novej generácie, tak stojí za úvahu sa zamyslieť nad spôsobom poskytovania nadstavbových služieb typu L2, L3 VPN a Traffic Engineering v takomto prostredí.

Odpoveďou môže byť samozrejme MPLS, ktoré je v súčasnosti už kompatibilné s IPv6 svetom (RFC 7552). MPLS ale tiež znamená, že v budúcich sieťach bude potrebné prevádzkovať nielen vnútorný smerovací protokol (OSPF, IS-IS), ale aj protokoly na distribúciu MPLS značiek (LDP, RSVP-TE). A to tiež znamená, že tak ako doteraz, tak aj v budúcnosti bude potrebné riešiť synchronizáciu týchto protokolov kvôli potenciálnej strate dát v dôsledku výpadku linky a následnej konvergencie týchto, od seba nezávislých procesov. Navyše každý smerovač v IP/MPLS sieti musí podporovať MPLS funkcionalitu, čo vedie k určitému obmedzeniu kde všade sa dajú nadstavbové služby realizovať. Typicky ide o SP transportné siete, menej často už o dátové centrá a implementácia v natívnych IPv4 sieťach je viac ako problematická.    

Ako perspektívnejšou voľbou sa javí Segment Routing (SRv6). Ide o technológiu ktorá dokáže fungovať aj v natívnom IPv6 prostredí a zároveň podporuje nadstavbové služby známe z MPLS sveta. Segment Routing (SR) využíva k svojej funkcionalite segmenty, ktoré sa vkladajú do prenášaného paketu a popisujú cestu paketu IP sieťou. Zakódovanie cesty priamo do paketu tiež znamená, že táto cesta je už dopredu známa a  tranzitné smerovače  už nemusia udržiavať žiadne stavové informácie o stave cesty, lebo inštrukcie čo majú s paketom urobiť sa nachádzajú priamo v prenášanom pakete. Smerovače v tzv. SR doméne si vymieňajú informácie o segmentoch pomocou interného smerovacieho protokolu (OSPF, IS-IS) a preto v SR svete nie je potrebný žiadny ďalší protokol na prenos a výmenu segmentov. 

V natívnom IPv6 prostredí majú segmenty veľkosť 128 bitov a kódujú sa do IPv6 paketu vo forme rozširujúcej IP hlavičky, označovanej ako Segment Routing Header (SRH). 128 bitové identifikátory segmentov zodpovedajú IPv6 adresám jednotlivých smerovačov, cez ktoré je paket prenášaný (tvoria tzv. SR list).  Výhodou kódovania segmentov do SRH je kompatibilita s RFC 2460 (IPv6 špecifikácia), lebo SRH len využíva funkcionalitu existujúcej Routing Header (RH) rozširujúcej hlavičky, ktorá je popísaná v tejto špecifikácii. Spätná kompatibilita navyše umožňuje prevádzkovať v jednej IPv6 sieti nielen smerovače ktoré vedia SRv6,  ale aj smerovače ktoré SRv6 nepoznajú.


Zatiaľ čo RFC 2460 predpokladá že RH hlavičku vkladá do paketu iba odosielateľ, SRv6 definuje viac možností vkladania SRH do IPv6 paketu:

Header Insertion – príklad 1

V tomto prípade zdroj dát A ovláda SRv6 a vkladá do IPv6 paketu SRH, v ktorom je popísaná  sieťová cesta.  Požiadavka je aby bol paket z A do Z prenesený najkratšími cestami cez smerovače B, D, G.  Na tomto príklade si možno všimnúť dva typy správania smerovačov:

  • SRv6 kompatibilné smerovače (B,D,G), ktoré sú dočasným cieľom prenášaného paketu, zmenia podľa inštrukcií v SRH cieľovú IP adresu v prenášanom pakete a odsmerujú paket najkratšou cestou na zmenenú cieľovú adresu

  • SRv6 nekompatibilné smerovače (C,E,F) alebo SRv6 kompatibilné, ktoré ale nie sú cieľom prenášaného paketu, odsmerujú paket najkratšou cestou na cieľovú adresu v základnej IP hlavičke

Prepisovanie cieľových IP adries v pakete na základe inštrukcií v SRH nie je ničím novým v IPv6 svete, toto správanie známe ako Source Routing s využitím RH hlavičky je definované a popísané RFC 2460. 

Header Insertion – príklad 2

V tomto prípade zdroj dát A nepozná SRv6 a posiela paket na Z iba so základnou IP hlavičkou bez SRH. Vstupný smerovač v SR doméne vloží do prichádzajúceho paketu SRH hlavičku a odsmeruje ho predpísanou cestou. Výstupný smerovač v SR doméne odstráni SRH hlavičku a na Z posiela pôvodný IP paket.

Encapsulation – príklad 3

Zdroj A posiela na Z paket so základnou IPv6 hlavičkou, vstupný smerovač do SR domény zabalí prichádzajúci paket do ďalšej IPv6 hlavičky s SRH rozšírením a posiela ho IP sieťou  na základe  tejto novej IP hlavičky. Výstupný smerovač odstráni vonkajšiu IPv6 hlavičku spolu s SRH a smerom k Z posiela pôvodný IP paket.  Enkapsulácia IP do IP, známa tiež alebo tunelovanie nie je ničím novým v IP svete a používa sa napríklad pri migrácii z IPv4 do IPv6 sveta.

Z uvedených troch možností sa predpokladá že najviac SRv6 implementácií bude realizovaných podľa príkladu 2.  Vo všetkých týchto príkladoch sa mení veľkosť paketu, čo môže teoreticky viesť k problému s maximálnou veľkosťou paketu (MTU).  Doterajšia prax však ukazuje, že buď priamo zdroj dát je schopný pomocou „Path MTU Discovery“ procedúry zistiť maximálnu veľkosť paketu (príklad 1), alebo IP sieť už interne používa väčšie MTU ako je štandardných 1500B.

A ako vlastne vyzerá Segment Routing header? Aktuálnu verziu a popis jednotlivých polí v hlavičke možno nájsť tu.

Čo sa týka bezpečnosti, pôvodný Routing Header definovaný v RFC2460, konkrétne typ 0, bol z dôvodu možného zneužitia na amplifikačné útoky prehlásený v RFC 5095 za zastaraný. Segment Routing Header je síce vo svojej podstate modifikovaný RH typ 0 (po štandardizácii by sa malo jednať o typ 4),  ale na rozdiel od RH typu 0 rieši bezpečnostné problémy a to pomocou autentifikácie Segment Routing hlavičiek s využitím HMAC kódu.

Využitie SRv6 pre potreby VPN a Trafic Engineeringu už bolo demonštrované na smerovačoch Cisco NCS5500, ukážkové video z nasadenia je možné nájsť tu.

Segment Routing a IPv6 protokol sa ukazuje ako veľmi zaujímavá kombinácia, ktorá by sa mohla stať štandardom v IP sieťach novej generácie. Poukazuje na to ako rýchlosť štandardizačného procesu, tak aj podpora zo strany výrobcov sieťového HW. SRv6 navyše ukazuje skrytý potenciál IPv6 protokolu, na ktorý sa už netreba pozerať iba ako na protokol ktorý rieši nedostatok IPv4 adries, ale ako na protokol ktorý prináša nové možnosti a často krát aj zjednodušenie do súčasných komplexných IPv4/MPLS sietí.