====== IPv6 ====== [[wpde>IPv6]] stellt eine Erweiterung des Adressraumes auf 128 Bit dar (vorher 32 Bit). Damit wird die Adressraumknappheit von IPv4 gelöst. Dazu muss lediglich die Internetschicht im OSI-Schichtenmodell der Version 4 durch IP v.6 ausgetauscht werden, welche wiederum abwärtskompatibel zu IP v.4 sein wird (siehe IP-Adressen) Alle aktuellen Betriebssysteme (ab Windows 2000/XP/2003/Vista, Mac OS X, Cisco IOS (ab 12.2T) und BSD*/Linux (Kernel 2.4/2.6) unterstützen IPv6 seit langem. ===== Links ===== * [[https://www.ripe.net/support/training/material/basic-ipv6-training-course/BasicIPv6-Slides.pdf|Basic IPv6 Course]] * [[https://www.ripe.net/publications/docs/ripe-690|RIPE 690 Best Current Operational Practice for Operators: IPv6 prefix assignment for end-users - persistent vs non-persistent, and what size to choose]] * [[http://www.heise.de/netze/artikel/87737|Das Mega-Netz - IPv6 wird Wirklichkeit]] * [[http://www.heise.de/netze/artikel/print/98759|IPv6 für kleine Netze]] * [[http://www.nsa.gov/ia/_files/ipv6/Factsheet-IPv6.pdf|Internet Protocol version 6 Factsheet (PDF from NSA.gov)]] * [[http://www.heise.de/newsticker/meldung/RIPE-Studie-IPv6-Anbindung-per-6to4-ist-ziemlich-schlecht-1146797.html|RIPE-Studie: IPv6-Anbindung per 6to4 ist ziemlich schlecht]] * [[http://www.heise.de/netze/artikel/15-Jahre-IPv6-1158670.html|15 Jahre IPv6 - Ein Glückwunsch]] * [[http://www.heise.de/newsticker/meldung/World-IPv6-Day-Traffic-Statistiken-fuer-Zaungaeste-1256999.html|World IPv6 Day: Traffic-Statistiken für Zaungäste]] * [[https://www.linux.com/learn/tutorials/428331-ipv6-crash-course-for-linux|IPv6 Crash Course For Linux]] * [[https://www.flickr.com/photos/jfesler/6751926581/|Carrier Grade NAT 1]] [[https://www.flickr.com/photos/jfesler/6751925977/|2]] ==== Vorträge ==== * [[https://www.youtube.com/watch?v=z7Al3P8ShM8|IPv6 Basics for "Beginners"]] ==== Einführungserfahrungen ==== * [[https://db.usenix.org/events/lisa11/tech/full_papers/Babiker.pdf|Deploying IPv6 in the Google Enterprise Network. Lessons learned.]] * [[http://www.heise.de/netze/artikel/IPv6-Zugang-fuers-LAN-nachruesten-1260260.html|IPv6-Zugang fürs LAN nachrüsten - Zweit-Router bringt IPv6 ins eigene LAN]] * [[http://www.heise.de/newsticker/meldung/Bundeswehr-verzichtet-auf-NAT-1138736.html|Bundeswehr verzichtet auf NAT]] === Blocker für IPv6 === * [[https://github.com/systemd/systemd/issues/30891|Broken IPv4 support on IPv6-preferring networks (v255) (DHCPv6 mit Option 108)]] [[https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2049247|ubuntu report]] * github und andere Seiten die IPv6 noch nicht unterstützen ===== Vorteile ===== * Source oder Destination NAT sind überflüssig (Abbildung zahlreicher privater Adressen auf wenige öffentliche Adressen). Krücke seit der öffentliche IPv4 Raum ausgeschöpft wurde und "private" Adressen benutzt werden mussten. * Site2Site-VPNs sind einfacher: * keine Adressraumkollisionen privater Adressbereiche * keine Rückrouten beim Ziel notwendig * höhere Routingeffizienz (weniger Routen notwendig, da die Netze nicht so klein sind) * Vermeidung hoher Kosten durch v4-Adressblöcke bzw. extra Berechnung von v4 Adressen (Cloud-Provider wie [[https://aws.amazon.com/jp/blogs/aws/new-aws-public-ipv4-address-charge-public-ip-insights/|Aws]], [[https://blog.ovhcloud.com/additional-ipv4-new-pricing/|OVH]], [[https://docs.hetzner.com/de/general/others/ipv4-pricing/|Hetzner]] haben bereits die Preise für v4 deutlich hochgedreht) ===== Nachteile ===== * direkte Zuordnung zu Netzen ist durch die schlechtere Lesbarkeit nicht mehr gegeben ===== Subnetting ===== Subnetting erfolgt sinnvollerweise in /48 /56 und /64 (Hosts), siehe auch: **[[https://www.ripe.net/about-us/press-centre/ipv6-chart_2015.pdf|RIPE Network chart]]**. * /29: 1:000(0-7):X:X:X:X:X:X * /32: 1:2:X:X:X:X:X:X * /48: 1:2:3:X:X:X:X:X **empfohlene** Zuweisung pro Kunde * /56: 1:2:3:00XX:X:X:X:X * /64: 1:2:3:4:X:X:X:X **minimale** Zuweisung pro Kunde Einem Host sollten nicht weniger als ein /64 zugewiesen werden (sonst funktioniert SLAAC nicht und [[https://datatracker.ietf.org/doc/html/rfc3306|Unicast-Prefix-based IPv6 Multicast Addresses]] verlässt sich drauf.) Die RIPE schlägt [[https://my.ripe.net/#/request.ipv6.allocation|im IPv6 Allocation Request-Formular]] /29, /30, /31, /32 vor, es können jedoch auch größere Netz erteilt werden. Für die Kalkulation von ipv6-Netzen steht lokale * subnetcalc (Ubuntu/Debian) Online: * [[http://www.gestioip.net/cgi-bin/subnet_calculator.cgi|IPv4/IPv6 subnet calculator]] * [[http://subnettingpractice.com/ipv6_subnetting.html|IPv6 Subnetting Calculator]] ===== Merkmale ===== * **Hexadezimale Notation**, die IP-Adresse ist 128 Bit lang (8 Blöcke mit jeweils 16 Bit, die mit Doppelpunkt getrennt werden): z.B. 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 * **Führende Nullen** sind überflüssig und dürfen entfallen. Einen oder mehrere **Blöcke mit vier Nullen** direkt hintereinander kann durch das Auslassungszeichen "**::**" ersetzt werden, aber nur einmal pro Adresse!. Das altbekannte localhost lässt sich somit als ::1 schreiben. * Es gibt **keine herkömmlichen Netzwerkmasken mehr**, nur noch Angaben wie bei der [[wpde>Classless Inter-Domain Routing|CIDR]]-Notation. Oft werden je 64 Bit für Netz- und Hostanteil verwendet: ''0123:4567:89ab:def0::/64'' ist eine solche Netzadresse. * **Notation für IP-Adressen mit eckigen Klammern** (verhindert die die fälschliche Interpretation von Portnummern als Teil der IPv6-Adresse): ''https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:8080/'' * **Präfixe**: * Das Präfix ''0:0:0:0:FFFF'' ergibt zusammen mit einer IPv4-Adresse (z.B. ''10.20.30.40/32'' nach [[wpde>Classless Inter-Domain Routing|CIDR]]-Notation) eine Adresse **die der angehängten IPv4-Adresse** entspricht: ''0:0:0:0:FFFF::192.168.0.1/96'' . * **Scopes** * Site-Local Address (Site-Local-Scope): nur in der aktuellen Site gültig und werden von Routern nicht nach außen geroutet oder von außen akzeptiert * Global Unique Address bzw. global routbare Adresse via Autokonfiguration * Stateless Address Autoconfiguration (SLAAC) * Stateful Address Autoconfiguration (DHCPv6) * Stateless Address Autoconfiguration mit Router-Advertisement * Stateful Address Configuration mit DHCPv6 * Multicast Address (Multicast Scopes) * **Reservierte Bereiche** * Das Präfix ''fe80'' bezeichnet **link-local (ausschließlich im lokalen Netz gültige Adressen)**, diese werden nicht vom Router weitergeleitet. * **private Adressbereiche/Netze** / **Unique Local Addresses (ULA)**((funktioniert ähnlich wie vorher APIPA (Automatic Private IP Adressing) )) lassen sich im Bereich fc00::/7 anlegen... * ...der Provider soll aber die **fc00::/8** zuweisen * ...selbst soll man ein zufälliges /48 aus dem Bereich **fd00::/7** (also von ''fd00:0000:0000:0000:0000:0000:0000:0000'' - ''fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'') * Schulungsbeispiele sollten aus dem Bereich 2001:db8::/32 stammen * Weitere Bereiche listet [[http://www.heise.de/netze/artikel/IPv6-Adressen-221445.html|Heise Netze]] auf. * **abgespeckter Header**: Sämtliche zusätzliche Funktion werden nicht mehr im eigentlichen Ipv6 Header integriert, sondern als sog. Extension Headers angehängt. Der neue IP Header mit Adresse und Feldern immer die festgelegt (deterministische Länge) von 40 Byte (ohne Erweiterungen). * [[wpde>Neighbor Discovery Protocol]] (NDP nach RFC 4861) durch 5 Typen von ICMPv6 * Parameterermittlung: u.a. automatische Ermittlung der MTU (Maximum Transmission Unit) * Stateless Address Autoconfiguration (SLAAC) * Adressauflösung (Address Resolution mit Neighbor Discovery) * Erkennung der Nichterreichbarkeit des Nachbarn (Neighbor Unreachability Detection, NUD) * Erkennung doppelter Adressen (Duplicate Address Detection, DAD) * Umleitung (Redirect) * **Integration von IPsec**: Durch die Extension-Header ESP (Encapsulated Security Payload) und AH (Authentication Header) wird Verschlüsselung, Authentifikation und Integrität von Daten über virtuelle Tunnel oder Point-2-Point-Verbindungen garantiert. Sichere Austausch der Schlüssel wird in zwei Phasen über ein IKE (Internet Key Exchange). * **[[wpde>Multihoming]]** (Anbindung über mehrere Provider über davon unabhängige Adressen) Die neuen Netzwerke und Adressen lassen sich mit sipcalc oder Webseiten wie [[http://www.ipv6calculator.net/|IPv6 Calculator]] berechnen: -[ipv6 : 0123:4567:89ab:def0::/64] - 0 Expanded Address 0123:4567:89ab:def0:0000:0000:0000:0000 Compressed address 123:4567:89ab:def0:: Subnet prefix (masked) 123:4567:89ab:def0:0:0:0:0/64 Address ID (masked) 0:0:0:0:0:0:0:0/64 Prefix address ffff:ffff:ffff:ffff:0:0:0:0 Prefix length 64 Address type Unassigned Network range 0123:4567:89ab:def0:0000:0000:0000:0000 - 0123:4567:89ab:def0:ffff:ffff:ffff:ffff Interface Config ip address 123:4567:89ab:def0::/64 BGP network 123:4567:89ab:def0::/64 OSPF network area ===== Vergleich v4 zu v6 ===== ^ Merkmal ^ v4 ^ v6 ^ ^ Adresslänge/Wertebereich | 32 Bit (4 Octets mit Werten von 0-255 getrennt durch Punkt) ingesamt mit theoretisch 2 hoch 32 (4.294.967.296) Adressen | Adresslänge 128 Bit (eingeteilt in Gruppen von je 4 Hexadezimalwerte/nibbles getrennt durch Doppelpunkte, also 8 mal 16 Bit); ingesamt: 340 Sextillionen Adressen | ^ Adressform | Netzanteil, Hostanteil (durch Netzmaske bestimmt) | Network Prefix (64Bit; wobei dieser in Global Routing Prefix und Subnet Prefix aufgeteilt ist ((genauer: /3 IANA global prefix, /23 regional prefix, /32 Provider prefix, /48 site prefix, /64 subnet prefix ))), Interface Identifier (64Bit) | ^ private Adressen | RFC 1918 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 | zufälliges /48 aus dem Bereich fd00::/8 (generell nicht empfohlen da wieder NAT nötig wird) | ^ Einteilung Netz / Hostanteil | subnetting durch Netzwerkmasken | entfällt, das subnet prefix zusammen mit der Interface ID erfüllt jedoch eine ähnliche Funktion | ^ Broadcast | letzte Adresse im Netz | entfällt, wird mit multicast realisiert (Teilnehmen subscriben broadcast-Adressen) | ^ Layer 2 Adressierung | über ARP-Protokoll, Liste mit ''arp -a'' anzeigen | NDP erfragt link-local-Adresse (diese wird lokal im fe80-Bereich durch [[wpde>EUI-64|IEEE EUI-64]] ((siehe auch: https://www.kwtrain.com/blog/how-to-calculate-an-eui-64-address oder https://support.lenovo.com/de/de/solutions/ht509925-how-to-convert-a-mac-address-into-an-ipv6-link-local-address-eui-64 )) berechnet oder zufällig: Linux ''ip -6 neigh'', *BSD: ''ndp -an'', Windows: ''netsh interface ipv6 show neighbors level=verbose'' alle Rechner im lokalen Netz via multicast pollen: ''ping -I eth0 ff02::1'' (all-nodes multicast; DUP ist bei der Ausgabe normal weil alle antworten) | ^ Adresskonflikte | müssen manuell erkannt werden | können automatisch über Neighbor Solicitation (NS) Duplicate Address Detection (DAD) erkannt werden (all-solicited nodes multicast an ff02:1:ff:xx:xxx wobei x quasi die MAC-Adresse ist | ^ DHCP | DHCPv4: Adressvergabe und Optionen wie DNS-Server | DHCPv6: IPv6-Adresse (stateful DHCP), client kann aber auch Autoconfiguration SLAAC benutzen (RA flag: managed=0) | ^ Router | manuell oder via DHCP | manuell, automatisch über **Router Solicitation** und **Router Advertisement**. Prioritäten (Präferenz) als Option möglich (low, medium, high)(RA flag managed=1), Delegierung eines Präfix zur Unterverteilung möglich (Präfix delegation), Router über multicast finden: ''ping -I eth0 ff02::2''(all-routers multicast) | ^ automatische **DNS-Server** Verteilung | DHCP | DHCPv6 oder über Router Advertisement (RFC 5006) als option (other configuration=1) mit z.B. rdnssd | ^ NAT | NAT Normalfall, da private Adressen die Adressknappheit ausgleichen müssen, Rückroute bei Zielroutern nötig | NAT nur in Ausnahmefällen nötig, nicht empfohlen | ^ Split-DNS | häufig (internes DNS mit privaten Adressen) ((aber nicht unbedingt nötig da auch private Adressen in öffentlichen DNS eingetragen werden können, manche DNS-Resolver - z.B. Fritz.box - haben allerdings einen rebind-Schutz)) | nicht mehr nötig da Adressen ohnehin im Normafall global routebar | === Verhalten von Clients === Sobald ein Client eine IPv6-Adresse mit scope global hat (scope link wird nur innerhalb versucht er IPv6-Verbindungen aufzubauen indem er abfrag ob das Ziel ein AAAA-Record im DNS hat. Ist dies der Fall wird eine Verbindung versucht (andernfalls wird nur IPv4 benutzt). Schlägt die V6-Verbindung fehl, findet nicht auf jedem Client ein fallback statt und selbst wenn kann dies zu merkbaren Verzögerungen führen. Die IETF hat daher [[https://blog.apnic.net/2016/07/25/happy-eyeballs-promoting-healthy-ipv4-ipv6-coexistence/|happy eyeballs]] vorgeschlagen. Manche Anwendungen müssen bei IPv6 SSSD.conf [domain/ldap] lookup_family_order = ipv6_first ===== Zugangsmethoden ===== ==== native Anbindung "Dual-stack" ==== Der Host bekommt IPv4- und IPv6-Adressen. Erfordert doppelten Pflegeaufwand für die Adressen, Problem müssen für beide Protokolle debuggt werden aber kein NAT und sonstige Mechanismen in der Infrastruktur (außer die Aktivierung von IPv6 selbst). Da die Anzahl der freien IP-Adressen stetig sinkt (bzw. teurer werden) ist dies wahrscheinlich nur noch für wenige Systeme (MTAs, Loadbalancer, ...) machbar bzw. nötig. ==== ipv6 only ==== Der Host bekommt eine weltweite routebare IPv6 Adresse und kann (ohne weitere Maßnahmen) nicht mit IPv4-Gegenstellen kommunizieren. eingehend * DMZ-Netz mit Loadbalancer/Reverse-Proxy (geht nicht mit allen Protokollen und 1:1-Zuordnungen bei TCP sind z.B. bei UDP nur bei wenigen Load-Balancern möglich) * NAT4 (wenn kein Portkonflikt) ausgehend: * NAT64/DNS64 https://de.wikipedia.org/wiki/NAT64 https://nat64.xyz/ - pfsense: vielleicht in 2.6.x https://redmine.pfsense.org/issues/2358 - Tayga, Jool, - **DNS64 nötig** - [[server:powerdns]] 4.4 oder via LUA https://doc.powerdns.com/recursor/dns64.html - bind ab 9.8.x - https://developers.google.com/speed/public-dns/docs/dns64 - funktioniert nicht mit dnssec * 464XLAT (im Wesentlichen wie NAT64/DNS64) * Proxy-Server (via Systemvariable) -> funktioniert nicht mit allen Protokollen. ===== Tunnelbroker ===== * Hurricane Electric https://tunnelbroker.net * [[wpde>Liste von IPv6-Tunnelbrokern]] Einrichtung: [[https://www.techgrube.de/tutorials/tunnelbroker-net-tunnel-in-der-fritzbox-einrichten|Tunnelbroker.net in der fritzbox einrichten]] IPv4-Adresse des Tunnelendpunktes "Server IPv4 Address": IPv6-Adresse des Tunnelendpunktes "„Server IPv6 Address": Lokale IPv6-Adresse Client IPv6 Address“ ohne das /64 IPv6-Präfix: Routed /64 ===== Migrationszenarien ===== Je nach Integrationsziel stehen viele Möglichkeiten zur Verfügung wie Tunneling über ^ Name ^ Bedeutung ^ Anmerkungen ^ | 6in4 | Ipv6 Adressen in Ipv4 Adressen verschachteln, die beiden Endpunkte des Tunnels stellen eine Brücke von/ins IPv6-Internet dar | "Temporary IPv6 Address" ist die Außen-IP | | 6RD | basiert auf 6to4, benutzt jedoch keinen speziellen Adressbereich, sondern den IPv6-Adressbereich des Provider | muss vom Provider angeboten werden | | 6over4 | Verfahren für isolierte Ipv6 Rechner in einem Ipv4 Netz Übertragung per Multicast und Übergabe von Ipv4-Stack an IPv6-Stack | | | 6to4 ((funktioniert nur dann korrekt, wenn Router oder PC direkt am IPv4-Internet hängen und eine öffentliche IPv4-Adresse besitzen)) | Eine Ipv4 Adresse kann in Ipv6 Darstellung geschrieben werden: 2002::141.28.2.19 | nächstes Gateway wird automatisch ermittelt, die Qualität ist jedoch schlechter und die Routen länger | | [[http://www.heise.de/netze/Teredo-bohrt-IPv6-Tunnel-durch-Firewalls--/artikel/135349|Teredo]] | Tunneltechnik | | Die IETF (Internet Engineering Task Force)-Gruppe [[http://www.ietf.org/html.charters/OLD/ngtrans-charter.html|ngtrans]] beschäftigt sich mit dem Thema. ===== Zuweisen von statischen IPv6 Adressen mit radvd ===== IPv6 Adressen enthalten häufig Hardwareadressen der Netzwerkkarten deshalb sind statische IP-Adressen ohne Konfiguration des Servers möglich. Diese kann mit dem [[http://www.litech.org/radvd/|Router-Advertising-Daemon (radvd)]] erfolgen. ===== IPv6 fähige Webseiten ===== * [[http://test-ipv6.com/|testipv6]] * [[http://ipv6.google.com|Google]] * [[http://www.six.heise.de|Heise]] * [[http://www.sixxs.net/main/|Sixxs]] * [[http://sixy.ch/|Sixy]] * [[http://www.ripe.net/|Ripe]] ===== Konfiguration ===== ==== Ipv6 in Linux ==== :!: **Achtung die folgende Konfiguration gilt nur für statisch vergebene IPv6-Adressen die ein Provider für einen nativen ipv6-Zugang vergeben hat** oder für ipv6-Installation im LAN. Tunnelbroker und ähnliche Hilfskonstruktionen die für Endkundenanschlüsse aktuell (mangels nativen ipv6-Zugang) nötig sind, erfordern eine andere Konfiguration! === Fall 1: Gateway innerhalb des eigenen Netzwerks === **Fall 1**: Gateway **innerhalb** des eigenen Netzwerks (Angaben wie eth0 und die IP6-Adressen des Hosts (0123:4567:89ab:def0::2) und des Routers/Gateways (0123:4567:89ab:def0::1) müssen angepasst werden) In der Datei ''/etc/network/interfaces'' diese Zeilen hinzufügen (Beispiel): iface eth0 inet6 static # Haupt-IPv6-Adresse des Servers address 0123:4567:89ab:def0::2 netmask 64 gateway 0123:4567:89ab:def0::1 # OPTIONAL: Default/Standard ipv6 Route up ip -6 route add default via 0123:4567:89ab:def0::1 dev eth0 down ip -6 route del default via 0123:4567:89ab:def0::1 dev eth0 === Fall 2: Gateway außerhalb des eigenen Netzwerks === Fall 2: Gateway **außerhalb** des eigenen Netzwerks - Angaben wie eth0 und die IP6-Adressen des Hosts (0123:4567:89ab:def0::2) und des Routers/Gateways (0123:4567:89ab:defa::1) müssen angepasst werden): in der Datei ''/etc/network/interfaces'' diese Zeilen hinzufügen: iface eth0 inet6 static # Haupt-IPv6-Adresse des Servers address 0123:4567:89ab:def0::2 netmask 64 # Host-Route, da das Gateway ausserhalb des eigenen /64 Blocks liegt up ip -6 route add 0123:4567:89ab:defa::1 dev eth0 down ip -6 route del 0123:4567:89ab:defa::1 dev eth0 # OPTIONAL: Default ipv6 Route up ip -6 route add default via 0123:4567:89ab:defa::1 dev eth0 down ip -6 route del default via 0123:4567:89ab:defa::1 dev eth0 Optional in der Datei ''/etc/sysctl.conf'' diese Zeilen hinzufügen: ################################################################### # Additional settings - these settings can improve the network # security of the host and prevent against some network attacks # including spoofing attacks and man in the middle attacks through # redirection. Some network environments, however, require that these # settings are disabled so review and enable them as needed. # # Do not accept ICMP redirects (prevent MITM attacks) net.ipv6.conf.all.accept_redirects = 0 # Do not accept IP source route packets (we are not a router) net.ipv6.conf.all.accept_source_route = 0 === Default/Standard ipv6 Route nur fallweise setzen === Default/Standard ipv6 Route fallweise setzen: * Standardroute (nur ipv6 !)löschen: ip -6 route del default * Standardroute setzen (hier: 0123:4567:89ab:defa::1): ip -6 route add default via 0123:4567:89ab:defa::1 dev eth0 === Router-Konfiguration === Dauerhaft die **Weiterleitung von Paketen aktivieren** (als Router arbeiten): In der Datei ''/etc/sysctl.conf'' diese Zeilen hinzufügen: # Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host net.ipv6.conf.all.forwarding=1 # oder alternativ nur eth0: # net.ipv6.conf.eth0.forwarding=1 oder fallweise: * Alle Netzwerkschnittstellen: echo 1 > /proc/sys/net/ipv6/conf/all/forwarding * bestimmte Schnitstelle (hier eth0): /proc/sys/net/ipv6/conf/eth0/forwarding === Diagnose-tools === * **IPv6-Adressen** anzeigen: ifconfig eth0 oder ip -6 address show eth0 * IPv6 **routing-Tabelle** des [[linux:Kernel|Kernels]]: netstat -nr -6 * **Ping**: ping6 ipv6.google.com * **Traceroute**: traceroute6 ipv6.google.com * **DNS-Auflösung**: * **in ipv6 auflösen**:dig ipv6.google.com AAAAbzw. an einen bestimmten DNS-Server (hier [[http://code.google.com/intl/de-DE/speed/public-dns/docs/using.html|Google Public DNS]]) dig www.six.heise.de AAAA @2001:4860:4860::8888 * **Rückwärtsauflösung**: dig -x 2a00:1828:1000:1148::2 * ;; QUESTION SECTION: ;2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.4.1.1.0.0.0.1.8.2.8.1.0.0.a.2.ip6.arpa. IN PTR ;; ANSWER SECTION: 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.4.1.1.0.0.0.1.8.2.8.1.0.0.a.2.ip6.arpa. 3600 IN PTR dns01.manitu.net. * per ipv6 erreichbare **DNS-Server** (Auswahl) * [[http://code.google.com/intl/de-DE/speed/public-dns/docs/using.html|Google Public DNS]]: 2001:4860:4860::8888 * [[http://code.google.com/intl/de-DE/speed/public-dns/docs/using.html|Google Public DNS]]: 2001:4860:4860::8844 * dns01.manitu.net: 2a00:1828:1000:1148::2 * dns02.manitu.net: 2a00:1828:1000:1149::2 * **HTTP-Abruf** testen:wget -6 ipv6.google.com === IPv6 Privacy Extensions === http://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/x1062.html ==== Webserver ==== Hinweise zu IPv6 bei Webservern: * [[apache/apache#ipv6|Apache]] * [[server:nginx#Ipv6|nginx]] ==== Unterschiede von DHCPv6 zu DHCPv4 ==== * kein default gateway (Router advertisment nötig) * keine Netzmaske (prefix und on-link flag im RA für Kommunikation innerhalb des Netzes bei Verwendung globaler Adressen nötig * Basis ist nicht die MAC sondern DUID * DUID-LL: Link Layer address -> nicht jeder client unterstützt manuelles setzen * [[https://datatracker.ietf.org/doc/html/rfc6939|RFC6939]] Client Link-Layer Address Option in DHCPv6 (Unterstützung im DHCP-Relay/Router notwendig) ==== Ipv6 bei der Fritz.box ==== Bei v4 ist die Freigabe noch per NAT auf die eine Außen-IP der Box gemappt (eingehend und ausgehend die gleiche public IP). Bei v6 hat die Box eine eigene v6-Adresse und vergibt aus seinem Präfixen Adressen für die Clients in seinem Netz. Konfiguration: Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> **IPv6-Einstellungen** (Erweiterte Ansicht) * Unique Local Addresses * Keine Unique Local Addresses (ULA) zuweisen (nicht empfohlen) ((wüsste wozu man private v6-Adressen im Heimetz braucht solange kein Gerät v6-only ist also "Unique Local Addresses (ULA) zuweisen, solange keine IPv6-Internetverbindung besteht (empfohlen)")) * Unique Local Address Ihrer FRITZ!Box: fd00::1234:1234:1234:1234/64 (das wird vom DHCPv6 als Defaultroute gesetzt) * DHCPv6-Server im Heimnetz: * DNS-Server, Präfix (IA_PD) und IPv6-Adresse (IA_NA) zuweisen * siehe auch "Verwendete IPv6 Präfixe" "FRITZ!Box wird als DNS-Server via DHCPv6 bekannt gegeben. Teile des vom Internetanbieter zugewiesenen IPv6-Netzes werden an nachgelagerte Router weitergegeben. Geräte im Heimnetz bekommen eine IPv6-Adresse via DHCPv6 zugewiesen." Internet -> Zugangsart -> DNS-Server * Andere DNSv4-Server verwenden * Andere DNSv6-Server verwenden * DNS over TLS (DoT) Die Fritz.box hat eine etwas gewöhnungsbedürftige Methode zur Port-Freigabe. Besondern wichtig ist die IPv6 Interface-ID, die sich aus der zweiten /64 hälfte der mngtmpaddr ergibt (die aus der MAC-Adresse berechnet wird). ip -6 ad sh eth0 | grep mng" inet6 2a02:1234:1234:1234:1234:5678:9012:3456/64 scope global dynamic mngtmpaddr noprefixroute Hier ist die Interface-ID also 1234:5678:9012:3456 . * https://www.heise.de/ratgeber/IPv6-Freigaben-mit-Namensdienst-auf-Fritzboxen-nutzen-6234026.html * https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-6360/845_IPv6-Freigaben-in-FRITZ-Box-einrichten/ === dyndns === Bei Fritz-boxen ist "myfritz" dabei, die auch mit einem CNAME-Eintrag die myfritz-Adresse gut von Außen ansteuern/sehen kann (zumindest wenn kein DS-Lite im Spiel ist). Da sich bei v6 auch das Präfix ändert, wäre dies interessant daraus die Rechner-Adressen abzuleiten. * https://service.avm.de/help/de/FRITZ-Box-7590/019p2/hilfe_dyndns * https://github.com/petzsch/partner4trade-dyndns-bulk-updater ==== Ipv6 in Windows ==== === UNC-Pfade === UNC-Pfade dürfen keine Doppelpunkte enthalten deshalb ist folgender workaround notwendig: - alle Doppelpunkte durch Bindestriche ersetzten - und ''ipv6-literal.net'' anhängen. Beispiel: net use \\fe08::babe:face:cafe:dead\share net use \\fe08--babe-face-cafe-dead.ipv6-literal.net\share Die Rückumwandlung in die IPv6-Adresse geht übrigens nicht über eine DNS-Abfrage, sondern ist seit Vista als Abkürzung in die Namensauflösung von Windows eingebaut. In anderen Betriebssystemen und Programmen mit eigener Namensauflösung funktioniert der Trick daher nicht. Quelle: [[http://www.heise.de/ct/hotline/IPv6-in-UNC-Pfaden-1378597.html|IPv6 in UNC-Pfaden]]. ===== Problembehandlung ===== ==== NDP Tabelle ==== * anzeigen: ''ip -6 neigh'' -> [[software:ansible]] ab-hoc über alle hosts: ''ansible -i hosts -m shell -a "ip -6 neigh" all'' * löschen: ''ip -6 neigh flush all'' ===== Ipv6 Absicherung ===== Router Advertisements ignorieren (wenn eh Router manuell gesetzt) und SLAAC nicht eingesetzt: net.ipv6.conf.default.accept_ra=0 net.ipv6.conf.default.autoconf=0 net.ipv6.conf.all.accept_ra=0 net.ipv6.conf.all.autoconf=0 # wenn eth0: net.ipv6.conf.eth0.accept_ra=0 net.ipv6.conf.eth0.autoconf=0 for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done