• Sprache:

Quick Info: Debian hängt im Bootprozess dank IPv6

Ich habe vor kurzem einige HDDs gekauft, um mein selbst gebautes OpenMediaVault Debian NAS zu vollenden. Ich persönlich bin der Ansicht, dass IPv6 unter allen Umständen supported werden sollte, also aktivierte ich es nach Abschluss der Installation und anschließend lief alles Fehlerfrei. Über Nacht habe ich das NAS runter gefahren, da es noch keinen Inhalt hatte der dauerhaft verfügbar sein musste.
Beim nächsten Boot blieb Debian dann an einem Punkt hängen und weigerte sich weiter zu machen. Auf den ersten Blick sah es nach einem Fehler in der resolv.conf aus, da während des Boots einige Fehlermeldungen dazu kamen aber am Ende stellte sich raus, dass der NIC auf eine IPv6 Adresse vom DHCP Server auf meiner FritzBox (bitte keine Kommentare dazu, wenn ich darüber entscheiden könnte, dann wäre das Teil schon lange im Müll). In der DHCP Config war allerdings irgendetwas verstellt weshalb Debian endlos auf eine Adresse wartete.
Die Lösung für das Problem war IA_PD und IA_NA via FritzBox GUI zu aktivieren und voilà: der Boot lief fehlerfrei durch.

SoYouStart und IPv6

Ich habe vor einigen Monaten meine Infrastruktur von Kimsufi zu SoYouStart umgezogen und dort erstmals mein verfügbares IPv6 /64 Subnet näher in Augenschein genommen. Zumindest bei meinem Server, war IPv6 nicht weiter konfiguriert als die Loopback Adresse fe80:: aber angeblich soll es auch Deployments mit mindestens einer gekonften IPv6 Adresse geben.
Ziel meiner Konfiguration ist es, zwei IPv6 Adressen auf Wheezy eingerichtet und nutzbar zu haben. Im OVH Wiki gibt es zum Thema weitere IPs hinzufügen einen Artikel der die wichtigsten Informationen zusammenfast:

  • dein Kernel muss IPv6 fähig sein
  • das Gateway befindet sich außerhalb deines Subnets
  • zum Gateway muss eine eine Route gesetzt werden

Die Gateway Adresse setzt sich zusammen aus deinem Subnet und fünf FF Nibbles.
Haben wir das Subnet 2001:41D0:1:46e::/64 so ist das Gateway 2001:41D0:1:4FF:FF:FF:FF:FF weil wir die ersten dreieinhalb Nibbles stehen lassen und die restlichen Nibbles mit FF auffüllen.

Kommen wir zur Konfiguration:
Interface eth0’s inet6 Protokoll beim Boot aktivieren und auf statisch mit der IP 2001:41D0:1:46e::1 und dem Subnet /64 setzen:

iface eth0 inet6 static
address 2001:41D0:1:46e::1
netmask 64

Beim Interface-Start eine Route zu OVHs IPv6 Gateway für dein Subnet hinzufügen, als Default setzen und beim Stop automatisch entfernen:

up ip -6 route add 2001:41D0:1:4FF:FF:FF:FF:FF dev eth0
up ip -6 route add default via 2001:41D0:1:4FF:FF:FF:FF:FF dev eth0
down ip -6 route del 2001:41D0:1:4FF:FF:FF:FF:FF dev eth0
down ip -6 route del default via 2001:41D0:1:4FF:FF:FF:FF:FF dev eth0

Reboot!

Nein wirklich. Reboot. Kein service networking restart oder stoppen und starten via init.d sondern ein gesunder Reboot. Allein schon weil es beruhigt zu wissen das die Auto-Config beim Boot funktioniert und der Server nach einem Crash oder Ähnlichem nicht offline bleibt weil seine Interfaces die Config nicht schlucken.
Kommt nicht in Frage? Dann bleibt dir nur die Commands manuell auszuführen.

Jetzt solltest du mit ping6 ipv6.google.com in der Lage sein, eine IPv6 Verbindung zu Google aufzubauen oder deinen Server über 2001:41D0:1:46e::1 anzupingen.

Dank für Rat und Tat an henk in freenode’s #debian-de!