Die neue Version des Internetprotokolls zieht die Lehren aus 30 Jahren Netzwerkrealität
Das Internet wächst unaufhörlich und selbst die mutigsten Einschätzungen über seine Popularität zum Zeitpunkt seiner Erschaffung sind längst überholt. In diesen Tagen werden die letzten Adressvorräte des aktuellen Protokolls angebrochen und alles blickt auf den neuen Standard: IPv6.
Die neue Version des Internetprotokolls verspricht nicht nur das Adressproblem zu lösen, auch sind in den Neuansatz zahlreiche andere Erkenntnisse aus fast dreißig Jahren Netzbetrieb eingeflossen. Die Umstellung ist zwar knifflig und langwierig, aber auch potentiell heilsbringend und darüber hinaus bitter nötig.
Im Gespräch mit Tim Pritlove erläutert Clemens Schrimpe die notwendigen Grundlagen der Internetkommunikation und zeigt auf, welche konkreten Änderungen sich durch die Einführung von IPv6 ergeben, welche Möglichkeiten heute schon bestehen, davon zu profitieren und welche Vorkehrungen zu treffen sind, um einen reibungslosen Übergang zu organisieren.
Clemens Schrimpe
Twitter
Tim Pritlove
Twitter
Website
Spenden via PayPal
Shownotes
Intro The new, larger version of the Internet: IPv6 Vinton G. Cerf CRE Intro Begrüßung Heute mal wieder Technik Clemens Schrimpe CRE191 Internet im Festnetz CRE194 Bier Andreas Bogk “Das Bier-Thema hat auf jeden Fall auch eine Menge bewirkt, aber ich glaube der Leidensdruck war da nicht so groß.” (Tim) Einführung Thema IPv6 steht schon seit Ewigkeiten auf der Liste Tims Vortrag auf dem Congress über IPv6 IPv4 IPv6 hieß mal IPnG (Internet Protocol next Generation) IPv6 Internet Protocol (IP) CRE141 IPv4 Fabian Yamaguchi Internet-Protokollstack TCP UDP Clemens Schrimpe Warum ist Clemens überhaupt berechtigt, für das Internet zu sprechen? Modem Kommunikation Paketvermittlung Phil Karn KA9Q Amateurfunk Datex-P DOS C Protocol stack Userland Telnet FTP Uni Dortmund Amsterdam Internet Exchange DNS /etc/hosts Clemens hat sich damals einen IPv4-Adressraum zuteilen lassen RIPE Angeblich hatte China vor 8, 9 Jahren weniger Adressen als Clemens Volksrepublik China Clemens war Mitglied des Interop-Netzwerks Interop FDDI Fast Ethernet Gigabit Ethernet ATM IETF Clemens hat auch Internet nach Berlin geholt Internet Service Provider Mailbox Semipermanente ISDN-Verbindung Die komplette Berliner Internetszene wurde mit 64kbit/s versorgt GPRS EDGE Clemens war die ganze Zeit mit Internet beschäftigt Router ISDN Internet Protocol (IP) Terminologie IPv4 IPv6 Das Internet wurde mit IPv4 geboren IP Protokoll TCP UDP HTTP FTP etc. pp. IPv4 hat gut funktioniert und funktioniert auch heute noch Am IPv6 Day haben einige Content-Anbieter IPv6 angeschaltet World IPv6 Day und World IPv6 Launch Day Facebook Google Betatest “Man hat jetzt echte User – also nicht nur Nerds auf irgendwelchen Kongressen oder an irgendwelchen Unis, sondern echte User die halt echte Userdienste benutzen.” (Clemens) Warum heißt es IPv6 und nicht IPv5? “Niemand weiß das so genau.” (Clemens) Es gab nie ein IPv5 Man könnte noch bis IPv15 hochzählen Gerücht: Chinesen bauen sich eine eigene IP-Version IPv4: Probleme IPv6 hieß anfangs “IP next Generation” IPv4 Adressraum Hauptaufgabe IP ist es, Pakete von A nach B zu vermitteln Vergleich zu einem Postkartendienst Postkarte Adressen Empfängeradresse Absenderadresse Adressen sind Zahlen IPv4 hat 32 Bit lange Adressen Router 32 Bit entsprechen über 4 Milliarden Adressen “Damals waren ja eh Computer irgendwie so hausfüllend und dass jemand mit so einem Ding in der Tasche herumrennt oder mit zweien oder dreien davon, das hat man nicht gesehen.” (Clemens) "640kB ought to be enough for anybody." Rückblick erklärt, warum der IPv6-Adressraum so exzessiv groß ist Für das Routing ist Struktur in der Adressverteilung sinnvoll Verzeichnisdienst Telefonnummer Rufnummernmitnahme Landesvorwahl Stadtvorwahl Fixed Numbering Plan Flexibler Rufnummernplan Man braucht Platz im Adressraum für Struktur Die meisten Router gucken sich nur die “Vorwahl” an IPv4: Netzklassen Netzklasse Vorwahl Berlin: 30 Vorwahl Menz: 33082 Netzklassen bei IPv4 Class A (8 Bit “Vorwahl”, 24 Bit “Rufnummer”) Class B (16 Bit “Vorwahl”, 16 Bit “Rufnummer”) Class C (24 Bit “Vorwahl”, 8 Bit “Rufnummer”) Class D (Multicast) Class E (reserved) Apple hat ein Class-A-Netz (17.0.0.0/8) “Haben sie sich zuteilen lassen, haben gesagt: ‘Wir sind groß genug, wir sind geil genug, wir wollen gerne mal so ein Class-A-Netz.’” (Clemens) Das starre ABC-Modell ist unpraktisch Classless Inter-Domain Routing (CIDR) Bei CIDR kann man den Trenner zwischen “Vorwahl” und “Rufnummer” beliebig einstellen “/24” bedeutet 24 Bit “Vorwahl” Geschäftskunden bekommen z.B. ein /28-Netz Durchwahl Clemens mag die CIDR-Notation lieber CIDR wurde hinterher auf IPv4 draufgestrickt Vor CIDR war die Netzklasse an der Adresse selbst ablesbar Seit CIDR muss die Netzklasse explizit dazugeschrieben werden Netzmaske “Es gab nämlich Leute, die sich gedacht haben: ‘Och, pff, warum soll eigentlich die Vorwahl immer links stehen? Die Vorwahl könnte ja auch einfach in der Mitte der Rufnummer stehen.’” (Clemens) “Keine Ahnung was das sollte. Dann hat man aber festgestellt, dass das sozusagen wenig zukunftsträchtig ist und dass diese Schreiberei mit diesen langen 255.255 und so ein bisschen nervig ist.” (Clemens) Netzmaske bzw. Präfixlänge stehen nicht im IPv4-Paket IPv4: Strukturierung des Adressraums IPv4-Adressraum wurde in Regionen aufgeteilt Einführung von Regional Internet Registries Regional Internet Registry (RIR) RIPE NCC Daniel Karrenberg Strukturierung des Adressraums Beispiel: Routing von Amerika nach Europa “The intention was good.” (Clemens) Hierarchie bei Adressvergabe Routing-Entscheidung dem Router möglichst einfach machen Verkehrsschild “Alle Richtungen” Postleitzahl IPv4 verschwendet viele Adress-Bits Erste und letzte Adresse können nicht benutzt werden Erste Adresse ist Synonym für das ganze Netz Letzte Adresse ist die Broadcast-Adresse Broadcast /30 ist also das kleinste IPv4-Netz Informationen über Adressblöcke ARIN InterNIC ftp.internic.net ftp://ftp.internic.net/ IPv4: Nicht verfügbare Adressen Class E (reservierte Adressen) macht ein 16tel aus Class D (Multicast) macht auch ein 16tel aus Nicht routbare Adressen Reserved IP Adresses 0.0.0.0/8 (Current Network) 127.0.0.0/8 (Loopback) 10.0.0.0/8 (RFC1918) 172.16.0.0/12 (RFC1918) 192.168.0.0/16 (RFC1918) 169.254.0.0/16 (Link-local) RFC1918 Address Allocation for Private Internets Kollateralschäden Clemens kann seinen Adressraum 192.68.0.0/16 nicht benutzen Regional Internet Registry (RIR) RIPE NCC ARIN LACNIC APNIC AFRINIC Ungenutzte Adressen aus der Zeit vor den RIRs Clemens zitiert Statistik, die behauptet, dass 30% des nutzbaren Adressraums nicht genutzt werden Etwa die Hälfte aller Adressen wird nicht genutzt oder kann nicht genutzt werden Die RIRs haben keine Adressen mehr zur Verfügung Die RIRs haben auch keine Lust mehr auf IPv4 Network Address Translation (NAT) In der IPv4-Welt muss der Endnutzer sich mit einer Adresse zufrieden geben “Und deswegen benutzt man dort einen Mechanismus, der wirklich ein Krebsgeschwür, eine Pest ist in vielerlei Hinsicht, nämlich das sogenannte NATing.” (Clemens) Network Address Translation (NAT) Innerhalb des Heimnetzes werden andere Adressen benutzt als außerhalb “Fräulein vom Amt” “Es ist ein Wunder, dass das überhaupt funktioniert.” (Tim) Geräte innerhalb des Netzes wissen nichts vom NAT SIP FTP IP-Telefonie “Also wenn man sozusagen Adressen umlügt, ist das immer ein schwerwiegendes Thema, da könnten wir alleine eine Sendung drüber machen was da alles für Mord und Totschlag bei passiert.” (Clemens) Mobilfunk ist auch mit NAT Push Notifications Eingebaute “Firewall” Im UMTS kann man wegen NAT bswp. keinen Webserver betreiben Drei “Das Land, in dem Milch und Honig und IP-Adressen fließen.” (Tim) Adressknappheit ist real und eingetreten iPhone Adressknappheit ist der leicht erkennbare Grund für IPv6 “When you type ‘Google’ into Google, you can destroy the internet.” (IT Crowd) Probleme beim Facebook-Login Schlechte Technik sichert Businessmodelle IPv6: Zuteilung von Adressen Eindeutigkeit von Adressen IPv6 regelt Adressvergabe politisch und technisch Vergabemechanismen am Endgerät WLAN DHCP Vergabe von Adressen ist nachträglich zu IPv4 hinzugefügt worden BOOTP Wie funktioniert BOOTP? Wie funktioniert DHCP? Port DNS Normalnutzer muss sich nicht um IPv6 kümmern Argument für IPv6 ist: Adressen IPv6: Header-Format Header Payload Problem Anderer Leute (PAL) IPv4-Header IPv6-Header IPv6 hat 128 Bit lange Adressen Zahlenspiele mit dem IPv6-Adressraum Struktur ist wichtiger als die Anzahl Keine Prüfsumme im IPv6-Header Checksum Time To Live wird in IPv6 zum Hop Limit Time To Live RFC791 Prüfsumme musste nach jedem Hop neu berechnet werden IPv4 Header Options IPv6 macht dem Router das Leben leichter Fragmentierung und MTU-Discovery IP-Fragmentierung Probleme mit der Fragmentierung DSL Ethernet-MTU: 1500 Bytes Ethernet WLAN Maximum Transmission Unit (MTU) DSL-MTU: 1492 Bytes Abhilfe bei IPv4 schafft MTU-Discovery Path MTU Discovery Wie funktioniert MTU Discovery? DF-Bit (Don’t Fragment) ICMP Destination Unreachable ICMP Time Exceeded Probleme mit MTU-Discovery Internet Control Message Protocol (ICMP) “Die halten das für die schlimmste Erfindung seit es Schokolade gibt.” (Clemens) Firewall Bei IPv6 ist MTU Discovery Pflicht “Das Schöne ist, bei IPv6 haben sie sich gesagt: ‘Wir hören jetzt mal auf mit dem Blödsinn.’” (Clemens) Keine Fragmentierung mehr bei IPv6 “Ja, und wenn ein Admin jetzt das abstellt, dann geht das Internet nicht mehr schlecht, sondern dann geht es einfach gar nicht mehr.” (Clemens) IPv6 zieht die Lehren aus über 40 Jahre IPv4 Arpanet IPv6: Link-local Adressen “Ein Rechner der v6 benutzen möchte, grundsätzlich erstmal um die Adresse zu kriegen – muss man ihn anmachen.” (Clemens) Link-local address Link-local bei IPv4 196.254.0.0/16 (Zeroconf) Wo kommt die Link-local Adresse her? Ethernet Token Ring IP over Avian Carriers Jedes Ethernet-Gerät hat von Werk eine MAC-Adresse MAC-Adresse Apple Macintosh Media Access Control EPROM EEPROM IEEE “Die IEEE diesmal, sozusagen die – ist das ‘International’ vorne? ‘Electrical Engineering E-irgendwas’. Also irgendeine Assoziation von Elektrikern.” (Clemens) OUI oui.txt NetCS Informationstechnik GmbH (OUI: 00A0AB) Bluetooth Mit der eindeutigen MAC-Adresse kann man sich eine IPv6-Adresse basteln Kollisionen sind trotzdem möglich Hexspeak Link-local Adressen sind nur auf direkter Verbindung gültig IPv6-Interface muss mehrere Adressen pro Interface unterstützen OS X Abmahnung IPv6: Adresstypen und Gültigkeitsbereiche Notrufnummer Rufnummer Unicast (einer an einen) Unicast Multicast (einer an mehrere) Multicast Broadcast (einer an alle) Broadcast Broadcast gibt es in IPv6 nicht mehr Denial of Service Anycast (einer an einen beliebigen aus einer Gruppe) Anycast Nachricht geht an einen Empfänger aus einer Gruppe, an wen aus der Gruppe ist egal Anycast wird bspw. für Root-Nameserver benutzt DNS Root-Nameserver Anycast lässt keinen fortgeführten Dialog zu Zusammenfassung der Adresstypen Loud Howard Adress-Gültigkeitsbereiche Link-local scope Site-local scope (wird nicht mehr benutzt) Global scope IPv6: Der Weg zur globalen Adresse Gerät fragt mit der Link-local-Adresse in dem lokalen Netz nach einer globalen Adresse Vordefinierte Multicast-Adressen “All Routers”-Adressen Router Solicitation Router Advertisement Router Advertisement schließt globalen Netzpräfix mit ein ISP Umrechnung der MAC-Adresse in den Interface Identifier EUI-64 ifconfig Zusammenfassung fe80::/64 (Link-local) Duplicate Address Detection IPv6 Interface Identifier (die letzten 64 Bit der Adresse) IPv6-Netzpräfixe sind immer /64 IPv6: Struktur im Adressraum Regional Internet Registry 2001::/ (RIPE) inter.net snafu 2001:1560::/32 Adressbereich der Deutschen Telekom Deutsche Telekom Kleine ISPs bekommen normalerweise /32-Netze Der ursprüngliche Plan zur Netzaufteilung Jeder Kunde sollte ein /48-Netz bekommen “Das hat man inzwischen eingesehen, dass das ein bisschen doch zu exzessiv ist.” (Clemens) Momentan sind /56-Netze für Kunden üblich “Warum gibt man denn überhaupt so viel? Ich meine, das ist doch vollkommen illusionär, dass jemand soviel wirklich benötigt, was soll denn das?” (Tim) Hierarchien beim Endkunden “Es gibt keine Zuteilungsmechanismen, die funktionieren, wenn du dem Kunden weniger als 64 Bit überlassen willst.” (Clemens) Comcast IPv6: Privacy Extensions Präfix und Interface Identifier Aluhüte “Wenn man sich das jetzt realisiert, stellt man fest, dass man auf so viele Arten und Weisen dort so unglaublich global unique ist, dass Werbeleute und sonst Leute, die darauf stehen, möglichst viel von dir zu erfahren nasse Hosen kriegen.” (Clemens) YouPorn My Little Pony Bei IPv6 gibt es kein NAT “‘Ich hab hier mal einen Vorschlag, wie man NAT machen könnte!’” (Clemens) IPv6-Adressen aus dem Heimnetz sind global sichtbar Identifikation über Interface Identifier Das Problem ist erst spät aufgefallen Abhilfe schaffen die Privacy Extensions Privacy Extensions waren in vielen Betriebssystemen lange nicht angeschaltet Was machen die Privacy Extensions? Link-local Adresse ist sowieso notwendig Globale “traditionelle” IP-Adresse Zusätzliche temporäre IP-Adressen NTP SHA Automatisch und periodisch werden neue IP-Adressen erstellt Ständige Erreichbarkeit durch die “traditionelle” IP-Adresse Temporäre Adressen für ausgehende Verbindungen Tim hat viele Adressen mit dem Status “temporary deprecated” Vergleich zum Handy Identifikation über Netzpräfix Netzpräfix kann sich natürlich auch ändern IPv6: Mehrere Nutzer gleichzeitig nutzen Hinzufügen und Entfernen von Netzpräfixen zur Laufzeit FRITZ!Box Anwendungsfall Firmennetzwerk Address Selection Router kann sagen: “priorisiere mich” Router kann sagen: “benutz mich lieber nicht” IPv6 macht diese Verhaltensweisen zur Pflicht Routing Information Protocol (RIP) Address Selection Fall 1: Verbindung wird von außen angestoßen Fall 2a: Die Applikation gibt es vor Fall 2b: Der Applikation ist es egal Browser Kernel Unique local address (ULA) IP-Tunnel IPv4 und IPv6 im Parallelbetrieb Entscheidung IPv4 vs. IPv6 Apple macht das dynamisch Multicast, Broadcast und Neighbor Discovery im Ethernet Wie funktioniert Ethernet? 48 Bit Adressen Früher war Ethernet immer ein Kabel Yellow Cable BNC-Stecker Dann wurden Switches eingeführt Switch Stern-Topologie Bus Port Saturn Netgear Airport Extreme “Stell dir vor, du hast einen kleinen normalen Briefkasten und jeden Tag stellt dir einer einen Container mit Papier vor die Tür.” (Clemens) Moderne Switches merken sich, wer zu welchem Multicast gehört Internet Group Management Protocol (IGMP) Opt-In Grundlegende Mechanismen in IPv6 beruhen auf Multicast Neighbor Discovery Protocol (NDP) Subnetwork Conversion Protocol Address Resolution Protocol (ARP) ARP und IPv4 sind separate Protokolle Neighbor Discovery gehört zu IPv6 Flooding mit unbekannten Ethernet-Adressen Switch lernt durch Antwortpakete, welches Gerät an welchem Port steckt Funktionsweise von ARP bei IPv4 IPv6 definiert Multicast-Adressen für gesuchte MAC-Adresse IPv6 Provider NetCologne Adressneuvergabe alle 24h ist politisches Problem Clemens Vermutung zum stockenden IPv6-Deployment IP-Tunnel & Transition Strategies Grundidee bei Tunnel Token Ring IP over Avian Carriers Tunnelprovider Anything In Anything (AYIYA) Verschiedene Tunnelprovider SixXS (Six Access) FRITZ!Box SixXS “Nachteile” PoP (Point of Presence) Hurricane Electric Free IPv6 Tunnel Broker 6to4-Tunnel 6to4 IPv6-Präfix aus IPv4-Adresse generieren 2002::/16 (6to4) 192.88.99.1 (6to4-Zieladresse, Anycast) Rückweg funktioniert genauso, nur umgekehrt FRITZ!Box 6to4 ist hauptsächlich für IPv6-only Dienste interessant Andere Transition Strategies 6in4 6rd “Man muss dazu erzählen, damit könnte man alleine wieder Stunden füllen und jetzt kommen wirklich fiese Mindfucks raus.” (Clemens) Carrier-grade NAT Clemens plaudert aus dem Nähkästchen France Télécom SixXS scheint der entspannteste Weg zu sein CRE191 Internet im Festnetz IP-Tunnel Anwendungsfälle Konstante (und mobile) Adressen Port Address Translation VPN SSH Telnet Support für befreundete Anwender Vorteile bei der Netzwerk-Administration inter.net IPv6-only Netzwerke Geräte ohne IPv4 finden sich erst nach einer Weile damit ab FRITZ!Box Wieviel Internet ist über IPv6 erreichbar? ipv6.google.com Metaebene meta.metaebene.me FRITZ!Box IPv6: Unterstützung von Anwendungen Was muss eine Applikation tun um IPv6 zu unterstützen? (Spoiler: Meistens nichts.) Adressnotation IPv4-Adressen (4 Gruppen a 8 Bit, Trenner “.”) IPv6-Adressen (8 Gruppen a 16 Bit, Trenner “:”) Der größte Null-Block in einer IPv6-Adresse lässt sich mit “::” abkürzen 2001:1560:42::42 2001:1560:42::61 In der URL stehen IPv6-Adressen in eckigen Klammern Buchstaben werden klein geschrieben, führende Nullen weggelassen DHCPv6 DNS unter IPv6 DHCPv6 DHCPv6: Prefix Delegation IPv6CP (IPv6 Control Protocol) “Das ist sozusagen der feuchte Traum eines Admins für ein Firmennetz in der Größe von sagen wir mal Siemens, dass du das alles schön etabliert hast, nimmst dein Ethernet-Kabel und steckst es bei Provider A rein und plötzlich macht es WAPAPAPAPAPAP und durch deine ganze Organisation durch kriegen alle Leute plötzlich IP-Adressen. So, und jetzt nimmst du dein zweites Kabel, steckst es bei Provider B rein und DATATATATATA geht es wieder durch. Das kannst du bauen.” (Clemens) Ankommen in der IPv6-Welt The KAME Project “Wenn man lame ist, kann man zum Beispiel auch einfach www.ripe.net aufrufen.” (Clemens) IPv6: Cui bono? Für normale Anwender sollte sich nichts ändern Für große Netzwerke ist IPv6 die Erlösung Bonjour Fefe (Felix von Leitner) Verabschiedung Andreas Bogk CRE194 Bier Sendung sollte ein Einstieg sein “Wir sehen uns dann demnächst in einem anderen Addressrange.” (Tim) CRE OutroCRE191 Internet im FestnetzCRE141 IPv4WP: KA9QWP: Datex-PWP: Internet ProtocolWP: Transmission Control Protocol (TCP)WP: User Datagram Protocol (UDP)WP: TelnetWP: File Transfer Protocol (FTP)WP: IP-AdresseWP: InteropWP: Fiber Distributed Data Interface (FDDI)WP: Gigabit EthernetWP: Asynchronous Transfer Mode (ATM)WP: Internet Engineering Task Force (IETF)WP: Semipermanente ISDN-VerbindungWP: Enhanced Data Rates for GSM Evolution (EDGE)WP: IPv6WP: World IPv6 Day und World IPv6 Launch DayWP: RouterWP: RufnummerWP: NetzklasseWP: Classless Inter-Domain Routing (CIDR)WP: NetzmaskeWP: InterNICftp.internic.netRFC1918: Address Allocation for Private InternetsWP: Regional Internet Registry (RIR)WP: Réseaux IP Européens (RIPE)WP: American Registry for Internet Numbers (ARIN)WP: Latin America & Caribbean Network Information Centre (LACNIC)WP: Asia Pacific Network Information Centre (APNIC)WP: African Network Information Centre (AFRINIC)WP: Network Address Translation (NAT)WP: Session Initiation Protocol (SIP)WP: Push-MedienWP: iPhoneWP: Dynamic Host Configuration Protocol (DHCP) WP: Bootstrap Protocol (BOOTP)WP: Time to live (TTL)RFC791WP: PayloadWP: IP-FragmentierungWP: Maximum Transmission Unit (MTU)WP: Path MTU DiscoveryWP: Internet Control Message Protocol (ICMP)WP: ArpanetWP: Link Local AddressWP: EthernetWP: Internet Protocol over Avian Carriers (IPoAC),WP: Media Access Control (MAC)WP: MAC-AdresseWP: Institute of Electrical and Electronics Engineers (IEEE)WP: Organizationally unique identifier (OUI)oui.txtWP: HexspeakWP: UnicastWP: MulticastWP: BroadcastWP: Denial of ServiceWP: AnycastWP: DNS Name System (DNS)WP: Root-NameserverLoud HowardWP: Unique Local AddressWP: IPv6 AddressWP: EUI-64WP: ComcastWP: Secure Hash Algorithm (SHA)WP: Internet Group Management Protocol (IGMP)WP: Opt-inWP: Neighbor Discovery Protocol (NDP)WP: Address Resolution Protocol (ARP)WP: Token RingWP: Internet Protocol over Avian CarriersWP: Anything In AnythingSixXS: IPv6 Deployment & Tunnel BrokerWP: Point of PresenceHurricane Electric Free IPv6 Tunnel BrokerWP: 6to4WP: 6in4WP: IPv6 rapid deploymentWP: Carrier-grade NATWP: Virtual Private Network (VPN)WP: Network Time Protocol (NTP)The KAME projectWP: Bonjour