Ich dokumentiere hier die Verwendung von IPv6 im Heimnetzwerk und generell, als Vorüberlegung für das Setup meines virtualisierten Heimservers.

Da mein Internet-Provider M-Net natives IPv6 bietet (wir haben hier dual stack; die Regel ist aber DSLite, womit man nicht mal mehr eine eigene IPv4-Adreses hat), will ich das auch direkt nutzen um die Netzwerkplanung mit den VMs entsprechend produktiv umsetzen zu können.

Mit der FritzBox

Wir fangen von hinten her an und starten mit der Praxis, die Theorie wird am Beispiel erklärt.

Als Voraussetzung sollte aus der FritzBox bereits Internet mit IPv6 rauskommen. Das erkennt man daran, dass auf der Hauptseite der Verwaltungsoberfläche unter Verbindungen bereits Internet, IPv6 mit einem grünen Licht ausgestattet ist. Dort sieht man dann für gewöhnlich auch das IPv6-Präfix, was später relevant wird.

Meine virtuellen Maschinen auf meinem Server sollen durch eine Firewall-VM in eigene Adressbereiche (IPv4 und IPv6) gesteckt werden. Dazu brauche ich eine Unterteilung der Adressen. Mit IPv4 ist das einfach. Die FritzBox hat 192.168.178.1-255 als Standard-Adressbereich und ich kann für VMs irgend einen anderen privaten Adressbereich nehmen, z.B. 10.0.0.1-255. In der FritzBox kann man eine statische Route in diesen Bereich einstellen, die über die Firewall-VM führt.

Mit IPv6 funktioniert das mit den Zahlen ein wenig anders. Da werden Präfixe delegiert:

IPv6-Einstellungen

Im Menü der FritzBox unter Heimnetz, Netzwerkeinstellungen, IPv6-Adressen findet man die notwendige Option: DNS-Server und IPv6-Präfix (IA_PD) zuweisen. Diese Option muss aktiviert werden. Mit dieser Einstellung verteilt die FritzBox also Teile des vom Provider zugewiesenen Adressbereichs an weitere Router im Netzwerk.

IPv6-Adressbereiche und verfügbare Adressen

In meinem Beispiel kommt von M-Net ein /56-Präfix an. IPv6-Adressen haben immer eine Größe von 128 Bit; davon gibt der Provider hier schon 56 Bit vor, die anderen stehen mir zur Verfügung, also 2\^72-Adressen. Wenn man will - und wir wollen - kann man diese Zahl Adressen noch in Netzwerke mit /64-Präfix unterteilen, also Subnetze mit jeweils 64 bereits vorgegebenen Bits einrichten. In unserem /56-Adressbereich haben 256 /64-Subnetze Platz. Das sind immer noch eine ganze Menge Adressen! /64 ist dabei die Standard-Größe und die kleinste sinnvoll verwaltbare Einheit bei IPv6. Verschiedene Dinge gehen bei stärkerer Unterteilung teilweise kaputt, also nimmt man einfach das /64. Netzwerke mit kleinerem Präfix, also mit mehr verfügbaren Adressen, kann man auch machen, wenn man so viele Adressen braucht oder die Netze anders strukturiert.

Kurzer Sinn der langen Erklärung: Die FritzBox bekommt 2\^72 Adressen und delegiert die Verwaltung von Subnetzen an nachgelagerte Router wie die Firewall-VM. Das geht ohne weiteres, indem man einfach wie oben im Bild den Haken setzt. Details handeln FritzBox und Firewall untereinander aus.

IPv6-Adressen an Geräte vergeben

Die Vergabe von IPv6-Adressen per DHCP ist übrigens nicht notwendig. Die FritzBox schickt bei aktiviertem IPv6-Betrieb automatisch Router Advertisments über das Netzwerk. Die angeschlossenen Geräte erfahren so, welches Präfix genutzt wird (also welcher Teil der IPv6-Adresse vom Provider vorgegeben ist), DNS-Einstellungen und auch die Anweisung, was sie für Adressen verwenden sollen. Mit der oben abgebildeten Konfiguration erfahren angeschlossene Geräte, dass sie sich selbst Adressen unter Beachtung des vorgegebenen Präfix aussuchen sollen, welche sie nach verschiedenen Methoden ermitteln (Slaac). Weiterhin legen sich viele Rechner auch noch eine weitere IPv6-Adresse zu, die keine errechenbaren Rückschlüsse auf den Rechner zulässt, der die Adresse trägt (etwa anhand der MAC-Adresse), um im Internet die Privatsphäre zu schützen, über die so genannten Privacy Extensions.

Das kann sich doch niemand merken! Wir brauchen DNS.

Die jeweiligen Adressen der Geräte können mit IPv6 nicht mehr so einfach gehandhabt werden wie noch mit IPv4. Allein sich eine Adresse zu merken ist schon unglaublich umständlich. Wenn die Geräte sich ihre Adressen selbst zuweisen und sich diese Adressen auch regelmäßig ändern können (mein ISP weist bei jeder Verbindungstrennung ein neues IPv6-Präfix zu, ich habe also keine statischen Adressen!), macht das auch noch weniger Sinn.

Hier kommt DNS ins Spiel. Geräte schicken bei der Nachfrage nach IP-Adressen oder auf der Suche nach Routern im Fall von IPv6 ihren Hostname mit, also den Rechnernamen. Den sieht man dann etwa in der FritzBox in der Liste angemeldeter Geräte. Da eine FritzBox meist nicht nur DHCP sondern auch DNS für das Netzwerk bereitstellt, registriert sie automatisch auch die IPv6-Adressen (nebst den IPv4-Adressen) im DNS-Server für das lokale Netzwerk. Heißt mein Rechner etwa crm114, kann ich ihn im Netzwerk der FritzBox unter crm114.fritz.box erreichen.

Welche Vorteile hat das, außer dass es neu ist?

Bei der Unterscheidung von IPv4 und IPv6 geht es durchaus um ein sehr technisches Implementierungesdetail, was im Idealfall im Alltag nicht bemerkt wird. Dennoch gibt es einige Faktoren, die es sehr relevant für die Zukunft machen:

  • IPv4 bietet 2\^32 mögliche IP-Adressen, also etwas über 4 Milliarden. Das klingt nach viel, die sind uns aber praktisch schon ausgegangen. Mit Tricks wie NAT wird die Knappheit noch ausgehalten, eine richtige Lösung des Problems wäre aber sinnvoller.
  • Daraus resultierend: Viele Internetanbieter vergeben keine eigenen IPv4-Adressen mehr an ihre Kunden sondern stecken sie nochmal hinter einen Router mit NAT, so dass sich sehr viele Kunden eine IPv4-Adresse teilen. Wer Ports in seinem Netzwerk im Internet offen haben möchte, kann das in diesem Fall meist vergessen.

    Viele der Pvorider setzen glücklicherweise aber immerhin auf DSLite, was den Kunden IPv6 verfügbar macht, wo keine solchen Einschränkungen drohen - solange alle beteiligten Kommunikationspartner auch IPv6 sprechen.

  • Einzelne Rechner aus dem Internet zu erreichen wird viel einfacher. Anstatt Ports umleiten zu müssen und an Probleme zu stoßen, wenn zwei Rechner im durch NAT abgetrennten Netzwerk den selben Dienst anbieten und daher auch den selben Port verwenden wollen, den es auf der einzelnen IPv4, die man im fall von NAT hat, nur ein Mal gibt, kann man hier einfach mehrere URLs verwenden und die jeweiligen Rechner direkt ansprechen.