So, erst einmal ein großes Dankeschön an @Homoran, @Glasfaser, @andre, @apollon77 und @Thomas-Braun.
Kleiner Spoiler:
Der Tip von @apollon77 mal ein Auge auf die Namensauflösung (DNS) zu werfen war der entscheidende. Wie ich bereits vermutet habe, hatte pihole (im Container) keinen Einfluss darauf. Auch ohne pihole und mit DNS-Server-Verweis auf meinen Router (FritzBox) trat das Phänomen auf, das die VIS Online-Community-Lizenz nicht über den iobroker Server (iobroker.net/api/...) verifiziert werden konnte.
Also wie war mein Vorgehen und was ist war (in meinem hiesigen Scenario) das Problem. Zuerst habe ich
-
den pihole-Container gestoppt,
-
den DNS-Verweis im Host (Pi4 -
sudo nano /etc/dhcpcd.conf
) wieder auf den Router gelegt, -
im Router (FritzBox) den "lokalen DNS" Verweis von der pihole-Container IP-Adresse (192.168.180.254) wieder auf den Router selbst gelegt (192.168.180.1),
-
den Router neu gestartet, damit alle Teilnehmer mit DHCP-Bezug einen neuen DNS-Verweis (192.168.180.1) bekommen
Damit konnte ich ausschließen, dass pihole in irgendeiner Art und Wiese hier eingreift.
Über Portainer habe ich dann
-
den iobroker-Container, alle damit verbundenen Volumes, sowie deren Daten auf dem Host (Pi4) gelöscht
-
das MACVLAN gelöscht
Damit ich frisch starten konnte. Über Portainer habe ich dann das
-
MACVLAN wie hier
-
iobroker im Container mit dem image von @andre (buanet/iobroker:latest) wie folgt erstellt
Name: iobroker
Volume:
Advanced Settings - Network:
Network "net" ist dabei das MACVLAN Netz
Damit sollte (und so war es auch) eine iobroker-Instanz auf der IP-Adresse 192.168.180.250 erreichbar sein.
Was immer noch nicht funktionierte, war die Verifizierung der VIS Online-Community-Lizenz. In der Container-Bash über apt update
, apt install dnsutils
und dig iobroker.net
(danke an @Thomas-Braun) konnte ich sehen, wohin "iobroker.net" aufgelöst wurde und das war die lokale IP-Adresse des iobroker-Containers (192.168.180.250)
dig iobroker.net
~~~~~
iobroker.net. 600 IN A 192.168.180.250
~~~~~
In meinem Netz wurde "iobroker.net" von jedem andern Teilnehmen (mein Laptop, dem Pi4 selbst oder meinem Handy) richtig auf die IP-Adresse des iobroker Servers (iobroker.net) aufgelöst.
Irgendwie konnte mir die "resolve.conf" in dem iobroker-Container und die "hosts" Datei auch nicht so richtig weiter helfen.
Dann habe ich mich mit DNS im Container hier belesen. Auch zu MACVLAN habe ich mich hier nochmal belesen und beschlossen es einmal ohne Portainer zu versuchen.
Ich habe dann alles (iobroker-Container, Volumes + Daten und MACVLAN-Netz) wieder gelöscht und über der Host-Bash (Pi4) erstmal das MACVLAN mit docker network create -d macvlan --subnet=192.168.180.0/24 --ip-range=192.168.180.224/27 --gateway=192.168.180.1 -o parent=eth0 macvlan0
erstellt.
Als nächstes einen Ordner in meinem home-Verzeichnis des Host (Pi4) mit dem Namen "iobroker" und darin eine "docker-composer.yml" erstellt. Diese sieht wie folgt aus:
Wichtig ist hierbei unter "networks" muss der Name des MACVLANs (macvlan0) stehen und "external: true". Damit kein Fehler beim Erstellen des Containers auftritt und beim Löschen des Containers das MACVLAN-Netz (macvlan0) erhalten bleibt.
Zum Erstellen des Container habe ich sudo docker compose up -d
verwendet. Dazu muss ich mich aber mit der Bash im Verzeichnis der "docker-compose-yml" befinden.
Jetzt habe ich mir wieder in der iobroker-Container-Bash über apt update
, apt install dnsutils
und dig iobroker.net
angeschaut wohin "iobroker.net" aufgelöst wurde und das war diesmal die iobroker-Server-Adresse (82.165.135.239)
Danach habe ich über das Admin-Panel im iobroker getestet, ob meine VIS Online-Community-Lizenz validiert werden konnte. Und siehe da es hat funktioniert!
Das waren jetzt mal die vereinfachten und direkt zum Ziel führenden Schritte. Es waren noch einige andere die ich versucht habe, aber nie funktionierten.
Danach habe ich alles wieder mit pihole eingerichtet:
-
DNS im Host auf 192.168.180.254
-
DNS in der docker-compose.yml des iobrokers auf 192.168.180.254
-
lokaler DNS Server im Router (FritzBox) auf die 192.168.180.254 gestellt
-
Einen Ordner im home-Verzeichnis des Host (Pi4) mit dem Namen "pihole" und darin eine "docker-composer.yml" erstellt. Diese sieht wie folgt aus:
Jetzt könnte man beide Composer-Files zusammenfassen und das darin das MACVLAN-Netz definieren, damit man bspw. --aux-address="iobroker=192.168.180.250" --aux-address="ipihole=192.168.180.254"
mit hinzufügen kann, um diese IP-Adressen nicht vom DHCP des MACVLANs vergeben zu lassen. Habe ich bei mir jetzt nicht gemacht, da dieser Bereich nicht von meinem Router vergeben wird.
Meine Vermutung ist demnach, dass es irgendwie mit den Advanced Settings - Network in Portainer haben muss.
Was genau, konnte ich bisher nicht herausfinden. Auch die Dokumentation von Portainer ist hier nicht besonders hilfreich. Ich gehe mal davon aus das der "Network" Bereich das gleiche machen soll wie
networks:
macvlan0:
ipv4_address: 192.168.180.250
dns:
- 192.168.180.1
in Bereich "services". Vielleicht liest das hier ja der ein oder andere Portainer-Profi und kann da Aufklärung schaffen.
Nochmals vielen Dank an alle die geholfen haben und entschuldigt die lange ausführliche Beschreibung, aber vielleicht hilft sie ja dem ein oder anderen.
Es wäre auch schön wenn hierzu jetzt auf Kommentare wie "na wer benutzt den schon Portainer", "ohne Container wäre das nicht passiert" oder dergleichen verzichtet werden kann. Danke.