Adguard Home Docker IPv6

  • Moin in die Runde !


    Dies ist mein erster Forenbeitrag deshalb bitte ich, bei eventuellen Fehlern etwas um Nachsicht. Wie bereits im Betreff angegeben versuche ich, IPv6 auf meinem Server zu integrieren. Über IPv4 laufen meine Dienste die ich auf den Server betreibe alle problemlos.


    Mein Wunsch bzw. Ziel ist es, den auf dem System laufenden Adguard Home Docker Container via IPv6 anzubinden.


    Folgende Schritte habe ich dazu ausgeführt:


    - IPv4 und IPv6 jeweils statisch eingerichtet wie in der Anleitung von Netcup empfohlen.


    - Docker IPv6 fähig gemacht bzw. aktiviert. (im Daemon auf experimental und ip6tables auf true gestellt.)


    - Ein IPv6 Docker Netzwerk erstellt 80er Subnet (/80).


    - Die sysctl Parameter aus folgenden hier vorhandenen Netcup Beiträgen übernommen und eingetragen.

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

    - ndppd eingerichtet( nach: https://forum.netcup.de/admini…er/15809-docker-and-ipv6/) .




    - Docker Container an das erstellte IPv6 Netzwerk angehängt.


    Dann habe ich folgende Sachen ausprobiert:


    - Hostmaschine pingt über IPv6 http://www.google.de an (funktioniert)

    - Hostmaschine pingt IPv6 Gateway vom erstellten Netzwerk an (funktioniert)

    - Hostmaschine pingt Docker Container im erstellten Netzwerk an (funktioniert)

    - Rechner von außen pingt IPv6 Gateway vom erstellten Netzwerk an (fehlgeschlagen)

    - Rechner von pingt Docker Container im erstellten Netzwerk an (fehlgeschlagen)


    In den letzten beiden genannten Fällen versucht der Rechner (PC/Laptop) den Gateway oder den Container anzupingen bekommt aber überhaupt keine Antwort.


    Vielleicht kann mir einer einen Tipp geben, woran das liegen könnte bzw. wo mein Fehler in der Konfiguration liegt. Mein IPv6 Netzwerk ist also aus dem Internet heraus nicht erreichbar.

    Über IPv4 funktioniert alles wie es soll.


    Über Tipps und Hilfe wäre ich sehr dankbar! :)


    Grüße

    Radiohofen

  • Deutlich einfacher wäre es mit einem zusätzlichen IPv6 Netzwerk, dass auf deinen VPS geroutet wird. Das spart das ganze ndppd Geraffel.


    Ich hab ein ähnliches Szenario, wie du jetzt vorhast, mit lxc Containern betrieben, bin aber inzwischen auf das zusätzliche IPv6 Netzwerk gewechselt. Ich habs mit dem mitgelieferten IPv6 Netz und ndppd nicht stabil hinbekommen. Ping Spikes und Paketverluste waren die immer mal wieder Folge. Ich hatte zusätzlich sogar noch ein Script laufen, dass alle 180 Sekunden Pings aus dem Containern nach außen absetzte, um die MAC Tabellen in den netcup Switches aktuell zu halten.


    Und das läuft sauber? ndp arbeitet, das hast du mit tcpdump etc. nachvollzogen? Du musst nachsehen, ob die ndp Requests, die deinen Host erreichen, auch beantwortet werden.

    - Rechner von außen pingt IPv6 Gateway vom erstellten Netzwerk an (fehlgeschlagen)

    Hast du mit tcpdump nachgesehen, ob die Pings die Hostmaschine erreichen?


    Was passiert, wenn du IPv6-Ziele aus den Containern heraus pingen willst?

  • Hallo Frank,

    vielen Dank erst mal für deine Antwort.

    Der Ping aus dem Container heraus funktioniert also :) . Welche Ausgabe von tcpdump wäre für dich denn hilfreich?

  • Ich würde einfach einen tcpdump mit dem Filter "icmp6" starten. Dann den Ping von außen auf deine Gateway Adresse starten. Dabei müsste man die Pings von außen sehr zuverlässig identifizieren können.


    NDP Pakete sind ebenfalls icmp6 Pakete. Also auch den NDP Check kannst du damit machen. Übrigens: Pings auf deine Container müssen ja auch "durch die Host Maschine", wenn ich das mal so salopp ausdrücken darf. Die könntest du also auch in so einem tcpdump sehen.

  • Ich habe mich dazu entschlossen, deinem Rat zu folgen und habe mir ein separates IPv6 Subnet zuweisen lassen. Ich schaue mal, wie das funktioniert.

  • Das ist relativ einfach. Das Subnetz wird auf die "Standard" IPv6 Adresse deines VPS geroutet. Auf deinem VPS kannst du die Adressen dann einfach verteilen, z.B. für Container oder für VPN Clients oder was auch immer. Mehr muss man eigentlich nicht machen. Default-Gateway für den Host ändert sich nicht, Default-Gateway für die Container wird die Host-Adresse aus dem neuen Subnetz (bei mir statisch die ::1).

  • Ich sollte aber dennoch das neue Subnetz in Linux selber noch statisch einrichten oder? Oder ist das unnötig, da das Netz eh weitergeleitet/durchgereicht wird.?

  • Ich sollte aber dennoch das neue Subnetz in Linux selber noch statisch einrichten oder?

    Naja, was heißt "das Subnetz statisch einrichten"?


    Du brauchst auf dem Host eine IP aus dem neuen Subnetz, als Default-Gateway für die Container. Bei mir liegt die IP auf dem Bridge-Interface der lxc Container. Du könntest sie auf dem Bridge-Interface von Docker unterbringen. Bei mir ist das die "<IPv6-Prefix>::1/64". Die einzelnen Container bekommen einfach zufällige Adressen.

  • Hallo Frank,


    sorry das meine Antwort etwas gedauert hat. Ich habe gestern, den ganzen Abend versucht, die Sache zum Laufen zu bekommen. Leider klappt das noch nicht.


    Ich habe das blöde Gefühl, es könnte an den Firewall Einstellungen liegen. Ich habe das neue Subnetz dem VPS zugewiesen und und im Angang sieht du meine Config.


    Der Container ist leider nicht von außen erreichbar über IPv6. Über IPv4 läuft wie gesagt läuft es problemlos.


    Hast du noch eine Idee?

    Grüße

    René

  • Die Einstellungen sehen auf den ersten Blick gut aus. Jetzt müsstest du halt erst mal prüfen, ob sich auch alles so eingestellt, wie du es erwartest.


    Konkret heißt das:

    - ist die Zieladresse für das Subnetz aus deinem mitgelieferten aus dem CCP auch auf eth0 eingestellt?

    - kommen die Pakete aus dem neuen Subnetz beim Server an (bzw. wie weit kommen sie?) Tests mit traceroute und tcpdump wären sinnvoll.

    - ist die Adresse auf dem Bridge-Devices des Hosts gesetzt?

    - können die Container vom Host aus gepingt werden?