Hlavní navigace

Dosahy IPv6 adres

15. 9. 2005
Doba čtení: 5 minut

Sdílet

Jedno z rozšíření, které IPv6 zavádí do adresačního mechanismu, je koncept omezení jejich působnosti, čili dosahů. Dosah vymezuje část sítě, ve které dotyčná adresa platí a v níž musí být jednoznačná. Na jaře vyšlo RFC 4007 (IPv6 Scoped Address Architecture), popisující základní principy dosahů.

Pro individuální (unicast) adresy je situace dost jednoduchá. Zde existují jen dva dosahy – adresy lokální pro linku a adresy globální. Linkové adresy mají prefix fe80::/10 a platí jen v rámci jedné „linky“ (sítě na linkové vrstvě), například v jednom Ethernetu. Platnost lokální linkové adresy končí na nejbližším směrovači.

Globální adresy pak pokrývají celý Internet a musí v něm být jednoznačné. Původní architektura počítala ještě s jedním dosahem, lokálním pro „místo“ (čili koncovou síť). Ovšem kolem jeho interpretace panovala řada nejasností, takže byl později v RFC 3879 zavržen. To je poměrně paradoxní, protože neveřejné IPv4 adresy podle RFC 1918 jsou do značné míry analogií adres lokálních pro místo. S jejich používáním tedy existuje ze světa IPv4 řada praktických zkušeností, nicméně snaha o formalizaci ztroskotala.

Specialitu představuje adresa ::1 (smyčka, loopback), která je oficiálně považována za lokální linkovou pro fiktivní linku nacházející se uvnitř uzlu.

Jelikož výběrové (anycast) adresy pocházejí z rozsahu individuálních, sdílejí s nimi i pravidla pro omezování dosahu. Není proto třeba se jimi samostatně zabývat.

Skupinové adresy

V případě skupinových (multicast) adres je sortiment dosahů velmi košatý. Jsou identifikovány druhou čtveřicí bitů ve druhém bytu adresy. To znamená, že v textovém zápisu adresy rozsah ztělesňuje poslední číslice úvodní skupiny. K dispozici je šestnáct hodnot, z toho některé jsou rezervovány a některé zatím nepřiřazeny:

hodnota význam
0 rezervováno
1 lokální pro rozhraní
2 lokální pro linku
3 rezervováno
4 lokální pro administraci
5 lokální pro místo
6–7
8 lokální pro organizaci
9-d
e globální
f rezervováno

Adresy lokální pro rozhraní jsou dost specifické (čtěte divné), protože jejich dosahem je jediné rozhraní. V podstatě jsou použitelné pouze pro vzájemnou komunikaci mezi programy běžícími na stejném počítači, pokud se má odehrávat síťově. Narozdíl od individuálních adres, kde k těmto účelům slouží výlučně smyčka, lze skupinovou adresu lokální pro rozhraní zkonstruovat celkem volně a přiřadit ji libovolnému rozhraní.

Lokální linková adresa má stejný dosah jako v případě individuálních, tedy souvislou síť podle linkové vrstvy. Adresa lokální pro administraci pokrývá nejmenší dosah, který už musí být konfigurován správcem sítě. Čili nelze jej automaticky odvodit z fyzického propojení sítě. Adresa lokální pro organizaci umožňuje pokrýt několik různě rozmístěných poboček patřících stejné instituci. A konečně globální adresa opět pokrývá celý Internet.

Zóny

S dosahy jsou těsně spjaty zóny. Zóna je vlastně část sítě odpovídající danému dosahu. Například každá ethernetová síť představuje jednu lokální linkovou zónu. Čili dosah určuje pravidla, kam až určitá adresa platí, a zóna je reálná část sítě dosahem vymezená, v níž adresa platí. Stejná neglobální adresa může být pak použita v různých zónách a v každé z nich má jiný význam. Například lokální linková adresa fe80::1 je nepochybně použita na celé řadě linek současného Internetu.

Hranice zón procházejí uzly, nikoli linkami. Platí obvyklá pravidla ohledně velikosti zón – zóny stejného dosahu se nemohou překrývat, zóna je vždy kompletně obsažena v zónách většího dosahu. Navíc se požaduje, aby každá zóna byla z hlediska směrování konvexní. To znamená, že pokud si posílají data dva uzly z téže zóny, datagramy by během přepravy neměly opustit zónu.

Příklad rozložení zón v koncové síti uvádí následující obrázek. Jedná se o zóny pro neglobální skupinové adresy. V případě adres individuálních by situace byla podstatně jednodušší, zde existují jen linkové zóny a zóna globální.

1898

Základní rozložení zón je definováno takto:

  • každé rozhraní obsahuje jednu zónu lokální pro rozhraní (skupinovou),
  • každá linka a k ní připojená rozhraní tvoří jednu lokální linkovou zónu (individuální i skupinovou),
  • existuje jediná globální zóna obsahující všechny linky a rozhraní v Internetu (individuální i skupinová),
  • hranice všech ostatních zón (skupinových) musí definovat a konfigurovat správci sítí.

Každé rozhraní pak patří právě do jedné zóny každého z dostupných rozsahů.

Identifikace

Jakmile má počítač více než jedno rozhraní a použije se neglobální adresa, je třeba nějak specifikovat zónu, k níž se vztahuje. Řekněme, že například uživatel počítače na obrázku vlevo nahoře zadá příkaz ping fe80::11. Použil lokální linkovou adresu a vzniká otázka, do které linky (linkové zóny) paket poslat, zda A či B.

RFC 4007 proto zavádí identifikátory zón. Identifikátory jsou lokální v rámci uzlu a jejich jediným úkolem je rozlišit jednotlivé zóny uvnitř uzlu. Nejsou navzájem nijak synchronizovány a nikdy neopustí svůj uzel (nejsou součástí IPv6 datagramu). Proto klidně stejná zóna může mít v různých k ní připojených uzlech různé identifikátory.

Jako výchozí identifikátory používá dokument kladná celá čísla. Pro každý dostupný dosah je přitom definována jedna implicitní zóna, jež nese číslo 0. Pokud u neglobální adresy neuvedete zónu, bude automaticky zařazena do implicitní zóny příslušného rozsahu. Tím se velmi zjednodušuje situace na běžných koncových počítačích s jediným rozhraním, kde se vystačí s implicitní zónou. Výše uvedený ping by tudíž zamířil do implicitní lokální linkové zóny.

V textovém zápisu se identifikátor zóny píše za adresu, oddělen znakem procento. Kdyby ping měl směřovat do zóny číslo 3, bylo by třeba napsat  ping fe80::11%3.

Dokument připouští, aby implementace podporovaly i jiné identifikátory zón. Obzvláště zajímavé jsou v tomto smyslu názvy rozhraní používané v operačním systému. Jelikož každé rozhraní patří do právě jedné zóny každého dostupného rozsahu, je název rozhraní jednoznačným identifikátorem zón. Pravda, u některých zbytečně konkrétním (např. když používáte rozkládání zátěže a několik ethernetových karet vede do téhož Ethernetu, a tudíž téže linkové zóny). Ovšem takové případy jsou poměrně vzácné a rozhraní je všeobecně známý a používaný koncept. Takže zrovna této kategorii identifikátorů bych předpovídal slibnou budoucnost. Tím se náš ping mění na  ping fe80::11%eth2.

Směrování

Mluvit o dosahu v souvislosti se směrováním má smysl jen pro skupinové adresy. U individuálních jsou dosahy jen dva – linkový (který se nesměruje, linkově adresovaný paket nesmí projít směrovačem) a globální, jenž představuje standardní směrování.

Nejjednodušší způsob, jak při směrování splnit požadavky na vlastnosti zón, je používat samostatné (alespoň ideově) směrovací tabulky pro jednotlivé zóny. Když směrovač dostane datagram k předání, určí cílovou zónu (podle dosahu a příchozího rozhraní) a směrovací rozhodnutí provede podle tabulky této zóny. Pokud by předání paketu znamenalo překročení hranice zóny, je povinen jej zahodit.

Při výměně směrovacích informací pak sousedům posílá jen data pro zóny toho rozhraní, jímž aktualizaci odesílá.

BRAND24

Shrnutí

Cílem zavedení dosahů je poskytnout nástroje pro nezávislé adresování (lokální linkové adresy) a přesnější kontrolu šíření skupinově adresovaných dat (např. videokonferencí). Ve světě IPv4 se k podobným účelům používají všelijaké kejkle s životností datagramů (položka TTL v hlavičce), které ovšem nejsou dvakrát čisté. Dosahy nabízejí koncepční řešení problému.

Na druhé straně ale mají daleko k úplnosti. Je třeba upravit aplikační rozhraní IPv6, aby vyšší vrstvy mohly určovat konkrétní zónu (návrh již existuje). A s jeho existencí a zápisem se musí také vypořádat aplikace. RFC 4007 poskytuje základní východisko, ale práce ještě zbývá dost.

Implementuje váš poskytovatel IPv6?

Byl pro vás článek přínosný?

Autor článku

Autor dělá nepořádek v příslovích, protože sítě nejen dělá, ale i učí a dokonce také řídí. Působí na Ústavu nových technologií a aplikované informatiky na Technické univerzitě v Liberci. Píše knihy.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).