
IPv6 krok za krokem (1)
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:
- Buď jsme internetový provider a v tom případě o prefix budeme
škemrat rovnou u
RIPE
- Nebo jsme instituce připojená k CesNetu, a tím pádem budeme
škemrat u tohoto jediného českého ISP, který již vzal IPv6 na milost.
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.
Další části seriálu:
|