IPv6 je zkratkou pro Internet Protocol version 6 a je následníkem stále ještě používaného stejnojmenného protokolu ve verzi 4 (IPv4). Podobně jako IPv4 spadá do třetí, síťové, vrsvy referenčního modelu ISO/OSI.
Mezi hlavní vlastnosti, které motivovaly vývoj nového prokolu namísto úpravy IPv4, patří:
. 8b . 8b . 8b . 8b . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0b | Verze | Třída provozu | Značka toku | 32b +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 33b | Délka dat | Dal. hlavička | Dosah | 64b +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 65b | | 96b + + 97b | | 128b + Zdrojová adresa + 129b | | 160b + + 161b | | 192b +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 193b | | 224b + + 225b | | 256b + Cílová adresa + 257b | | 288b + + 289b | | 320b +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 321b | | ... + Doplňkové hlavičky / Data nesená paketem + ... | | ...
Jak už bylo zmíněno na obrázku paketu, tak zdrojová/cílová adresa má velikost 128b a zapisuje se ve formátu 8 skupin čtveřic hexadecimálních znaků oddělených dvojtečkou, např. 0123:0000:0000:0000:efcd:0000:0000:3210
Jelikož se v adresách často objevuje nula, je zdavedeno několik způsobů, jak adresu zkrátit/zjednodušit:
Každé síťové rozhraní počítače či jiné IP-kompatibilní zařízení může mít přidělenu adresu (příp. více adres), která je jedna z následujících typů:
Jedná se o mechanizmus přidělení IP adresy, kde lokální část adresy se odvozuje z fyzické adresy rozhraní. Pro sítě na bázi ethernetu se použije MAC adresa, do jejíž prostředku je vloženo fffe a její 7. nejvyšší bit udává, jestli se jedná o adresu lokální (1) či globální (tj. celosvětově jednoznačnou) (0). IPv6 však používá modifikovanou podobu tohoto standardu, kde je opačný význam bitu 0 a 1 a tedy platí, že 0 = adresa lokální, 1 = adresa globální. Příklad vytvoření lokální adresy pro počítač s MAC adresou 00:1f:31:97:7a:fe:
Zvolil se tedy kompromis, kdy rozhraní/zařízení má adres více - jednu založenou na své MAC adrese používanou primárně pro ustanovení spojení (která je i uvedena v DNS databázi) a dále adresu s náhodně generovanými id. rozhraním pro následnou vlastní komunikaci (která už v DNS uvedená není).
Jedná se o adresy, které jsou jednoznačné pouze v rámci lokální sítě (tj. linky), neboli jednoho segmentu spravovaného směrovačem. Jedná se o stejný mechanismus, jako jsou adresy 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 v IPv4, které jsou směrovači "podporovány" pouze uvnitř daného segmentu. Mimo něj už není tato adresa platná a pro spojení s takovýmto rozhraním je nutné provádět např. překlad adres mezi vnější veřejnou a vnitřní neveřejnou sítí. Díky tomu, že konstrukce takovéto adresy nevyžaduje žádnou další znalost lokální infrastruktury, je pro rozhraní k dispozici takováto adresa vždy.
Tyto adresy jsou ve tvaru:
. 10 b . 54b . 64b . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fe80 | 0...0 | id. rozhraní | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Význam těchto adres je podobný jako u lokálních linkových adres, tj. jednoznačnost jen v dané lokální síti. Pokud bychom uvažovali, že každá síť může být pouze na jedné lince, tuto skupinu adres bychom vůbec nepotřebovali. V opačném případě, kdy síť jedné organizace je rozdělena na několik podsítí, které mezi sebou mají vzdálenost několika směrovačů, už nelze lokální linkové adresy použít.
Tyto adresy jsou ve tvaru:
. 7b .1b . 40b . 16b . 64b . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | fc |1/0| náhodně generované | id. podsítě | id. rozhraní | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Pomocí adres tohoto typu lze specifikovat pouze určitou skupinu rozhraní, které mají do dané sítě patřit. Nejčastěji se toto používá v souvislosti s distribucí audio/vizuálního obsahu (např. videokonference), kdy každé rozhraní, které chce daný mediální obsah přijímat, se přihlásí do této skupiny, rozhraní dostane přidělenou adresu skupiny, na které daný obsah přijímá.
Tyto adresy jsou ve tvaru:
. 8b . 4b . 4b . 112b . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ff00 | volby | dosah | id. skupiny | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Výběrové adresy jsou novinkou v IPv6. Myšlenka spočívá ve vytváření skupin rozhraní, podobně jako u multicastu, kde však stačí doručit daný obsah libovolnému rozhraní z této skupiny. Tento koncept lze s výhodou uplatnit v případě, kdy chceme zajistit větší dostupnost určité rozsáhlejší služby - pro její obsluhu nastavíme několik spolupracujících serverů v různých geografických destinacích. Když se uživatel snaží kontaktovat danou službu, tak jeho data jsou převzata nejbližším (z geografického pohledu) serverem a tím lze zmenšit latenci při přenosu dat. Typickým praktickým příkladem jsou kořenové servery jmenné služby DNS, které by tohoto konceptu mohli lépe využít k rozkládání zátěže (tj. že jeden root server ve skutečnosti není jediný server, ale je tvořen privátní sítí dílčích serverů, které jsou však uživateli skryty pod jednou adresou).
Výběrové adresy nemají specifikovaný speciální prefix a spadají do části globálních individuálních adres a ze samotné adresy nelze říci, jestli je výběrovou či nikoliv. Toto se odvíjí až od samotné konfigurace směrování. Platí, že všechny uzly jedné výběrové sítě mají určitou část (tj. prefix) své adresy stejnou. V jednotlivých směrovačích (resp. jejich tabulkách) je pak nutné pro tento prefix nastavit cestu (adresu) k nejbližšímu uzlu této sítě.
Nevýhodou tohoto mechanismu jsou stavové protokoly - z důvodu dynamického směrování, které se přizpůsobuje aktuálnímu stavu sítě, se může stát, že série datagramů odeslaná v jeden okamžik nedorazí pohromadě jednomu uzlu výběrové sítě, ale po částech ji dostane více uzlů této sítě. Možným řešením je službu rozdělit na části ustavovací (kde se ustaví spojení s některým z uzlů bezstavovým protokolem) a vlastní přenos informací (kde se již používá stavový protokol a komunikace se provádí s již kontaktovaným uzlem).
Jedná se o adresy, které jsou celosvětově jednoznačné. Zatím byly definovány pouze adresy s prefixem 001 (viz RFC 3587). Princip přidělování těchto adresy je podobný jako v případě IPv4, tj. že poskytovatel internetového spojení dostane přidělen určitý prefix, který dále rozděluje mezi své klienty.
Tyto adresy jsou ve tvaru:
. 3b . 45b . 16b . 64b . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 001 | Globální směrovací prefix | id. podsítě | id. rozhraní | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prvních 80b takovéto adresy je pouze skupina nul, následuje 16b jedniček a poté IPv4 adresa. Např. aisa.fi.muni.cz:
Síť vzniklá roku 1996 pro potřeby testování IPv6. Jednalo se o virtuální síť, která propojovala (formou tunelů nad IPv4) jednotlivé dílčí IPv6 sítě různých organizací zapojených do projektu. Hlavním cílem bylo simulovat opravdovou IPv6 a získání praktických zkušeností. Adresy vyhrazené pro tuto síť měly prefix 3ffe::/16 a přidělování adres podléhalo přesným procedurám. Počátek konce tohoto projektu byl po roce 2000, kdy se začaly přidělovat adresy ve skutečné IPv6 síti a jednotlivé organizace začaly mít zájem participovat ve skutečném IPv6 namísto toho "virtuálního". Oficiální konec tohoto projektu je datován na 6.6.2006 a spolu s jeho koncem se vrátil i používaný prefix 3ffe::/16 do běžného používání.
Hlavní myšlenka autokonfigurace spočívá v tom, aby si po připojení do sítě bylo schopné rozhraní samo odvodit vlastní adresu a další potřebné informace.
Nasloucháním na dané lince rozhraní získá adresu implicitního směrovače (brány), jeho životnost a adresu sítě. To vše díky tomu, že každý router v síti po náhodné době vysílá tzv. ohlášení směrovače (router advertisement). Vlastní adresu zjišťuje následovně: nejprve si vytvoří lokální linkovou adresu a zjišťuje, jestli ji již někdo nepoužívá (v případě, že ne, si ji přivlastní) a z dalšího ohlášení směrovače (případně se sám ozve tzv. výzvou směrovači (router solicitation)) vyčte jaký druh (stavová/bezstavová) konfigurace se v dané síti používá. Další dění na síti se odvíjí od typu autokonfigurace:
Pokud je IPv6 běžícím jádrem podporováno, měl by existovat soubor /proc/net/if_inet6. V případě problémů lze zkusit odstranit a přidat modul ipv6 (pokud má jádro IPv6 zkompilované jako modul) a podívat se do informačních výpisu jádra pomocí dmesg. Pro otestování, zdali je rozhraní do okolní sítě připojené prostřednictvím IPv6, lze použít stránku www.kame.net.
Při konfiguraci se nejčastěji využívají následující příkazy:
radvd (Router Advertisement Daemon) je démon, který posílá do lokální sítě tzv. ohlášení směrovače (router advertisement).
Konfigurace může vypadat následovně:
interface eth0 { AdvSendAdvert on; prefix 5f15:9100:c2dd:1400:8000::0/80 { AdvOnLink on; AdvAutonomous on; }; }; -- převzato z: http://www.linuxhq.com/IPv6/radvd.htmlTato jednoduchá konfigurace říká, že se má posílat ohlášení směrovače na rozhraní eth0; prefix sítě je schodný s tím, co je za konf. parametrem prefix; prefix může být použitý pro automatickou konfiguraci (AdvAutonomous) a všechna rozhraní, která mají takovýto prefix jsou dosažitelná přes rozhraní, ze kterého přišlo ohlášení směrovače. Více na www.linuxhq.com/IPv6/radvd.html.
Je doporučováno pro vytváření tunelů používat příkaz ip, který má pro práci s tunely první argument: tunnel. Vytvoření tunelu spolu s nastavením směrování může vypadat např. takto:
/sbin/ip tunnel add sit1 mode sit ttlremote local /sbin/ip link set dev sit1 up /sbin/ip -6 route add dev sit1 metric 1 - převzato z http://tldp.org/HOWTO/Linux+IPv6-HOWTO/conf-ipv6-in-ipv4-point-to-point-tunnels.html
Rušit tunel lze naopak takto:
/sbin/ip -6 route deldev sit1 /sbin/ip link set sit1 down /sbin/ip tunnel del sit1 - převzato z http://tldp.org/HOWTO/Linux+IPv6-HOWTO/conf-ipv6-in-ipv4-point-to-point-tunnels.html