Published on 2003-2-18 at linuxzone.cz

IPv6 krok za krokem

Michal Ludvig <michal@logix.cz> (c) 2003

Již několik let z různých stran slýcháme, že IP adres používaných pro komunikaci mezi počítači připojenými k Internetu je nedostatek, že se s nimi zbytečně plýtvá a že to nebude trvat déle než dva roky a nebudeme mít žádné další k dispozici. IPv6 je nový protokol, jenž má tento a některé další nedostatky původního IP protokolu odstranit.

Je zajímavé, že hlasy předpovídající vyčerpání adresního prostoru IP protokolu (nyní označovaného též jako IPv4) nejdéle do dvou let se ozývají již minimálně šest, sedm roků. Nakonec se však vždycky našlo řešení, které tento problém o nějaký pátek oddálilo. To však neznamená, že by nás protokol IPv6, který byl vymyšlen proto, aby stávající IPv4 časem zcela nahradil, neměl zajímat. Je sice dost pravděpodobné, že se oba dva protokoly budou ještě nějaký čas v drátech našich sítí potkávat a že spolu budou víceméně spokojeně koexistovat, ale IPv6 již nyní přináší spoustu nových vlastností, pro které si zaslouží alespoň kousek naší pozornosti.

Základní vlastnosti

Když už se pánové z IETF rozhodli vytvořit nový potokol, neomezili se jen na zvětšení adresního prostoru. Mezi jejich cíly byla mimo jiné standardizovaná podpora bezpečnosti, podpora pro mobilní zařízení dočasně se nacházející mimo svou domácí síť, funkce pro zajištění úrovně služeb (QoS - Quality of services) a hlavně jednoduchý přechod z původního IPv4.

Co se standardů týká, podařilo se autorům dosáhnout téměř všech cílů, které si předsevzali. Co se týká použitelných implementací, je to horší. V současném Linuxím kernelu bohužel mnoho z výše uvedených vlastností chybí, ale alespoň dlouhé, 128bitové adresy zvládá i on, takže můžeme směle začít experimentovat.

Zápis adres

Jak už jsem řekl, IPv6 adresy mají 128 bitů. Protože dekadický zápis po jednotlivých bajtech, jaký se používá v IPv4, by vedl k nepohodlně douhým řetězcům, jsou IPv6 adresy zapisovány hexadecimálně, vždy po dvojcích bajtů oddělených dvojtečkami. Takže typická IPv6 adresa může vypadat třeba takhle:

3ffe:ffff:1::baf/64

Pokud jsou mezi některými dvojtečkami méně než 4 znaky, je to stejné, jako kdyby zleva byly nuly (celkem logicky). Pokud se v adrese vyskytnou dvě dvojtečky za sebou, znamená to, že byla vynechána velká spousta nul. Číslo za lomítkem se nazývá délka prefixu a říká nám, kolik bitů z adresy (počítáno zleva) patří do tzv. prefixu, což je vlastně adresa sítě.
Další podrobnosti o zápisu IPv6 adres je možné najít v RFC 1924 (A Compact Representation of IPv6 Addresses).

Kde vzít adresu?

Otázka v nadpisu této kapitoly není zcela přesná - neříká totiž, jakou adresu chceme získat. IPv6 rozeznává několik druhů adres, z nichž některé už máme, některé si můžeme vymyslet a jen některé musíme získat oficiální cestou.

Adresy se dělí zejména podle dosahu:

Linkové (link-local scope)
Platí jen na konkrétním drátě, třeba na ethernetovém segmentu, na PPP lince, nebo v jednom virtuálním tunelu. Adresa začíná prefixem fe80::/10 a třeba v případě ethernetu se odvozuje z HW adresy síťové karty. Je to tedy adresa, kterou už máme.
Místní (site-local scope)
Platí v rámci určité sítě, např. v rámci jedné organizace, školy, atd. Adresy tohoto rozsahu začínají prefixem fec0::/10 a je jen na nás, zda a jak je použijeme. Jde tedy o adresy, které si můžeme vymyslet.
Globální (global scope)
Místní adresy jsou príma, ale nehodí se pro situace, kdy chcete komunikovat i vně své sítě. Např. veřejnému webserveru je celkem moudré dopřát i adresu globální. Ta se oficiálně jmenuje Aggregatable Global Unicast Address a začíná prefixem 2000::/3. Adresu tohoto rozsahu si samozřejmě vymyslet nemůžeme.

Pro přehlednost jsem zamlčel informace o multicastových, anycastových a o mapovaných IPv4 adresách. Podrobnosti o si totiž každý může doledat v RFC 2373 (IPv6 Addressing Architecture).

Kde vzít adresu? (podruhé)

Teď už víme, že budeme shánět globální agregovatelnou adresu. Ve většině případů nedostaneme pouze jednu jedinou adresu, ale rovnou celý prefix, jako koncový zákazník obvykle o délce 48 až 64 bitů. V současné době můžeme získat buď tzv. produkční adresu začínající prefixem 2001::/16 z tzv. RIR space, tedy z adresního prostoru přidělovaného regionálními registrátory jednotlivým providerům, nebo adresu začínající 3ffe::/16 z adresního prostoru experimentální IPv6 sítě 6bone.

Produkční adresu můžeme získat dvěma způsoby:

Protože komerční provideři se v našich končinách zatím k IPv6 staví celkem chladně, je naší nadějí získání prefixu patřícího do 6bone, a to buď přímo, nebo prostřednictvím někoho, kdo od 6bone už prefix získal.

6bone

IPv6 provoz může být buď nativní, což je případ, kdy IPv6 pakety běhají po kabelu přímo, nebo tunelovaný, kdy jsou na jednom konci tunelu IPv6 pakety zabaleny do IPv4 a odeslány na druhý konec tunelu jako standardní IPv4 provoz. Tam jsou opět vybaleny a zpracovány jako kdyby nikdy žádným tunelem nešly. Tenhle postup je nutný v případě, že chcete např. svou domácí síť spojit s IPv6 světem, ale váš provider se tváří, že nic takového jako IPv6 neexistuje. Ačkoliv nativních linek celkem rychle přibývá, jsou tunely stále základním stavebním prvkem sítě 6bone, kde je mnoho nativních IPv6 ostrůvků propojeno právě pomocí tunelů. Naše další snažení se bude ubírat právě tímto směrem, tedy jak získat tunel.

Jak získat tunel?

Opět máte několik možností - buď si ze seznamu sítí připojených do 6bone některou vyberete a poníženě požádáte jejího správce, jestli by se u něj nějaký volný prefixíček nenašel a zdali by ve své nezměrné laskavosti k vám malý tunýlek nezřídil. Možná ho ukecáte (přecejenom s IPv6 zatím pracují spíše nadšenci, kteří rádi budou napomáhat šíření "své víry") a tím je pro vás tato kapitola vyřešena. Populárnější možností však jsou tzv. tunnel brokeři.

Tunnel broker

Klasický tunnel broker (RFC 3053) pro vás na požádání (po vyplnění webového formuláře) alokuje část svého adresního prostoru, vytvoří svůj konec tunelu a veškerý provoz na vaše nově přidělené adresy do tohoto tunelu začne routovat.
Je velice výhodné, aby vámi vybraný tunnel broker ležel z hlediska IPv4 internetu někde blízko vašeho konce tunelu, protože to z hlediska IPv6 routování to bude váš další skok (nexthop :-) a jistě budete toužit po co nejmenší odezvě. U nás se přímo nabízí využít služeb XS26, což je tunnel broker s přístupovými body mj. i v Česku. Registrace na jejich webu a vytvoření tunelu je velice přehledné a s klidným svědomím mohu tuto službu doporučit.
Pokud však nemáte server se statickou adresou, pravděpodobně pro vás ani jedna z uvedených variant nepřipadá v úvahu - jen těžko byste přesvědčovali původně ochotného administrátora z prvního příkladu, aby u sebe měnil konfiguraci tunelu při každém vašem připojení na Internet. Stále předělávat konfiguraci u XS26 (nebo u někoho jiného) by taky nebylo to pravé ořechové. Možným řešením je TSP.

TSP = Tunnel Setup Protocol

TSP je protokol, určený (jak už sám název napovídá) pro nastavování tunelů. Je navržen poměrně univerzálně, ale jak už to v této oblasti bývá, implementace poněkud zaostávají. Zjednodušeně řečeno, použití TSP by mělo umožnit bezpečně rekonfigurovat tunel v závislosti na vaší měnící se dynamické IPv4 adrese. Ve skutečnosti by TSP mělo umět o dost víc, ale jednak to ještě nikdo nenaprogramoval a zadruhé nám tohle minimum ke štěstí stačí. Jediný mě známý tunnel broker, který TSP používá je Freenet6. Ve své podstatě se nijak neliší od svých konkurentů, až na to, že vás do začátku vybaví malým prográmkem, který spustíte po každém připojení k Internetu, čímž zajistíte překonfigurování opačného konce tunelu na vaší aktuální IPv4 adresu.

To je pro dnešek všechno. Neříkám, že jsem popsal IPv6 skrz naskrz, to ani náhodou, dokonce ani odshora dolu ne, ale pro pochopení základů by tyto informace mohly stačit. Za domácí úkol si některým z výše uvedených způsobů opatřete globální IPv6 adresu a příště si ukážeme, jak ji v praxi využít, tedy jak se konfigurují tunely, nativní sítě, DNS, aplikace, atd.


IPv6 krok za krokem: [ 1 ] [ 2 ] [ 3 ]
[ Všechny články ] [ Domácí stránka ]
 

Place for your feedback...
30th June 2007 at 3:19
Unknown
Thank you.
Jun 30   3:19 Unknown (by Unknown)
Jan 31   12:53 Unknown (by Unknown)