Prim�rn�m d�vodem, pro� se o IPv6 za�alo mluvit, byl strach z nedostatku IP adres. V dnes p�edev��m pou��van�m IPv4 jsou adresy 32bitov� a m�me tak k dispozici jen 232 unik�tn�ch adres (tedy zhruba 4,3 miliardy). Ve skute�nosti je to je�t� m�n�, proto�e mus�me ode��st priv�tn� rozsahy adres, kter� nemohou b�t pou�ity v internetu, a n�kter� speci�ln� adresy. Jak se dnes ukazuje, d�ky r�zn�m obezli�k�m typu NAT apod. se tento nedostatek d� ��ste�n� �e�it. P�in�� to sice r�zn� omezen�, nicm�n� nikomu se nechce m�nit n�co, co je tak �iroce roz���en� a nav�c to celkem funguje. D�ky v��e uveden�mu jsme se tedy masov�ho nasazen� IPv6 zat�m nedo�kaly a kdy k tomu dojde je velk� ot�zka.
IPv6 byl p�ijat skupinou Internet Engineering Task Force v roce 1994 (a byl naz�v�n IP Next Generation, zkr�cen� IPng). Jak bylo uvedeno v��e, hlavn�m d�vodem vypracov�n� IPv6 byla p�vodn� snaha roz���it adresn� prostor. IPv6 tedy pou��v� 128bitov� adresy, kter� poskytuj� dostate�n� po�et adres (zhruba 3,4 × 1038) „nav�dy“. (I kdy� to si o 640 KiB opera�n� pam�ti n�kte�� lid� mysleli taky...)
Kdy� u� se ale bude muset zm�nit IP protokol, byla by �koda nevyu��t toho a neprov�st i dal�� vylep�en�. IPv6 tedy p�in�� mnoho zm�n i v dal��ch oblastech. P�in�� nap�.
Pro� ale IPv6? Pro� ne IPv5? Protokol IPv5 tak� existuje. Nicm�n� se nejedn� o ��dnou n�hradu IP protokolu. IPv5 je experiment�ln� flow-oriented streamovac� protokol ur�en� pro podporu audia a videa. V praxi ale nebyl nikdy po��dn� pou�it.
128bitov� adresy IPv6 by bylo nepohodln� zapisovat stejn�m zp�sobem
jako mnohem krat�� adresy IPv4. Z�pis se tedy prov�d�
v �estn�ctkov� soustav�, kdy jsou v�dy �ty�i ��slice odd�leny
dvojte�kou. Nav�c je povoleno n�kolik zkratek z�pisu. IPv6 adresa
tedy m��e vypadat nap�. takto:
2001:0db8:0000:0000:0000:0000:1428:57ab
Jak bylo uvedeno v��e, p�i z�pisu adresy je mo�no pou��t i n�kolik zkratek. D�le uveden� adresy jsou ekvivalentn� k adrese v��e, pouze zapsan� zkr�cenou formou:
2001:db8:0000:0000:0000:0000:1428:57ab
–
vedouc� nuly v ka�d� skupin� je mo�no vynechat
2001:0db8::1428:57ab
– n�kolik po sob�
jdouc�ch skupin sam�ch nul je mo�no nahradit sekvenc�
::
; kv�li jednozna�nosti je toto mo�n� ud�lat
v adrese pouze jednou
2001:0db8:00:00:00:00:1428:57ab
– dvojici
nul je mo�no nahradit nulou jednou
2001:0db8:0:0:0:0:1428:57ab
– skupinu sam�ch
nul je mo�no nahradit jednou nulou
2001:0db8:0000:0000:0000:0000:20.40.87.171
–
posledn� 4 byty je mo�no ps�t v des�tkov�m tvaru odd�len�m
te�kami. Tento z�pis je vhodn� pro z�pis adres kompatibiln�ch
s IPv4.
Jednotliv� zkratky je samoz�ejm� mo�n� libovoln� kombinovat.
V URL se IPv6 adresa uv�d� v hranat�ch z�vork�ch.
http://[2001:0db8:0000:0000:0000:0000:1428:57ab]/page.html
http://[2001:0db8:0000:0000:0000:0000:1428:57ab]:8080/page.html
Tento z�pis umo��uje snadnou anal�zu adresy bez maten� uveden�m ��sla portu.
Adresa zp�tnovazebn�ho rozhran�, tedy adresa
127.0.0.1
v IPv4, je v IPv6 adresa
0000:0000:0000:0000:0000:0000:0000:0001
.
Adresa typu „kdokoli“, tedy adresa
0.0.0.0
v IPv4, je v IPv6 adresa
0000:0000:0000:0000:0000:0000:0000:0000
.
Adresa p�i�azen� uzlu, kter� pracuje pouze s IPv4
adresami, m� tvar ::ffff:a.b.c.d
, kde
a.b.c.d
je IPv4 adresa.
Adresa p�i�azen� uzlu, kter� pracuje s IPv4
i IPv6 adresami, m� tvar ::a.b.c.d
, kde
a.b.c.d
je IPv4 adresa.
Speci�ln� typ adresy, kter� je platn� pouze na lince rozhran�. Packet s touto adresou jako c�lovou nebo zdrojovou nikdy nesm� proj�t p�es router.
Tato adresa je pou��v�na nap�. za ��elem dotazu, zda se na lince nach�z� jin� za��zen� apod.
Prefix t�chto adres je fe8x:
(v sou�asnosti jedin� pou��van� prefix),
fe9x:
, feax:
nebo febx:
, kde x
je
hexadecim�ln� ��slice (norm�ln� 0).
| 10 bits | n bits | (118 - n) bits | +----------+-------------------------+----------------------------+ |1111111010| 0 | INTERFACE ID | +----------+-------------------------+----------------------------+
Tyto adresy jsou obdobou priv�tn�ch rozsah� adres
v IPv4 (168.192.x.x
apod.).
Prefix t�chto adres je fecx:
(nejb�n�j��), fedx:
,
feex:
nebo
fefx:
, kde x
je
hexadecim�ln� ��slice (norm�ln� 0).
Tento typ adres je dnes zavr�en� ve prosp�ch unik�tn�ch lok�ln�ch adres.
| 10 bits | n bits | m bits | (118 - n - m) bits | +----------+---------+---------------+----------------------------+ |1111111011| 0 | SUBNET ID | INTERFACE ID | +----------+---------+---------------+----------------------------+
Nov� typ lok�n�ch adres, kter� m� oproti site local adres�m tu v�hodu, �e adresy jsou unik�tn� nejen v r�mci pods�t�, ale glob�ln�. Pokud tedy pozd�ji dojde ke slou�en� pods�t�, nedojde k ��dn�m koliz�m a nen� t�eba prov�d�t zm�ny adres.
Prefix t�chto adres je fcxx:
nebo
fdxx:
, kde x
je
hexadecim�ln� ��slice.
| 7 bits |1| 40 bits | 16 bits | 64 bits | +--------+-+------------+-----------+----------------------------+ | PREFIX |L| GLOBAL ID | SUBNET ID | INTERFACE ID | +--------+-+------------+-----------+----------------------------+
40bitov� pole GLOBAL ID je generov�no pseudon�hodnou funkc�. Je tak velmi nepravd�podobn�, �e by se objevili dv� shodn� adresy.
Toto jsou ty „hlavn�“ IP adresy, tzn. glob�ln� v internetu vyu�iteln�, ur�en� k jednozna�n� celosv�tov� identifikaci rozhran�.
Prefix t�chto adres je 2xxx:
nebo
3xxx:
, kde x
je
hexadecim�ln� ��slice.
| | | | | | (125-n-m-o-p) | | 3 | n bits | m bits | o bits | p bits | bits | +---+-------------+--------------+---------------+-----------+---------------+ |010| REGISTRY ID | PROVIDER ID | SUBSCRIBER ID | SUBNET ID | INTERFACE ID | +---+-------------+--------------+---------------+-----------+---------------+
Tyto adresy jsou p�i�azov�ny hierarchicky, pole REGISTRY ID, PROVIDER ID, SUBSCRIBER ID a SUBNET ID maj� postupn� na starosti pod��zen� organizace, kter� si pomoc� nich d�l� adresn� prostor za jim p�id�len�m prefixem. To je velmi v�hodn� a sni�uje to velikost tabulek glob�ln�ch sm�rova��.
Anycast adresa je nov� typ adresy zaveden� v IPv6, kter� nem� obdobu v IPv4. Slou�� k identifikaci skupiny uzl�, kter� maj� stejn� ��el a data mohou b�t vym��ov�na s kter�mkoli z nich. Typick� u�it� je nap�. pro nalezen� DNS serveru apod. Data zaslan� na anycast adresu budou doru�ena pr�v� jednomu „nejbli���mu“ uzlu ze skupiny.
Anycast adresy jsou obsa�eny v bloku glob�ln�ch unicast adres a syntakticky se od nich nedaj� odli�it. Anycast adresa nesm� b�t nikdy uveden� jako zdrojov� adresa packetu.
Multicast adresa je speci�ln� adresa p�id�len� skupin� uzl�. Data zaslan� na tuto adresu budou doru�ena v�em uzl�m, kter� do t�to skupiny pat��. Ka�d� uzel m��e pat�it do libovoln�ho mno�stv� multicast skupin.
Form�t multicast adresy je n�sleduj�c�:
| 8 bits | 4 b. | 4 b. | 112 bits | +--------+------+------+---------------------------------------------+ |11111111| FLGS | SCOP | GROUP ID | +--------+------+------+---------------------------------------------+
Prefix osmi jedni�ek vyzna�uje multicast adresu, ze
�ty�bitov�ho pole FLGS je zat�m pou�it pouze �tvrt� bit,
ostatn� jsou nulov�. Hodnota FLGS 0000
zna��
permanentn� „well known“ adresu p�id�lenou
glob�ln� autoritou, hodnota 0001
zna�� do�asnou
adresu.
Pole SCOP zna�� rozsah platnosti multicast skupiny, tzn.
jak daleko se skupina bude ���it. Hodnoty jsou
n�sleduj�c�:
0 – Reserved
1 – Node-local scope
2 – Link-local scope
5 – Site-local scope
8 – Organization-local scope
E – Global scope
F – Reserved
Ostatn� mo�n� hodnoty nejsou p�i�azeny.
Zb�vaj�c�ch 112 bit� slou�� jako identifik�tor skupiny.
Za ��elem umo�n�n� autokonfigurace se spodn�ch 64 bit� adresy obvykle vyu��v� pro identifikaci hostitele. T�chto spodn�ch 64 bit� adresy tedy m��e b�t ur�eno n�jak�m automatick�m zp�sobem (stateless autokonfigurac� vestav�nou p��mo do IPv6, DHCPv6...), p��padn� ru�n�.
Adresov�n� s�t� je obdobn� jako u IPv4. Tedy z�pis
2001:0db8:0000:0000::/64
ud�v� prefix s�t�, kter�
obsahuje adresy 2001:0db8:0000:0000:0000:0000:0000:0000
a� 2001:0db8:0000:0000:ffff:ffff:ffff:ffff
.
Pro ��ely autokonfigurace je mo�n� pou��t EUI-64 form�t hostitelsk�
��sti adresy. P�i zapojen� do s�t� se za��zen� link local
multicastem dot�e routeru na prefix s�t�. Kdy� dostane odpov��,
pou�ije pro sestaven� sv� IP adresy pr�v� tento prefix. Zb�vaj�c�ch
64 bit� potom ur�� ze sv� fyzick� adresy (pro Ethernet
z MAC adresy). Nap�. na Ethernetov� s�ti by si za��zen� ze sv�
MAC adresy s hodnotou 00:D0:B7:6B:4A:B2
vytvo�ilo
sufix adresy takto:
Mezi t�et� a �tvrt� byte MAC adresy (tedy na hranici mezi
identifik�torem v�robce a identifik�torem konkr�tn�ho exempl��e
s��ov� karty) se vlo�� vzorek fffe
. V�sledkem tedy je
sufix 00d0:b7ff:fe6b:4ab2
. Ten se ale je�t� nepou�ije,
v takto vznikl�m sufixu se provede dopln�k 15. nejvy���ho
bitu. V�sledn� sufix pou�it� pro sestaven� IP adresy v na�em
p��kladu by tedy byl 02d0:b7ff:fe6b:4ab2
.
Pr�v� tento d�mon se star� o odpov�di na dotazy p�ipojen�ch nenakonfigurovan�ch za��zen�. Na jejich dotaz jim ode�le prefix s�t�, ze kter�ho si v��e uveden�m zp�sobem vytvo�� vlastn� IP adresu.
Po instalaci je t�eba d�mona nakonfigurovat. Nastaven� se prov�d�
v konfigura�n�m souboru, kter� m��e b�t nap�. v souboru
/etc/radvd/radvd.conf
. Velmi jednoduch� konfigurace
m��e vypadat nap�. takto:
interface eth0 # Konfigurace pro rozhrani eth0. { AdvSendAdvert on; # Demon bude odpovidat na dotazy. prefix 2001:db8:0:1::/64 # Jako odpoved bude zasilan prefix 2001:db8:0:1:: { AdvAutonomous on; # Prefix muze byt pouzit pro autonomni autokonfiguraci. }; };
GNU/Linux m� podporu pro IPv6 p��mo v j�d�e. Prvn� k�d byl p�id�n do j�dra 2.1.8 v roce 1999. Standard se v�ak rychle vyv�jel a podpora IPv6 p��mo v j�d�e zaost�vala za aktu�ln�m stavem standardu. V roce 2000 byl v Japonsku zalo�en projekt USAGI, kter� pomohl implementovat pot�ebn� chyb�j�c� funkce a aktualizovat ty zastaral�.
Se za��tkem v�voje j�dra 2.5.x byly USAGI patche p��li� velk� na to, aby je bylo mo�no pln� za�lenit do 2.4.x jader a tento stav se ji� nikdy nepoda�ilo zlep�it.
V sou�asn� dob� je mnoho USAGI patch� standardn� sou��st� jader 2.6.x. V�voj dal��ch funkc� v USAGI projektu pokra�uje a �as od �asu jsou za�len�ny do vanilla j�dra.
Pro FreeBSD existuje projekt KAME, kter� se star� o podporu IPv6 v tomto syst�mu. Minim�ln� v minulosti byla jeho podpora IPv6 na vy��� �rovn� ne� v GNU/Linuxu.
Pro zapnut� podpory IPv6 v GNU/Linuxu je t�eba m�t j�dro
zkompilovan� s jeho podporou (volba
CONFIG_IPV6=[y | m]
). Pak sta�� p�i�adit rozhran�
IPv6 adresu a nastavit sm�rov�n�.
ifconfig eth0 inet6 add fec0::2
route -A inet6 add default fec0::1
V sou�asn� dob� neexistuje ��dn� glob�ln� IPv6 s��. Pro ��ely testov�n� tedy vznikaj� r�zn� virtu�ln� IPv6 s�t�, kter� tunely skrz IPv4 s�t� spojuj� r�zn� IPv6 s�t� do jedin� virtu�ln� glob�ln� s�t�. Jednou z nejzn�m�j��ch byla p�te�n� virtu�ln� IPv6 s�� 6bone. Ta je od 6. �ervna 2006 ve st�diu ukon�ov�n� �innosti.
Tunelov�n� prob�h� tak, �e na rozhran� mezi IPv6 a IPv4 s�t� existuj� routery, kter� p�i odes�l�n� dat bal� IPv6 pakety do IPv4 paket� a ty pos�laj� prot�j��m hrani�n�m router�m. Ty IPv6 packet zase vybal� a po�lou je do sv� IPv6 s�t�.
iptunnel add mujtunel mode sit remote 10.0.20.1 local 10.0.20.2 ttl 16
ifconfig mujtunel up
ifconfig mujtunel add fec0:0:0:20::2
route -A inet6 add fec0:0:0:20::/64 dev mujtunel
Pokud chceme ps�t programy, kter� budou bez probl�m� fungovat nejen nad sou�asn�mi IPv4 s�t�mi, ale bez nutnotsti z�sahu do k�du i po p�echodu na IPv6, je nutn� pou��vat spr�vn� funkce pro pr�ci se s�t�.
Funkce getipnodebyname(3)
, getipnodebyaddr(3)
,
getservbyname(3)
a getservbyport(3)
byly
zavr�eny a nahrazeny spole�n�m rozhran�m
getaddrinfo(3)
. To um� pracovat jak nad IPv4, tak nad IPv6
s�t�mi.