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
@[email protected]
Website
Spenden via PayPal
Shownotes
IntroThe new, larger version of the Internet: IPv6Vinton G. CerfCRE IntroBegrüßungHeute mal wieder TechnikClemens SchrimpeCRE191 Internet im FestnetzCRE194 BierAndreas Bogk“Das Bier-Thema hat auf jeden Fall auch eine Menge bewirkt, aber ich glaube der Leidensdruck war da nicht so groß.” (Tim)EinführungThema IPv6 steht schon seit Ewigkeiten auf der ListeTims Vortrag auf dem Congress über IPv6IPv4IPv6 hieß mal IPnG (Internet Protocol next Generation)IPv6Internet Protocol (IP)CRE141 IPv4Fabian YamaguchiInternet-ProtokollstackTCPUDPClemens SchrimpeWarum ist Clemens überhaupt berechtigt, für das Internet zu sprechen?ModemKommunikationPaketvermittlungPhil KarnKA9QAmateurfunkDatex-PDOSCProtocol stackUserlandTelnetFTPUni DortmundAmsterdam Internet ExchangeDNS/etc/hostsClemens hat sich damals einen IPv4-Adressraum zuteilen lassenRIPEAngeblich hatte China vor 8, 9 Jahren weniger Adressen als ClemensVolksrepublik ChinaClemens war Mitglied des Interop-NetzwerksInteropFDDIFast EthernetGigabit EthernetATMIETFClemens hat auch Internet nach Berlin geholtInternet Service ProviderMailboxSemipermanente ISDN-VerbindungDie komplette Berliner Internetszene wurde mit 64kbit/s versorgtGPRSEDGEClemens war die ganze Zeit mit Internet beschäftigtRouterISDNInternet Protocol (IP)TerminologieIPv4IPv6Das Internet wurde mit IPv4 geborenIPProtokollTCPUDPHTTPFTPetc. pp.IPv4 hat gut funktioniert und funktioniert auch heute nochAm IPv6 Day haben einige Content-Anbieter IPv6 angeschaltetWorld IPv6 Day und World IPv6 Launch DayFacebookGoogleBetatest“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 IPv5Man könnte noch bis IPv15 hochzählenGerücht: Chinesen bauen sich eine eigene IP-VersionIPv4: ProblemeIPv6 hieß anfangs “IP next Generation”IPv4 AdressraumHauptaufgabe IP ist es, Pakete von A nach B zu vermittelnVergleich zu einem PostkartendienstPostkarteAdressenEmpfängeradresseAbsenderadresseAdressen sind ZahlenIPv4 hat 32 Bit lange AdressenRouter32 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ß istFür das Routing ist Struktur in der Adressverteilung sinnvollVerzeichnisdienstTelefonnummerRufnummernmitnahmeLandesvorwahlStadtvorwahlFixed Numbering PlanFlexibler RufnummernplanMan braucht Platz im Adressraum für StrukturDie meisten Router gucken sich nur die “Vorwahl” anIPv4: NetzklassenNetzklasseVorwahl Berlin: 30Vorwahl Menz: 33082Netzklassen bei IPv4Class 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 unpraktischClassless 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-NetzDurchwahlClemens mag die CIDR-Notation lieberCIDR wurde hinterher auf IPv4 draufgestricktVor CIDR war die Netzklasse an der Adresse selbst ablesbarSeit CIDR muss die Netzklasse explizit dazugeschrieben werdenNetzmaske“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-PaketIPv4: Strukturierung des AdressraumsIPv4-Adressraum wurde in Regionen aufgeteiltEinführung von Regional Internet RegistriesRegional Internet Registry (RIR)RIPE NCCDaniel KarrenbergStrukturierung des AdressraumsBeispiel: Routing von Amerika nach Europa“The intention was good.” (Clemens)Hierarchie bei AdressvergabeRouting-Entscheidung dem Router möglichst einfach machenVerkehrsschild “Alle Richtungen”PostleitzahlIPv4 verschwendet viele Adress-BitsErste und letzte Adresse können nicht benutzt werdenErste Adresse ist Synonym für das ganze NetzLetzte Adresse ist die Broadcast-AdresseBroadcast/30 ist also das kleinste IPv4-NetzInformationen über AdressblöckeARINInterNICftp.internic.net ftp://ftp.internic.net/IPv4: Nicht verfügbare AdressenClass E (reservierte Adressen) macht ein 16tel ausClass D (Multicast) macht auch ein 16tel ausNicht routbare AdressenReserved IP Adresses0.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 InternetsKollateralschädenClemens kann seinen Adressraum 192.68.0.0/16 nicht benutzenRegional Internet Registry (RIR)RIPE NCCARINLACNICAPNICAFRINICUngenutzte Adressen aus der Zeit vor den RIRsClemens zitiert Statistik, die behauptet, dass 30% des nutzbaren Adressraums nicht genutzt werdenEtwa die Hälfte aller Adressen wird nicht genutzt oder kann nicht genutzt werdenDie RIRs haben keine Adressen mehr zur VerfügungDie RIRs haben auch keine Lust mehr auf IPv4Network 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 NATSIPFTPIP-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 NATPush NotificationsEingebaute “Firewall”Im UMTS kann man wegen NAT bswp. keinen Webserver betreibenDrei“Das Land, in dem Milch und Honig und IP-Adressen fließen.” (Tim)Adressknappheit ist real und eingetreteniPhoneAdressknappheit ist der leicht erkennbare Grund für IPv6“When you type ‘Google’ into Google, you can destroy the internet.” (IT Crowd)Probleme beim Facebook-LoginSchlechte Technik sichert BusinessmodelleIPv6: Zuteilung von AdressenEindeutigkeit von AdressenIPv6 regelt Adressvergabe politisch und technischVergabemechanismen am EndgerätWLANDHCPVergabe von Adressen ist nachträglich zu IPv4 hinzugefügt wordenBOOTPWie funktioniert BOOTP?Wie funktioniert DHCP?PortDNSNormalnutzer muss sich nicht um IPv6 kümmernArgument für IPv6 ist: AdressenIPv6: Header-FormatHeaderPayloadProblem Anderer Leute (PAL)IPv4-HeaderIPv6-HeaderIPv6 hat 128 Bit lange AdressenZahlenspiele mit dem IPv6-AdressraumStruktur ist wichtiger als die AnzahlKeine Prüfsumme im IPv6-HeaderChecksumTime To Live wird in IPv6 zum Hop LimitTime To LiveRFC791Prüfsumme musste nach jedem Hop neu berechnet werdenIPv4 Header OptionsIPv6 macht dem Router das Leben leichterFragmentierung und MTU-DiscoveryIP-FragmentierungProbleme mit der FragmentierungDSLEthernet-MTU: 1500 BytesEthernetWLANMaximum Transmission Unit (MTU)DSL-MTU: 1492 BytesAbhilfe bei IPv4 schafft MTU-DiscoveryPath MTU DiscoveryWie funktioniert MTU Discovery?DF-Bit (Don’t Fragment)ICMP Destination UnreachableICMP Time ExceededProbleme mit MTU-DiscoveryInternet Control Message Protocol (ICMP)“Die halten das für die schlimmste Erfindung seit es Schokolade gibt.” (Clemens)FirewallBei 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 IPv4ArpanetIPv6: 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 addressLink-local bei IPv4196.254.0.0/16 (Zeroconf)Wo kommt die Link-local Adresse her?EthernetToken RingIP over Avian CarriersJedes Ethernet-Gerät hat von Werk eine MAC-AdresseMAC-AdresseApple MacintoshMedia Access ControlEPROMEEPROMIEEE“Die IEEE diesmal, sozusagen die – ist das ‘International’ vorne? ‘Electrical Engineering E-irgendwas’. Also irgendeine Assoziation von Elektrikern.” (Clemens)OUIoui.txtNetCS Informationstechnik GmbH (OUI: 00A0AB)BluetoothMit der eindeutigen MAC-Adresse kann man sich eine IPv6-Adresse bastelnKollisionen sind trotzdem möglichHexspeakLink-local Adressen sind nur auf direkter Verbindung gültigIPv6-Interface muss mehrere Adressen pro Interface unterstützenOS XAbmahnungIPv6: Adresstypen und GültigkeitsbereicheNotrufnummerRufnummerUnicast (einer an einen)UnicastMulticast (einer an mehrere)MulticastBroadcast (einer an alle)BroadcastBroadcast gibt es in IPv6 nicht mehrDenial of ServiceAnycast (einer an einen beliebigen aus einer Gruppe)AnycastNachricht geht an einen Empfänger aus einer Gruppe, an wen aus der Gruppe ist egalAnycast wird bspw. für Root-Nameserver benutztDNSRoot-NameserverAnycast lässt keinen fortgeführten Dialog zuZusammenfassung der AdresstypenLoud HowardAdress-GültigkeitsbereicheLink-local scopeSite-local scope (wird nicht mehr benutzt)Global scopeIPv6: Der Weg zur globalen AdresseGerät fragt mit der Link-local-Adresse in dem lokalen Netz nach einer globalen AdresseVordefinierte Multicast-Adressen“All Routers”-AdressenRouter SolicitationRouter AdvertisementRouter Advertisement schließt globalen Netzpräfix mit einISPUmrechnung der MAC-Adresse in den Interface IdentifierEUI-64ifconfigZusammenfassungfe80::/64 (Link-local)Duplicate Address DetectionIPv6 Interface Identifier (die letzten 64 Bit der Adresse)IPv6-Netzpräfixe sind immer /64IPv6: Struktur im AdressraumRegional Internet Registry2001::/ (RIPE)inter.netsnafu2001:1560::/32Adressbereich der Deutschen TelekomDeutsche TelekomKleine ISPs bekommen normalerweise /32-NetzeDer ursprüngliche Plan zur NetzaufteilungJeder 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)ComcastIPv6: Privacy ExtensionsPräfix und Interface IdentifierAluhü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)YouPornMy Little PonyBei 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 sichtbarIdentifikation über Interface IdentifierDas Problem ist erst spät aufgefallenAbhilfe schaffen die Privacy ExtensionsPrivacy Extensions waren in vielen Betriebssystemen lange nicht angeschaltetWas machen die Privacy Extensions?Link-local Adresse ist sowieso notwendigGlobale “traditionelle” IP-AdresseZusätzliche temporäre IP-AdressenNTPSHAAutomatisch und periodisch werden neue IP-Adressen erstelltStändige Erreichbarkeit durch die “traditionelle” IP-AdresseTemporäre Adressen für ausgehende VerbindungenTim hat viele Adressen mit dem Status “temporary deprecated”Vergleich zum HandyIdentifikation über NetzpräfixNetzpräfix kann sich natürlich auch ändernIPv6: Mehrere Nutzer gleichzeitig nutzenHinzufügen und Entfernen von Netzpräfixen zur LaufzeitFRITZ!BoxAnwendungsfall FirmennetzwerkAddress SelectionRouter kann sagen: “priorisiere mich”Router kann sagen: “benutz mich lieber nicht”IPv6 macht diese Verhaltensweisen zur PflichtRouting Information Protocol (RIP)Address SelectionFall 1: Verbindung wird von außen angestoßenFall 2a: Die Applikation gibt es vorFall 2b: Der Applikation ist es egalBrowserKernelUnique local address (ULA)IP-TunnelIPv4 und IPv6 im ParallelbetriebEntscheidung IPv4 vs. IPv6Apple macht das dynamischMulticast, Broadcast und Neighbor Discovery im EthernetWie funktioniert Ethernet?48 Bit AdressenFrüher war Ethernet immer ein KabelYellow CableBNC-SteckerDann wurden Switches eingeführtSwitchStern-TopologieBusPortSaturnNetgearAirport 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örtInternet Group Management Protocol (IGMP)Opt-InGrundlegende Mechanismen in IPv6 beruhen auf MulticastNeighbor Discovery Protocol (NDP)Subnetwork Conversion ProtocolAddress Resolution Protocol (ARP)ARP und IPv4 sind separate ProtokolleNeighbor Discovery gehört zu IPv6Flooding mit unbekannten Ethernet-AdressenSwitch lernt durch Antwortpakete, welches Gerät an welchem Port stecktFunktionsweise von ARP bei IPv4IPv6 definiert Multicast-Adressen für gesuchte MAC-AdresseIPv6 ProviderNetCologneAdressneuvergabe alle 24h ist politisches ProblemClemens Vermutung zum stockenden IPv6-DeploymentIP-Tunnel & Transition StrategiesGrundidee bei TunnelToken RingIP over Avian CarriersTunnelproviderAnything In Anything (AYIYA)Verschiedene TunnelproviderSixXS (Six Access)FRITZ!BoxSixXS “Nachteile”PoP (Point of Presence)Hurricane Electric Free IPv6 Tunnel Broker6to4-Tunnel6to4IPv6-Präfix aus IPv4-Adresse generieren2002::/16 (6to4)192.88.99.1 (6to4-Zieladresse, Anycast)Rückweg funktioniert genauso, nur umgekehrtFRITZ!Box6to4 ist hauptsächlich für IPv6-only Dienste interessantAndere Transition Strategies6in46rd“Man muss dazu erzählen, damit könnte man alleine wieder Stunden füllen und jetzt kommen wirklich fiese Mindfucks raus.” (Clemens)Carrier-grade NATClemens plaudert aus dem NähkästchenFrance TélécomSixXS scheint der entspannteste Weg zu seinCRE191 Internet im FestnetzIP-Tunnel AnwendungsfälleKonstante (und mobile) AdressenPort Address TranslationVPNSSHTelnetSupport für befreundete AnwenderVorteile bei der Netzwerk-Administrationinter.netIPv6-only NetzwerkeGeräte ohne IPv4 finden sich erst nach einer Weile damit abFRITZ!BoxWieviel Internet ist über IPv6 erreichbar?ipv6.google.comMetaebenemeta.metaebene.meFRITZ!BoxIPv6: Unterstützung von AnwendungenWas muss eine Applikation tun um IPv6 zu unterstützen? (Spoiler: Meistens nichts.)AdressnotationIPv4-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ürzen2001:1560:42::422001:1560:42::61 In der URL stehen IPv6-Adressen in eckigen KlammernBuchstaben werden klein geschrieben, führende Nullen weggelassenDHCPv6DNS unter IPv6DHCPv6DHCPv6: Prefix DelegationIPv6CP (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-WeltThe 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 ändernFür große Netzwerke ist IPv6 die ErlösungBonjourFefe (Felix von Leitner)VerabschiedungAndreas BogkCRE194 BierSendung sollte ein Einstieg sein“Wir sehen uns dann demnächst in einem anderen Addressrange.” (Tim)CRE Outro CRE191 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