IPv6

Emil Míček, xmicek@fi.muni.cz


Obsah


Motivace

Internetový protokol verze 6 je standard síťové vrstvy používaný ke komunikaci elektronických zařízení přes paketové sítě. Je to nástupce IPv4. Hlavní rozdíly oproti IPv4:


IPv6 adresování

Adresa IPv6 je dlouh8 128 bitů a zapisuje se jako sekvence osmi šestnáctibitových částí v hexadecimálním formátu oddělených tečkou. Úvodní nuly v jednotlivých částech adresy se vypouští, jedna sekvence nul se může nahradit dvěma dvojtečkami (::).
IPv6 adresa je typycky rozdělena na dvě části, 64 bitů tvoří adresa (pod)sítě, zbylých 64 bitů je adresa počítače, která je tvořena buď automaticky z MAC adresy, nebo je přiřazována sekvenčně.
Poslední 4 byty v adrese se mohou zapsat jako 4 čísla v desítkové soustavě oddělené tečkou. Tato notace se často používá u adres zajišťujících kompatibilitu s IPv4 (viz dále). Adresa ::ffff:1.2.3.4 je tedy totožná s adresou ::ffff:102:304.
Adresa sítě se zapisuje pomocí CIDR notace.
Speciální adresy:

Adresy v IPv6 se dělí na: Není broadcast: nahrazen multicastem na všechny počítače.

Typy IPv6 adres:


EUI-64

Při autokonfiguraci je 64bitová suffix adresy, určující adresu daného počítače určen z adresy rozhraní ve formátu EUI-64, tato adresa je buď přímo přidělena výrobcem k dané síťové kartě, nebo se určí z MAC adresy následovně: Doprostřed MAC adresy vložíme FFFE a negujeme 7. bit zleva.

Příklad

MAC adresa:
00:04:76:47:8e:81

Upravený EUI-64 formát adresy:
0204:76ff:fe47:8e81


Tunely nad IPv4

Aby se izolovaný počítač dokázal připojit k IPv6 síti, musí k tomu využít existující IPv4 infrastrukturu. Tento proces se nazývá tunelování, a podle způsobu, jakým se tunel vytváří se dělí na několik druhů.


Konfigurace v Gentoo


radvd

radvd - router advertisment deamon - služba běžící na routeru, která zajišťuje autokonfiguraci jednotlivých ipv6 stanic v síti. Instalace v gentoo:


Projekt 6bone

6bone je síť poskytující prostor pro testování nového IPv6 protokolu. 6bone vznikla v dubnu 1996, začínala jako virtuální síť propojující jednotlívá IPv6 zařízení pomocí IPv4 tunelů, postupně začala přidávat nativní IPv6 části. Vrchol 6bone nastal v roce 2003, kdy propojovala cca 1000 sítí v 50 různých zemích.


Psaní aplikací kompatibilních s IPv6

Pro psaní aplikací kompatibilních s IPv6 je zapotřebí správně použít funkci getaddrinfo.

       int getaddrinfo(const char *node, const char *service,
                       const struct addrinfo *hints,
                       struct addrinfo **res);
                       
       struct addrinfo {
           int     ai_flags;
           int     ai_family; /* nastavit na PF_UNSPEC */
           int     ai_socktype;
           int     ai_protocol;
           size_t  ai_addrlen;
           struct sockaddr *ai_addr;
           char   *ai_canonname;
           struct addrinfo *ai_next;
       };                       


Užitečné odkazy