IPv6

Jan Dosoudil, 359718@mail.muni.cz

Obsah

IPv6

Interet protocol verze 6 je protokol, který by měl postupně nahradit současně používaný protokol IPv4. Zachovává většínu jeho principů, rozšiřuje možnosti adresace a některé nepoužívané vlastnosti již neimplementuje a nové přidává. Základním rozdílem je prodloužení délky adresy z 32b na 128b. Z Důvodu prodloužení adresy se používá úspornější zápis adresy, jako svojice bajtů zapsaných v hexa oddělených dvojtečkou. Pokud adresa obsahuje skupinu nulových bajtů, je možné nahradit jednu skupinu nulových bajtů dvěmi dovjtečkami. IPv6 pro zjišťování ethernetových adres nepoužívá ARP protokol, ale ICMPv6. IPv6 odstraňuje broadcast, nahrazuje ho multicastem. Některé příklady IPv6 adres:

::1			# localhost
::/0			# all hosts (pouze pro softwarové účely)
fe80::/10		# linkové adresy
fc00::7			# místní adresy
ff02::1 		# ip6-allnodes
ff02::2 		# ip6-allrouters
ff02::3 		# ip6-allhosts
2000::/3		# veřejný internet
2002::/16		# tunelování IPv6 in IPv4

Automatická konfigurace

IPv6 umožňuje automatickou konfiguraci koncových zařízení založenou na principu prozkoumávání okolí. Do sítě je vysílán packet s informacemi o síti, který obsahuje prefix místní sítě, příznaky routrů, ... Pro automatickou konfiguraci klient čeká, zda dorazí packet s ohlášením prefixu místní sítě. Pokud takový packet obdrží, vygeneruje svoji adresu spojením prefixu sítě (/64) a místní adresu, který může být vygenerována např. pomocí metody EUI-64. EUI-64 vzniká rozšířením 48b MAC adresy na 64b vložením FF-FE za 3. bajt MAC adresy. Po vygenerování adresy se klient pokusí ověřit, že adresa neni použávána jiným uzlem a pokud není, nastaví ji. Směrovací informace obdrží jako součást ohlášeních packetů. Pro konfiguraci používaných DNS serverů je nutno použít např. DHCPv6.

Pro umožnění automatické konfigurace v sítí je potřeba zajistit vysílání ohlašovacích packetů. O tuto službu se v linux stará služba RADVD

Statická konfigurace

V linuxu se IPv6 adresy a směrování nejpohodlněji nastavuje pomocí nástroje ip z balíku iproute. Pro trvalé nastavení je vhodně použít nástroje distribuce.

Pro přidání IPv6 adresy mužeme použít příkaz:

ip -6 address add 2001:db8::10/64 dev eth0

Pro přidání směrování na výchozí bránu můžeme použít příkaz:

ip -6 route add default via 2001:db8::1/64

Konfigurace RADVD

Pokud chceme poskytovat IPv6 služby pomocí autokonfigurace, musíme nakonfigurovat rozesílání ohlašovacích práv do sítě. Nejvhodnější místo instalece je na routeru sítě. V linuxu se o rozesílání ohlašovacích zpráv stará RADVD. Jeho základní konfigurace učuje, jaký prefix síté se bude vysílat na kterém síťovém rozhraní a jaké služby uzel poskytuje (např. router)

interface eth0
{
        AdvSendAdvert on;
        prefix 2001:db8:0:1::4/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};

Tunelování

Pro přechod od IPv4 k IPv6 je nutné zajistit současnou funkčost obou protokolů i bez přímé konektivity jednoho z protokolů. Preferovaným způsobem přenosu IPv6 packetů přes IPv4 síť je pomocí tunelování. Doporučenou formou tunelování je 6to4, který vyžaduje, aby koncový uzel měl veřejnou IPv4 adresu, protože komunikace probíhá podle adres určených IPv4 adres zakódovaných do IPv6 adresy. Packety mezi koncovými účastníky IPv6 spojení probíhají v každém směru obvykle jinou cestou. IPv4 packety do IPv6 sítě probíhají přes tulelové zprostředkovatele, kteří mají společnou anycastovou adresu 192.88.99.1. Ve směru z nativní IPv6 sitě je packet měrován přes nejbližšího tunelového zprostředkovatele, který z cílové IPv6 adresy určí IPv4 adresu, na kterou odešle zabalený IPv6 packet. Testovací tunlovací metoda přes 6bone již není možná, projekt ukončil svoji činnost. Dalšími zprostředkovateli je např. tunnelbroker.net

Zprovoznění tunelu od tunnelbroker.net

Tunnelboker.net umožňuje několik způsobů tunelování podle možností koncového uživatele. Pokud chceme využívat služby tunnelbroker.net, musíme provést registraci, vyplnit informace o koncovém bodu, určit tunelovací centrum a nakonfigurovat router. Při dostupnosti veřejné IPv4 adresy lze použít obdobnou konfiguraci jako pro 6to4 tuel:

modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 216.66.80.30 local 88.41.52.5 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1ffa:418::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr

Psaní aplikací kompatibilních s IPv6

Aplikace psané v c pomocí funkcí getaddrinfo(3) umožnuje bez zvětšených nákladů psát apikace kompatibilní s IPv4 i IPv6. Manuálová stránka obsahuje ukázky kódu spráného užití.

Literatura