Berny's Knowledgebase als Newsfeed

Dieser Artikel geht davon aus, dass Sie IPv6 unter Linux einrichten möchten, ggf. in einem kleinen Netz. Ob in diesem Netz dann auch Rechner mit anderen Betriebssystemen laufen, spielt keine Rolle, wir richten einen Router unter Linux ein, der die Funktionalität letztendlich für alle anderen Rechner im Netz zur Verfügung stellt.

Leider bieten Stand heute (Ende 2009) die meisten Access-Provider, z. B. DSL-Anbieter kein IPv6 nativ an, d. h. vergeben keine IPv6-Adressen. Daher müssen wir unsere schönen IPv6-Pakete durch einen Tunnel schicken bis zur nächsten Auffahrt auf die "neue Datenautobahn". Zwischen den beiden Tunnelendpunkten laufen die v6-Pakete eingepackt in IPv4-Paketen. Einen Tunnelendpunkt betreiben wir auf unserem Linux-Rechner selbst, den anderen bieten diverse Anbieter an, teilweise kostenlos, z. B. SixXS

Ausserdem kann man beim Tunnel-Provider auch gleich ein eigenes offizielles IPv6-Subnetz beantragen, das vom Anbieter über den Tunnel zu uns geroutet wird. Normalerweise bekommt man dann gleich ein Subnetz mit Netzmaske /48 zugeteilt, d. h. 280 offizielle Adressen oder 1024 Adressen oder anders ausgedrückt 65.535 Subnetze der Größe /64 - sollte also für die nächste Zeit ausreichend sein…

IPv6 ist auf jeden Fall eine schöne Spielwiese mit viel experimentier-Potential und man kann eine Menge dabei lernen. Und ich finde einfach, man sollte jetzt anfangen, in der Richtung was zu tun, denn laut aktueller Prognose wird das letzte offizielle IPv4-Subnetz irgendwann in 2011 vergeben. Spätestens dann wird IPv6 einen ganz neuen Drive bekommen…

Als erstes vielleicht mal einen Artikel über die Grundlagen lesen.

Weitere Beschreibung am Beispiel von Ubuntu oder Debian, aber auf allen anderen Distributionen geht das vermutlich ähnlich.
https://wiki.ubuntu.com/IPv6
und
http://ipv6.debian.net/
helfen erst mal weiter. Da jede so ihre eigenen Stärken hat, kann man durchaus auch beide parallel benutzen.

Mit deren Hilfe kommt man innerhalb überschaubarer Zeit ins v6-Internet - längste Zeitspanne ist das Approvement bei sixXS, die man leider 2x braucht (1x für den Tunnel, 1x für’s Subnetz)

Ausserdem hilfreich:

man ip
man ip6tables
ping6

Als nächstes steht man dann vermutlich vor dem Thema die neuen v6-Adressen im DNS verwalten und vorwärts und rückwärts auflösen zu wollen, denn auf Dauer ist hantieren mit den recht langen IPv6-Adressen doch extrem unhandlich. Eine Doku für den weit verbreiteten DomainNameService[DNS]-Server bind findet sich unter
http://www.linuxtopia.org/online_books/network_administration_guides/Linux+IPv6-HOWTO/hints-daemons-bind.html

Wer Informationen lieber redundant pflegt, kann die Zuordnung von IPv6-Adressen zu Namen aber genauso auch in der

/etc/hosts

eintragen. Hier ist die Syntax genauso wie bei IPv4-Adressen.

Routing einschalten

Auf Rechnern, die IPv6-Pakete geroutet werden sollen, muss IP-Forwarding eingeschaltet werden.

Wenn auf dem Rechner radvd eingesetzt wird, setzt er sich das schon selber. Ansonsten geht das ähnlich wie bei IPv4:

Eintragen in /etc/sysctl.conf

net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1

Danach neu einlesen mit

sysctl -p

Ist die eingesetzte Software IPv6-fähig?

http://www.deepspace6.net/docs/ipv6_status_page_apps.html bietet hier eine sehr gute Übersicht mit einer langen Liste von Software-Produkten

Jetzt geht es daran, die verwendeten Software-Produkte (vor allem die Server-Software) so zu konfigurieren, dass IPv6 auch verwendet wird.

Erfahrungswerte mit IPv6 unter Ubunutu 8.04

Ziel der Experimente war es zu klären, ob ein keines Netzwerk heute (Ende 2009) vollständig mit IPv6 betrieben werden kann, d. h. ob es möglich ist, im internen Netz vollständig auf IPv4 zu verzichten. Um Kommunikationspartner im "alten" (IPv4)-Internet vorübergehend noch zu erreichen, sollten Proxy-Server für die gängigen Protokolle (Squid für http/https, Postfix für Mail, …) eingesetzt werden. Die Tests wurden unter Ubuntu 8.04 (die aktuelle LTS) durchgeführt, nur mit den enthaltenen (und vom Distributor gepflegten) Versionen.

Funktioniert

  • Apache

  • Open-SSH-Server

  • Bind9

  • Postfix
    mit Hilfe von http://www.postfix.org/IPV6_README.html

  • Dovecot IMAP Server
    allerdings mit der Einschränkung, dass man nur genau eine listen-Direktive angeben kann

    • also entweder * für alle IPv4-Interfaces

    • oder [::] für alle Interfaces (IPv4 und IPv6)

    • oder genau eine IPv4-Adresse

    • oder genau eine IPv6-Adresse
      Parallelbetrieb ist also nur möglich, wenn es akzeptabel ist, auf allen Interfaces einen Listener aufzumachen

Funktioniert nicht

  • shorewall
    Unterstützt in der beiliegenden Version für IPv6 nur "Any-Any-Allow" oder "Any-Any-Reject"
    später Versionen sollen IPv6 unterstützen
    Workaround:
    beim Tunnel-Interface als pre-up Script ein ip6tables-restore einbinden und darüber manuell ip6tables-Regeln setzen
    Auszug aus /etc/network/interfaces:

auto sixxs
iface sixxs inet manual
        pre-up invoke-rc.d aiccu start
        pre-up ip6tables-restore < /etc/network/ip6tables
        up sleep 1
        up ip link set mtu 1480 dev $IFACE
        post-down invoke-rc.d aiccu stop
  • Squid
    Unterstützt in der beiliegenden Version kein IPv6
    später Versionen sollen IPv6 unterstützen
    Workaround:
    Apache mit mod_proxy verwenden

  • ISC DHCP-Server
    später Versionen sollen IPv6 unterstützen
    kann beim übermitteln von Parametern an den Client keine IPv6-Adressen für Name-Server verwenden
    Workaround:
    bislang keiner, mal forschen, ob das irgendwie mit nativen IPv6-Mitel auch geht, radvd oder so…

  • OpenVPN braucht einen /kb/bin/view/Main/OpenVPN#IPv6_über_OpenVPN[Workaround]
    dieser funktioniert aber recht gut, siehe /kb/bin/view/Main/OpenVPN#IPv6_über_OpenVPN[OpenVPN über IPv6]

Vorläufiges Fazit

Weitere Experimente folgen. Es geht natürlich schon einiges. Parallelbetrieb ist auch problemlos möglich. Wo beide Protokoll-Varianten im Einsatz sind, wird IPv6 bevorzugt verwendet, was den Umstieg natürlich erleichtert. Trotzdem ist der Weg derzeit noch steinig. Man muss bereit sein, viele Workarounds zu gehen. Man lernt aber auch sehr viel dabei.

Eine vollständige Ablösung von IPv4 scheint derzeit noch nicht die erste Wahl zu sein. IPv4 sollte bislang noch weiter betrieben werden.

Test auf Dual-Stack-Probleme

2011-10-03: Immer mehr Webseiten werden inzwischen parallel per IPv4 und IPv6 angeboten. Egal ob man selber IPv6 schon nutzt oder noch nicht, ist es wichtig, dass der eigene Rechner die richtige Entscheidung trifft, ob eine Verbindung über IPv4 oder IPv6 abgewickelt werden soll. Meist wird die Entscheidung automatisch richtig getroffen und alles funktioniert. In seltenen Fällen kommt es aber zu der Situation, dass ein Rechner zwar meint, per IPv6 das Internet erreichen zu können, das dann in der Praxis aber nicht funktioniert. Es kommt zum sogenannten "Dual-Stack-Problem". Pakete werden per IPv6 verschickt, kommen aber nie beim Zielsystem an, die Verbindung bricht ab.

Dieses Problem kann auch Rechner treffen, von denen der Admin der Meinung ist, sie wären ausschliesslich per IPv4 angebunden. Irgendwo her hat der Rechner aber ein Router Advertisment bekommen und ist nun der Meinung, IPv6 sprechen zu können…

Da das Dual-Stack-Problem oft schwierig festzustellen ist, da es nur zu sporatischen Verbindungsproblemen führt, hat das RIPE eine Webseite mit automatischem Test ins Netz gestellt. Damit kann man sich sehr schnell einen Überblick verschaffen. Es wird dabei einfach jeweils ein Bild von verschiedenen großen Webseiten geholt, sowohl von welchen die Dual-Stack verwenden, als auch von welchen, die bislang nur per IPv4 erreichbar sind. Auch Hinweise auf ggf. nötige Problembehebung fehlen nicht.

Schneller Browser-Test: IPv4 oder IPv6?

Die schnellste (mir bekannte) Methode um festzustellen, ob ein Rechner Verbindungen per IPv6 herstellen kann: Aufrufen der Seite www.kame.net
Wenn die Schildkröte ganz oben auf der Seite tanzt, lief die Verbindung über IPv6. Steht sie still, handelte es sich dagegen um einen Request per IPv4.