MPLS Penultimate Hop Popping Jiří Otáhal (ota049) Abstrakt: Projekt má za úkol seznámit s funkcí protokolu MPLS Penultimate Hop Popping jejími přínosy a zápory při použití v různých aplikacích protokolu MPLS Klíčová slova: MPLS, BGP free core, MPLS VPN, 6PE, IMP-NULL, EXP-NULL, FIB, LFIB, LSR 1. Úvod...2 2. Stručný popis MPLS (Multiprotocol Label Switching)...2 3. Penultimate Hop Popping (PHP)...3 3.1. MPLS a BGP free core...3 3.2. 6PE...3 3.3. MPLS VPN...5 3.4. IMP-NULL a EXP-NULL...5 3.4.1 Konfigurace EXP-NULL...6 3.5. Praktické ověření funkce PHP...7 4. Závěr...8 5. Použitá literatura...9 listopad 2013 1/9
1. Úvod Zaměřením tohoto projektu je seznámení s funkcí Penultimate Hop Popping v sítích MPLS, a jeho různých aplikacích. A zároveň zhodnocení jeho přínosu a záporu při její aplikaci v těchto aplikacích. 2. Stručný popis MPLS (Multiprotocol Label Switching) Jedná se o protokol pro přepínání paketu podle labelu (návěští), který je schopen pracovat nad různými typy sítí (ATM, IP,...). Z pohledu OSI modelu se nachází mezi 2 a 3 vrstvou, proto je také někdy označován za protokol 2,5 vrstvy. Protokol MPLS namísto zasílání paketů podle jejich cílové IP adresy definuje rozesílání paketů podle labelu. Tento způsob směrování nám umožňuje řídit směrovaní ne jen podle cílové adresy ale i podle jiných faktorů, jako je řízení provozu, požadavky na kvalitu služeb QoS, nebo na soukromí v sítí pro jednotlivé zákazníky. Obrázek 1: Zasílaní paketu v MPLS Směrovače v MPLS sítích jsou označované jako LSR(Label Switch Router) ty jsou ještě rozděleny podle toho kde v síti se vyskytuji na core LSR a edge LSR (E-LSR). Směrovače typu core LSR se vyskytuji uvnitř sítě a mají za úkol pouhé přeposílání paketu podle labelu, označují se taky jako Provider (P). Směrovače typu E-LSR slouží jako hraniční místa v sítích MPLS a proto mají za úkol vkládání (push) a odebíraní (pop) labelu z paketů, bývají také označovány jako Provider Edge (PE). Dále také směrují pakety do sousední síti mimo MPLS síť které jsou k tomuto směrovači připojeny. Směrovače E- LSR také přiřazují labely sítím, které se vyskytuji za nimi a pomocí některého z distribučních protokolu (např LDP) je rozesílají ostatním LSR. MPLS využívá k směrováni dvě báze FIB a LFIB. Ty se od sebe liší tím že FIB složí pro směrování paketu bez návěští LFIB pro směrování paketu jenž už návěští obsahují. Paket v sítích MPLS muže obsahovat více jak jednu MPLS hlavičku, které jsou v paketu řazeny za sebou s tím, že hlavička označující koncovou síť je umístěna jako první a za ní nasledují doplňkové hlavičky. MPLS hlavička má velikost 4 bajty a skládá se ze čtyř částí labelu, EXP, Bottom-of-Stack a TTL. Obrázek 2: Hlavička MPLS listopad 2013 2/9
1) Label (L) identifikuje část přepínané cesty (20 bitů) 2) EXP (E)- experimentální část v dnešní době se využívá pro značení QoS (3 bity) 3) Bottom-of-Stack (B)- Pokud je tento příznak roven 1, znamená to, že toto návěští bezprostředně přechází hlavičce IP.(1 bit) 4) TTL (T) má stejný význam jako v IP hlavičce a je zde proto, že MPLS směrovače neupravují obsah IP hlavičky. (8 bitů) 3. Penultimate Hop Popping (PHP) Je funkce protokolu MPLS, která umožňuje odebrání labelu už při předposledním skotu. Tedy LSR jenž je druhý od konce, který zpracovává paket s labelem. Tato funkce byla zavedena proto, aby se snížilo vytížení prostředku na E-LSR. 3.1. MPLS a BGP free core V teto aplikaci protokolu MPLS obsahuje paket jednu hlavičku MPLS. To znamená že při spuštěné funkci PHP je tato hlavička odstraněna v core LSR předcházející v cestě paketu výstupnímu E-LSR. Tento proces probíhá následovně: Na obrázku č. 3. vidíme že PE1 přijal IP paket bez MPLS hlavičky, ten prošel svojí FIB databázi v níž zjistil že má zavést MPLS hlavičku s labelem 19 a poslat jej sousednímu směrovači P1. Směrovač P1 obdrží paket s MPLS hlavičkou prohledá svoji LFIB kde najde záznam s labelem 19 který má zaměnit za label 18 a poslat na rozhraní směřující k směrovači P2. Směrovač P2 obdrží paket s labelem 18 prohledá svojí LFIB tabulku (obrázek č.4.) a zde zjistí že má provést operaci Pop Label (odebraní vnější MPLS hlavičky z paketu) a zaslat tento paket na rozhraní směřující k směrovači PE2. Směrovač PE2 obdrží od P2 již jen IP paket, který směruje dále podle jeho IP hlavičky. Obrázek 3: PHP v síti MPLS Obrázek 4: Tabulka FLIB směrovače P2 3.2. 6PE Jedná se o technologii, která nám umožňuje propojit ostrůvky IPv6 sítí přes síť MPLS/IPv4 aniž by jsme museli podstatně měnit zařízeni v Ipv4 síti. Jedinou podmínkou je aby PE směrovač podporoval jak IPv6 tak IPv4 a také protokol MP-BGP (Multi-protocol BGP). Podpora MP-BGP je zásadní protože pomocí tohoto protokolu se PE směrovače informují jaké Ipv6 sítě se za nimi nacházejí. Směrování pak probíhá následovně: listopad 2013 3/9
PE směrovač určí pomocí informací získaných pomocí protokolu MP-BGP za kterým PE směrovačem se daná síť nachází. Následně podle této informace vloží do paketu MPLS hlavičku s příslušným labelem tohoto směrovače, dále za tuto hlavičku vloží ještě jednu, která zdělí koncovému PE směrovači že se jedná o Ipv6 paket. Jak je vidět z funkce technologie 6PE tak koncoví směrovač musí provádět dvojí vyhledávání, nejprve vezme label z vnější hlavičky provede vyhledání v FLIB a podle něho danou hlavičku odstraní, následně vyhledá label z druhé hlavičky jenž ho informuje že se jedna o IPv6 paket a hlavičku také odstraní a pokračuje dál v Ipv6 směrování podle příslušné směrovací tabulky. Obrázek 5: 6PE Proto u teto technologie má použití funkce PHP velký vliv na snížení nároku na výpočetní prostředky PE směrovače, protože vnější hlavičku odstraní již předposlední P směrovač a PE směrovač provede již jen jedno vyhledání nad vnější hlavičkou informující že se jedná o Ipv6 paket. Obrázek 6: 6PE s funkcí PHP listopad 2013 4/9
3.3. MPLS VPN V případě MPLS VPN jsou stejně jako u 6PE v paketu zasílány dvě hlavičky rozdíl je v tom že vnitřní hlavička obsahuje label který označuje příslušnou VPN síť. A proto stejně jako u 6PE znamená zavedení funkce PHP značný vliv na snížení vytížení prostředku na PE směrovači, protože bez této funkce musí PE provést vyhledávání v LFIB tabulce. Obrázek 7: MPLS VPN PHP v MPLS VPN síti odstraní z paketu na předposledním směrovači vnější label jenž označuje cestu k hraničnímu PE a přepošle ho do PE. Směrovač PE dostane již paket obsahující vnitřní hlavičku s labelem, který značí VPN síť do které má být paket dále přeposlán. Obrázek 8: MPLS VPN s funkci PHP 3.4. IMP-NULL a EXP-NULL V Cisco směrovačích je při základní konfiguraci MPLS použito imp-null, to znamená že směrovače provádí PHP, tedy provádí odstranění vnějšího labelu na předposledním LSR. V tomto případě nastává problém, kdy při odstranění vnějšího labelu z paketu ztratíme informaci uloženou v teto hlavičce jako je například QoS. V tomto případě zavádíme exp-null, tedy že předposlední LSR neodstraní vnější label, ale místo toho zašle hlavičku s labelem rovnajícím se nule. Hraniční směrovač přijímající paket s labelem rovnající nule ví že tuto hlavičku může odstranit aniž by musel provést vyhledávaní v LFIB tabulce, ale zároveň získá informace obsažené v vnější hlavičce. listopad 2013 5/9
3.4.1 Konfigurace EXP-NULL 1. enable 2. configure terminal 3. mpls ip 4. mpls label protocol {ldp tdp both} 5. interface type number 6. mpls ip 7. exit 8. mpls ldp explicit-null [for prefix-acl to peer-acl for prefix-acl to peer-acl] 9. exit 10. show mpls forwarding-table [network {mask length} labels label [- label] interface interface next-hop address lsp-tunnel [tunnel-id]] [vrf vpn-name] [detail] Obrázek 9: FLIB tabulka exp-null (zdroj: www.cisco.com) listopad 2013 6/9
3.5. Praktické ověření funkce PHP Obrázek 10: Vytížení cpu v síti MPLS Obrázek 11: Topologie sítě listopad 2013 7/9
Z praktického měření jde vidět že funkce PHP pomáhá snížit vytížení výpočetních prostředků na PE směrovačích. Testovaná síť byla typu MPLS BGP free-core a z výpisu z konzole jde vidět zvýšené vytížení vnitřních směrovačů v síti MPLS, zatím co hraniční směrovače jsou téměř bez zátěže. Je to způsobeno tím že vnitřní směrovače provádí odstraňování vnějších labelu, v případě sítě MPLS VPN by se tato zátěž vyrovnala mezi všechny směrovače. 4. Závěr Přínos funkce PHP se projeví převážně u technologií 6PE a MPLS VPN, u kterých má použití této funkce výrazný dopad na snížení vytíženi výpočetních prostředků na PE směrovačích. V případě vysokého provozu na PE směrovačích v sítích MPLS a MPLS BGP free-core, muže tato funkce přispět k snížení vytížení výpo - četních prostředku na těchto směrovačích. listopad 2013 8/9
5. Použitá literatura [1] MPLS Label Distribution Protocol. Cisco [online]. [cit. 2013-12-01]. Dostupné z: http://www.cisco.com/en/us/docs/ios/12_4t/12_4t2/ftldp41.html [2] Cisco IOS IPv6 Provider Edge Router (6PE) over MPLS. Cisco [online]. [cit. 2013-12-01]. Dostupné z: http://www.cisco.com/en/us/products/sw/iosswrel/ps1835/products_data_sheet09186a008052edd3.html/12_ 4t/12_4t2/ftldp41.html [3] Přepínaný protokol MPLS [online]. 2009 [cit. 2013-12-01]. ISBN 978-80-251-2520-5. Dostupné z: knihy.cpress.cz/?p=actions&action=download/file&value=files. listopad 2013 9/9