Multihoming
Multihoming je v informatice technika používaná ke zvýšení spolehlivosti připojení k internetu spočívající v připojení více linkami najednou. Typicky tak označujeme situaci, kdy je podniková síť připojena k Internetu skrze více poskytovatelů připojení (ISP - Internet service provider) najednou - v případě výpadku hlavního internetového připojení pak síť stále funguje skrze záložní internetové připojení.
Při použití jako přídavného jména je multihomingová síť sítí připojenou k internetu skrze více ISP.
V implementaci TCP/IP stacku označuje multihoming skutečnost, že všechna síťová rozhraní jsou přímo dostupná ze všech ostatních síťových rozhraní, takže při příjmu datagramu nedochází k nadbytečnému internímu směrování příchozího IP datagramu určeného pro jiné rozhraní téhož počítače.
Varianty multihomingu
[editovat | editovat zdroj]V souvislosti s IP existuje několik způsobů oddělených od používaných současných protokolů, z nichž nejdůležitější jsou:
- Jedno rozhraní, více IP adres (adresních prostorů)
- Hostitel má více IP adres (např. 2001:db8::1 a 2001:db8::2 v IPv6), ale pouze jedno fyzické upstream spojení. Když toto jediné spojení selže, nefunguje připojení na všechny hostitelské adresy.
- Více rozhraní, jedna IP adresa pro každé rozhraní
- Hostitel má více rozhraní a každé z nich má jednu IP adresu. Pokud selže jedno z rozhraní, potom se jeho IP adresa stane nedostupnou, ale IP adresy ostatních rozhraní stále ještě fungují. Hostitelé, kteří mají povoleno více IPv6 nebo IPv4 záznamů, pak mohou být stále dosažitelní. Při použití protokolu TCP ale otevřená spojení nemohou být převzata jiným rozhraním, protože protokol TCP multihoming nepodporuje. Tuto nevýhodu nemá protokol Stream Control Transmission Protocol (SCTP), který multihoming umožňuje. Protokol SCTP je však poměrně málo rozšířen (mimo signalizace v telefonních sítích).
- Více rozhraní, jedna IP adresa (adresní prostor)
- To je to, co je obecně myšleno pod pojmem multihoming. S využitím směrovacího protokolu, ve většině případů BGP, cílová strana oznámí tento adresní prostor za svoje upstream spojení. Když jedno ze spojení selže, protokol na tuto skutečnost upozorní na obou stranách a provoz už není dále uskutečněn po selhaném spojení. Obvykle se tato metoda používá k multihomingu stránky, a ne pro jednotlivé hostitele.
- Více rozhraní, více IP adres (adresních prostorů)
- Tento přístup používá specializovaný linkový Load Balancer (nebo WAN Load Balancer), což je zařízení mezi firewallem a spojovými routery. Nejsou nutná žádná zvláštní nastavení v ISP routerech. To umožňuje použití všech spojení současně ke zvýšení celkového přenosového pásma a zjišťuje tak zahlcenost spojení a selhání v reálném čase pro případné přesměrování provozu. Vyrovnání příchozího provozu se obvykle provádí s DNS rozhodováním v reálném čase.
Další běžné použití této varianty je kontrola směrování mezi jednotlivými adresními prostory používané každým rozhraním. To se často používá na PC serverech zakládajících se na firewallech.
Pravidla pro multihoming
[editovat | editovat zdroj]Protože multihoming je obecně používán k eliminaci potenciálních bodů selhání, existují určitá doporučení, která mohou úspěch multihomingu ovlivnit. Zejména tyto položky je třeba vzít na vědomí, aby se předešlo vytvoření možných bodů selhání:
- Upstream konektivita: Daná síť musí mít několik upstream linek k nezávislým poskytovatelům. Mimoto, ke snížení pravděpodobnosti současného poškození všech upstream linek najednou by mělo být fyzické umístění pro jednotlivé linky rozdílné, tak aby nedošlo najednou k jejich poškození například při výkopových pracích.
- Routery: Routery a síťové přepínače musí být umístěny tak, aby žádný z nich neřídil veškerý síťový přístup pro daného hosta sám. Není neobvyklé vidět, že se veškerý síťový provoz setkává na jednom hraničním routeru. Při takové konfiguraci se může stát, že ztráta tohoto jednoho hraničního routeru zapříčiní odpojení od internetu, ačkoli připojení na jednoho nebo více ISP stále funguje.
- Konektivita hosta: "Spolehlivý" host musí být do sítě připojen přes vícero síťových interfaců, kde je každý připojen k oddělenému switchi nebo routeru. Další a preferovanou možností je, aby funkce daného hosta byla duplikována na více počítačích, kde je každý připojen k oddělenému switchi nebo routeru.
- Odkazující entity: Nejenže musí být host přístupný, ale také ve mnoha případech na něj musí také být odkazováno. Pro většinu serverů to znamená že rozeznání doménového jména na tohoto hosta musí být funkční. Například pokud porucha jednoho elementu blokuje uživateli správně rozeznání DNS jména daného serveru, tak server není efektivně přístupný, ačkoli je jinak připojen.
Eliminace bodů selhání je dosažena pouze pokud je každá komponenta nebo část systému, která by mohla selhat, duplikována.
IPv4 multihoming
[editovat | editovat zdroj]Aby síť mohla být multihomovaná, musí mít svůj vlastní rozsah veřejných IP adres a své vlastní číslo autonomního systému. Poté je navázáno spojení do dvou (nebo více) oddělených ISP sítí. Směrování v těchto připojeních je obyčejně řízeno routerem podporujícímBGP protokol.
V případě že jedno z odchozích spojení v multihomované síti vypadne, vycházející síťový provoz bude automaticky směrován jedním ze zbývajících připojení. Ještě důležitější však je, že ostatní sítě budou upozorněny pomocí BGP protokolu, aby příchozí síťový provoz směrovaly skrze jiného ISP nebo připojení.
Klíčová slabina multihomingu je ta, že dvě zdánlivě nezávislé sítě od rozdílných ISP mohou sdílet společnou páteřní linku, a/nebo hraniční router. Taková síť má potom společnou část, při jejíž nedostupnosti jsou výhody multihomingu, tedy spolehlivost sítě, výrazně omezeny.
Další problém, který je třeba zvážit je, že multihoming v malých sítích nemusí být efektivní, protože filtrování cesty je mezi BGP uživateli velmi rozšířeno a menší prefixy mohou tedy být vyfiltrovány, což zapříčiní, že multihoming přestane fungovat.
IPv6 multihoming
[editovat | editovat zdroj]Multihoming v protokolu IPv6 zatím nebyl standardizován, protože nebylo nalezeno uspokojivé řešení různých možných přístupů k tomuto problému.
Současná řešení
[editovat | editovat zdroj]- IPv6 poskytuje adresní prostor specifický danému poskytovateli. Tato technika má výhodu, že funguje jako IPv4, podporuje rozdělení síťového provozu mezi jednotlivé poskytovatele, a udržuje existující TCP a UDP spojení přes cut-overy. Kritikové namítají, že takto zvětšená velikost routovací tabulky potřebná pro multihoming zahltí hardware routeru. Podporovatelé naopak tvrdí že nový hardware nebude mít problém tento nárůst zpracovat díky stále levnější paměti, která klesne na ceně podle mooreova zákona. Také je to podle nich nyní jediné životaschopné řešení a filozofie horší je lepší podporuje myšlenku, že je lepší použít současné, avšak nedokonalé řešení právě teď, než použít perfektní řešení, kdy už však bude příliš pozdě.
Protože mnoho ISP filtruje směrovací požadavky s malými prefixy, tak toto řešení bude obecně potřebovat velikou IP alokaci jako například /32, k zajištěni globální dostupnosti. Použití tak velikých prefixů je neefektivní využití IPv6 adresního prostoru je zde pouze kolem 4 bilionů /32 prefixů. Nicméně z pragmatického pohledu, alokování /32 v globálním adresním prostoru je ekvivalentní alokování jedné IPv4 adresy, a toto může být přípustné, jak lze předvídat, počet multihomovaných sítí může být jen v řádu milionů, oproti mnoha bilionům nemultihomovaných koncových bodů, kterých, jak se předpokládá, bude veliká většina. Některé organizace pro přidělování IP adres jako například RIPE začaly přidělovat /48 se specifickým prefixem speciálně pro tento účel. RIPE přiděluje IPv6 PI /48 nebo kratší, z rozsahu 2001:0678::/29.
Další současná možná řešení
[editovat | editovat zdroj]- Automatické přečíslování. Pokud jedna uplink síť selže, veškeré adresy v sítí budou přečíslovány do nové /48 podsítě. DNS a firewall záznamy musí být aktualizovány aby síťový provoz přesměrovaly do jiné /48 podsítě. Toto přečíslování přeruší probíhající TCP a UDP spojení.
- Uchovávání vícero rozsahů adres hostů, z různých /48 upstreamů pro každého hosta zvlášť a používání AAAA záznamů. Toto funguje ve většině případů, ale má tu nevýhodu, že záznamy v DNS a firewallu musí být aktualizovány, pro přesměrování síťového provozu na správné IP adresy při výpadu jedné z linek. Protože toto řešení také mění IP adresy při poruše, také dojde k přerušení probíhajícího TCP a UDP spojení.
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Multihoming na anglické Wikipedii.