Kein funktionierendes IPv6 mehr nach dist-upgrade auf jessie

  • Hallo,


    letztes Wochenende habe ich meinen vserver von debian wheezy auf jessie ge-dist-upgraded. Nun fiel mir auf, dass der server per IPv6 nicht mehr zu erreichen ist. In einer console auf dem server kann ich alle Dienste erreichen, wenn ich die global IP des servers verwende.
    Ich komme jedoch weder auf eine externe IPv6 (bspw: ping6 2001:4998:58:c02:0:0:0:a9 (yahoo.com)) noch kann ich von außen meine IPv6 anpingen.
    Unter wheezy war der server unter IPv6 ganz normal zu erreichen, pingbar und auch der apache, dovecot etc antworteten auf IPv6.


    Von außen probieren den server zu tracen sieht so aus:


    cat /etc/network/interfaces:


    Ich kann bspw. über diese Seite meine korrekte IPv6 IP auflösen, mich aber nicht per IPv6 anpingen.


    Der server hat auch bereits mehrere reboots bekommen.
    Hat jemand eine Idee, was passiert sein könnte und wie ich das wieder hin bekomme?

  • Komisch komisch.
    Ich habe eth0 statisch konfiguriert und jetzt wieder auf dhcp. Nach Neustarts und ein paar if-up/downs funktioniert es jetzt.
    Irgendwo hatte sich wohl irgend etwas verschluckt.


    Nach einem reboot habe ich für einige Zeit (30 min - 2 h) IPv6, nach einiger Zeit ist dann alles wieder wie vorher und ich komme über IPv6 weder raus noch rein.
    Das ganze sieht ähnlich aus zu diesem Post 'IPv6 Verbindung sehr instabil'.


    ip6tables --list führt bei mir zu folgendem Ergebnis:

    Code
    1. Chain INPUT (policy ACCEPT)
    2. target prot opt source destination
    3. ACCEPT ipv6-icmp anywhere anywhere
    4. Chain FORWARD (policy ACCEPT)
    5. target prot opt source destination
    6. Chain OUTPUT (policy ACCEPT)
    7. target prot opt source destination


    Habe ich noch etwas vergessen?


    Solero

  • Ich vermute stark, dass IP tables damit nichts zu tun hat.


    Diesem Post zufolge bin ich nicht der einzige Kunde, der das Problem hat. Es wird darin auf ein Blog wo folgende Erweiterung des inet6 Blocks von /etc/network/interfaces genannt wird:

    Code
    1. post-up ip -6 route add default via fe80::1 dev eth0


    Bei mir sieht das dann so aus:


    Nur leider hilft das auch nicht. Nach ca. 30 minuten ist IPv6 wieder weg. Jetzt kommt aber das große aber:


    Führe ich auf der Konsole

    Code
    1. ip -6 route add default via fe80::1 dev eth0

    aus, dann läuft es wieder. Wie lange weiß ich noch nicht, aber ich tippe ganz stark auf 30 Minuten.


    Warum geht die route verloren? Weiß jemand weiter?

  • Wie oben genannt solltest du mal versuchen dein Interface komplett statisch zu konfigurieren. Die 30 Minuten riechen ziemlich stark nach dem timeout einer DHCP lease.


    Ich erinnere mich, das Problem bei der Ersteinrichtung von IPv6 ebenfalls gehabt zu haben. Erst nachdem ich mein Netztwerk komplett statisch konfiguriert hatte, gingen mir auch meine IPv6 Einstellungen nicht mehr verloren.


    Falls dein DHCP-Client einen Debugmodus unterstuetzt, waere das vielleicht auch eine Option um festzustellen ob er der Uebeltaeter ist.

  • Mhh, nachdem ich die Schritte unter IPv4 aus dem Wiki gemacht habe, scheint es wieder stabil zu laufen. Jedenfalls seit den letzten 4 Stunden.
    Denkt daran die eignen Daten zu nehmen. Sind im VServer Controlpanel unter Netzwerk hinterlegt.

  • Entgegen meiner tiefen Überzeugung hat es wirklich geholfen IPv4 statisch zu konfigurieren.


    Aber IPv4 und IPv6 sind völlig unabhängig voneinander, wie kann das sein?
    Ich gehe von einem Fehler im dhclient unter jessie aus.


    Bei folgender Konfiguration IPv4 DHCP, IPv4 static erhält man nach einem reboot mit:

    Code
    1. # ip -6 route show
    2. 1234:1234:dead:beef::/64 dev eth0 proto kernel metric 256
    3. fe80::/64 dev eth0 proto kernel metric 256
    4. default via fe80::1 dev eth0 proto ra metric 1024 expires 1575sec hoplimit 64


    IPv4 und IPv6 funktionieren so wie es soll. Aber nach ablauf der Zeit hinter expires gibts:

    Code
    1. # ip -6 route show
    2. 1234:1234:dead:beef::/64 dev eth0 proto kernel metric 256
    3. fe80::/64 dev eth0 proto kernel metric 256


    Die default route über eth0 ist abgelaufen und wird nicht erneuert. Nur warum ist sie überhaupt abgelaufen, sie ist doch statisch konfiguriert?
    Gibt man jetzt oder auch gleich nach reboot ein

    Code
    1. ip -6 route add default via fe80::1 dev eth0

    so läuft das System mit IPv6 dauerhaft. Klar, die route hat kein expire mehr.


    Das ganze wie hier beschrieben in /etc/network/interfaces zu packen hat bei mir nicht geholfen.


    Zusammengefasst gibt es zwei möglichkeiten IPv6 dauerhaft zum Laufen zu kriegen:


    • IPv4 und IPv6 statisch konfigurieren
    • Nach dem Boot das Kommando
      Code
      1. ip -6 route add default via fe80::1 dev eth0

      absetzen


    Mögen tue ich beides nicht. Ich will IPv4 bewusst per DHCP bekommen und mir meine Konfiguration nicht mit statischen Einträgen vollmüllen. Andererseits halte ich den quirk unter 2. für noch viel schlimmer. Ich habe mich fusselig gesucht, ob und falls ja, wie ich die route ohne expires hinbekomme. Hier spielt aber wohl wirklich die lease time von DHCP rein. Letztendlich habe ich mich für 1. entschieden und kann damit leben.


    Kann mich jemand erleuchten? Erlaubt evtl. irgend ein RFC nicht, dass man einen statisch/dynamisch IPv4/IPv6 Mischbetrieb nutzt?


    Gruß
    Solero


    Edit:
    Bitte den Thread auf gelöst setzen.

  • Ich habe das gleiche Problem bei meinem vServer. Zum Einsatz kommt eine frische Installation mit Debian 8 (Jessie).


    Ich habe die nachfolgende Lösung versucht, dennoch funktioniert IPv6 nach 1 Stunde Betrieb nach Neustart nicht mehr.
    http://kurzurl.net/wFhp9


    Derzeit suche ich ebenso noch nach einer Problemlösung.


    Beim manuellen Ausführen von:

    Code
    1. ip -6 route add default via fe80::1 dev eth0


    funktioniert IPv6 zwar wieder, aber wir möchten ungern das manuell nach Neustarts oder per Cronjob ausführen müssen.


    Ich sehe den Thread nicht als gelöst an, da ich vorher folgende Dinge wünsche:
    1. Lösung um DHCP für IPv4 zu verwenden und zeitgleich IPv6 einsetzen zu können.
    2. Lösung ohne manuelle Ausführung o.g. Zeile nach dem Reboot.
    3. Lösung in der WIki von Netcup eingetragen, damit jeder (neue) Kunde darüber informiert wird.

  • Meine Meinung hierzu, die IPv6 Verbindung geht Grundsätzlich. Netcup ist in meinen Augen nicht verpflichtet eine Hilfestellung bei der Einrichtung zu geben (Wiki). Ist schön und funktioniert auch, man könnte das auf verschiedene Arten noch weiter ausschmücken, wofür dann netcup ein "Bienchen" bekommt.


    DHCP halte ich, wie Dragon für unnötig und ist eine tolle Stütze bei der Erstinstallation, danach sollte man auf eine statische Zuweisung umschwenken.


    Nun aber, wie habe ich das gelöst? Vorne weg muss ich sagen, ich arbeite mit dem initramfs und lasse mir dort bereits eine statische IPv4 zuweisen, daher sind diese Einträge alle "manual". Es soll aber manche Applikationen geben, die sich dennoch diese Sektion anschauen und deshalb existieren die Einträge.



    Die Routen werden durch das manuelle hinzufügen im ##addv6## Bereich automatisch gelernt und somit keine manuelle gesetzt werden an fe80::1


    Eine weitere Möglichkeit wäre noch, die Route fest einzustellen an fe80::1 aber zuvor sagen, dass kein RA akzeptiert wird. Bei up könnte man ebenfalls die Route festlegen, statt das über die "Gateway" Zeile abzuwickeln.

    Code
    1. pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra


    Ein Einsatz von Cron kann ich da nicht nachvollziehen, da man das gut meiner Meinung nach über die network/interfaces abfackeln kann.

  • Warum möchtest du denn unbedingt DHCP verwenden? Bei einer statischen IP-Adresse ist das ja gar nicht nötig...


    Hinweise pro und contra static ip/dhcp gibt es zu hauf. Ich gebe einfach mal nur ein paar Fakten wieder, um zu zeigen, warum static ip in dem hier gegebenen setup ungünstig ist. Das gilt wohlgemerkt nur für IPv4:


    • Die IPv4 wird über das netcup control panel konfiguriert. Sie ist dort bereits statisch.
    • Eine jetzt statisch konfigurierte IP im vserver MUSS zwingend dieselbe IP haben. Alles andere würde auch keinen Sinn ergeben.


    Warum muss das so sein? Die IP ist bereits zwingend durch die IP im control panel vorgegeben. Stattdessen benötigt man eine doppelte Konfiguration. So etwas ist fehleranfällig und wartungsaufwendig. Mittels DHCP ließe sich dieses Problem vermeiden - wenn es denn funktionieren würde.


    Kurz: In dem hier vorliegenden setup ist DHCP einer statischen IP vorzuziehen.

  • Guten Tag,



    ergänzend sollte noch dazu gesagt werden, dass eine statische IP-Konfiguration die Verfügbarkeit eines Servers steigert. Wir haben zwar ein Cluster bestehend aus mehreren Servern für DHCP, aber auch dieser könnte einmal ausfallen.


    Wir arbeiten aktuell auch an einer Lösung, dass über das VCP statische IP-Konfigurationen für auf Linux basierende Systeme vorgenommen werden können.



    Mit freundlichen Grüßen


    Felix Preuß

  • Warum lässt Du es nicht stehen, damit andere zumindest sehen, was nicht geht. Hast Du mal folgendes probiert:


    Also sämtliche Auto-Konfiguration deaktiviert. Dazu muss der inet6-Block natürlich vor den inet-Block stehen, sonst ist die automatische Konfiguration von IPv6 abgeschlossen bevor der inet6-Block gelesen wurde.


    Du kannst natürlich auch alles automatisch konfigurieren:

  • .A.


    Nach nochmaligem Lesen des Threads ist mir einfach aufgefallen, dass die funktionierende Lösung ja bereits besprochen ist: Sowohl IPv4 als auch IPv6 statisch zu konfigurieren. So hab ich es und es funktioniert.


    Meine nichtfunktionierende Config mit dynamischem IPv6 hätte andere nur irritiert und sie trägt nicht zur Lösung bei.


    Grüße
    John

  • Hallo,


    ich hole das Thema nochmal nach oben, da ich das gleiche Problem habe.


    Meine /etc/network/interfaces (hier ohne IP-Adressen)



    Nach dem Neustart habe ich jedoch immer noch bei ip -6 route show


    Quote

    default via fe80::1 dev eth0 proto ra metric 1024 expires 1653sec hoplimit 64


    Nach dem ip -6 route add default via fe80::1 dev eth0 auf der Console ist alles richtig. Nur ich möchte das gerne automatisch haben.

  • Das liegt daran, dass durch den ersten Block iface eth0 inet static schon ein IPv6 Default-Gateway gesetzt wird. Daher ist die Reihenfolge wichtig:

  • Kurze Zwischenfrage: Wie kann es eigentlich sein, dass der Traffic rausgeht, obwohl alles über die Link-Lokale-Adresse fe80::1 geht, die ja eigentlich nicht mit dem öffentlichen Teil des Internets kommuniziert?