IPv6 Primer Dipl.-Ing. Thomas Liske IBH IT-Service GmbH Gostritzer Str. 67a 01217 Dresden http://www.ibh.de/ support@ibh.de www.ibh.de
Überblick Inhalt Rückblick Paketformat Adressierung Mechanismen Zusammenfassung 2
Rückblick Geschichte Classful IPv4 skaliert nicht Bereits Mitte der 1980er wurde die Problematik klar Vergeudung von IPv4-Adressen reduzieren 1985: Subnetting (RFC950) 1987: VLSM (Variable Length Subnet Masks) 1993: CIDR (Classless InterDomain Routing) Address Space Conservation Zunehmend striktere Regeln seit Mitte der 1990er Ende der Adressvergabe trotzdem absehbar 2011-02-03: IANA IPv4 Adressraum erschöpft 2011-04-15: APNIC IPv4 Adressraum erschöpft Generelles Ende bei allen RIRs noch 2011 erwartet 3
Rückblick Was tun? Ein neues Protokoll muss her Entwicklung seit den frühen 1990ern 1992: Erste Vorschläge, IETF Call for White Papers 1993: IETF ad-hoc IPng Area 1994: IETF IPng Working Group 1996: Erste RFCs (RFC1883 etc) Designziele Praktisch unerschöpflicher Adressraum Optimiertes Paketformat (effizientes Routing) Rückerobern des End-to-End-Prinzips (statt NAT) Beseitigen diverser Designfehler von IPv4 4
Überblick Inhalt Rückblick Paketformat Adressierung Ausgewählte Mechanismen Zusammenfassung 5
Paketformat IPv6 Konservative Änderung an IPv4 Vereinfachungen Header fester Größe Extension Header bei Bedarf (behandelt wie Payload) Weniger wichtige Felder nur in Extension Headers TTL ist reiner Zähler (Hop Limit) Keine Header-Checksumme Keine Fragmentierung durch Router Nur beim Absender mittels PMTUD Erweiterungen Neues Adressformat mit 128 Bit Länge Flow Label IPsec-Unterstützung vorgeschrieben (über Extension Header) 6
Paketformat IPv4 Header (RFC791) [1] Version 4 bit IHL 4 bit Time to Live 8 bit Identification 16 bit Type of Service 8 bit Protocol 8 bit Flags 3 bit Source Address 32 bit Destination Address 32 bit (Options & Padding) Total Length 16 bit Fragment Offset 13 bit Header Checksum 16 bit 7
Paketformat IPv4 Header (RFC791) [2] Version 4 bit IHL 4 bit Time to Live 8 bit Identification 16 bit Type of Service 8 bit Protocol 8 bit Flags 3 bit Source Address 32 bit Destination Address 32 bit (Options & Padding) Total Length 16 bit Fragment Offset 13 bit Header Checksum 16 bit 8
Paketformat IPv6 Header (RFC2460) Version 4 bit Traffic Class 8 bit Payload Length 16 bit Flow Label 20 bit Next Header 8 bit Hop Limit 8 bit Source Address 128 bit Destination Address 128 bit 9
Paketformat IPv6 Header Fields Version: 6 Traffic Class: 6 bit DSCP; 2 bit ECN Flow Label: für Echtzeitanwendungen (?) Payload Length: sizeof(extension Headers) + sizeof(payload) Next Header: (IPv4-)Protokollnummer bzw. IPv6 Extension Header Hop Limit: Counter; bei jedem Forwarding um eins dekrementiert, verwerfen wenn Hop Limit 1 = 0 10
Paketformat IPv6 Extension Headers Optional beim Sender Empfänger muss alle empfangenen Unterstützen (unrecognized Next Header type encountered) Verarbeitung ausschließlich in den Endsystemen (Destination Address) Ausnahme: Hop-by-Hop Options header Muss auf IPv6 Header folgen Next Header = 0 11
Paketformat IPv6 Framesize [1] Standard: Payload Length L3 Payload: 2 16 Bytes = 64 KiByte L2 Payload: 40 Byte # IPv6 Header + sizeof(extension Headers) + sizeof(payload) 40 Byte < MTU 64 KiByte + 40 Byte Bei IPv4: Total Length L3 Payload: 64 KiByte 20 Bytes 12
Paketformat IPv6 Framesize [2] Optional: Jumbograms L3 Payload: 2 32 Bytes - 1 = 4 GiByte 1 Byte L2 Payload: 40 Byte # IPv6 Header + 8 Byte # Hop-by-Hop Ext. Header + sizeof(extension Headers) + sizeof(payload) Byte 64 KiByte + 48 Byte < MTU < 4 GiByte + 48 L4 Payload: TCP, UDP haben nur 16 bit Counter! 13
Überblick Inhalt Rückblick Paketformat Adressierung Ausgewählte Mechanismen Zusammenfassung 14
Adressierung Adressen [1] Vierfache Länge gegenüber IPv4 Adressraum: IPv4: 2 32 = 4,3 x 10 9 = 4,3 Milliarden Adressen Faktor: 2 96 = 7,9 x 10 28 = 79 Quadrilliarden IPv6: 2 128 = 3,4 x 10 38 = 340 Sextillionen Adressen Geeignete Schreibweise nötig! 8 Gruppen zu 16 Bit Hexadezimal Trennung der Gruppen durch Doppelpunkt 2001:0db8:0000:0000:0000:0000:dead:beef 15
Adressierung Adressen [2] kanonisches Format (RFC5952) Führende Nullen in einer Gruppe eliminieren 2001:0db8:0000:0000:0000:0000:dead:beef 2001:db8:0:0:0:0:dead:beef Längste (bzw. erste gleichlange) Kette von Null-Gruppen durch :: ersetzen 2001:db8::dead:beef Nur Kleinbuchstaben verwenden 2001:DB8::dEAd:beEF Netze immer in CIDR-Notation 2001:db8::/32 16
Adressierung Adressen [3] Syntaktisches IPv6-Adressen haben mehr Zeichen IPv6-Adressen enthalten Doppelpunkte Zwischenzeitlich in URLs für Portangaben benutzt IPv6-Adressen in URLs in [] einschließen (RFC3986) http://[2001:db8:815:4711::1]:8080/ Zahlreiche Probleme zu erwarten Sonderzeichen, Logfiles, Datenbankfelder... 17
Adressierung Adressen [4] 2a01:7700:0000:1001:0000:0000:0001:0018 / 3 2 / 4 8 / 6 4 interface ID / 1 2 8 65.536 * /64 L2 Broadcast Domain Loopbacks 65.536 * /48 IBH-Prefix typischer Kunden-Prefix 18
Adressierung Adressen [5] Adressklassen Unicast Individuelle Adresse eines Interface Multicast Gruppen von Interfaces (und Nodes) IPv6 kennt kein Broadcast (aber all-nodes Link Local Multicast) Anycast Gleiche Unicast-Adresse an mehreren Interfaces (und Nodes) Scopes Klares Design des Scopings (gegenüber IPv4) interface-local, link-local admin-local, site-local, organization-local global 19
Adressierung Adressklassen (RFC4291) [1] Unicast Global Unicast & Anycast 64 Bit Network Prefix Beliebig weiter strukturierbar (CIDR) Kanonisch >=48 Bit Routing Prefix und <=16 Bit Subnet ID 64 Bit Interface Identifier Nicht strukturierbar (kein weiteres Subnetting!) Belegung folgt Modified EUI-64 Momentan nur 2000::/3 alloziert 20
Adressierung Adressklassen (RFC4291) [2] Link Local Unicast Präfix fe80::/10 und 64 Bit Interface Identifier (s.o.) Nicht routbar, ähnlich IPv4 APIPA (169.254.0.0/16) Link Local Zone Identifiers Link Local Adressen mehrdeutig auf Multihomed Hosts Zone Identifier (systemabhängig) mit % angehängt fe80::1%eth0 21
Adressierung Adressklassen (RFC4291) [3] Multicast General Multicast Address Format Präfix ff00::/8 4 Bit Flags 4 Bit Scope 112 Bit Group ID Spezielle Multicast Adressformate Solicited-Node Multicast Address 24 Bit der Unicast-Adresse eines Node in die Multicast-Adresse kopiert Optimierung zur Vermeidung von Quasi-Broadcasts z.b. in ICMPv6 Unicast-Prefix based Multicast Address Link-scoped Multicast Address Für serverfreie automatische Discovery-Protokolle etc. 22
Adressierung Spezielle Adressen und Allokationen ::/128 Unspecified Address ::/0 Default Route ::1/128 Loopback ::ffff:0:0/96 IPv4-mapped IPv6 (Socket API) ::ffff:0:0:0/96 IPv4-translated IPv6 (SIIT) 64:ff9b::/96 IPv4-embedded IPv6 ( Well known prefix ) 2000::/3 Global Unicast Allocation 2001::/32 Teredo Tunneling 2001:2::/48 Benchmarking 2001:10::/28 ORCHID (Kryptografische Hashes) 2001:db8::/32 Documentation 2002::/16 6to4 Tunneling fc00::/7 fe80::/10 ff00::/8 Unique Local (RFC4193, ähnlich RFC1918) Link Local Multicast ff02::1 Link Local All-Nodes Multicast 23
Überblick Inhalt Rückblick Paketformat Adressierung Ausgewählte Mechanismen Zusammenfassung 24
Ausgewählte Mechanismen Designparadigmen Zero Configuration Automatismen zur Adresskonfiguration Automatismen zum Auffinden von Nachbarn Automatismen zum Auffinden geeigneter Router End to End NAT ist hässlich! IPv6 hat mehr als genug Adressen für Alles und Jeden Vereinfachung und Optimierung ( Plug n Play ) IPsec als Allzweckwaffe in Sicherheitsfragen 25
Ausgewählte Mechanismen Neighbor Discovery (ND) Zentraler Automatismus in IPv6 Basiert vollständig auf ICMPv6 (kein Zusatzprotokoll wie ARP) Nutzt ausgiebig Multicasts und Link Local Addressing Dient mehreren Zwecken Neighbor Address Resolution (ersetzt ARP) Neighbor Unreachability Detection (NUD) Router Discovery (RD) Auffinden von On-Link Prefixes und Default Routern Redirect Optimierung bei mehreren On-Link Prefixes Stateless Address Auto Configuration (SLAAC) DHCPv6 ist optional und kann über ND vermittelt werden Duplicate Address Detection (DAD) 26
Ausgewählte Mechanismen StateLess Address Auto Configuration (SLAAC) Ziele Ad-Hoc-Netze ohne jegliche manuelle Konfiguration DHCPv6 auch in großen Netzen nicht zwingend Graceful Renumbering zu einem neuen Präfix Ablauf Interface erzeugt und aktiviert Link Local Address (nach DAD) Interface tritt Multicast-Gruppen bei (All Nodes und Solicited Node) Interface wartet auf RA oder sendet Router Solicitation RA enthält Global Prefix mit geeigneten Flags/Timern Host erzeugt Adresse aus Prefix und Interface Identifier Interface Identifier basiert auf Modified EUI-64 Host fügt die neue Adresse dem Interface hinzu (nach DAD) Host entfernt Adressen nach Ablauf ihrer Timer Fundamental anders als IPv4 Mehrere IP-Netze auf eine Broadcastdomain, Kurzschlüsse... 27
Ausgewählte Mechanismen Modified EUI-64 [1] Ziele: Ermittlung Interface ID Automatisch aus L2-Adresse des Interface Optional manuelle Konfiguration möglich Kompakte Schreibweise bei manueller Vergabe Vorgehensweise 1. Ausgangspunkt: 48 Bit MAC (MAC-48) Ethernet, 802.11 WLAN, Bluetooth, 2. Aufblasen zu 64 Bit EUI (EUI-64) Firewire, 802.15.4 ZigBee, 3. Invertieren des Global/Local Bits (Modified EUI-64) 28
Ausgewählte Mechanismen Modified EUI-64 [2] MAC-48 Herstellerkennung (OUI) NIC spezifisch 0 0 2 3 1 4 5 7 9 24 bit c 8 c 24 bit 7 6 5 4 3 2 1 0 0: unicast 1: multicast 0: globally unique 1: locally administered EUI-64 0 0 2 3 1 4 f f f e 5 7 9 c 8 c 29
Ausgewählte Mechanismen Modified EUI-64 [3] Warum Modified (Invertieren des G/L Bit)? Manuelle Vergabe bedeutet in EUI-64 G/L=1 Durch die Invertierung bedeutet G/L=0 2001:db8::1 statt 2001:db8::200:0:0:1 (Manuelle Vergabe) 7 6 5 4 3 2 1 0 Invertierten! Modified EUI-64 0 2 2 3 1 4 f f f e 5 7 9 c 8 c 30
Ausgewählte Mechanismen ICMPv6 Router Advertisement [1] Type = 134 8 bit Cur Hop Limit 8 bit Code 8 bit Autoconfig Flags 8 bit Reachable Time 32 bit Retrans Timer 32 bit Checksum 16 bit Router Lifetime 16 bit Options: Source Link-Layer Address; MTU; Prefix Information Ankündigung von Routern im LAN Periodisches Multicast versand (Unicast-)Antwort auf ICMPv6 Router Solicitation Vergleich: Beacons im 802.11 WLAN 31
Ausgewählte Mechanismen ICMPv6 Router Advertisement [2] Cur Hop Limit: vorgeschlagenes Standard Hop Limit ( IPv6 Header) Autoconfig Flags: M: 0 = SLAAC only; 1 = DHCPv6 O: 1 = DHCP für DNS, NTP,... Router Lifetime: Gültigkeit (s) als Default Router 0 s = kein Default Router 2 16 s = 18,2 h Reachable Time: Neighbor Cache Timeout (ms) 32
Ausgewählte Mechanismen ICMPv6 Router Advertisement [3] Retransmission Time: Wartezeit (ms) zwischen Neighbor Solicitation Options: Source Link-Layer Address: L2 Adresse des Routers (falls bekannt) MTU: L2 MTU Size Prefix Information: Prefix Liste des Routers weitere Options verfügbar / im Entwurf: RFC6106: DNS Server & DNS Search List draft-bcd-6man-ntp-server-ra-opt-00: NTP Server 33
Ausgewählte Mechanismen ICMPv6 Router Advertisement [4] 34
Mechanismen ICMPv6 Router Solicitation Type = 133 Code Checksum 8 bit 8 bit Reserved 16 bit 32 bit Optional: Source Link-Layer Address Field 16 bit (Type, Length) + 48 bit (Ethernet MAC) explizite Anforderung von RA Vergleich: Probe Requests im 802.11 WLAN 35
Mechanismen ICMPv6 Neighbor Solicitation Type 135 Ermittlung L2-Adressen für IPv6-Adressen Neighbor Advertisement Type 136 Antwort auf Neighbor Solicitation Redirect Type 137 Mitteilung besseren Next Hop an anderen Knoten Eintrag in Destination Cache Analog ICMPv4 Redirect 36
Überblick Inhalt Rückblick Paketformat Adressierung Mechanismen Zusammenfassung 37
Zusammenfassung Das Jahr von IPv6? IPv4 Adressraum erschöpft 2011-02-03: IANA vergibt letzte fünf /8 an RIRs 2011-04-15: APNIC vergibt letzte Adressen an LIRs Generelles Ende bei allen RIRs noch 2011 erwartet 2012-09-14: RIPE NCC vergibt aus letztem /8 an LIRs 2011-06-08: World IPv6 Day Zahlreiche Betreiber testen IPv6 Dual-Stack (z.b. Google) Erfolg: Manche Teilnehmer lassen es aktiv 2012-06-06: World IPv6 Launch Teilnehmer liefern IPv6 aware Content/Geräte/Zugänge 3.006 Inhaltsanbieter 77 Carrier & ISPs 5 Home Router Vendors 38
Zusammenfassung Das Jahr von IPv6? 16 Jahre IPv6 Protokollfamilie stabilisiert sich zunehmend Traffic bescheiden (Promille von IPv4, kein klarer Zuwachs) Kundeninteresse noch verhalten Große Endkunden-ISPs (z.b. T-Online) im Testbetrieb IBH & IPv6 IBH beantragte LIR Allocation zum 15. IPv6 Geburtstag 2 von 3 Upstreams sprechen IPv6 39
Zusammenfassung IPv6-Präfixzuwachs in der DFZ World IPv6 Launch (2012) World IPv6 Day (2011) IBH IPv6 Launch (2011) Steigerung um 41% 40
Zusammenfassung Einstiegspunkte IPv6 Englische Wikipedia: IPv6 Internet Engineering Task Force RFC2460 RFC3986 RFC4193 RFC4291 RFC5095 RFC5952 RFC6106 RFC6437 draft-bcd-6man-ntpserver-ra-opt-00 Ausprobieren! Internet Protocol, Version 6 (IPv6) Specification Uniform Resource Identifier (URI): Generic Syntax Unique Local IPv6 Unicast Addresses IP Version 6 Addressing Architecture Deprecation of Type 0 Routing Headers in IPv6 A Recommendation for IPv6 Address Text Representation IPv6 Router Advertisement Options for DNS Configuration IPv6 Flow Label Specification IPv6 Router Advertisement Option for NTP Server Configuration 41
Vielen Dank! Fragen Sie! Wir antworten. www.ibh.de