IPv6
Pavel Zelenka, spajk@mail.muni.cz
Obsah
Co je IPv6
Internetový protokol verze 6 je protokol síťové vrstvy (network layer) referenčního modelu ISO/OSI, která se stará o směrování v síti a síťové adresování. IPv6 je následník současně nejrozšířenějsí verze 4 IP protokolu.
Proč nový protokol?
- brzké vyčerpání adresního prostoru
- autokonfigurace
- bezpečnost
- podpora nových služeb včetně mobility
Historie
- 1990 - Predikce vyčerpání v roce 1994
- 1992 - Vyčerpání až v letech 2005-2011
- 1993 - Výzva a požadavky pro návrhy IPng (IP Next Generation), RFC 1550
- 1994 - Vznik pracovní skupiny IPng
- 1995 - První specifikace IPv6, RFC 1883
- 1996 - Vzniká 6Bone experimentální síť (v roce 2006 ukončen provoz)
- 1997 - První návrh adresního formátu "poskytovatele"
- 1998 - První IPv6 výměnný bod "6tap"
- 1999 - Začíná přidělování IPv6 prefixů
- 2000 - Podpora IPv6 ve standardních výrobcích
- 2002 - Nativní IPv6 mezinárodní páteř 6NET
Kde je IPv5
IPv5 je skutečné označení pro Internet Stream Protocol. Šlo o experimentální protokol přenášející hlas, video a distribuované simulace. Byl popsán již v roce 1979 a později upraven některými dalšími RFCs. Byl connection-oriented, pro přenos používal pakety a dokonce garantoval Quality of Service (QoS). Veřejného použití se mu však nedostalo.
Vlastnosti
- Velký adresní prostor - 2128 (zhruba 3.4×1038) adres, což odpovídá počtu 5×1028 adres pro každého z 6,5 miliardy dnes žijících lidí
- Bezstavová autokonfigurace adres
- Multicast
- Více adres na jednom rozhranní
- Adresy místní linky
- Jumbogramy (velikost paketů až 4GB)
- Bezpečnost v síťové vrstvě (IPsec přímo v IPv6)
- Mobilita (přechod mezi sítěmi se stejnou adresou)
- Nepřítomnost kontrolního součtu (kontrola správnosti až u příjemce)
- Zakázána fragmentace po cestě (je možná fragmentace vysílajícím uzlem)
Hlavička IPv6 paketu
- Verze - Číslo verze IP = 6 (4 b)
- Třída provozu - Priorita paketu (8 b)
- Značka toku - Identifikuje proud datagramů od jednoho odesilatele ke stejnému cíli se stejnými vlastnostmi (20 b)
- Délka dat - Délka paketu v bytech bez základní hlavičky (16 b)
- Další hlavička - Identifikuje typ hlavičky, která následuje za touto hlavičkou (8 b)
- Routing - extended Routing
- Fragment - fragmentace and znovusestavení paketu
- Šifrování - šifrování obsahu
- Autentizace - integrita and autentizace
- Hop-by-Hop Option - speciální typ, který je používán na hop-by-hop processing
- Destination Options - doplňující informace pro cílový uzel
- Maximum skoků snižuje o 1 každý uzel - dříve TTL (8 b)
- Zdrojová adresa (128 b)
- Cílová adresa (128 b)
Zápis adresy
Adresa podle protokolu IPv6 má 128 bitů a zapisuje se jako osm skupin čtyř hexadecimálních cifer oddělených dvojtečkou, například
2001:0db8:0000:0000:0000:0000:1428:57ab
Několik po sobě jdoucích nulových skupin je možné vynecha a psát místo nich jen dvě dvojtečky po sobě. V adrese může být jenom jedna dvojitá dvojtečka, jinak by adresa mohla být nejednoznačná.
2001:0db8::1428:57ab
V URL se IPv6 adresy zapisují obalené v hranatých závorkách, tak se od sebe jednoznačně odliší adresa a port.
https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
Síťové prefixy se v IPv6 zapisují podobně jako v případě IPv4, tedy pomocí CIDR notace.
2001:0db8:1234::/48
Způsoby doručování
Podobně jako v IPv4 se v IPv6 používá především unicast - to odpovídá
end-to-end struktuře internetu. Módy doručování jsou následující:
- unicast - adresy se přiřazují jednotlivým síťovým rozhraním.
- multicast - odpovídá multicastu v IPv4; adresuje skupinu příjemců. V IPv6 neexistuje broadcast, místo toho se používá multicast se speciání adresou all-hosts.
- anycast - podobně jako v případě multicastu je adresa přiřazena skupině síťových rozhraní, ovšem pakety se nedoručují všem ve skupině, doručí se vždy pouze tomu nejbližšímu.
Adresování
- Nespecifikovaná adresa - ::/128 (samé nuly)
- Loopback - ::1/128 (nesmí se dostat mimo uzel)
- Link-local - fe80::/10 - (nesmí projít směrovačem = pouze lokální spojení)
- Site-local - fc00::/7 - (omezení na jedno "místo", typicky organizace)
- Global - 2::/3 - (unikátní na celém světě případně i mimo něj :-) )
- 3 bity určují adresu (001)
- n bitů (zpravidla 13) je adresa registrační autority (TLA ID)
- m bitů (zpravidla 32) je ISP (NLA ID)
- o bitů (zpravidla 16) je uživatel nebo organizace (SLA ID)
- zbývajících 125-n-n-o bitů (zpravidla 64) je vnitřní záležitostí uživatele
- Multicast - <1111 1111 0RPT dosah zbytek=adresa-skupiny> (bity R, P a T představují volby)
Konfigurace v Linuxu
Pro zajištění správné funkcionality v Linuxu je prvním krokem mít v jádře zakompilovánu podporu IPv6. Potom lze IPv6 rozhraní konfigurovat obvyklým způsobem pomocí
ifconfig a route.
ifconfig eth0 inet6 add fec0::30
route -A inet6 add default fec0::1
Tunel vytvoříme pomocí příkazu iptunnel. Tím vytvoříme IPv6-to-IPv4 rozhraní, které nakonfigurujeme ho pomocí ifconfig.
iptunnel add 6to4 mode sit remote 10.0.90.1 local 10.0.90.2 ttl 8
ifconfig 6to4 up
ifconfig 6to4 add fec0:0:0:90::2
route -A inet6 add fec0:0:0:90::/64 dev 6to4
Chceme-li, aby Linuxový stroj fungoval jako router, musíme na něm zprovoznit radvd - démona zpracovávajícího zprávy typu router advertisement a router solicitation.
emerge -v radvd
Vytvoření tunelu po registraci na TunnelBroker.net
ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.66.80.30
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:1f0a:155c::2/64
route -A inet6 add ::/0 dev sit1
Literatura