Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. iobroker + docker + MACVLAN - fixe IP für bridge möglich ?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    iobroker + docker + MACVLAN - fixe IP für bridge möglich ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Q
      Qlink last edited by Qlink

      Hi Leute,

      ich habe iobroker auf Docker inkl. Portainer auf einer Synology am Laufen.
      Ich verwende MACVLAN und habe dem iobroker Container für das LAN_public Netzwerk eine fixe IP Adresse (192.168.30.90) zugewiesen. Das funktioniert auch tadellos... soweit so gut.
      4eebfd1d-ea20-4d16-ab93-3e5657c65342-image.png
      Mein iobroker Container hat aber zusätzlich noch ein zweites "bridge" Netzwerk um mit der Synology oder anderen Containern kommunizieren zu können.

      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..

      Danke.

      Beste Grüße

      OliverIO ? Marc Berg 3 Replies Last reply Reply Quote 0
      • OliverIO
        OliverIO @Qlink last edited by

        @qlink

        nein, die ip für den container im bridge ist die des hosts

        eine etwas aufwändigere methode, wäre es auf dem host ein zusätzliches interface einzurichten, anhand dessen linux dann die route zum container findet

        https://blog.oddbit.com/post/2018-03-12-using-docker-macvlan-networks/ (abschnitt host access)

        Q 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @Qlink last edited by

          @qlink

          in Portainer den Container auswaehlen, dann auf Duplicate/Edit und dann runter bei Network kann man eine feste IPV4 eintragen:

          4f6a2975-2e73-4152-b00f-7049a576fb74-image.png

          1 Reply Last reply Reply Quote 0
          • Q
            Qlink @OliverIO last edited by

            @oliverio

            danke für die Rückmeldung. Aufwändige Lösungen möchte ich tunlichst vermeiden.
            Wäre es nicht theoretisch möglich bei der Anlage des bridge networks in docker ein /32 Netz anzulegen.
            Dann würde der Container doch nur eine mögliche IP Adresse zugewiesen bekommen und es hätte quasi den gleichen Effekt wie eine fixe IP Adresse ... oder hab ich hier einen Denkfehler drin ?

            @ilovegym was du beschreibst gilt für die primäre Netzwerkadresse eines Containers. Mir geht es aber um eine zusätzliche zweite IP Adresse ...

            Marc Berg OliverIO 2 Replies Last reply Reply Quote 0
            • Marc Berg
              Marc Berg Most Active @Qlink last edited by

              @qlink sagte in iobroker + docker + MACVLAN - fixe IP für bridge möglich ?:

              Aufwändige Lösungen möchte ich tunlichst vermeiden.

              Könntest du nicht auf der Synology das ganze Subnetz (172.18.0.0/24) freigeben, statt der einzelnen Adresse?

              3d2150da-a74b-457f-a1b2-9d64d2445291-image.png

              Das wäre die einfachste (nicht schönste) Lösung.

              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @Qlink last edited by OliverIO

                @qlink

                wie gesagt das ist kein problem der adressierung im netzwerk, sondern
                wie macvlan vom linux kernel umgesetzt wurde.
                daher sehen sich die beiden nicht

                von innen nach aussen hilft das bridge network.
                von aussen nach innen nur das virtuelle interface
                innen=container
                aussen=host

                ich 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

                Marc Berg 1 Reply Last reply Reply Quote 0
                • Marc Berg
                  Marc Berg Most Active @OliverIO last edited by Marc Berg

                  @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 nicht

                  Das 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

                  1 Reply Last reply Reply Quote 0
                  • Marc Berg
                    Marc Berg Most Active @Qlink last edited by

                    @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"
                    

                    bf18e68b-47f2-4674-bd9f-8b67c88ac9ac-grafik.png

                    Q 1 Reply Last reply Reply Quote 0
                    • Q
                      Qlink @Marc Berg last edited by

                      @marc-berg

                      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 ?

                      Marc Berg 1 Reply Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @Qlink last edited by Marc Berg

                        @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.

                        1 Reply Last reply Reply Quote 0
                        • stephan1827
                          stephan1827 last edited by

                          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.
                          Bildschirmfoto 2024-01-17 um 10.46.04.png

                          Aber wenn ich den Container starte, kommt er nur bis Schritt 3 und startet dann irgendwann wieder neu.
                          Bildschirmfoto 2024-01-17 um 10.28.07.png

                          Das log unter iobroker_data ist zu diesem Zeitpunkt noch leer. Hat noch jemand einen Tipp wo ich gucken kann?

                          D Marc Berg OliverIO 3 Replies Last reply Reply Quote 0
                          • D
                            drapo @stephan1827 last edited by

                            @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?

                            stephan1827 1 Reply Last reply Reply Quote 0
                            • Marc Berg
                              Marc Berg Most Active @stephan1827 last edited by

                              @stephan1827

                              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 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @stephan1827 last edited by

                                @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?

                                stephan1827 1 Reply Last reply Reply Quote 0
                                • stephan1827
                                  stephan1827 @OliverIO last edited by stephan1827

                                  @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
                                  

                                  87b8cea8-1199-400b-b42f-67c6ba146932-image.png

                                  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
                                  
                                  1 Reply Last reply Reply Quote 1
                                  • stephan1827
                                    stephan1827 @drapo last edited by stephan1827

                                    @drapo ich benutze portainer, IP Adresse ist frei und sollte auch noch in der macvlan range sein. So sieht meine macvlan Konfiguration aus.

                                    4d753b76-53e9-4b15-b585-0b72f49f76d8-image.png

                                    D 1 Reply Last reply Reply Quote 0
                                    • stephan1827
                                      stephan1827 @Marc Berg last edited by

                                      @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!
                                      
                                      Glasfaser 2 Replies Last reply Reply Quote 0
                                      • Glasfaser
                                        Glasfaser @stephan1827 last edited by

                                        @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 !

                                        stephan1827 1 Reply Last reply Reply Quote 0
                                        • stephan1827
                                          stephan1827 @Glasfaser last edited by

                                          @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.

                                          Glasfaser 1 Reply Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @stephan1827 last edited by

                                            @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 !?

                                            Glasfaser 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            818
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            36
                                            2437
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo