Hlavní navigace

Shim6: Multihoming pro IPv6

 Autor: 29
Pavel Satrapa 25. 6. 2009

Pokud je pro provozovatele služeb opravdu kritická dosažitelnost jeho serverů, připojí se k několika různým poskytovatelům a provozuje multihoming. Shim6 představuje v této oblasti zajímavé řešení. Nevyžaduje ani speciální adresy, ani podporu v infrastruktuře, jen implementaci v koncových strojích.

Klasický multihoming vychází ze speciálních adres nezávislých na poskytovateli (Provider Independent, PI), které lze pro IPv6 v našich končinách získat od letošního jara. Nepříjemné je, že jejich vlastník musí z hlediska směrování fungovat jako autonomní systém a příslušné prefixy se dostávají do globálních směrovacích tabulek. To znamená netriviální zátěž jak pro vlastníka PI adres, tak pro páteřní směrování. Bylo by záhodno mít k dispozici i nějaké „lehčí“ metody.

IPv6 jim vychází vstříc, když umožňuje, aby rozhraní počítače neslo několik různých adres. Můžete se tedy připojit k několika poskytovatelům, od každého si pořídit prefix z jeho adresního rozsahu, počítačům (nebo alespoň těm, na jejichž dostupnosti záleží) přidělit adresy vycházející z obou prefixů a spolehnout se na standardní mechanismy pro výběr IPv6 adresy při komunikaci.

To je ovšem jen první krok ke skutečnému multihomingu. Ten by měl zajistit, že pokud dostupnost jednou cestou padne, komunikace bude pokračovat dál jinými cestami, aniž by aplikace cokoli poznaly. Před časem se objevil nápad využít pro tento účel podporu mobility – stroje používající nedostupné adresy by se tvářily jako mobilní uzly, které jsou momentálně dosažitelné na jiné ze svých adres. Fatálním problémem je, že mobilita potřebuje domácího agenta a zde má řešit situaci, kdy je „domácí síť“ nedostupná.

Ovšem základní myšlenka, že stroj identifikovaný určitou IPv6 adresou je momentálně dostupný na jiné adrese, se stala východiskem pro pracovní skupinu shim6. Způsob jejího využití se pochopitelně od mobility poněkud liší, jak se můžete přesvědčit v čerstvě vydaných RFC 5533, 5534 a 5535 definujících shim a jeho doprovodné mechanismy.

Shim jako zkratka znamená Site Multihoming by IPv6 Intermediation. Shim jako slovo označuje podložku, případně v programování jednoduchou knihovnu pro převod jednoho aplikačního rozhraní na druhé. To odpovídá, pouze se místo API převádějí adresy. Mechanismus shim je vložen do IP vrstvy mezi podvrstvu realizující směrování a podvrstvu, která se stará o operace mezi koncovými uzly, jako je fragmentace či šifrování.

Celý návrh se snaží, aby byl transparentní, nezdržoval a nepletl se ostatním mechanismům pod nohy. Komunikace proto začíná zcela bez shim – aplikace navážou spojení standardním způsobem, pokud jedna či obě strany mají k dispozici větší počet adres, vybere se dvojice pro komunikaci standardním způsobem podle RFC 3484 a pakety se začnou vyměňovat jako normálně. Pokud je komunikace krátká (třeba DNS dotaz a odpověď nebo odeslání krátkého dopisu), u toho i zůstane.

Až po určité době (rozhodne implementace podle času nebo počtu paketů) se shim probudí z letargie, vymění si čtyři zprávy a jejich prostřednictvím naváže tak zvaný kontext. Základní myšlenkou je, že adresy, s nimiž daná komunikace začala, jí už zůstanou trvale. I kdyby se přešlo na náhradní, shim je bude pro vyšší vrstvy přepisovat, aby se vůbec o ničem nedozvěděly. Původní adresy tedy slouží jako identifikátory, v terminologii shim jsou označovány jako Upper Layer IDentifiers (ULID). Kontext se týká dvojice ULID, tedy jedné probíhající komunikace. V rámci jeho vytvoření mu každý z komunikujícíc strojů přidělí svou značku (context tag) a oznámí na druhou stranu:

  • jakou značku danému kontextu přidělil
  • jaké adresy má k dispozici (a jejich priority) – lze je později použít jako lokátory pro směrování datagramů

Výměnou čtyř zpráv a vytvořením kontextu na obou stranách činnost shim prozatím skončí a pakety se nadále přenášejí bez jakýchkoli specialit. Shim pouze monitoruje, zda komunikace probíhá bez problémů. Pokud zjistí zádrhel, pokusí se najít v rámci dostupných adres (lokátorů) funkční pár. Když se podaří, začne upravovat datagramy:

  • Při odesílání změní adresy odesilatele a příjemce na nalezený funkční pár. Zároveň do datagramu přidá rozšiřující hlavičku shim obsahující značku, již danému kontextu přidělil protější stroj.
  • Pokud přijatý datagram obsahuje rozšiřující hlavičku shim, příjemce si z ní vyzvedne značku kontextu a přepíše adresy v datagramu na ULID podle příslušného kontextu.

Vyšší vrstvy se vůbec nedozvědí, že datagram byl přepravován s jinými adresami. Jim se zdá, že se stále používají původní adresy a komunikace pokračuje nerušeně dál. Mezi vyšší vrstvy z tohoto pohledu patří i podvrstva IP, která řeší fragmentaci, IPsec a další služby mezi koncovými stroji. Zejména bezpečnostní mechanismy by změnu adresy nepřežily ve zdraví.

Pokud později shim zjistí, že původní dvojice adres (ULID) je opět funkční, přestane se do věci míchat a nechá datagramy zase procházet beze změny. Toto je stručný souhrn základních funkcí shim. Specifikace je poměrně složitá a řeší celou řadu více či méně obvyklých situací, definuje bezpečnostní opatření a různé doprovodné mechanismy.

KL_HLASOVANI

Základní přednosti i zápory shim vyplývají z jeho implementace v koncových strojích. Nepotřebuje speciální adresní prostor ani větší zásahy do konfigurace síťové infrastruktury. Jednoduše přiřadíte svým strojům adresy s prefixy od různých poskytovatelů, zavedete je do DNS a shim se o vše postará. Pokud ale není na druhé straně podporován, multihoming pro tohoto klienta nebude k dispozici.

Svým charakterem je určen spíše pro menší instalace. Jste-li Seznam nebo Komerční banka, bude pro vás klíčová neustálá dostupnost pro všechny a stojí vám za vyšší náklady, které s sebou nesou adresy nezávislé na poskytovateli. Pokud ale třeba provozujete nepříliš velký e-shop, může pro vás shim představovat rozumný kompromis mezi výkonem a cenou. Tedy až bude v rozumné míře implementován – specifikace vyšla teď v červnu.

Našli jste v článku chybu?
Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

Podnikatel.cz: Poslanci chtějí sebrat majetek Bakalovi

Poslanci chtějí sebrat majetek Bakalovi

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

DigiZone.cz: Na jaká videa se vlastně díváme

Na jaká videa se vlastně díváme

DigiZone.cz: Mordparta: trochu podchlazený 87. revír

Mordparta: trochu podchlazený 87. revír

Podnikatel.cz: Babišovy firmy a registr smluv. Co odhalil?

Babišovy firmy a registr smluv. Co odhalil?

DigiZone.cz: Samsung EVO-S: novinka pro Skylink

Samsung EVO-S: novinka pro Skylink

DigiZone.cz: LG OLED65E6: první pohled

LG OLED65E6: první pohled

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: Nejnovější špičkové TV ve videu

Nejnovější špičkové TV ve videu

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

Podnikatel.cz: Takhle se prodávají mražené potraviny

Takhle se prodávají mražené potraviny

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků