DS920+ | Docker | Pihole Container bekommt keine IPv6 zugewiesen

eurostar123

Benutzer
Mitglied seit
15. Feb 2021
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,

ich versuche seit Tagen verzweifelt meinem pihole Docker Instanz mit IPv6 zum laufen zu bringen. Aber irgendwie wird meinem Docker Container keine IPv6 zugewiesen, obwohl mein NAS eine IPv6 vom Router bekommen hat. Momentan läuft mein Pihole problemlos mit IPv6 auf einen Raspberry. Ich würde es aber gerne auf mein NAS portieren.

Ich bin beim Einrichten des Containers dieser Anleitung gefolgt.

IPv6 wird vom Router bezogen:
IPv6 wird vom Router bezogen

Folgende erweiterte Einstellungen habe ich in den Container vorgenommen:
Advanced Settings -> Network: "Use same network as Docker Host"
Unter „Environment" habe ich die folgenden Variablen gesetzt:
WEB_PORT – Wert: 8888
WEBPASSWORD – ******
DNSMASQ_LISTENING – local
ServerIP - 192.168.178.5
IPv6 - True
DHCP_IPv6 - true

Und weil ich es nach einiger Recherche öfters gelesen hatte, habe ich noch folgende Optionen über ssh in die Konfigurationsdateien ergänzt:
/var/packages/Docker/etc/dockerd.json
/volume1/@appstore/Docker/config/dockerd.json
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"

Leider bekommt Pihole keine IPv6 Adresse und in den Docker Einstellungen unter Network steht für den Pihole Container IPv6 Disabled.
2021-02-15 18_10_34-Window.png2021-02-15 18_13_05-Window.png


Kann mir vielleicht irgendwer damit weiterhelfen?

Grüße, André
 

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.177
Punkte für Reaktionen
376
Punkte
109
Würde mich auch interessieren. Jemadn ne Idee?
 

eurostar123

Benutzer
Mitglied seit
15. Feb 2021
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Ich habe leider immer noch keine Lösung dafür gefunden. Mittlerweile habe ich das Thema erstmal aufgeben und bleibe bei meinem RaspberryPi mit pihole. Echt schade, dass das mit IPv6 nicht zu funktionieren scheint.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134
Ich hab's über ein extra Macvlan in Docker gelöst:
https://docs.pi-hole.net/docker/DHCP/
Da ist es mir auch gelungen, IPv6 zu aktivieren...
pihole.png

Das war mein Befehl zum Anlegen:
Code:
docker network create -d macvlan --subnet=192.168.xxx.xxx/24 --gateway=192.168.xxx.xxx --ip-range=192.168.xxx.xxx/28 --subnet=xxxx:xxxx:xxxx:xxxx:xxxx::/80 --gateway=xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx --ipv6 -o parent=bond0 -o macvlan_mode=bridge macvlan0
 
Zuletzt bearbeitet:

Bigplayer110

Benutzer
Mitglied seit
04. Jan 2019
Beiträge
49
Punkte für Reaktionen
3
Punkte
8
Moin zusammen,

gibt es eine Möglichkeit das ganze auch ohne Befehlszeile zu bewerkstelligen? Hat es schon mal jemand mit Portainer probiert?

Ich weiß nämlich nicht was ich als IP bei IPv6 eintragen muss.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134
Naja, welche IPv6 Du eintragen musst, nimmt dir Protainer auch nicht ab.

Ich hab bei mir - da ich ein kleines AD eingerichtet habe - einen eigenen IPv6-Adressbereich eingerichtet. Das, was in etwa dem privaten Bereich bei IPv4 entspricht: Unique Local Unicast. Das ist der Bereich fc00::/7, wobei zur Zeit nur fd..: für derartige Zwecke Zwecke reserviert ist.

Du müsstest ansonsten mal schauen, was Du für ein Präfix von deinem ISP bekommst. Davon wäre alles weitere abhängig. Das Präfix kann sich allerdings durchaus ändern, das ist auch der Grund, warum ich ein eigenes IPv6-Netz aufgespannt habe...
 

Freakk

Benutzer
Mitglied seit
29. Jun 2018
Beiträge
44
Punkte für Reaktionen
6
Punkte
8
Ich hab's über ein extra Macvlan in Docker gelöst:
https://docs.pi-hole.net/docker/DHCP/
Da ist es mir auch gelungen, IPv6 zu aktivieren...
Anhang anzeigen 61680

Das war mein Befehl zum Anlegen:
Code:
docker network create -d macvlan --subnet=192.168.xxx.xxx/24 --gateway=192.168.xxx.xxx --ip-range=192.168.xxx.xxx/28 --subnet=xxxx:xxxx:xxxx:xxxx:xxxx::/80 --gateway=xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx --ipv6 -o parent=bond0 -o macvlan_mode=bridge macvlan0

Hast du in die beiden Dateien:

- /var/packages/Docker/etc/dockerd.json
- /volume1/@appstore/Docker/config/dockerd.json

auch um die folgenden Werte ergänzt?
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"

Wenn die beiden Werte in den beiden files ergänze, startet Docker gar nicht mehr bei mir. Bin auf DSM 7.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134
An welcher Stelle hast du die Zeilen eingefügt?

Du musst jede Zeile in dem JSON mit einem Komma abschließen, nur die letzte Zeile muss ohne sein.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.477
Punkte für Reaktionen
361
Punkte
103
"fixed-cidr-v6": "2001:db8:1::/64"
Nur um sicher zu gehen: das ist ein IP-Range die nur dem Dokumentationszweck gilt und in Dokumentation/Beispielen als Platzhalter verwendet wird, aber nicht für den gebrauch gedacht ist.

Zu fixed-cidr-v6: nur wenn man eine fixen ipv6-Präfix von seinem ISP bekommt ergibt es Sinn hier eine GA-Range einzutragen, ansonsten sollte man eher eine ULA angeben.

Ansonsten gibt es noch die Möglichkeit mit https://github.com/robbertkl/docker-ipv6nat das gewohnte Verhalten das man von ipv4 kennt nachzuahmen. Hier wird intern in einem Container-Netz eine andere ipv6 Range verwende, ausgehende Kommunikation hat dann die ipv6 vom host. Wirkt erstmal absurd... und muss im Kopf erstmal reifen, bis man den Charme dahinter sehen kann.
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.477
Punkte für Reaktionen
361
Punkte
103
- /var/packages/Docker/etc/dockerd.json
Das hier ist das Gegenstück zu /etc/docker/daemon.json von einem normalen Linux.
Du kannst mit jq < /var/packages/Docker/etc/dockerd.json schauen, ob es als valides json akzeptiert wird. Wenn nicht, Fehler ausbessern und neu testen.
 

Freakk

Benutzer
Mitglied seit
29. Jun 2018
Beiträge
44
Punkte für Reaktionen
6
Punkte
8
Danke für euer Feedback!

@Adama - du hattest recht, es lag tatsächlich am Komma :) Dummerweise hab ich danach erst gecheckt, dass man mit der Aktion nur das Bridge Netzwerk IPv6 fähig macht - ich wollte ja macvlan...

Wie dem auch sei, ich hab's jetzt hinbekommen und ein macvlan mit ipv4 und ipv6 per ULA wie von @haydibe beschrieben am laufen. (y)

Bildschirmfoto 2022-03-23 um 21.24.20.png
 
  • Like
Reaktionen: Adama

Just_Use

Benutzer
Mitglied seit
12. Mai 2022
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen :) ,
ich fuchse mich auch gerade mit dem Thema herum und bin dabei auf eure Beiträge aufmerksam geworden.

Bei mir ergibt sich folgendes und ich komme nicht so recht dahinter bzw. weiter:

Ich betreibe eine DS918+ mit dem aktuellen DMS 7.1, Docker läuft mit Version 20.10.3 und mit einer ipv6 wird die DS auch versorgt.

Das Ziel ist ipv6 für Docker zu aktivieren.
Dazu gibt es ja diverse Posts und Blogs in denen so ziemlich überall die selbe Herangehensweise erklärt wird.

Wenn ich jetzt die beiden json Files "/var/packages/Docker/etc/dockerd.json" und "/volume1/@appstore/Docker/config/dockerd.json" um die beiden Eintrage
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
(bitte nicht schimpfen, ich habs auch schon mit dem ULA Sub-Netz fd00::/64 versucht geht jetzt erstmal ums Prinzip)
ergänze und Docker neu starte, dann wird zwar das IPv6 Subnetz eingetragen aber die bridge bleibt dennoch für ipv6 deaktiviert.


1652387567376.png

via docker network inspect bridge die Config des Netzes auslese, steht da IPv6 weiterhin als disabled.
1652387699014.png

Dass alles hat mich stutzig gemacht und nach einigem hin und her hab ich mir noch einmal die json Dateien angeschaut. Dabei ist mir aufgefallen, dass im dem dockerd.json im packagestore der Eintrag für "ipv6": true, wieder fehlt...

1652387886591.png

Ich weis jetzt nicht so richtig wie weiter und hoffe dass mir vielleicht jemand vom euch einen neuen Input liefern kann.

Vielen Dank schon einmal im Voraus. :)
Beste Grüße
 

Anhänge

  • 1652387172830.png
    1652387172830.png
    61,6 KB · Aufrufe: 1

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.477
Punkte für Reaktionen
361
Punkte
103
Einmal angelegt sind Netzwerke nicht mehr veränderbar.
Netzwerk löschen, ggf. vorher alle Container stoppen - wenn das nicht geht, dann einfach in ein anderen Netzwerk hängen, notfalls alle Container in dem Netzwerk löschen. Docker Packet neustarten. Danach sollte da Bridge-Netzwerk mit neuen Werten angelegt sein.

Update: das gilt für vanila Docker. Keine Ahnung ob Synology hier eine weitere Sonderlocke in SEIN Docker Fork eingebaut hat. Bind mount Volumes (aka Hostverzeichnisse in Containerverzeichnisse mappen) kann man bei vanila Docker nicht im Nachgang editieren - die Syno-UI erlaubt es dagegen.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.477
Punkte für Reaktionen
361
Punkte
103
Wenn ich jetzt die beiden json Files "/var/packages/Docker/etc/dockerd.json" und "/volume1/@appstore/Docker/config/dockerd.json" um die beiden Eintrage
Ähm, wozu editierst Du beide Dateien? Es wird viel quatsch behauptet, der dann gerne auch noch ohne es zu verstehen weiter getragen wird. Ich kann hier nur empfehlen selber Erfahrungen zu sammeln. Eine von denen ändern -> Docker Paket neu starten -> Schauen ob die Änderung gegriffen hat. Wenn es der Fall ist, wieder zurückdrehen und die Änderungen an der anderen Datei verproben... Es KANN logisch keine zwei Orte für die Konfigurationsdatei geben.
 

Just_Use

Benutzer
Mitglied seit
12. Mai 2022
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Guten Morgen @haydibe,

danke für deine schnelle Antwort.
Einmal angelegt sind Netzwerke nicht mehr veränderbar.
Das ist ein guter Hinweis. Wobei es schon komisch ist, denn gerade um IPv6 für Docker zu aktivieren soll man doch lauf Doku die deamon.json um die benötigten Einträge "ipv6": true, und "fixed-cidr-v6":XXXX::/YY ergänzen?

Ähm, wozu editierst Du beide Dateien?
Das ist auch der Grund warum ich die editiere... zugegeben! Warum ich beide Dateien Editiere ist dem geschuldet dass vor mir andere durch das selbe Feuer gegangen sind um dann zu berichten.
Es KANN logisch keine zwei Orte für die Konfigurationsdatei
Das ist schon ungewöhnlich, auch hier gebe ich dir recht. Fakt ist jedoch dass unter beiden Verzeichnissen jeweils eine dockerd.json vorhanden ist. Ob es notwendig ist, beide zu bearbeiten steht noch mal auf einem anderen Blatt.

Ich habe mich heute früh entschieden das Docker-Image auf der DS noch ein mal neu aufgespielt und die default-Netzwerke auch default zu lassen und es mit einem macvlan zu probieren.

Grüße
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.978
Punkte für Reaktionen
576
Punkte
134
Die Frage, welche dockerd.json genutzt wird, kann mit "systemctl status" beantwortet werden:
Code:
           │ │ ├─16464 /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json
 

BusinessTux

Benutzer
Mitglied seit
26. Mrz 2017
Beiträge
19
Punkte für Reaktionen
8
Punkte
9
Leider scheint dieser Workaround seit DSM 7.1 nicht mehr zu funktionieren :-(

Bis DSM 7.0 musste ich es nur in /var/packages/Docker/etc/dockerd.json eintragen. Aus dieser Datei wird die Zeile aber jetzt bei jedem Start des Docker Dienstes wieder gelöscht.

Zum Testen habe ich es zusätzlich in die Datei /volume1/@appstore/Docker/config/dockerd.json eingetragen, wo es auch erhalten bleibt. Aber keine Änderung. Das bridge interface bleibt auf "EnableIPv6": false (docker network inspect bridge)

Hat jemand unter DSM 7.1 Docker mit IPv6 am Laufen? Ich brauche es, um auf einen IPv6-only erreichbaren OpenVPN-Container zugreifen zu können, da DSM selber nicht OpenVPN-Client und -Server gleichzeitig sein kann.
 

BusinessTux

Benutzer
Mitglied seit
26. Mrz 2017
Beiträge
19
Punkte für Reaktionen
8
Punkte
9
Synology sei Dank funktioniert es ab jetzt ohne Einträge in den dockerd.json-Dateien und damit ohne Shell-Zugriff und wahrscheinlich auch updatesicher.

Ich habe mir einfach eine zweite Bridge angelegt, auf der ich jetzt IPv6 aktivieren konnte:
1654442981709.png

Die neue bridge dann noch verwalten und den Container hinzufügen und schon bekommt er eine IPv6-Adresse und ist wieder über IPv6 erreichbar.

Mein Danke geht an Synology
 
  • Like
Reaktionen: Just_Use und haydibe

KalKin

Benutzer
Mitglied seit
27. Okt 2018
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Was muss man tun, damit das Host-Netzwerk auch wieder eine IPv6 Adresse bekommt.
Wenn ich es richtig verstanden habe, dann kann man Bridge-Netzwerke neu anlegen und editieren, aber das host-Netzwerk lässt sich bei mir nicht ändern oder löschen.

Ich kann Verwalten und Löschen nicht auf den host-Eintrag anwenden.
Nutze auch die DSM 7.1
 

deltapapa

Benutzer
Mitglied seit
06. Jan 2019
Beiträge
108
Punkte für Reaktionen
5
Punkte
24
Moin Moin,
da hänge ich mich mal hinten dran.
Habe in der FritzBox ide IPv6 Adresse der DS918 eingegeben, funktioniert natürlich nicht.
Habe dann diesen Thread hier gefunden, aber ich kann der Bridge keinen Conatiner zuweisen.
Und der Host läßt sich nicht löschen.
Zweitfrage: Die IPv6 Adresse aus dem Screenshot 2 Thread's höher, bleiben die immer gleich?

Vielen Dank,
deltapapa
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat