Hlavní navigace

IP verze 6 (1)

14. 9. 2000
Doba čtení: 9 minut

Sdílet

IP verze 6 (IPv6) vzniklo jako nástupnický protokol stávajícího IP (IPv4). Jeho cílem bylo vyřešit několik problémů, které způsobil obrovský rozvoj Internetu. Vlastní příčinou vzniku IPv6 (dříve též označovaného jako IP NG) byl rychle se krátící adresní prostor, který v první polovině devadesátých let přinutil internetovskou komunitu k akci.

Jelikož však bylo zřejmé, že adresy postačí přinejmenším ještě na pár let, rozhodli se autoři pro radikálnější zásah, který by přinesl nové možnosti a služby. Stanovili si následující hlavní cíle:

  • dostatečně bohatý adresní prostor – pokud možno by už nikdy neměla nastat nouze o adresy
  • podpora služeb se zaručenou kvalitou
  • design odpovídající vysokorychlostním sítím
  • bezpečnostní mechanismy přímo v IP
  • podpora mobilních zařízení
  • automatická konfigurace
  • kooperace s IPv4 a co nejhladší přechod ze stávajícího protokolu na nový

Hlavním motorem IPv6 byl původně nedostatek adres. Jenže jak běžel čas, hledala se (a nacházela) řešení i na bázi klasického IPv4. Vzniklo beztřídní přidělování adres, mechanismy pro nahrazení celé lokální sítě jedinou adresou (NAT, zvaný též IP maškaráda) a najednou se zjistilo, že se starým adresním prostorem dokážeme ještě vydržet docela dlouho.

Také pro ostatní z výše uvedených cílů se začínají objevovat řešení v IPv4. S postupujícím časem se asi nejzávažnějším argumentem ve prospěch IPv6 stává podpora mobilních počítačů, která je zde vyřešena podstatně lépe, než v jeho předchůdci.

V následujícím textu se pokusím naznačit, jak takové IPv6 vlastně funguje, kde jsou jeho nejvýznamnější přednosti a v čem naopak spočívají slabiny.

Adresování

Na adresách se nešetřilo. Délka adresy vzrostla na čtyřnásobek původní hodnoty, tedy na 128 bitů. To znamená, že počet všech možných adres se pohybuje v těžko představitelném řádu 1038.

Byly zavedeny tři kategorie adres:

Individuální (unicast)
označují jedno rozhraní připojeného počítače či zařízení.
Skupinové (multicast)
představují adresu skupiny síťových rozhraní. Paket se skupinovou cílovou adresou bude dopraven všem členům skupiny. Tyto adresy se používají nejčastěji pro šíření zvukového či obrazového signálu, videokonference a podobně.
Výběrové (anycast)
také označují skupinu síťových rozhraní, ale datagram bude dopraven jen na jedno z nich (zpravidla to nejbližší). Výběrové adresy umožňují například snadno rozkládat zátěž – hojně používanému WWW serveru přidělíte výběrovou adresu a po celém světe rozmístíte jeho kopie s touto adresou. Dotazy jednotlivých uživatelů pak budou směrovány vždy na nejbližšího člena skupiny.

V porovnání se současným IP tedy zmizely oznamovací (broadcast) adresy. Jejich roli převzaly obecnější adresy skupinové. Jednotlivé druhy adres sloužící různým účelům jsou navzájem rozlišeny pomocí prefixů. Podle počáteční skupiny bitů v adrese poznáte, jakého druhu dotyčná adresa je. Zatím byl definován význam jen asi pro 15 % adresního prostoru, zbytek čeká na pozdější využití. Nejvýznačnější definované prefixy jsou:

prefix význam
001 agregovatelné globální individuální adresy – odpovídají současným klasickým IP adresám a identifikují dotyčné rozhraní tak, aby bylo celosvětově jednoznačné
1111 1110 1 lokální adresy – jsou jednoznačné jen v rámci dané fyzické sítě nebo instituce, používají se při automatické konfiguraci a pro některé interní mechanismy
1111 1111 skupinové adresy

Výběrové adresy nemají svůj vlastní prefix. Jsou zařazeny mezi globální individuální adresy, od nichž se liší pouze způsobem zpracování ve směrovacích algoritmech.

Jelikož je adresa šestnáctibajtová, bylo by silně nepraktické převzít způsob zápisu z IPv4. Proto se v IPv6 adresy zapisují v šestnáctkové soustavě a jednotlivé dvojice bajtů (čtveřice šestnáctkových číslic) se pro větší názornost oddělují dvojtečkami. Takže IPv6 adresa může vypadat třeba takto:

FEDC:BA98:7654:­3210:FEDC:BA98:7654:­3210

Aby se zápis ještě o něco zkrátil, lze v jednotlivých čtveřicích vynechávat počáteční nuly. Pokud se vyskytne několik po sobě jdoucích nulových skupin, lze je nahradit dvojicí dvojteček. Ta se však v zápisu každé adresy smí objevit jen jednou, aby byl jednoznačný. Takže následující trojice zápisů je ekvivalentní:

FF01:0000:000­0:0000:0000:0000:0000:01­01
FF01:0:0:0:0:­0:0:101
FF01::101

Zápis adresy je v každém případě dost komplikovaný. Upřímně řečeno se neočekává, že by je uživatelé někdy psali. Pro ně jsou určena jména a adresy se vyřídí prostřednictvím DNS.

Struktura globálních adres

Nejvýznamnějším druhem adres budou globální individuální agregovatelné adresy (jak výstižné a nepoužitelné pojmenování; pokud čtete Pratchetta, jistě za ním tušíte Leonarda da Quirm), kterými budou celosvětově jednoznačně identifikovány jednotlivé stroje. Jedná se tedy o analogii stávajících IPv4 adres.

Internet se ukázal být značně velkým a je problém udržet na uzdě velikost směrovacích tabulek ve významnějších směrovačích. Snaží se o to hierarchické přidělování adres a s ním související směrování, kteréžto mechanismy jsou označovány zkratkou CIDR. V IPv6 byl tento princip převzat a ještě závazněji formalizován. Byla totiž oficiálně stanovena struktura globální IPv6 adresy. Vypadá následovně:

317

Začíná výše citovaným prefixem formátu (FP), v daném případě s hodnotou 001. Za ním pak následují tři úrovně agregace: nejvyšší (Top Level Aggregation, TLA), další (Next Level Aggregation, TLA) a místní (Site Level Aggregation, SLA).

Trvá představa hierarchického přidělování. Každý poskytovatel Internetu či připojená instituce dostanou k dispozici prefix určité délky a všechny jím připojené stroje musí mít tento prefix. Jeho části (delší prefixy se shodným začátkem) pak může přidělovat svým zákazníkům či podsítím.

Hodně zjednodušeně řečeno je základní představa zhruba taková, že poskytovatel Internetu dostane přiděleno TLA. V jeho rámci pak bude přidělovat NLA svým zákazníkům – připojeným koncovým sítím. Položka SLA pak bude hrát roli adresy podsítě v rámci sítě zákazníka. Koncový zákazník tedy dostane přidělen prefix o délce 48 bitů.

V praxi budou nepochybně zavedeny přidělovací hierarchie i v rámci TLA a NLA – není poskytovatel jako poskytovatel. Mezi těmito částmi je navíc ponechána rezerva, aby bylo možno jednu či druhou prodloužit – podle toho, kde bude tlačit bota.

Prefix se zapisuje v podobě klasické IPv6 adresy, za kterou je připojeno lomítko a číslo určující jeho délku. Říká, kolik bitů od začátku prefixu je platných. Například IPv6 síť v rámci akademické sítě TEN-155 CZ dostala přidělen prefix 3ffe:2280:4::/48.

Celá spodní polovina adresy (64 bitů) je věnována identifikaci rozhraní jednotlivých strojů v dané podsíti. Tento grandiózní prostor sice umožňuje čáry typu bezstavové konfigurace adres, ale zároveň je obrovským plýtváním a de facto zkracuje délku IPv6 adresy skoro na polovinu. Stačí připomenout, že celosvětově jednoznačné Ethernetovské adresy měří 48 bitů a tady hovoříme o jednoznačnosti pouze v rámci jedné podsítě. K tomu ve valné většině případů stačí jediný bajt.

Na rozdíl od současné situace se ve světě IPv6 předpokládá, že síť klidně může mít několik radikálně odlišných prefixů (např. při připojení k několika různým poskytovatelům Internetu). Počítač pak má oplývá vícero adresami, které pak může používat podle potřeby.

IPv6 datagram

Formát datagramu má v IPv6 obvyklou podobu: nejprve hlavička, za ní pak vlastní nesená data. Ovšem hlavička stojí rozhodně za pozornost. Přestože se délka adres prodloužila na čtyřnásobek, celkově má hlavička ve srovnání s IPv4 jen dvojnásobnou délku – 40 bajtů, z toho 32 B tvoří adresy odesilatele a příjemce.

Zajímavý je přístup k různým rozšiřujícím informacím. V IPv4 byly přímo součástí hlavičky, jako její nepovinné položky. V důsledku toho měla hlavička proměnlivou délku. IPv6 řeší problém zcela odlišně. Základní hlavička byla maximálně zjednodušena a obsahuje jen nejnutnější položky. Její složení i délka je konstantní.

Položka nazvaná další hlavička (next header) identifikuje, co následuje za základní hlavičkou. Může se jednat o TCP nebo UDP data, pokud datagram vystačí se základní hlavičkou. Je-li třeba přidat doplňující informaci, vloží se v podobě rozšiřující hlavičky. Každá z rozšiřujících hlaviček má svou položku další hlavička. Z jejich hodnot pak vznikne řetěz, který postupně sděluje „za hlavičkou je tahle rozšiřující, pak támhleta, pak ještě takováhle a pak následují data pro TCP“.

Pořadí rozšiřujících hlaviček je předepsáno tak, aby nejprve byly umístěny ty, které potenciálně mohou zajímat i směrovače, jimiž datagram prochází. Celé toto uspořádání má jediný cíl: aby směrovače měly co nejlehčí práci. Prozkoumají základní hlavičku a hodnotu v položce další hlavička. Pokud je dotyčná hlavička určena pro ně, zařadí ji do zpracování a zajímají se o další. Jakmile narazí na první rozšiřující hlavičku, která není pro ně, mohou zkoumání paketu ukončit – nic dalšího zajímavého je již nečeká.

Podívejme se, jak vypadá základní hlavička IPv6 datagramu:

316

První čtveřice bajtů slouží vedle identifikace verze protokolu k realizaci pokročilejších směrovacích technik. Třída provozu umožňuje specifikovat požadavky na vlastnosti sítě, které daný datagram má. Prostřednictvím značky toku se pak identifikuje tok – proud datagramů od jednoho odesilatele ke stejnému cíli se stejnými vlastnostmi. Příslušnost ke stejnému toku by měla usnadnit směrování, zejména ve spolupráci se spojovanými technologiemi, jako je ATM.

A už se na nás ze skříně šklebí první kostlivec. Ani jeden z těchto pokročilejších prvků zatím nebyl detailně definován. Nechci sýčkovat, ale v hlavičce IPv4 také je položka typ služby (TOS), u které bylo přislíbeno pozdější upřesnění. Nikdy k němu pořádně nedošlo.

Na druhém řádku najdete celkem očekávatelné údaje: délku datagramu, avizovanou identifikaci typu další hlavičky a konečně maximální počet směrovačů, kterými datagram ještě smí projít (max. skoků, analogie TTL z IPv4). Každý směrovač ji sníží o jedničku a dojde-li do nuly, je povinen datagram zahodit a odeslat odesilateli ICMP zprávu o tomto skutku. Je to klasický způsob ochrany před zacyklením při směrování.

A dále už následují jen adresy odesilatele a cíle datagramu. všimněte si, že hlavička neobsahuje kontrolní součet. Zdržoval by a v praxi není potřebný (o kontrolu dat se postarají nižší vrstvy).

Automatická konfigurace

Ve světě IPv6 je značná pozornost věnována tomu, abyste pokud možno nemuseli nic konfigurovat. Prostě zapojíte počítač do sítě a ono to bude fungovat.

Ke kýženému cíli byly navrženy hned dvě cesty: stavová a bezstavová automatická konfigurace. Stavová odrůda není nic nového pod sluncem. Jedná se o konfiguraci prostřednictvím DHCPv6 – počítač rozešle dotaz a DHCP server mu v odpovědi sdělí vše, co by o zdejší síti měl vědět. Takhle to dnes funguje zcela běžně v řadě sítí.

Kreativní novinkou je konfigurace bezstavová, která nevyžaduje žádné servery. Jejím základním pilířem je tak zvané objevování sousedů (neighbor discovery). Základní myšlenka je celkem prostá: každý směrovač v určitých intervalech rozesílá do sítí, k nimž je připojen, tak zvané ohlášení směrovače. V něm jsou obsaženy základní informace – především prefixy adres dané sítě a zda on sám může sloužit pro předávání paketů ven (jako implicitní směrovač, default gateway).

Z ohlášení směrovačů (o které může při startu aktivně požádat pomocí výzvy směrovači) se počítač dozví, jaké adresy používá zdejší síť. K nim si doplní zbývající část (typicky 64 bitů), která se jednoznačně generuje z jeho Ethernetové adresy. Tak získá platné IPv6 adresy pro své rozhraní. Také si vytvoří seznam implicitních směrovačů, kterým bude předávat pakety směřující mimo síť. Pokud je jich víc, zpočátku je prostě střídá a směrovací tabulku si postupně vylepšuje na základě jejich upozornění (ICMP přesměrování), pokud paket k určitému cíli poslal nevhodným směrovačem.

BRAND24

Zní to dost dobře, přesto však má bezstavová konfigurace dost velkou pihu krásy. Vůbec totiž neřeší otázku DNS. Počítač se z ní nedozví adresy zdejších DNS serverů a jak již bylo řečeno, bez DNS se v IPv6 žije velmi velmi těžko.

Objevování sousedů je víceúčelovým mechanismem. Vedle automatické konfigurace slouží také k objevování fyzických adres odpovídajících IP adresám. Nahrazuje tedy stávající ARP.

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ě).