IPv6

**IPv6** je verzia 6 Internet protokolu (IP); pôvodne sa volal *IP Next Generation* (*IPng*), keď vyhral výberové konanie IETF pre IPng. IPv6 má nahradiť predchádzajúci štandard IPv4, ktorý so svojimi 32-bitovými adresami podporuje "iba" niečo viac ako 4 miliardy (232) adries. IPv6 používa pre svoje adresy širší rozsah 128 bitov a podporuje teda 2128, alebo približne 3.4×1038, teda 340 sextiliónov adries. To je približne (430 triliónov) adries na štvorcový palec (6.7×1017 (670 biliárd) adries/mm²) Zemského povrchu. Očakáva sa, že IPv4 bude podporované aspoň do roku 2025, aby bol ponechaný čas na opravu „múch“ a systémových nedostatkov.

Hlavným dôvodom vytvorenia IPv6 bol nedostatok adresného priestoru, obzvlášť v husto obývaných krajinách Ázie ako sú India a Čína. Podrobnejšie v článku Vyčerpanie adresného priestoru IPv4. Predstavenie Network Address Translation (NAT) do určitej miery zmiernilo tento problém. NAT však znemožňuje alebo technicky komplikuje isté peer-to-peer aplikácie ako VoIP a isté mnohopoužívateľské hry. Súčasným prínosom IPv6 sú nové aplikácie ako mobilita, QoS, povinné zabezpečenie atď.

IPv6 je druhou verziou IP protokolu formálne prijatou pre široké použitie. (Existovalo tiež IPv5, ktoré nebolo nasledovníkom IPv4, ale experimentálnym tokovo orientovaným streamingovým protokolom na podporu hlasu, videa a audia.)

Plánom je, aby sa IPv6 stal základom pre budúce rozširovanie internetu. Hoci bol IPv6 prijatý IETF ako nasledovník IPv4 už pred viac ako dvadsiatimi rokmi (1994), celosvetové nasadenie IPv6 ako verejne prístupného internetu je stále iba niekoľko percent  veľkosti celosvetovej  IPv4 siete.

## IPv6 adresácia
Najdramatickejšou zmenou IPv6 oproti IPv4 je dĺžka sieťovej adresy. IPv6 adresy ako boli definované v RFC 2373 a RFC 2374 sú 128 bitov dlhé; toto zodpovedá 32 hexadecimálnym čísliciam, ktoré sa bežne používajú pri zápise IPv6 adries, ako popíšeme v nasledujúcom odstavci.

IPv6 môže adresovať 2128 ≈ 3.4 x 1038. Na číslo IPv6 adresy je tiež možné sa pozerať ako na 1632, keďže každé z 32 hexadecimálnych číslic môže nadobúdať 16 hodnôt (pozri kombinatorika).

IPv6 adresa sa skladá z dvoch logických častí: 64-bitového prefixu siete a 64-bitovej adresy stroja v sieti, ktorá sa často generuje automaticky z adresy rozhrania (MAC adresa).

Často sa hovorí o tom, že 128-bitové adresy sú zbytočne veľké a internet ich nikdy toľko nebude potrebovať. Treba poznamenať, že dôvodom použitia 128-bitových adries nie je v prvom rade zabezpečenie, aby sa nikdy neminuli, ale zaistenie hladkého priebehu smerovania tým, že bude adresný priestor čo najmenej fragmentovaný, na rozdiel od súčasného stavu s IPv4, kedy môže byť a často býva viacero intervalov adries priradených jednej organizácii.

## Zápis IPv6 adries
128-bitová IPv6 adresa sa zvyčajne zapisuje ako osem skupín po štyroch hexadecimálnych čísliciach. Napríklad

 2001:0db8:85a3:08d3:1319:8a2e:0370:7334
je platnou IPv6 adresou.

Ak skupina štyroch číslic obsahuje 0000, je možné ju vynechať. Napríklad
 2001:0db8:85a3:0000:1319:8a2e:0370:7344  
je rovnaká IPv6 adresa ako
 2001:0db8:85a3::1319:8a2e:0370:7344
Ďalej podľa tohto pravidla, ak sú výsledkom tohto vynechania viac ako dve po sebe nasledujúce dvojbodky, je možné ich zredukovať na dve dvojbodky, pod podmienkou, že existuje len jedna skupina dvoch alebo viacerých po sebe nasledujúcich dvojbodiek. Preto
 2001:0DB8:0000:0000:0000:0000:1428:57ab 
 2001:0DB8:0000:0000:0000::1428:57ab 
 2001:0DB8:0:0:0:0:1428:57ab
 2001:0DB8:0::0:1428:57ab
 2001:0DB8::1428:57ab  
sú všetko platné adresy a znamenajú to isté, ale
 2001::25de::cade 
nie je platná, pretože nie je jednoznačné, koľko 0000 skupín je na každej strane.

Úvodné nuly v skupine je možné vynechať. Preto
 2001:0DB8:02de::0e13
je to isté ako
 2001:DB8:2de::e13

Ak je adresa maskovaná IPv4 adresa, posledných 32 bitov je možné zapísať desiatkovo; takže

 ::ffff:192.168.89.9 je to isté ako
 ::ffff:c0a8:5909, ale nie to isté ako
 ::192.168.89.9 alebo
 ::c0a8:5909.

Formát ::ffff:1.2.3.4 sa nazýva *IPv4-mapovaná adresa* (IPv4-mapped address). Formát ::1.2.3.4 je *IPv4-kompatibilná adresa* (IPv4-compatible address).

IPv4 adresu je jednoducho možné previesť na IPv6 adresu. Napríklad desiatkovo zapísaná IPv4 adresa bola 135.75.43.52 (hexadecimálne 0x874B2B34), je možné ju konvertovať do 0000:0000:0000:0000:0000:0000:874B:2B34 alebo ::874B:2B34. Potom je zasa možné použiť hybridný zápis (IPv4-kompatibilnú adresu), kedy by adresa bola ::135.75.43.52. Použitie týchto IPv4-kompatibilných adries sa neodporúča, pretože ich IPv6 prechodové mechanizmy už nepoužívajú. Na zodpovedajúcich RFC sa to v krátkej dobe odzrkadlí.

### Špeciálne adresy
V IPv6 existuje niekoľko adries so zvláštnym významom. Toto je ich stručná tabuľka v CIDR notácii:

* ::/128 – adresa obsahujúca samé nuly špecifikuje akúkoľvek adresu a používa sa len v softvéri.
* ::1/128 – loopback adresa je lokálna adresa na stroji, ktorá vracia späť všetky pakety, ktoré boli na ňu odoslané (zodpovedá adrese 127.0.0.1 v protokole IPv4).
* ::/96 – IPv4 kompatibilná adresa sa používa v prechodových mechanizmoch v dual-stack IPv4/IPv6 sieťach. Je označená ako "deprecated" pretože aktuálne prechodové mechanizmy s ich využitím už nepočítajú, nevyžaduje sa ich podpora v nových implementáciách IPv6. (RFC4219)
* ::ffff:0000:0000/96 – IPv4 mapovaná adresa sa používa v prechodových mechanizmoch v dual-stack sieťach.
* fe80::/10 – link-local prefix určuje adresu, ktorá je platná len na danej linke a slúži výhradne ku komunikácií so susedným zariadením.
* fec0::/10 – site-local prefix špecifikuje adresy, ktoré je možné používať len na komunikáciu vo vnútri organizácie/siete. V RFC3879 (september 2004) je adresa označená ako "deprecated" a nové implementácie ju už nemajú podporovať, prípadne sa k nej správať ako ku globálnej adrese.
* fc00::/7 (fd00::/8) - ULA(Unikátna lokálna adresa) adresa je určená pre použitie vo vnútri organizácie/siete, nesmie sa smerovať do Internetu. Prefix adresy: 1111 110L, kde L musí byť "1", pretože "0" je rezervovaná pre budúce použitie, preto je to v konečnom dôsledku rozsah fd00::/8. http://tools.ietf.org/html/rfc4193|RFC4193 Dá sa povedať, že je to náhrada privátnych adries v IPv4 a site-local adries v IPv6.
* ff00::/8 – Prefix pre multicast addresy.
* Ostatné adresy sú podľa RFC4291 globálne unicastové. Avšak IANA zatiaľ ako globálne adresy priraďuje len rozsah 2000::/3.

## IPv6 paket

IPv6 paket pozostáva z dvoch častí: hlavičky a nákladu.

Hlavička tvorí prvých 40 bajtov paketu a obsahuje zdrojovú aj cieľovú adresu (každá o dĺžke 128 bitov), verziu (4-bitovú verziu IP), triedu premávky (8 bitov, priorita paketu), značku toku (20 bitov, manažment QoS), dĺžku nákladu (16 bitov), offset ďalšej hlavičky (8 bitov), limit skokov (8 bitov, Time To Live). Potom nasleduje náklad, ktorý môže mať v štandardnom režime až 64 KB alebo viac v s flagom „jumbo payload“.

Existovali dve mierne odlišné verzie IPv6. Teraz už zastaraná úvodná verzia opísaná v RFC 1883 sa líši od súčasného návrhu, štandardnej verzie opísanej v 2460 v dvoch poliach: 4 bity boli preradené z *flow label* do *traffic class*. Všetky ostatné rozdiely sú minoritné.

Fragmentácia v IPv6 sa uskutočňuje iba v stroji. V IPv6 sa tiež options presunuli zo štandardnej hlavičky do ďalšej hlavičky špecifikovanej poľom *ďalšia hlavička*, ktorá má podobnú ako pole *Protocol field* v IPv4. Príklad handwaving: v IPv4 by sa pridal do poľa options flag Strict Source and Record Routing (SSRR), aby sa vynútila istá cesta (route) pre paket, zatiaľ, čo v IPv6 by ďalšia hlavička špecifikovala, že nasleduje smerovacia hlavička. Smerovacia hlavička by potom špecifikovala dodatočné smerovacie informácie a indikovala, že nasleduje napr. TCP hlavička. Toto je analogické s obsluhou AH a ESP v IPsec pre IPv4 (ktorý sa samozrejme týka aj IPv6).

## IPv6 a Domain Name System
V DNS sú IPv6 adresy reprezentované *AAAA záznamom* -- (tzv. quad-A záznam) pre priame vyhľadávanie (analogicky ako A záznam pri IPv4); spätné vyhľadávanie sa deje pod ip6.arpa ip6.arpa (predtým ip6.int),kde je adresný priestor rozdelený podľa hraníc nibble. Táto schéma je definovaná v RFC 3596.

Schéma AAAA bola jedným z dvoch návrhov v čase vývoja architektúry IPv6. Druhý navrhoval *A6 záznamy* pre priame vyhľadávanie a niekoľko ďalších inovácií ako *bit-string labels* a *DNAME záznamy*. Je definovaný v experimentálnom RFC 2874 a jeho referenciách.

Zatiaľ, čo AAAA záznam je jednoduchým zovšeobecnením IPv4 DNS, schéma A6 bola generálna oprava DNS tak, aby bolo všeobecnejšie a tým aj komplexnejšie:
* A6 záznamy dovoľovali, aby bola jediná IPv6 adresa rozdelená po viacerých záznamoch, ktoré by sa mohli nachádzať v rozličných zónach; to by napríklad principiálne umožnilo rýchle prečíslovanie sietí.
* Delegácia adries použitím NS záznamu bola z veľkej časti nahradená DNAME záznamami (analogicky k existujúcemu CNAME, ale pre premenovanie celého stromu). To by umožnilo spravovať priame a spätné komponenty spolu.
* Nový údajový typ nazývaný *bit label* určený primárne pre spätné vyhľadávanie.

Schéma AAAA bola štandarizovaná v Auguste 2002 v RFC 3363 (s ďalšou diskusiou výhod a nevýhod oboch schém v RFC 3364)

## Nasadenie IPv6
20. júla 2004 ICANN oznámila , že koreňové DNS servery internetu boli modifikované, aby podporovali IPv6 aj IPv4.

Nevýhody:
* potreba rozvinutia plošnej podpory IPv6 po internete a pripojených zariadeniach
* na zabezpečenie dosiahnuteľnosti zo sveta IPv4 počas prechodovej fázy stále potrebujete IPv4 adresu alebo nejaky druh NAT (zdieľaná IP adresa) v bránových smerovačoch (IPv4↔IPv6), čo zvyšuje komplexnosť a znamená, že sľubovaný väčší adresný priestor nebude okamžite efektívne využívaný.
* zostávajúce architekturálne problémy ako nedostatok dohôd pre správnu podporu IPv6 multihoming.
* 6bone
* ICMPv6

### Prechodové mechanizmy
Kým sa natívna konektivita cez IPv6 stane široko dostupnou a podporovanou zo strany smerovacej infraštruktúry je potrebné používať prechodové mechanizmy umožňujúce tunelovanie IPv6 cez siete IPv4, To je možné dosiahnuť:
* nakonfigurovanými IPv6-v-IP tunelmi medzi dvoma dual-stack uzlami, alebo
* 6to4, automatickým asymetrickým tunelovacím mechanizmom

Tieto tunely fungujú na základe zapuzderenia IPv6 paketov v rámci IPv4 paketov s IP číslom protokolu IP next-layer 41, preto pomenovanie *proto-41*. Podobne, ISATAP umožňuje prenos IPv6 paketov internou čisto IPv4 infraštruktúrou. Rovnako používa číslo protokolu 41.

Ak je požadovaná IPv6 konektivita spoza NAT zariadenia, z ktorých mnohé nemajú správnu podporu preposielania proto-41 paketov, je možné použiť protokol Teredo, ktorý zapuzdruje IPv6 cez UDP cez IPv4. Je tiež možné použiť IPv6-to-IPv4 a IPv6-to-IPv6 proxy, hoci to je zvyčajne závislé na protokole aplikačnej vrstvy (napr. HTTP).

### Dual-stack
Dual-stack je jedna z možných foriem prechodu z protokolu IPv4 na protokol IPv6. Umožňuje jednotlivým hostiteľom (nielen koncovým, ale aj prepínačom a smerovačom) využívať oba protokoly naraz. Ak je však dostupný protokol IPv6, používa sa práve ten, teda ak chce hostiteľ komunikovať s iným a má dostupné oba protokoly, ale hostiteľ na druhej strane má dostupný len protokol IPv4, využíva sa len IPv4. Ak má hostiteľ na druhej strane dostupné oba protokoly, preferuje sa IPv6.

## IPv6 haters
Nízka úroveň znalostí a pohodlnosť mnohých správcov počítačových sietí výrazne spomaľuje nasadzovanie protokolu IPv6. Mnohí vedome zakladajú svoje argumenty na nesprávnych informáciách aby oddialili zavádzanie nového protokolu v svojej sieti. Iní zas vôbec nerozumejú ani základným princípom počítačových sietí a nevedomo označujú protokol IPv6 ako úplne zbytočný a nepotrebný.

Na prehodnotenie názoru dokonca nevplýva ani vysoká cena,  nízky počet zostávajúcich voľných IPv4 adries a fakt, že v dnešnej dobe má IPv6 medzi zariadeniami širokú podporu.  

## Hlavné oznámenia o IPv6
* V roku 2003, Nihon Keizai Shimbun (ako bol citovaný v CNET Asia Staff, 2003) oznámil, že Japonsko, Čína a Kórejská republika sa rozhodli stať sa vedúcimi národmi internetovej technológie, čo by sa čiastočne prejavilo v spoločnom vývoji IPv6 a kompletnej adaptácii IPv6 od začiatku 2005.
* ICANN oznámila 20. júla 2004, že IPv6 AAAA záznamy Top Level Domain (ccTLD) nameserverov Japonska (.jp) a Kórey (.kr) sú viditeľné v zónových súboroch DNS root serverov pod sériovým číslom 2004072000. O chvíľu neskôr boli pridané záznamy Francúzska (.fr). Toto umožnilo verejnú prevádzku IPv6.

## Súvisiace pracovné skupiny IETF
* 6bone IPv6 Backbone
* ipng IP Next Generation (concluded)
* ipv6 IP Version 6
* ipv6mib IPv6 MIB (concluded)
* multi6 Site Multihoming in IPv6
* v6ops IPv6 Operations

## Referencie

## Ďalšie čítanie
* RFC 2460 - Internet Protocol, Version 6 - aktuálna verzia
* RFC 1883 - Internet Protocol, Version 6 - stará verzia
* RFC 4291 - IP Version 6 Addressing Architecture

## Externé odkazy
* IPv6 Task Forces & The IPv6 Portal
* Prečo chcete IPv6 (en) (linuxreviews.org)
* http://www.iana.org/assignments/ipv6-address-space
* http://www.kame.net/
* http://www.freeswan.org/
* CNET Asia Staff. (2003). Správa: Japonsko, Čína, J. Kórea vyvíjajú ďalšiu Sieť. Získané 14. januára 2003. (en)
* http://www.moonv6.org/ 
* Implementácie IPng (en)  (Implementácie strojov a routrov)
* http://docwiki.cisco.com/wiki/Cisco_IOS_IPv6_Feature_Mapping 
* 
* http://www.ipv4auctions.com/ 

Kategória:Internetové protokoly
Kategória:Internetové štandardy