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:
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:
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
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ů.
Device Drivers ---> Networking support ---> Networking options ---> <*> The IPv6 protocol (EXPERIMENTAL)
cd /etc/init.d/ ln -s net.lo net.6to4Konfigurace v souboru /etc/conf.d/net
link_6to4="eth0" config_6to4=( "ip6to4" ) depend_6to4() { need net.eth0 }
/etc/init.d/net.6to4 start ifconfig 6to4Měli bychom mít 6to4 adresu začínající prefixem 2002:
radvd - router advertisment deamon - služba běžící na routeru, která zajišťuje autokonfiguraci jednotlivých ipv6 stanic v síti. Instalace v gentoo:
interface eth1 { (Send advertisement messages to other hosts) AdvSendAdvert on; (Fragmentation is bad(tm)) AdvLinkMTU 1280; MaxRtrAdvInterval 300; (IPv6 subnet prefix we've been assigned by our PoP) prefix 2001:470:1F00:296::/64 { AdvOnLink on; AdvAutonomous on; }; };
/etc/init.d/radvd start rc-update add radvd default
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.
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; };