NEWS
iobroker + docker + MACVLAN - fixe IP für bridge möglich ?
-
wie gesagt das ist kein problem der adressierung im netzwerk, sondern
wie macvlan vom linux kernel umgesetzt wurde.
daher sehen sich die beiden nichtvon innen nach aussen hilft das bridge network.
von aussen nach innen nur das virtuelle interface
innen=container
aussen=hostich vergaß zu erwähnen, das bei jedem neustart des hosts, das interface neu gesetzt werden muss
ich habe unter dem folgenden pfad das folgende skript laufen
/etc/network/if-up.d/dockermacvlan#!/bin/sh if [ "$IFACE" = "enp3s0" ]; then ip link add macvlan0 link enp3s0 type macvlan mode bridge ip addr add 192.168.1.80/28 dev macvlan0 ip link set macvlan0 up fi
192.168.1.80/28 ist der adressbereich des macvlans
so schwer ist es dann nicht
-
@oliverio sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
wie gesagt das ist kein problem der adressierung im netzwerk, sondern
wie macvlan vom linux kernel umgesetzt wurde.
daher sehen sich die beiden nichtDas Problem, das @Qlink hat ist, dass er vom ioB-Container auf den Host (NUT-Server) zugreifen will. Das funktioniert auch prächtig, allerdings darf sich die IP-Adresse im Bridge-Netzwerk nicht ändern, weil sonst die Freischaltung in der Synology nicht mehr greift.
https://forum.iobroker.net/topic/71784/nut-error-seit-synology-restart-access-denied
-
@qlink sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Ist es möglich meinem iobroker Container für dieses bridge Netzwerk ebenfalls eine fixe IP Adresse einzustellen ?
Ich kann dazu nämlich keine Einstellung in portainer oder sonst wo finden..Ich habe das mal durchgespielt. Über die normale Portainer-Oberfläche geht's nicht, da gibt es ja nur ein Feld für die IP-Adresse pro Container, hast du ja auch schon gesehen.
Was funktioniert ist die Definition in Stacks bzw. Docker compose. Dort kannst du für jedes zugewiesene Netzwerk eine IP-Adresse festlegen:
version: "3" services: ##### HANDBRAKE ##### handbrake: container_name: handbrake image: jlesage/handbrake hostname: handbrake restart: unless-stopped networks: #Bridge test: ipv4_address: 192.168.3.55 #MACVLAN mvl1: ipv4_address: 192.168.1.35 ports: - "5800:5800"
-
das ist interessant und möchte ich gerne versuchen.
Ich habe allerdings bisher noch nicht damit gearbeitet und meine aktuellen Container alle "manuell" in Portainer erstellt.Wie kann ich hier meine produktiven Container auf Stacks/Compose umstellen, ohne dass ich danach irgendwelche Baustellen etc. habe ?
-
@qlink sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Ich habe allerdings bisher noch nicht damit gearbeitet und meine aktuellen Container alle "manuell" in Portainer erstellt.
Ich würde voschlagen, du fängst erstmal vorsichtig an und testest, ob das in deiner Umgebung auch funktioniert (nicht, dass die Synology da zwischen funkt). Hier mal ein kleines Template mit einem NGINX. Einfach einen neuen Stack anlegen und das reinkopieren. Ggf. die MACVLAN IP-Adresse anpassen, wenn die nicht im Subnetz liegen sollte.
version: "3" services: ##### NGINX ##### nginx: container_name: nginx_two_networks image: nginx hostname: nginx restart: unless-stopped networks: # Bridge iob_private: ipv4_address: 172.18.0.100 # MACVLAN LAN_public: ipv4_address: 192.168.30.100 volumes: - /opt/docker/nginx/templates:/etc/nginx/templates ##### NETWORKS ##### networks: iob_private: external: true LAN_public: external: true
Dann kannst du mal prüfen ob der Container via Bridge zum/vom Host kommunizieren darf und gleichzeitig via MACVLAN auf Port 80 erreichbar ist.
Achtung! Ein Portmapping funktioniert in diesem Fall (MACVLAN+Bridge an einem Container) nicht. Ist aber für deinen Anwendungsfall nicht notwendig, da der Iob per MACVLAN erreichbar ist und die Kommunikation zum Host (NUT-Server) ohne Portmapping läuft.
-
Ich versuche meinen iobroker docker auf eine Synology von host auf macvlan umzustellen aber irgendwie funktioniert das nicht. Ich macvlan für pihole eingerichtet und das funktioniert einwandfrei. Nun habe ich für den iobroker folgende Einstellungen gemacht.
Aber wenn ich den Container starte, kommt er nur bis Schritt 3 und startet dann irgendwann wieder neu.
Das log unter iobroker_data ist zu diesem Zeitpunkt noch leer. Hat noch jemand einen Tipp wo ich gucken kann?
-
@stephan1827 ich bin das alles in den letzten wochen auch durchgegangen. ebenfalls von bridge auf macvlan umgestellt. als erstes würde ich dir empfehlen mittels portainer alles aufzusetzen. zudem die frage wie sieht denn dein netz aus? hast Du den IP Bereich in diesem Hauptnetz welches du dem macvlan vergibst ausgeklammert dass es keine überschneidungen im adressbereich des macvlan und deinem hauptnetz gibt?
-
Setze mal die Umgebungvariable des Containers "debug" auf "true". Da kann man in der Regel mehr sehen, wo es klemmt. Nutzt du ggf. Redis, wenn ja, wo läuft dies?
-
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
macvlan für pihole eingerichtet
das hat für mich gar nicht richtig funktioniert.
kannst du mir da bitte dein docker-compose als direktnachricht senden? -
@oliverio pihole habe per Aufgabe über die Synology erstellt. Dafür habe ich dieses Script verwenden
docker run -d --name=pihole \ -p 53/tcp \ -p 53/udp \ -p 67/udp \ -p 80/tcp \ -e WEB_PORT=80 \ -e WEBPASSWORD=password \ -e FTLCONF_LOCAL_IPV4=192.168.86.40 \ -e TZ=Europe/Bucharest \ -e DNSMASQ_USER=root \ -e DNSMASQ_LISTENING=local \ -v /volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d \ -v /volume1/docker/pihole/pihole:/etc/pihole \ --net=mcvlan \ --cap-add CAP_NET_ADMIN \ --restart always \ pihole/pihole
Damit die Synology selber auch auf die Adressen zugreifen kann habe ich noch ein Script das nach dem hoch starten eine bridge erstellt. Das Script sieht so aus.
#!/bin/bash while ! /usr/local/bin/docker info >/dev/null 2>&1; do sleep 5s done ip link add mvl-brg link ovs_eth0 type macvlan mode bridge ip addr add 192.168.86.32/32 dev mvl-brg ip link set mvl-brg up
-
@drapo ich benutze portainer, IP Adresse ist frei und sollte auch noch in der macvlan range sein. So sieht meine macvlan Konfiguration aus.
-
@marc-berg anscheinend kann der container sich nicht mehr mit der Datenbank verbinden, das verstehe ich nicht denn die Datenbank ist die interne von iobroker
-------------------------------------------------------------------------------- ------------------------- 2024-01-19 18:54:37 ------------------------- -------------------------------------------------------------------------------- ----- ----- ----- ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ██████╗ ----- ----- ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ██╔═══██╗ ██║ ██╔╝ ██╔════╝ ██╔══██╗ ----- ----- ██║ ██║ ██║ ██████╔╝ ██████╔╝ ██║ ██║ █████╔╝ █████╗ ██████╔╝ ----- ----- ██║ ██║ ██║ ██╔══██╗ ██╔══██╗ ██║ ██║ ██╔═██╗ ██╔══╝ ██╔══██╗ ----- ----- ██║ ╚██████╔╝ ██████╔╝ ██║ ██║ ╚██████╔╝ ██║ ██╗ ███████╗ ██║ ██║ ----- ----- ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ----- ----- ----- ----- Welcome to your ioBroker Docker container! ----- ----- Startupscript is now running! ----- ----- Please be patient! ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- System Information ----- ----- arch: x86_64 ----- ----- hostname: iobroker ----- ----- ----- ----- Version Information ----- ----- image: v9.1.0 ----- ----- build: 2024-01-19T13:46:03+00:00 ----- ----- node: v18.19.0 ----- ----- npm: 9.2.0 ----- ----- ----- ----- Environment Variables ----- ----- DEBUG: true ----- ----- SETGID: 1000 ----- ----- SETUID: 1000 ----- -------------------------------------------------------------------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! DEBUG LOG ACTIVE !!!! !!!! Environment variable DEBUG is set to true. !!!! !!!! This will extend the logging output and may slow down container start. !!!! !!!! Please make sure to deactivate if no longer needed. !!!! !!!! For more information see ioBroker Docker image documentation: !!!! !!!! https://docs.buanet.de/iobroker-docker-image/docs/ !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing Container ----- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker Installation ----- -------------------------------------------------------------------------------- Existing installation of ioBroker detected in "/opt/iobroker". -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker Installation ----- -------------------------------------------------------------------------------- (Re)setting permissions (This might take a while! Please be patient!)... Done. [DEBUG] Checking multihost settings... [DEBUG] No multihost settings detected. [DEBUG] Done. [DEBUG] Checking custom objects db settings... [DEBUG] No custom objects db settings detected. [DEBUG] Done. [DEBUG] Checking custom states db settings... [DEBUG] No custom states db settings detected. [DEBUG] Done. Checking database connection... Failed. [DEBUG] Error message: [DEBUG] No connection to databases possible ... Please check your configuration and try again. For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs). [DEBUG] Debug mode prevents the container from exiting on errors. [DEBUG] This enables you to investigate or fix your issue on the command line. [DEBUG] If you want to stop or restart your container you have to do it manually. [DEBUG] IoBroker is not running!
-
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Existing installation of ioBroker detected
ich tippe mal ...
es funktioniert mit einem neuen ioBroker Container , ohne den alten Ordner zu mappen ! -
@glasfaser sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Existing installation of ioBroker detected
ich tippe mal ...
es funktioniert mit einem neuen ioBroker Container , ohne den alten Ordner zu mappen !Das mag sein, aber das hilft mir leider nicht weiter. Ich möchte gerne den bestehenden Container behalten.
-
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Das mag sein,
selber mal getestet ... ob es auch so bei dir ist !?
-
@stephan1827 also nur um es zu verstehen. Dein iobroker läuft nicht auf der redis DB sondern mit der standard DB von iobroker korrekt?
hast du dem iobroker auch mal das interne bridge netzwerk hinzugefügt damit er intern mit den anderen containern kommunizieren kann?
ausserdem würde ich dir vorschlagen den alten container nochmal laufen zu lassen und deine daten auf einem laufwerk auf dem nas zu mappen. dann kannst du den container immer updaten ohne deine daten zu verlieren. siehe bild
-
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
anscheinend kann der container sich nicht mehr mit der Datenbank verbinden, das verstehe ich nicht denn die Datenbank ist die interne von iobroker
Ich kenne diesen Fehler nur daher, dass die lokalen Ports 9000/9001 nicht erreichbar sind, denn darauf hört die lokale Datenbank. Das passiert gern mal, wenn auf Host umgestellt wird, der Host aber die Ports schon anderweitig belegt. Das kann ja aber bei dir nicht der Fall sein. Trotzdem tippe ich auf irgendwelchen Netzwerktrouble. Ist der Container über die MACVLAN Schnittstelle erreichbar? Was sagt
netstat
? -
@drapo sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
@stephan1827 also nur um es zu verstehen. Dein iobroker läuft nicht auf der redis DB sondern mit der standard DB von iobroker korrekt?
Das stimmt
hast du dem iobroker auch mal das interne bridge netzwerk hinzugefügt damit er intern mit den anderen containern kommunizieren kann?
Eine bridge habe ich
ausserdem würde ich dir vorschlagen den alten container nochmal laufen zu lassen und deine daten auf einem laufwerk auf dem nas zu mappen. dann kannst du den container immer updaten ohne deine daten zu verlieren. siehe bild
Das ist bei mir schon so
-
Bitte jede Frage beantworten ! , auf spekulationen kommen wir hier nicht weiter
Was ist hiermit :
@glasfaser sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
@stephan1827 sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:
Das mag sein,
selber mal getestet ... ob es auch so bei dir ist !?
-