IPv6 Miroslav Čech (aktualizováno 2009, J. Blažej)
Literatura P.Satrapa: IPv6, Neocortex sro., Praha 2002 RFC2460 Internet Protocol, Version 6 (IPv6) Specification [December 1998] RFC2373 IP Version 6 Addressing Architecture [July 1998] a další
Proč zavést IPv6? Velký adresový prostor Hierarchie adres a mobilita Multicast/Anycast Bezpečnost (IPsec, Source Route) Návěští pro tok dat Rychlejší směrování Jumbo datagramy( > 64 KB)
Proč nezavést IPv6? Network Address Translation (NAT) Classless InterDomain Routing (CIDR) DHCP for IPv4 IPsec for IPv4 Mobility for IPv4 Jumbo datagramy? http://[2002:09fe:fdfc:2a41:fe21:08c9: e133:fe01]/index.html
Adresace v IPv6 Délka adresy IPv4: jen 4 byty (32 bitů) = 2 32 = 4.3 10 9 IPv6: 16 bytů (128 bitů) -2 128 = 3,4 x 10 38 možných adres 340282366920938463463374607431768211456 adres 6,5 x 10 28 pro každého člověka na Zemi cca 10 17 adres na mm 2 povrchu Země
Formát zápisu adresy klasický IPv4 formát: 125.126.127.128 nevhodný pro 128 bit adresu IPv6 používá hexadecimální formát skupiny po 2 bytech - příklad: 4711:0000:0000:0000:0000:0005:EEC1:6008 1234:0000:0000:CDE0:0000:0000:0000:0000
Formát zápisu adresy Komprese: Smazání počátečních nul Nahrazení skupiny nul dvěma následujícími dvojtečkami (pouze jednou v adrese!) Příklad: 1) 4711:0000:0000:0000:0000:0005:EEC1:6008 = 4711:0:0:0:0:5:EEC1:6008 = 4711::5:EEC1:6008 2) 0000:0000:0000:0000:0065:78C1:009A:6008 = ::65:78C1:9A:6008
Speciální adresy loopback: 0:0:0:0:0:0:0:1 = ::1 Pro použití v tzv. tunelu: 0::FFFF:a.b.c.d 139.18.38.71 (IPv4) = ::FFFF:139.18.38.71 (IPv6) = ::FFFF:8b12:2647 (IPv6) IPv4-kompatibilní adresa ::a.b.c.d 0.0.0.0.0.0.139.18.38.71
Formát adres IPv6 adresy se skládají z prefixu a lokální části (jako v IPv4) Příklad: 3FFE:400:280:0:0:0:0:1/48 prvních 48 bitů pevných (prefix) a zbývajících 80 bitů může být přiřazeno v lokální subsíti
URL (URI) RFC 2732 http://[1080::8:800:200c:417a] http://[::ffff:147.32.6.46]:80/index.htm http://[2010:836b:4179::836b:4179]
Architektura adres V IPv4 síťové třídy: A, B, C, D V IPv6 tři rozdílné typy adres: Unicast (individuální) Multicast (skupinové) Anycast (výběrové) - nové v IPv6
Struktura globální individuální adresy TLA identifikátor TLA (Top Level Aggregation) NLA (Next Level Aggregation) SLA (Site Level Aggregation) identifikátor podsítě.
Skupinové adresy Prvních 8 bitů samé jedničky FF00::/8 Další 4 bity tzv. Volba První 3 bity zatím povinně 0 Poslední bit T 0 = dobře známá adresa skupiny (trvalá), 1= dočasně přidělená Další 4 bity tzv. Dosah skupiny Např. rozhraní, podsíť, místo, atd. Dalších 112 bitů adresa skupiny Např. 101 - NTP servery
Výběrové adresy Novinka ale velká neznámá Nebyla rezervována samostatná část adresového prostoru nejde rozeznat od individuální adresy Ve směrovacích tabulkách zabírá zvláštní položku obrovský rozsah tabulek Využití např. rozložení zátěže web serverů. DNS serverů, apod. Bezpečnostní problémy svévolný vstup do skupiny - nelze ověřit členství
Povinné adresy uzlu IPv4 rozhraní má zpravidla 1 adresu IPv6 povinně několik adres Lokální linková adresa Všechny přidělené individuální adresy Lokální smyčka (loopback) Skupinová adresa pro všechny uzly Skupinová adresa pro vyzývaný uzel pro všechny přidělené individuální adresy Všechny skupinové adresy, jejichž je členem
Povinné adresy uzlu Lokální linková FE80::022A:FFF:FE32:5ED1 Přidělená 1. individuální 2AC0:56:A319:15:02A2:FFF:FE32:5ED1 Přidělená 2. individuální 2AC0:56:A319:3:02A2:FFF:FE32:5ED1 Lokální smyčka - ::1 Všechny uzly v rámci rozhraní FF01::1 Všechny uzly v rámci linky FF02::1 Pro vyzývaný uzel FF02::1:FE32:5ED1 Přidělená skupinová FF15::AC07
Formát datagramu IPv6
IPv4 a IPv6 Vers 4 IHL Type of Service Total Length Vers 6 Traffic Class Flow Label Identification Flags Frag Offset Payload Length Next Hdr Hop Limit Time to Live Protocol Header Checksum Source Address Source Address Destination Address IP Options v4 hlavička = 20 Bytů + Options v6 hlavička = 40 Bytů Destination Address
Formát datagramu Version (4b) číslo verze Traffic class (8b) zařazení do přepravní třídy pro QoS zatím nebylo definováno (obdoba Type of Service) Flow Label (20b) značka toku (novinka) zatím není přesně definováno pro vymezení vlastnosti spojení (pro urychlení rozhodovaní směrovačů)- Datagram je přiřazen určitému toku na základě 3 udajů IP odes., IP příj., značka toku.
Formát datagramu Payload Length (16b) délka datagramu, počet bytů za standardní hlavičkou (obdoba Total Length) Next Header (8b) další hlavička identifikátor, jaká hlavička či jaký druh dat následuje za standardní hlavičkou Hop Limit (8b) dosah každý směrovač dekrementuje o 1 (obdoba TTL) Source (Destination) Address IPv6 adresy
Formát datagramu Oproti IPv4 chybí následující informace: Rozšiřující volby (Options) nahrazeno zřetězením hlaviček Fragmentace IPv6 požaduje přenos datagramů minimálně o velikosti 1280 B (MTU). Fragmentace bude minimální, a pokud bude, zajistí zřetězené hlavičky. Kontrolní součet není typicky vykonává vrstva síťového rozhraní. Směrovače nemusí přepočítávat kontrolní součet!
Zřetězení hlaviček Každá hlavička je samostatným blokem, k propojení slouží položka Next Header identifikuje, jaký typ je další hlavička Poslední hlavička v položce Next Header obsahuje informaci o typu dat (dříve Protocol) Pokud datagram neobsahuje rozšířené hlavičky, pak základní hlavička obsahuje v Next Header identifikaci nesených dat (např. 6 pro TCP)
Kódy rozšiřujících hlaviček a typ dat 0 volby pro všechny (Hop-by-hop opt.) 43 směrování (routing) 44 fragmentace (fragment) 50 šifrování obsahu (ESP) 51 autentizace (AH) 59 poslední hlavička (no next header) 60 volby pro cíl (destination options) 6 TCP 8 EGP 9 IGP 17 UDP 58 ICMP
Pořadí hlaviček Základní hlavička IPv6 Volby pro všechny (Hop-by-hop options) Volby pro cíl pro první cílovou adresu a případně další uvedené v hl. Směrování Směrování (Routing) Fragmentace (Fragment) Autentizace (Authentication) Šifrování obsahu (Encapsulating security payload) Volby pro cíl (Destination options) pro konečného příjemce
Fragmentace Fragmentace v IPv4 může fragmentovat libovolný směrovač na cestě. Fragmentace v IPv6 fragmentuje výlučně odesilatel. Pokud směrovač na cestě chce odeslat datagram linkou s menším MTU, zahodí jej a odešle ICMP zprávu příliš velký datagram. Odesílatel přidá rozšiřující hlavičku fragmentace a zmenší datagram.
ICMPv6 Typy ICMP zpráv Definováno v RFC2463 0-127 = chybové 128-255 = informační 1 Destination Unreachable 2 Packet Too Big 3 Time Exceeded 4 Parameter Problem 128 Echo Request 129 Echo Reply 130 - Group Membership Query 131 Group membership Report 132 Group Membership Reduction 133 Router Solicitation 134 Router Advertisement 135 Neighbor Solicitation 136 Neighbor Advertisement 137 - Redirect
Hledání sousedů V IPv4 protokol ARP, v IPv6 komplexnější mechanismus (RFC 2461) Zjišťování linkových adres uzlů Hledání směrovačů Přesměrování Zjišťování prefixů, parametrů sítě a dalších údajů pro automatickou konfiguraci Ověřování dosažitelnosti sousedů Detekce duplikovaných adres
Hledání linkových adres Obdoba ARP, není ale broadcast Vysílá na definované skupinové adresy FF02:0:0:0:0:1:FF00::/104 Vezme posledních 24 bitů z hledané IP adresy a přidá za prefix = adresa pro vyzývaný uzel (ICMP zpráva Výzva sousedovi) Oslovený počítač odpoví zprávou Ohlášení souseda Každý uzel udržuje tabulku typu cache
Automatická konfigurace Stavová konfigurace použití DHCP serveru DHCPv6 (jako v IPv4) Bezestavová konfigurace nový mechanismus RFC 2462 V síti jsou směrovače, které vědí vše potřebné V náhodných intervalech vysílají zprávu ohlášení směrovače, kde jsou potřebné údaje (např. prefix sítě, implicitní směrovač, MTU, atd)
Určení vlastní adresy Vytvoří linkovou adresu k prefixu lokálních linkových adres FE80:: přidá identifikátor rozhraní (např. fyzická Ethernet adresa) Ověří, zda neexistuje stejná linková adresa dotáže se sousedů Z údajů zprávy Ohlášení směrovače zjistí, zda má použít DHCP server či vytvořit adresu sám ( k zjištěnému prefixu sítě přidá identifikátor rozhraní
DNS IPv6 z důvodu dlouhých IP adres vyžaduje bezpodmínečně DNS Velké problémy jsou dvě RFC specifikace RFC 1886 z roku 1995 a RFC 2874 z roku 2000 (nejprve prohlášeno za platné, nyní jen experimentální DNS server BIND 9 podporuje obě RFC a automaticky mezi nimi konvertuje odpoví formátem, ve kterém byl položen dotaz
DNS RFC 1886 RFC 2874 Nový typ dopředného záznamu AAAA ( IPv4 A) pc AAAA 2345:6:7:1:2:45FF:FE67:89AB Reverzní dotaz B.A.9.8.7.6.E.F.. 5.4.3.2.ip6.arpa Možné, ale nepraktické Neumožňuje jednoduché přečíslování sítě (změna prefixu), používání více prefixů, delegaci revezních domén
DNS RFC 2874 Zavádí nový typ A6 (neobsahuje celou adresu, jen její konec a odkaz na prefix) Jméno A6 délka_prefixu pokr_adresy prefix Např. pc A6 64 ::123:45FF:FE67:89AB sit1.ip6 Pro každou doménu musí existovat poddoména ip6 sit1.ip6 A6 48 0:0:0:1:: ip6 ip6 A6 0 2345:67:89AB::
Mobilita Nemá zatím RFC, pouze draft Základní myšlenka každé zařízení je někde doma existuje domácí síť a v ní domácí adresa Domácí adresa je neměnná (a v DNS). Na této adrese je uzel dostupný (i když není v domácí síti) Když uzel přejde do jiné sítě, obdrží dočasné adresy Dosažitelnost uzlu zajišťuje domácí agent (Home agent) jeden ze směrovačů
Mobilita
Mobilita Uzel se registruje o domácího agenta
Mobilita
Mobilita Optimalizace cesty
Mobilita Změna lokality
Koexistence IPv4 a IPv6 Principy koexistence (bude asi dlouho existovat) Dvojí zásobník zařízení podporuje jak IPv4, tak IPv6 (alespoň některá zařízení musí podporovat tento způsob) Tunelování datagram se zabalí jako data do jiného datagramu, který daná sít dokáže přepravit pro komunikaci dvou uzlů se stejným protokolem přes síť s jiným protokolem Translátory pro komunikaci dvou zařízení s jiným protokolem musí existovat zařízení, které překládá protokoly.
Mýty o IPv6 IPv6 nabízí QoS není pravda nic se ve srovnání s IPv4 nezměnilo. Flow ID nemá praktický význam (je stejné jako TOS) IPv6 nabízí bezpečnost není víc nebo méně bezpečné než IPv4 oba protokoly mohou používat IPsec (autentizace a šifrování) IPv6 nabízí autokonfiguraci je i v IPv4 (DHCP) IPv6 řeší směrování není tak úplně pravda. Záleží na topologii a směrovacích tabulkách. Při dobrém návrhu topologie může být směrování efektivní (to platí ale i v IPv4). Je pravda, že méně zatěžuje routery (nepočítá kontrolní součty)
IPv6 versus IPv4 Firmy nechtějí investovat do zatím neověřené technologie. IPv4 přináší okamžité zisky Hlavní rozdíl v technologiích je ve velikosti adresového prostoru Je možné, že tento důvod při rozmachu malých a chytrých zařízení (mobilní telefony, fotoaparáty, kamery, ) převáží
Další odkazy http://www.ipv6.org http://www.ipv6forum.com http://www.6bone.net
Request For Comments Internet Protocol, Version 6 (IPv6) Specification (RFC 1883) Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) (RFC 1885) DNS Extensions to support IP version 6 (RFC 1886) IP Version 6 Addressing Architecture (RFC 1884) IPv6 Testing Address Allocation (RFC 1897) Path MTU Discovery for IP version 6 (RFC 1981) OSI NSAPs and IPv6 (RFC 1888) A Method for the Transmission of IPv6 Packets over Ethernet Networks (RFC 1972) Neighbor Discovery for IP Version 6 (IPv6) (RFC 1970) Transmission of IPv6 Packets Over FDDI (RFC 2019) IP Version 6 over PPP (RFC 2023) An IPv6 Provider-Based Unicast Address Format (RFC 2073) Basic Socket Interface Extensions for IPv6 (RFC 2133) TCP and UDP over IPv6 Jumbograms (RFC 2147) Advanced Sockets API for IPv6 (RFC 2292) IP Version 6 Addressing Architecture (RFC 2373) An IPv6 Aggregatable Global Unicast Address Format (RFC 2374) IPv6 Multicast Address Assignments (RFC 2375) Neighbor Discovery for IP Version 6 (IPv6) (RFC 2461) IPv6 Stateless Address Autoconfiguration Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification (RFC 2463) Transmission of IPv6 Packets over Ethernet Networks (RFC 2464) Internet Protocol, Version 6 (IPv6) Specification (RFC 2460) IP Version 6 Management Information Base for the Transmission Control Protocol (RFC 2452) IP Version 6 Management Information Base for the User Datagram Protocol (RFC 2454)
Request For Comments Management Information Base for IP Version 6: Textual Conventions and General Group (RFC 2465) Management Information Base for IP Version 6: ICMPv6 Group (RFC 2466) Proposed TLA and NLA Assignment Rules (RFC 2450) Transmission of IPv6 Packets over FDDI Networks (RFC 2467) Transmission of IPv6 Packets over Token Ring Networks (RFC 2470) IPv6 Testing Address Allocation (RFC 2471) IP Version 6 over PPP (RFC 2472) Generic Packet Tunneling in IPv6 Specification (RFC 2473) Transmission of IPv6 Packets over ARCnet Networks (RFC 2497) IP Header Compression (RFC 2507) Reserved IPv6 Subnet Anycast Addresses (RFC 2526) Transmission of IPv6 over IPv4 Domains without Explicit Tunnels (RFC 2529) Basic Socket Interface Extensions for IPv6 (RFC 2553) IPv6 Jumbograms (RFC 2675) Multicast Listener Discovery (MLD) for IPv6 (RFC 2710) IPv6 Router Alert Option (RFC 2711) Format for Literal IPv6 Addresses in URL's (RFC 2732) DNS Extensions to Support IPv6 Address Aggregation and Renumbering (RFC 2874) Router Renumbering for IPv6 (RFC 2894) Initial IPv6 Sub-TLA ID Assignments (RFC 2928) Privacy Extensions for Stateless Address Autoconfiguration in IPv6 (RFC 3041) IP Version 6 Management Information Base for the Multicast Listener Discovery Protocol (RFC 3019) Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification (RFC 3122) IPv6 multihoming support at site exit routers (RFC 3178) Transmission of IPv6 Packets over IEEE 1394 Networks (RFC 3146) Unicast-Prefix-based IPv6 Multicast Addresses (RFC 3306) Recommendations for IPv6 in 3GPP Standards (RFC 3314)