IPv6

Michal R��i�ka, xruzick7@fi.muni.cz


Obsah


1  Pro� IPv6 a kam se pod�lo IPv5

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.


2  Adresov�n�

2.1  Z�pis adres

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:

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.

2.2  Typy adres

2.2.1  Adresy bez speci�ln�ho prefixu

2.2.1.1  Zp�tnovazebn� smy�ka (loopback)

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.

2.2.1.2  Nespecifikovan� adresa

Adresa typu „kdokoli“, tedy adresa 0.0.0.0 v IPv4, je v IPv6 adresa 0000:0000:0000:0000:0000:0000:0000:0000.

2.2.1.3  IPv4 adresa mapovan� do IPv6

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.

2.2.1.4  IPv4 kompatibiln� IPv6 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.

2.2.2  S��ov� ��st adresy (prefix s�t�)

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         |
+----------+-------------------------+----------------------------+
                
2.2.2.2  Site local adresy

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         |
+----------+---------+---------------+----------------------------+
                
2.2.2.3 Unik�tn� lok�ln� unicast adresy

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.

2.2.2.4  Glob�ln� unicast 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��.

2.2.2.5  Anycast adresy

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.

2.2.2.6  Multicast adresy

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.

2.2.3  Hostitelova ��st adresy

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�.

2.3  Adresov�n� s�t�

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.


3  Autokonfigurace za��zen� po p�ipojen� do s�t�

3.1  EUI-64 form�t hostitelovy ��sti adresy

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.

3.2  Router advertisment deamon (radvd)

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.
        };
};
        

4  IPv6 pod GNU/Linuxem

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


5  Tunelov�n� IPv6 p�es IPv4 s�t�

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


6  Kompatibilita aplikac�

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)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.


Pou�it� zdroje

  1. Linux IPv6 HOWTO
  2. RFC 4193
  3. �l�nek o IPv6 na Wikipedia.org
  4. radvd.conf(5) – Linux man page
  5. getaddrinfo(3) – Linux man page
  6. Materi�ly k p�edm�tu PV005
  7. Archiv refer�t� o IPv6 p�edm�tu PV090