VPS Docker IPv6

  • Hallo Netcup Gemeinde.


    Hab da "eigentlich" ein simples Problem, bei dem ich aber irgendwie auf dem Schlauch stehe.


    Auf einem VPS läuft Docker, dessen Container per IPv6 ONLY extern erreichbar sein sollen.

    Der VPS hat ein IPv6 Präfix von Netcup bekommen (z.B. 1234:1234:1234:1234::/64).

    Unter Docker ist ein Network mit IPv6 eingerichtet, 1234:1234:1234:1234:abcd:abcd:abcd:0/112

    Ein erster Container bekommt die IPv6 1234:1234:1234:1234:abcd:abcd:abcd:1000. Dieser läßt sich einwandfrei anpingen.

    Zu Testzwecken ist jegliche Firewall mal deaktiviert.

    Das ETH0 hat die IPv6 1234:1234:1234:1234:0123:0123:0123:0123/64.

    Von Extern komme ich nicht auf den Docker Container, auch kein Ping. Als würde es ihn nicht geben.

    Jetzt werde ich den Verdacht nicht los, dass mir da ein Routing zwischen ETH0 und dem Docker Network fehlt.

    Ein HOST Network möchte ich nicht, da der Container seine eigen IPv6 bekommen soll.




    Bitte keine Vorschläge zu IPv4 und Portforwarding und warum, wieso kein IPv4 etc.etc.

    Es MUSS IPv6 Only sein!

  • Go to Best Answer
  • Hast du das NDP Problem bedacht? "ndppd" ist der perfekte Suchbegriff fürs Forum. Dazu finden sich einige Threads, die man sich am besten komplett ansehen sollte.


    In Kürze: Die MAC Forwarding Tabellen in den Switches bei Netcup veralten und wissen nicht mehr, auf welcher MAC sie eine spezifische IPv6 Adresse erreichen, weil das primäre IPv6 Netz geswitcht und nicht geroutet zur Verfügung gestellt wird. Das Problem verstärkt sich, weil du die Adressen nicht auf eth0, sondern auf anderen Interfaces benutzt. Aber auch mit einem NDP Proxy lässt sich das Problem nicht zu 100% lösen, es wird immer zwischendurch mal zu Paketverlusten kommen. Selbst mit zusätzlichen Hilfsmitteln, wie z.B. regelmäßigen Pings von verschiedenen Quell-Adressen etc. Eine wirklich saubere Lösung erreichst du nur mit einem zusätzlichen IPv6 Subnetz, welches auf deinen Server geroutet wird.

    IPv6: trotz Proxy NDP kommt kein Traffic an - netcup Kundenforum
    Ich habe hier mal bei Github ein Ticket angelegt: https://github.com/containers/podman/issues/14407 Allerdings zweifel ich gerade daran, dass das überhaupt…
    forum.netcup.de

    Docker and ipv6 - netcup Kundenforum
    Hi, nachdem ich heute viele Forenbeiträge durchforstet habe und es leider immer noch nicht klappt, würde ich hier gerne um Hilfe bitten. Ich versuche aktuell…
    forum.netcup.de

    IPv6 Paketverlust bei LXC und mitgeliefertem /64 Subnetz - netcup Kundenforum
    Hey netcup-Forum! Ich habe mir vor kurzem LXC (nicht LXD!) auf Debian 10 eingerichtet und wollte nun neben dem IPv4 NAT (lxc-net) jedem Container eine eigene…
    forum.netcup.de

  • Du bekommst von netcup ein /64 Subnet für deinen vServer. So steht es in der Produktbeschreibung drin, und genau das bekommst Du auch.


    Wenn du darauf eine virtuelle Netzinfrastruktur (docker) aufbauen willst, brauchst Du entweder ein zusätzliches /64 (wie bei deiner FritzBox) oder du musst deine Konfiguration passend machen.

  • Wenn du darauf eine virtuelle Netzinfrastruktur (docker) aufbauen willst, brauchst Du entweder ein zusätzliches /64 (wie bei deiner FritzBox)

    Klingt sehr unlogisch!
    Ich habe ein /64er Netz. Wenn ich darauf aufbauen will benötige ich ein zweites /64er Netz?

    Wo ist da die Logig, wenn ich das Suffix selber festlegen kann - Ob das nun beim ersten /64er erfolgt oder beim zweiten.

    Am DSL oder Glasfaseranschluß gibt es auch "nur" ein /64er Netz und es funktioniert.


    oder du musst deine Konfiguration passend machen.

    ...und genau das war doch auch die Frage !


    Es gibt im SCP die Möglichkeit zum /64er Netz weitere IPv6 Adressen bekannt zu geben.

    Hilft es dort anzusetzen?

    Weiß dann das Netcup System welche IPv6 Adressen zu welchen MACs gehören?

  • Klingt sehr unlogisch!

    Das ist aber doch logisch. Du bekommst ein /64 Netz. An deinem eth0 Interface kannst du davon so viele Adressen nutzen, wie du willst, kein Problem. Erst wenn du anfängst, Routing-Konstellationen daraus zu bauen, bekommst du ein Problem.


    Wo ist da die Logig, wenn ich das Suffix selber festlegen kann - Ob das nun beim ersten /64er erfolgt oder beim zweiten.

    Der Unterschied liegt in der Art, wie dir das Netz zur Verfügung gestellt wird. Das mitgelieferte Netz wird geswitcht, das zusätzliche Netz wird auf deinen VPS geroutet - dafür braucht es keine Layer 2 Verbindung.


    Am DSL oder Glasfaseranschluß gibt es auch "nur" ein /64er Netz und es funktioniert.

    Nein, das stimmt nicht. Dein Router zu Hause bekommt eine Adresse aus einem /64 Netz und zusätzlich ein Prefix aus einem anderen Netz - meistens sogar größer als /64 (/60 oder /56 ist üblich). Wenn es nur ein /64 gibt, wie z.B. im Mobilfunk, brauchst du Sonderlösungen wie RFC7278 zum Beispiel, da ein Router 2 Subnetze braucht, um routen zu können. Das ist ja auch der Grund, warum du dein /64 auf dem VPS weiter unterteilst in /96 oder /112.


    Es gibt im SCP die Möglichkeit zum /64er Netz weitere IPv6 Adressen bekannt zu geben.

    Hilft es dort anzusetzen?

    Da geht es ja nur um RDNS.


    Weiß dann das Netcup System welche IPv6 Adressen zu welchen MACs gehören?

    Ja, via NDP. Aber das gilt für Adressen, nicht für Subnetze.

  • Ich wage zu bezweifeln, dass die Lösung stabil läuft. Ich kann mir kaum vorstellen, dass eine einfache Lösung für dieses sehr spezifische Problem einfach in irgendwelchen anderen Foren steht, ohne hier bekannt geworden zu sein. Es haben sich ja schon sehr viele sehr intensiv mit dem Problem befasst. Die Docker Netzwerkeinstellungen können es nicht sein, da LXC etc. ja genauso betroffen ist. Selbst wenn man nicht über Virtualisierung spricht, sondern die Adressen nur für irgendwelche VPN Netze nutzen will, tritt das Problem auf.

  • Dann erzähl doch mal deine Lösung


    Vielleicht einfach "nur" die zusätzliche IPv6 vom ETH0 mit dem entsprechenden Container verknüpfen und nicht ein "ganzes" Subnet routen,

    sondern "nur" eine einzelne IPv6. Habe es gerade mit 4 Apache2 Containern und 4 IPv6 Adressen ausprobiert. Funktioniert einwandfrei.


    Da ich ein Freund von Firewalls bin und erst einmal ALLES zu machen und nur öffne was gebraucht wird, ist der Host komplett zu.

    Und das ohne Paketverlust.


    Ein Teil der Lösung steht sogar im Netcup Wiki!


    Ciao... :)

  • Habe jetzt in anderen Foren meine Lösung gefunden und leider nicht hier.

    Danke für.... naja, was denn eigentlich :(

    Typische unausgesprochen Netiquette missachtet:

    • Problem selber gelöst oder woanders die Lösung gefunden, aber die Referenz oder Lösung nicht präsentieren. Damit Menschen die das gleiche Problem haben dann hier landen und in die Röhre gucken
    • Leuten die versucht haben zu helfen ans Bein gepinkelt
    • Netcup aufgrund des eigenen Unwissen zum <Thema>, unterstellen das etwas falschen versprochen wird im Angebot.

    War das etwa ein any % speedrun sich unbeliebt zu machen oder was?

  • Selbst wenn man nicht über Virtualisierung spricht, sondern die Adressen nur für irgendwelche VPN Netze nutzen will, tritt das Problem auf.

    Muss ich deutlich widersprechen.

    Nutze schon länger mehrere VPS exclusive über VPN Verbindungen.


    Unter anderem läuft z.B. FHEM auf einen VPS ausgelagert und über VPN (IPv4+IPv6) ins Heimnetz eingebunden.
    Auch laufen Werbeblocker & Co. (z.B. PiHole + Adguard, IPv4+IPv6) auf VPSs über VPN. Zum einen ins Heimnetz eingebunden und zu anderen über eine App auf mobilen Geräten unterwegs.

    Sind übrigens auch immer mehr Docker Container die so eingerichtet sind.

  • Typische unausgesprochen Netiquette missachtet:

    • Problem selber gelöst oder woanders die Lösung gefunden, aber die Referenz oder Lösung nicht präsentieren. Damit Menschen die das gleiche Problem haben dann hier landen und in die Röhre gucken
    • Leuten die versucht haben zu helfen ans Bein gepinkelt
    • Netcup aufgrund des eigenen Unwissen zum <Thema>, unterstellen das etwas falschen versprochen wird im Angebot.

    War das etwa ein any % speedrun sich unbeliebt zu machen oder was?

    Sehr sinnvoller Beitrag! APPLAUS!

  • Vielleicht einfach "nur" die zusätzliche IPv6 vom ETH0 mit dem entsprechenden Container verknüpfen und nicht ein "ganzes" Subnet routen,

    sondern "nur" eine einzelne IPv6. Habe es gerade mit 4 Apache2 Containern und 4 IPv6 Adressen ausprobiert. Funktioniert einwandfrei.

    Das Setup verstehe ich noch nicht. Was genau meinst du mit "zusätzliche IPv6 vom ETH0 mit dem entsprechenden Container verknüpfen"? Kannst du mal ein Beispiel liefern, wie das aussieht?


    Muss ich deutlich widersprechen.

    Nutze schon länger mehrere VPS exclusive über VPN Verbindungen.

    Davon rede ich nicht. Ich meinte, wenn du Adressen aus dem mitgelieferten /64 innerhalb eines VPN Tunnels für Remote Geräte nutzt. Das funktioniert nämlich nicht zuverlässig.

  • Das Setup verstehe ich noch nicht. Was genau meinst du mit "zusätzliche IPv6 vom ETH0 mit dem entsprechenden Container verknüpfen"? Kannst du mal ein Beispiel liefern, wie das aussieht?

    Netcup gibt selber die Empfehlung, wenn man weitere IPv6 Adressen aus dem /64er nutzen möchte, diese dem ETH0 zuzuweisen (/etc/network/interfaces).

    Also IP für IP und nicht den /64er Block als Subnet nutzen. Das war mein Fehler, dass ich einfach einen /112er Block als Docker Network nutzen wollte. Soll wohl funktionieren, aber sehr umfangreich in der Confi, in Docker als auch im Host.


    4 IPv6 Adressen auf ETH0 eingerichtet und auf 4 verschiedene Container durch gereicht.

    Mit der Firewall vom Host können dann auch noch die Ports gefilter werden.