SoYouStart and IPv6

Some month ago I switched from Kimsufi to SoYouStart and for the first time I used my /64 IPv4 subnet. On my server only the loopback interface was configured but I heard that in some cases deployed servers had at least one IPv6 address set up. The aim of my configuration is to have two IPv6 addresses correctly set up on my Debian Wheezy server. The OVH wiki has an article which wraps the most important information up:

  • your kernel must support IPv6
  • the gateway is outside your used subnet
  • you have to set up a route to your gateway

The gateway address is composed of your subnet and fice FF nibbles.
If our subnet is 2001:41D0:1:46e::/64 then the gateway is 2001:41D0:1:4FF:FF:FF:FF:FF because we leave the first three nibbles an fill up the empty ones with FF.

Lets do the configuration:
Enable eth0’s inet6 protocol at boot and set the static IP 2001:41D0:1:46e::1 with subnet /64:

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

Automatically create a route to the OVH gateway and set it as default route on interface startup and delete it on interface shutdown:

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!

No seriously. Reboot. Not a service networking restart or a start and stop via init.d, a good and healty reboot. For that reason alone to verify that the auto-config is working on bootup and your server does not stay offline after a unplanned restart due to a crash just because the config is not working.
Reboot is not an option? That leaves you with executing the commands yourself.

After doing so you should be able to use ping6 ipv6.google.com to connect to Google via 2001:41D0:1:46e::1.

Thanks to henk at freenode’s #debian-de!

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!