Container Station IPv6 aktivieren

  • Guten Tag,


    Hoffe das Thema ist hier richtig...

    habe das Problem, dass mir die Containerstation nicht erlaubt unter "Netzwerk - und Virtuelle Switche" eine IPv6-Adresse zu vergeben. Wenn ich einstellungen dort verändern will, bleibt alles ausgegraut und kann nicht verändert werden. IPv6 Support ist unter "Netzwerk - und Virtuelle Switche" auch Deaktiviert. Warum?

    Wie bekomme ich es hin, dass die Container Station auch mit IPv6 funktioniert?


    Anmerkung 2019-05-11 172448.png


    mfg

    Gamma


    P.S.

    NAS ist die TS-253A

    FW: 4.3.6.0923

    CS: 2.0.117

    Einmal editiert, zuletzt von GammaWar ()

  • Hallo,


    ich hänge mich einmal hier dran.


    Das NAS hat eine IPv6 Adresse und auch der Virtual Switch mit der Containerstation hat eine IPv6.


    Wie bekomme ich eine IPv6 Adresse für einen Container?


    Tschau

    Uwe

  • Ich hätte auch sehr großen Bedarf an einer IPV6 Anbindung über die Containerstation.

    Gerade für die DSLite Kunden unter uns wäre dies immens wichtig (neben dem Zukunftsaspekt)


    Muss doch irgendwie möglich sein?

  • Hallo,


    ich wäre auch sehr massiv an IPv6 in den Containern interessiert.


    In der ContainerStation finde ich unter Präferenzen lediglich einen IPv4 Teil.

    Ich denke dass IPv6 wahrscheinlich grundsätzlich in der Containerstation noch fehlt.


    Wenn ich es von Hand in einem Terminal versuche, bekomme ich folgende Fehlermeldungen:

    Code
    root@2cc737ff1f9f:/etc# sysctl -p
    sysctl: setting key "net.ipv6.conf.all.disable_ipv6": Read-only file system
    sysctl: setting key "net.ipv6.conf.default.forwarding": Read-only file system
    sysctl: setting key "net.ipv6.conf.all.forwarding": Read-only file system

    Hat jemand noch eine Idee?



    Grüße,



    Gerhard

  • Ich würde schlichtweg mal behaupten dass IPv6 dort noch nicht implementiert wurde, nachdem was ich auf die schnelle gefunden habe.


    Ich würde einfach mal den Support kontaktieren und ggf. ein Feature Request einreichen.

  • Mache ich gerne.


    Hast Du mir noch Details mit wo und wie, Emailadresse, Webpage oder wo auch immer ich da einen Request aufmachen kann.


    Das Thema ist ja wirklich kein Kleinkram, mehr und mehr Services etc. sind ausschließlich IPv6...


    Danke und Grüße,


    Gerhard

  • Mein Reden mit IPv6, aber da hängt nicht nur QNAP hinterher!


    Den Support kontaktiert Du über die Helpdesk App auf Deinem QNAP. Dazu brauchst Du eine QNAP ID, kannst Dich aber auch mit nem google Konto anmelden.

  • Hallo, ich habe vor kurzem mal einen Request an den QNAP Support für IPv6 bei der Container-Station gemacht. Wie vermutet haben sie bestätigt das es noch nicht unterstützt wird. Hier der erfreuliche Teil, sie meinen die Entwicklung würde an einer Lösung arbeiten, leider wollen sie keinen Zeitpunkt nennen.


    Also schreibt doch auch mal hin, dann bekommt das Topic vielleicht einer höhere Gewichtung Ich wäre echt froh darum da ich heute extra eine feste IPv4 kaufen muss (DS-Lite) um meine NextcloudPi im Docker vom WWW erreichen zu können.

  • Hallo,


    unter https://docs.docker.com/config/daemon/ipv6 wird beschrieben, wie man unter Docker IPv6 aktiviert.


    Das habe ich mal testweise auf einem Ubuntu 20.04 Desktop gemacht.

    Als einfachen Test habe ich einen FHEM-Docker Container genommen.


    Zumindestens sehe ich nach dieser Änderung tatsächlich dann ein IPv6 Device mit eben dieser Adresse.

    Mehr habe ich noch nicht probiert.


    Hier die Frage, ob dies jemand schon auf einer QNAP probiert hat?


    Auf der QNAP ist ja die Dockerversion 20.10.3 - somit recht aktuell und müsste mit dieser Änderung auch zurecht kommen.


    Allerdings möchte ich hat mit solch einem Versuch nicht auch gleich meine vorhanden Container "zerstören"...

    Daher die Frage mal hier, ob es schon solche Versuche gibt.



    Grüße,



    Gerhard

  • Hallo,


    ich bin immer noch auf dem Testsystem nun mit Ubuntu 21.04. Desktop unterwegs.


    Dabei habe ich gelesen (Docker github) und bemerkt, dass das Portforwarding für IPv6 auch entsprechend angegeben sein muss.

    Zudem benötigt es die Dockerversion 20.10.6 oder höher, da zuvor das portforwarding für IPv6 nicht funktioniert hat.


    Zur HIlfe: die Portangabe für IPv6 bedarf der folgenden Syntax:

    -p '[::]:9000:9000/tcp'


    Beim Versuch mit einem Portainer-Container hat es dann bestens funktioniert.

    Und damit eben dann auch über eine DS-Lite Internetanbindung und reinem IPv6-Zugriff auf diesen Portainer-Container.


    Meine TS-473 mit der aktuellen Firmware 4.5.4.1800 hat leider noch die Dockerversion wie oben schon erwähnt mit 20.10.3 -

    Somit brauche ich darauf keinen Test mit IPv6 machen, warte also auf eine höhere Dockerversion...



    Grüße



    Gerhard

  • Hallo,


    ich habe jetzt QTS 5.0.0.1850 build 20211111 auf der TS-473.


    docker -v zeigt 20.10.7-qnap3 an.


    Allerdings bekomme ich mit dem File daemon.json unter /etc/docker (bzw. ist ja per Link in Wirklichkeit

    "/share/CACHEDEV1_DATA/.qpkg/container-station/etc/docker"):

    Code
    {
    "ipv6": true,
    "fixed-cidr-v6": "2a01:c23:85b3:4f00:c:/80"
    }

    Leider kein IPv6 eingeschaltet.


    Hat jemand da schon experimentiert oder ausprobiert?

    Oder hat mir Tipps dazu?



    Grüße


    Gerhard

  • Workaround: Docker mit IPv6, öffentliche IPv6-Adresse


    (Meine Wortwahl mag da und dort fachlich nicht 100% richtig sein, da ich kein wirklicher IT-Experte bzw. kein Docker-Experte bin…)


    QNAP TS-473 mit QTS 5.0.0 1853

    aktuelle Containerstation, die mit einer Dockerversion 20.10.7-qnap läuft



    Ziel ist es die Dockercontainer mit IPv6 auszustatten, damit über DS-Lite Internetanschlüsse ein Zugriff vom Internet auf einen Dockercontainer möglich wird.

    Z.B. nextcloud, Portainer hier auch als Beispiel verwendet, oder, oder…


    • der Internet-Provider liefert an den Router das Subnet: „2a01:c23:814f:d00::/56
    • das Docker Configfile: /share/CACHEDEV1_DATA/.qpkg/container-station/etc/docker.json um
      "ipv6": true,
      "fixed-cidr-v6": "2a01:c23:814f:d00:d::/80",

    ergänzt.

    --> ein File unter  /etc/docker mit daemon.json bringt nichts, da QNAP den dockerd mit eben einer eigenen Config-Angabe startet.


    Die von mir verwendete IPv6 Adresse ist eine öffentliche IPv6 Adresse, die vom Internet-Provider dem Router zugewiesen wurde.

    In dem Beispiel hier ist es das „2a01:c23:814f:d00::/56“.

    von diesem zugewiesenen Subnet nehme ich den nächsten kleineren Bereich mit "2a01:c23:814f:d00:d::/80"


    Vorsicht, diese Adresse ändert sich bei den meisten Providern täglich!!!

    Dies fange ich damit ab, dass ich mit einem Script regelmäßig die IPv6 Adresse vom Router kommend mit der hier in Docker eingetragenen, vergleiche.

    Sollte sich das IPv6 Subnetz geändert haben, dann ändert ein Script das docker.json file (bzw. das File "/opt/etc/ndppd.conf" siehe weiter unten) und startet die Containerstation neu.

    --> /etc/init.d/container-station.sh restart


    Damit das Docker-Subnet im lokalen Netz bzw. beim Defaultgateway (bei mir der Internet-Router) bekannt wird, habe ich den "ndppd" auf der QNAP installiert:

    • NDP - Neighbor Discovery Protokoll
    • zuvor das Packet „Entware-std“ installiert, was den "opkg" Paketmanager mitbringt
    • darin konnte ich dann wiederum mit "opkg install ndppd" diesen Neighbor Discovery Daemon Proxy installieren
    • der wiederum die Config braucht:
      • /opt/etc/ndppd.conf
    Code
    proxy qvs0 {
    rule  2a01:c23:814f:d00::/56 {
    static
    }
    }
    • qvs0 ist Interface das NDP hört und rausgibt
    • die „rule“ ist das IPv6 Subnetz, was der Internet-Provider dem Internetrouter gibt.
    • obwohl es eine Option „auto“ gibt, die laut Beschreibung eher zu verwenden sei:
      • hat „auto“ bei mir nicht funktioniert
      • mit „static“ kommt zwar eine Warnung, aber funktioniert


    die Container mit IPv6 anlegen:

    Dazu muss anscheinend die Option -p wie folgt verwendet werden.


    Hier ein Beispiel mit dem Portainer:

    Code
    docker run  -d -p '[::]:8000:8000/tcp' -p '[::]:9000:9000/tcp' --name=portainer-ce-gk-1  --restart=always --pull=always -v /var/run/docker.sock:/var/run/docker.sock -v  /share/GK/Portainer:/data portainer/portainer-ce:2.9.2


    Damit ist nun der Portainer-Container über eine IPv6 Adresse erreichbar.



    Die Portfreigabe am Router ist halt routerspezifisch.

    Aber klar, die IPv6 Adressen mit diesen Ports (hier eben 8000 und 9000) müssen noch am Router freigegeben werden, damit ein Zugriff aus dem Internet funktionieren kann.


    Ich hoffe, dass ich vielleicht ein bisschen helfen kann.

    Klar, dieser Workaround ist etwas rustikal oder wie auch immer man es nennen kann.


    Aber läuft bei mir seit zwei Tagen und auch zwei IPv6 Subnet-Änderungen problemlos überlebt.



    Grüße



    Gerhard

    P.S. da sich die IPv6 Adresse sich täglich ändert, habe ich sie aus Gründen dem besseren Verständnis sichtbar stehen lassen...

    Und meine Scripts sind sicherlich verbesserungswürdig, bzw. meine sind recht hemdsärmlig entstanden...

  • Mutiges vorgehen. Ich drücke die Daumen, dass Portainer keine Sicherheitslücken aufweist und dein Passwort stark genug ist.

  • Verstehe, aber war jetzt nur ein vermeintlich einfacher Docker-Container. Ich war da schon ständig am Löschen und alle möglichen Dinge ausprobieren.

    Ist nicht die Idee den Portainer grundsätzlich so zur Vergügung zu stellen...


    Das Thema Sicherheit passt jetzt auch nicht hier her, kann gerne verschoben werden, oder wie auch immer.


    Wie siehst Du es z.B. mit Applikationen wie Nextcloud.

    Da wäre es ja das gleiche Prinzip...


    Grüße


    Gerhard

  • Meine NASen sind beide nur aus dem lokalen Netz zu erreichen, bzw. per VPN. Alles andere ist mir zu unsicher. Die Sachen, die ich von außen erreichbar haben möchte, laufen bei mir auf einem Pi 4. Ist auch nicht ideal, da ich keine separaten Netzwerke habe, aber der Reverse-Proxy und die Docker Umgebung wollen auch erstmal überwunden werden.

    Nextcloud nutze ich nicht, mir reicht mein NAS als Datenablage und wenn ich mal etwas teilen möchte, kann ich das über OneDrive und Co erledigen.

  • Also ich habe ja mal so null Plan von eurem Docker Kram und verstehe vieles nicht, was bsv da gepostet hat... aber im Grunde ist es doch "nur" wie man ein Container mittels IPv6 via Portfreigabe erreichbar macht.

    Je nach Anwendung mag diese Portfreigabe auch relativ sicher sein (keine Ahnung wie es um Container per se steht), aber selbst wenn man die Portfreigabe nicht einrichtet, erhält man doch immerhin einen Container mit IPv6 Konnektivität (was scheinbar bisher nicht geglückt ist?!).


    Ich sage also mal: Ich hab keine Ahnung davon, aber ich finde es gut.. sogar ein Script um dem lächerlichen deutschen Präfixwechsel Herr zu werden ist dabei... herrlich :)

  • Ich finde die Anleitung auch klasse, versteht mich da bitte nicht falsch. Auch wenn ich damit nichts Anfangen kann, weil ich von meinem Provider keine IPv6 bekomme. Mir geht es genau darum:

    Also ich habe ja mal so null Plan von eurem Docker Kram

    Es ist ja eine Anleitung und die liest vll auch jemand mit weniger Erfahrung, befolgt genau die Anleitung und hat anschließend Portainer offen im Internet stehen. Er oder sie weiß vll gar nicht, dass das ein massives - wie ich finde - Problem ist, denn mit Portainer verwaltest du all deine Container, ähnlich wie mit der Container-Station und wenn da unbefugte Zugriff drauf haben, will ich mir gar nicht ausmalen was dann passiert. Man hätte auch auch Wordpress oder Nextcloud als Beispiel nehmen können. Da ist es zwar auch doof wenn unbefugte Zugriff drauf haben, aber damit können die nicht direkt eine Container mit Schadsoftware erstellen. Deswegen der Hinweis von meiner Seite, dass ich das nicht ohne finde ...