/ online.net

Online.net: IPv6 unter Debian einrichten

Da IPv4 Adressen zur Neige gehen und man nun bei jedem ordentlichen Hoster ein /64 oder sogar /48 IPv6 Block bekommt, stellt sich die Frage warum man nicht diese Option nutzt, um für die Zukunft gerüstet zu sein.

Ich stelle hier nun eine Möglichkeit vor, mit dem ihr kinderleicht ein /48 IPv6 Block mit eurem online.net Server einrichtet.

Anforderungen
  • online.net Server
  • root SSH Login

Zuerst müsst ihr euch auf euren Server via SSH mit dem root User aufschalten. Dafür könnt ihr z.B. PuTTY benutzen.
Anschließend erstellt ihr ein neues Script, das z.B ipv6.sh heißt. Der Inhalt dieses Scripts sieht folgendermaßen aus:

#/bin/bash

DUID=$1

skill -9 dibbler-client
dpkg -P dibbler-client
rm -rvf /etc/dibbler /var/log/dibbler /var/lib/dibbler

apt-get install -y wide-dhcpv6-client vim-common tcpdump

/etc/init.d/wide-dhcpv6-client stop

echo 'profile default { script "/etc/wide-dhcpv6/dhcp6c-script"; };' > /etc/wide/dhcpv6/dhcp6c.conf
echo 'id-assoc pd { prefix-interface eth0 { }; };' >> /etc/wide-dhcpv6/dhcp6c.conf
echo 'interface eth0 { send ia-pd 0; };' >> /etc/wide-dhcpv6/dhcp6c.conf
echo $DUID | awk '{ gsub(":"," "); printf "0: 0a 00 %s\n", $0 }' | xxd -r > /var/lib/dhcpv6/dhcp6c_duid

/etc/init.d/wide-dhcpv6-client start

Um das Script ausführbar zu machen, müsst ihr die Dateirechte verändern:

chmod +x ipv6.sh  

Nun braucht ihr die DUID des IPv6 Blocks aus dem Controlpanel. Geht auf die Serverliste, wählt euren Server aus und klickt auf den IPv6 Reiter auf der linken Seite.
Sucht oder erstellt euch einen Block und kopiert die DUID.
Anschließen führt ihr das Script mit folgendem Befehl aus:

./ipv6.sh DUID

Allerdings reicht das Script selbst nicht aus, also müsst ihr als nächstes den richtigen Gateway vom Router finden. Am Besten funktioniert das mit

tcpdump -i eth0 -n -s 4000 -v ip6

Um nun die Gateway IP zu finden muss man nach einer Zeile, die router advertisement beinhaltet suchen.
In meinem Fall wäre es
15:22:16.257672 IP6 (class 0xe0, hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::e34f:6de3:bd24:42ff > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 32
In diesem Fall ist fe80::e34f:6de3:bd24:42ff die Gateway IP.

Öffnet /etc/network/interfaces mit eurem Lieblingseditor und tragt folgende Einstellungen ein:

iface eth0 inet6 static
address DEIN_IPv6_BLOCK::1
netmask 48
gateway DEINE_GATEWAY_IP
accept_ra 1

Damit der Linuxkernel noch die Anfragen annimmt und weiterschickt, muss folgendes in die /etc/sysctl.conf geschrieben werden:

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.eth0.accept_ra=1

Anschließend mit sysctl -p die Datei neu einlesen.

Um den DHCPv6 Client bei jedem Neustart des Server zu starten, tragt einfach folgendes in eure /etc/rc.local ein:

/etc/init.d/wide-dhcpv6-client restart
ifdown eth0 && ifup eth0

Nun sollte alles funktionieren! Startet euren Netzwerkadapter mit ifdown eth0 && ifup eth0 neu und pingt eine IPv6 fähige IP an:

magic@ffmwu:~$ ping6 -c4  ipv6.google.com
PING google.com(par03s13-in-x08.1e100.net) 56 data bytes
64 bytes from par03s13-in-x08.1e100.net: icmp_seq=1 ttl=58 time=0.913 ms
64 bytes from par03s13-in-x08.1e100.net: icmp_seq=2 ttl=58 time=0.999 ms
64 bytes from par03s13-in-x08.1e100.net: icmp_seq=3 ttl=58 time=1.42 ms
64 bytes from par03s13-in-x08.1e100.net: icmp_seq=4 ttl=58 time=1.01 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.913/1.086/1.420/0.197 ms

Wichtig für das Ganze ist, dass Ihr in eurer Firewall Port 546 und 547 UDP freigibt

Peter

Peter

- German - lives in a little town near Frankfurt/Main - being active at Freifunk Wiesbaden - 23yo - loves to hangout in the IRC -

Read More
Online.net: IPv6 unter Debian einrichten
Share this