MACVLAN über Portainer einrichten
In diesem Tutorial werden wir mittels der Portainer Weboberfläche manuell ein MACVLAN erstellen dass wir dann später beim Starten eines Containers verwenden können. Wie ihr Portainer für euren Docker Host einrichtet habe ich bereits in diesem Tutorial beschrieben:
Ich empfehle die Verwendung von MACVLAN grundsätzlich nur fortgeschrittenen Benutzern, denn für die Umsetzung solltet Ihr in jedem Fall mit den Basics zum Thema „IP-Netzwerke“ vertaut sein und euer eigenes Heimnetzwerk im Griff haben. Wenn euch Begriffe wie „DHCP“, „Gateway“ oder „Subnet“ nichts sagen, holt euch bitte entsprechende Unterstützung. Außerdem ist es hilfreich sich vorab einmal mit dem Networking unter Docker auseinander zu setzen. Infos dazu findet ihr z.B. hier:
Vorbereitungen für MACVLAN
Und schon geht es los. Für die Umsetzung des Tutorials benötigt ihr also Kenntnisse über euer eigenes Netzwerk, den Zugriff auf die Portainer Oberfläche und einen Konsolenzugriff (z.B. über SSH) auf euren Docker Host.
In meinem Beispiel arbeite ich auf einer Synology Disk Station und verwende als Testnetz ein 192.168.0.0/24-Netz. Das Gateway liegt klassich auf der .1 und es gibt keinen DHCP-Bereich. Mein Container soll später die IP-Adresse 192.168.0.100 bekommen.
Und schon geht es los. Das Erstellen des MACVLAN-Netzwerkes umfasst insgesamt zwei Schritte. Im ersten Schritt erstelle wir eine „Configuration“ mit den gewünschten Netzwerkinformationen. Im zweiten Schritt erstellen wir dann mit Hilfe der „Configuration“ die sogenannte „Creation“ die wir dann später auch mit dem ioBroker-Container verbinden.
Hinweis
Bis einschließlich der Docker-Paketversion 17 war es durch einen Bug auf der DS nicht möglich nach der Erstellung der „Configuration“ eine „Creation“ zu erstellen. Dafür konnte man aber die „Configuration“ direkt mit dem ioBroker-Container verbinden und hatte ein funktionierendes MACVLAN. Eine Erklärung dafür habe ich nicht gefunden, es lief so aber bei mir monatelang problemlos. Trotzdem würde ich empfehlen bei Installationen auf einer DS das Docker-Paket vorher auf die aktuellste Version zu bringen.
Öffnen wir also erst einmal die Portainer-Weboberfläche, melden uns an und wählen unseren Endpoint (Host). Anschließend starten wir die Erstellung der „Configuration“ mit einem Klick auf den Button „Add network“ unter „Networks“.
Im folgenden Dialog sind einige Felder zu füllen. Beginnen wir mit dem Namen. Ich werde dem MACVLAN nur eine einzelne IP-Adresse zuweisen. Daher bekommt mein MACVLAN auch einen eindeutigen Namen. Weil es sich um die „Configuration“ handelt, hänge ich noch ein „conf“ dran: „iob_public_conf“. Als Driver wählen wir natürlich „MACVLAN“.
Weiter geht es zum nächsten Feld: Parent network card. Hier müssen wir angeben auf welche physikalische Netzwerkkarte wir unser MACVLAN binden wollen. An dieser Stelle liegt dann auch die Beurteilung „für fortgeschrittenen Benutzer“ begründet. Denn mir ist bisher kein Weg bekannt diese Information der Weboberfläche der DS zu entlocken. Da hilft nur Kommandozeile raus und „ifconfig“ rein.
Auf meiner virtuellen Test-DS liegt die lokale IP-Adresse (192.168.0.32) auf dem Interface eth0. Ich verwende also dieses.
Weiter geht es mit dem Abschnitt „Network configuration“ Hier fülle ich die Informationen meinem Netzwerk entsprechend aus. Für „IP range“ verwende ich die gewünschte IP-Adresse mit einer Präfixlänge von „/32“. Dieses Netz enthält dann schließlich genau eine IP-Adresse.
Hinweis
Es ist natürlich auch möglich dem MACVLAN über die Präfixlänge einen ganzen Adressbereich zur Verfügung zu stellen, sodass man mehrere Container im MACVLAN mit Adressen versorgen kann.
So hat man z.B. bei 192.168.0.80/29 die Adressen .81 bis .86 für Container zur Verfügung.
Allerdings sollte man bei jedem Container genau überlegen ob dieser wirklich eine eigene IP-Adresse benötigt. In den meisten Fällen (Webster, Datenbanken usw.) ergibt das nämlich keinen Sinn.
Bei der Wahl des Netzes unterstützen kann euch dabei der z.B. Netzwerkrechner von Heise.
Achtung: Um IP-Konflikte in eurem Netzwerk zu vermeiden, stellt bitte sicher dass der gewählte Bereich NICHT von einem DHCP Server verwaltet wird/ vergeben werden kann!
Über den Button „Create the network“ schließe ich die Erstellung der „Configuration“ ab.
Die Erstellte „Configuration“ sollte nun in der Liste der Netzwerke auftauchen.
Fehlt noch die „Creation“. Um diese zu erstellen klicken wir erneut auf den Button „Add network“ und geben einen Netzwerknamen an. Dieses Mal verwenden wir nur „iob_public“ und wählen als „Driver“ erneut „MACVLAN“ aus. Anschließend klicken wir auf den Button „Creation“ und wählen im Dropdownmenü „Configuration“ unsere vorab bereits erstellte „Configuration“ aus.
Über den Button „Create the network“ schließen wir nun die Erstellung der „Creation“ ab. Das neue Netzwerk erscheint in der Liste und ist bereit zur Verwendung.
Umsetzung mit docker-compose aka "Portainer Stacks"...
Natürlich lässt sich die Erstellung des MACVLAN auch in docker-compose abbilden. In Portainer nennt sich das ganze „Stacks“. Wer noch nichts davon gehört hat kann erst einmal hier weiter lesen. Für alle Anderen habe ich hier das oben erläuterte Beispiel einmal als Definition für das Stack File. Der Name des Netzwerks lautet im Beispiel dabei „public“.
networks: public: driver: macvlan driver_opts: parent: eth0 ipam: config: - subnet: 192.168.0.0/24 gateway: 192.168.0.1 ip_range: 192.168.0.100/32 aux_addresses: net-address: 192.168.0.100
In dem entsprechenden Container wird das Ganze dann wie folgt, inklusive der IP-Adresse für den Container, referenziert.
networks: public: ipv4_address: 192.168.0.100
Das solle es zu diesem Thema erst einmal gewesen sein. Bei Fragen und Anregungen nutzt gerne die Kommentare oder kontaktiert mich über einen der öffentlichen Kanäle wie z.B. über das ioBroker Forum oder den ioBroker Discord Channel.
Grundsätzlich biete ich keinen persönlichen Support per Messenger bzw. E-Mail an. Fragen sollten meiner Meinung nach immer öffentlich gestellt und beantwortet werden, damit auch andere User mit der selben Frage Zugriff auf die Antworten bekommen. 🙂 Falls ihr mal irgendwo keine Antwort bekommt, nutzt gerne das Kontaktformular und macht mich auf euren Kommentar, Post, Beitrag oder Thread aufmerksam! Danke.
MfG,
André
Änderungshistorie
2021-01-06 Beispiel für docker-compose hinzugefügt. Neufassung der Hinweisbox auf MACVLAN mit mehr als einer IP-Adresse.
2020-09-23 Überarbeitung und Ausgliederung des Artikels aus dem Tutorial „IoBroker unter Docker auf der Synology DiskStation (v3)“.
Hallo André
vielen Dank für deine Anleitungen und deine Arbeit am docker-iobroker!
Ich bin gerade dabei alles umzuziehen, und stolpere gerade über folgendes Problem:
Wenn ich ioBroker mit MACVLAN betreibe, dann kann ich nicht mehr den docker-host erreichen.
Ich habe schon einige Seite gefunden die das gleiche Problem beschreiben, jedoch finde ich aktuel keine Lösung.
Ist dieses Problem bei Dir schonmal vorgekommen und hast du vielleicht Tips wie man das beheben kann?
Danke
Lutz
Hallo Lutz,
das ist kein Problem sondern schlicht technisch bedingt.
Wenn du deinem Container zusätzlich zum MACVLAN ein Bridge Netzwerk zuweist, dann kannst du deinen Host vom Container aus über dieses Netz erreichen. Der Host entspricht im Bridge Netzwerk nämlich dem Gateway. Im ioBroker Forum wurde dieses Thema schon mehrere Male auseinander genommen. Dorst solltest du fündig werden wenn du mehr Infos benötigst.
MfG,
André
PS: Der Vollständigkeit halber sei gesagt, dass es noch eine zweite (komplizierte) Möglichkeit über iptables gibt. Mehr dazu verrät dir Google.
Danke André,
als Software-Engineer weiß man, dass es immer mehrere Wege gibt etwas zu lösen.
Meine Lösung, die zwar nicht optimal ist aber funktioniert ist folgende:
– Master ioBroker im docker
– Slave ioBroker mit YAHKA Adapter direkt auf dem Host
Dadurch kann ich dann auch noch den Shelly Adapter richtig laufen lassen.
Vielen Dank für deinen docker Container!
Moin, moin, ich habe das macvlan so umgesetzt wie beschrieben und in einem Container läuft Pihole mit Unbound. Pihole ist von Aussen zu erreichen ausser vom eigenen Host. Heißt also das ich auf dem Raspi z.B. keinen Updates mehr machen kann, da DNS hier nicht mehr aufgelöst wird, woran könnte das liegen. Danke schon mal in voraus.
Hallo Frank,
das ist ganz normal. Es ist im Normalfall nicht möglich von einem Container im MACVLAN auf den Docker Host zuzugreifen, und umgekehrt. Um diese Einschränkung zu umgehen gibt es verschiedene Lösungsansätze. Du kannst z.B. mit einem selbst erstellten Bridge Netzwerk arbeiten und dem Pi als DNS die IP-Adresse des Pihole aus dem Bridge Netzwerk geben. Alternativ gibt es auch eine Lösung über iptables. Im Internet gibt es da verschiedene Anleitungen.
MfG,
André
Hallo tolles Tutorial vielen Dank dafür. Ich habe meinen ioBroker mit der MACVLAN Konfiguration auf meiner Synology eingerichtet.
Das läuft soweit auch alles.
Ein Problem habe ich jedoch. Auf meiner Synology läuft parralel die WebSation, bei der ich über PHP einzelne Objekt States mittels des im IoBroker laufenden Simple RESTful API Adapters auslesen möchte.
Leider kann ich über die Synology mittels PHP, nur auf die von der REST API bereitgestellten States der Zugreifen, wenn ich im Portainer dem ioBroker Container ein zweites Netzwerk (Bridge Netzwerk) zuweise und anschließend diese IP (Bridge) für die Anfragen an die REST API nutze.
Das Problem was ich hierbei jedoch habe ist, dass sobald ich dem ioBroker Container das zweite Netzwerk (Bridge) zuordne, der Amazon Dash-Button Adapter im ioBroker dahingehend nicht mehr funktioniert, dass dieser nicht mehr erkennt, ob ein Dash-Button innerhalb des Heimnetzerkes gdrückt wird.
Sofern ich das Bridge Netzwerk nicht mehr dem ioBroker Container zugeordnet ist, funktioniert der Amazon Dash-Button Adapter im ioBroker wieder problemlos, jedoch sind dann die oben genannten REST API Anfragen ausgehend von der Synology an den ioBroker nicht möglich.
Wie kann ich dieses Problem eventuell in den Griff bekommen?
Vielen Dank schon mal im Voraus
Gruß
Andreas
Hallo Andreas,
diese Frage kann ich dir leider nicht beantworten. Sieht mir so aus als ob der Dash-Button Adapter auf die falsche Netzwerkverbindung lauscht.
Es gibt im Internet auch Lösungsansätze bei denen man dem MACVLAN die Kommunikation zum Host ermöglichen kann. Habe da zwar selbst keine Erfahrungen mit, aber im ioBroker Forum Thread habe ich das schonmal gelesen.
Vielleicht recherchierst du dort nochmal oder stellst deine Frage.
MfG,
André
Hallo und danke für dein Docker-Image.
Leider habe ich massive Probleme. Ich hatte dein Image im bridge-mode laufen. hier hatte ich folgendes Problem: Meine Kommunikation der CCU 2 hat prima geklappt. Habe mitlerweile über 50 Hm oder HmIP Geräte laufen. Ich versuche seit letztem Jahr verzweifelt meine Wolf-Wärmepumpe über das Modul Ism8i einzubinden. Leider ohne Erfolg. Die Ampel bei Instanzen von dem Adapter zeit grün, aber es wurden keine Objekte angelegt. Keine Fehlermeldung in den Logs. Vor kurzen habe ich einen Shelly versucht einzubinden. Gleiches Problem. Irgendwie kamen die Daten nicht durch. Habe dann vor kurzem dank deiner Anleitung den Container umgestellt auf Macvlan. Jetzt habe ich endlich zugriff auf meine Heizung und den Shelly ABER die Daten von meiner CCU 2 werden nur sproadisch oder gar nicht aktualisiert (eher nicht aktualisiert). Wenn ich in Instanzen, hm-rega.0 aktualisiere wird alles aktualisiert.
Meine Installation läuft auf einem selbst gebauten NAS auf dem OMV läuft. Ich wüste nicht das eine Firewall etwas blockiert. Umgesetzt habe ich das ganze in Portainer über Docker-Compose:
version: ‚3‘
networks:
public:
driver: macvlan
driver_opts:
parent: enp0s31f6
ipam:
config:
– subnet: 192.168.178.0/24
gateway: 192.168.178.1
ip_range: 192.168.178.103/32
aux_addresses:
net-address: 192.168.178.103
services:
iobroker:
restart: always
image: buanet/iobroker:latest
container_name: ioBroker
hostname: ioBroker
networks:
public:
ipv4_address: 192.168.178.103
volumes:
– /raid1/docker/iobrokerdata:/opt/iobroker
Jetzt bin ich froh das das eine geht jetzt geht das andere nicht. Bin am verzweifeln.
Hallo Uwe,
melde dich mit deinem Problem am Besten mal im ioBroker Forum, am besten mit einem eigenen Thread. Dann können wir versuchen heraus zu finden was da falsch läuft. Die Kommentare hier sind für solche Analysen leider nicht geeignet.
MfG,
André
Hallo Andre
habs selbst raus bekommen. Vor lauter Bäumen den Wald nicht mehr gesehen. Wenn ioBroker eine neue IP-Adresse bekommt muß ich das auch in den beiden Adaptern hm-rpc0 und 1 umstellen. Jetzt flutscht alles. Endlich.
Ich hab schon mehrere Threads auf verschiedenen Seiten aufgemacht aber keiner konnte mir helfen. War wohl immer an der falschen stelle.
Uwe
…und ich nochmal 🙂
Eine Frage habe ich da noch auf die ich gestoßen bin bei der Einrichtung von „BACKITUP) an Iobroker.
Ist es möglich einen Folder mount an die IP des nas zu erstellen? Sprich von MACVLAN auf dem Iobroker läuft auf die Lan IP des NAS?
Ich bekomme hier immer ein Mount fehler – auch ein PING funktioniert nicht
Wäre toll wenn du etwas dazu sagen kannst!
Grüße
Hallo Christian,
vom MACVLAN kannst du nicht so ohne weiteres eine Verbindung zum Host herstellen. Im ioBroker Forum Thread haben wir das schon mehrfach besprochen. Die beste Lösung ist, wenn du dem ioBroker Container neben dem MACVLAN ein Bridge Netzwerk zuweist. In jedem Bridge Netzwerk ist der Host das Gateway und lässt sich darüber problemlos ansprechen. Wenn du mal Google befragst findest du auch noch eine andere Variante.
Falls du Unterstützung benötigst melde dich ruhig mal im Discord Channel oder ioBroker Forum.
MfG,
André
Hallo!
habe alles wie von dir oben skizziert am laufen!
TOLL DANKE DAFÜR!
Ist es irgendwie möglich das Docker Config File anzupassen dass ein volume mount auf meinen Host erfolgt ?
Sodass ich quasi direkten Zugriff auf die Folderstruktur bekommen kann? Wie es normal bei einem Docker DIR ist?
Ansonsten wo finde ich die files die normalerweise in meinem Docker Folder liegen?
Hallo Christian,
ich bin mir nicht ganz sicher welches Config File du anpassen willst. Grundsätzlich kannst du per mount beliebige Ordner deines Docker Hosts an einen Container durch reichen. Auch verstehe ich nicht so recht was du mit einem Docker DIR meinst. Sorry, kann dir da aktuell leider nicht weiterhelfen.
MfG,
André
Hi Andrè!
Kurz bevor ich deinen Kommaentar gelesen habe, habe ich meinen BIND Fehler gefunden!
Danke für deine Hilfe!
Grüße
chris
…und schon wieder ICH.
Habe es selbst gelöst. Habe „Portainer“ und „Docker“ gelöscht und alles neu aufgesetzt…, das fehlerhafte
Netzwerk ist nun nicht mehr vorhanden und ich konnte bei Netzwerke wie beschrieben neu erstellen.
Trotzdem Danke.
Gruß Peter
Hallo Peter,
das wäre auch mein Hinweis gewesen. 🙂 Portainer ist ja nur die Administrative Oberfläche. Wenn man neu anfangen möchte kommt man um das Löschen von Docker nicht herum.
MfG,
André
Hallo Andre.
Vielen Dank für Deine Tutorials. Ich war der Meinung, das ich das mit der detailierten Beschreibung einrichten kann.
Leider habe ich dann wohl bei „Configuration“ unter „Parent Network Card“ die IP der DS anstatt eth0 eingegeben.
Hiernach bekomme ich bei „Creation“ immer eine Fehlermeldung bzgl. des „interface name format“. Konnte somit
die „Creation“ nicht abschließen. Kann das mit „Configuration“ erstellte Netzwerk aber auch nicht mehr löschen,
da es „in use“ ist.
Habe den „Portainer“ gestoppt und gelöscht, den Ordner „portainer_data“ gelöscht, und alles wieder erstellt.
Das erstellte Netzwerk „iob_public_conf“ ist immer noch vorhanden und „in use“ und läßt sich nicht löschen.
Für Deine Hilfe wäre ich Dir sehr dankbar, bevor ich mir durch weitere Versuche meine DS (DS916+) abschiesse.
Schönen Gruß,
Peter
Hi, danke für das Stack-Beispiel. Leider funktioniert dies bei mir nur mit docker-compose und nicht mit docker stack deploy, das liegt wohl daran, dass es erst seit kurzem möglich ist, Compose v2 + v3 zu mischen und es noch nicht in der aktuellen Docker Engine aktualisiert wurde.
Hallo Thomas,
das Beispiel ist aktuell nur für docker-compose bzw. den Einsatz in Portainer Stacks konzipiert. Da ich kein Docker Swarm nutze habe ich bisher auch noch nicht mit docker stack deploy gearbeitet. Für meinen Anwendungsfall sehe ich da derzeit keinen Mehrwert.
MfG,
André
Hallo zusammen, warum beziehen sich die Tutorials, die man im Netz findet immer nur auf 1 Container bzw. Service?
Ich habe iwie geschafft, dass 2 Services mit getrennten IPs laufen, aber von außen erreiche ich sie nicht. Ich möchte gerne ADGuard Home, Bitwarden_RS, Portainer und vllt mehr laufen lassen, aber bekomme nicht hin, dass Bitwarden von außen erreicht wird.
Danke und Grüße
Hallo Rio,
kann ich mir nicht vorstellen dass es da nichts gibt. Wenn du Container von Außen nicht erreichen kannst, dann hat das vermutlich weniger damit zu tun dass du mehrere laufen hast und eher vielleicht mit der Wahl deines Netzwerks. Das wird die hier aber keiner mit ein paar Kommentaren beibringen können…
Vielleicht suchst du am Besten nochmal nach Material zu Netzwerken unter Docker.
Da es da vielfältige Möglichkeiten (Host, Bridge, MACVLAN) gibt, ist es schlicht nicht möglich für Alles und jeden Anwendungszweck ein Tutorial zu erstellen.
Viel Erfolg.
MfG,
André
Hi André, vielen Dank für die Anleitungen! 🙂
Leider bekomme ich immer einen Fehler, wenn ich das Netzwerk dem ioBroker Container zuweise:
failed to add interface XXX to sandbox: error setting interface „XXX“ IP to 192.168.0.121/24: cannot program address 192.168.0.121/24 in sandbox interface because it conflicts with existing route {Ifindex: 7 Dst: 192.168.0.0/24 Src: 192.168.0.124 Gw: Flags: [] Table: 254}
Ich habe eine DS920+ mit zwei Netzwerkanschlüssen (IPs: 192.168.0.123 und 124). Außerdem läuft das VM Paket. Ich will dem Docker Container die IP 192.168.0.121 zuweisen.
Ich habe bereits unterschiedliche Einstellungen ausprobiert und auch versucht das Netzwerk mit der Kommandozeile anzulegen:
docker network create -d macvlan –subnet=192.168.0.0/24 –gateway=192.168.0.1 –ip-range=192.168.0.121/32 -o parent=ovs_eth0 mac0
Hast Du noch eine Idee für mich? Vielen Dank im Voraus!
Viele Grüße
Marc
[EDIT] Es geht jetzt. Wichtig ist, dass man keinen bestehenden Docker Container nehmen kann. Man sollte ihn mit diesem Netzwerk neu erzeugen, dann funktioniert es…
Danke nochmal für die Anleitungen! 😀
Hallo Marc,
freut mich, dass du es hinbekommen hast.
Was das Arbeiten mit Containern angeht, da ist in der Regel nicht viel Bearbeiten.
Wie ich auch irgendwo schon geschrieben habe, sollte ein Container immer nur eine austauschbare Hülle sein in der die eigentliche Applikation läuft. Bei Äderungen der Konfiguration (z.B das Hinzufügen von Umgebungsvariablen) oder bei Updates des Containers muss daher in der Regel der Container immer neu erstellt werden.
MfG,
André
Vielen lieben Dank Andre für das und die verlinkten Tutorials! Das hat mir sehr weitergeholfen.
Ich hatte allerdings ein Problem damit, dass ich 2 Docker Container (ioBroker und Deconz) hatte und der ioBroker per MACVLAN und der Deconz per Host eingerichtet waren. Beide müssen miteinander kommunizieren, was in diesem Setting schlicht nicht geht. Beide müssen per MACVLAN eingerichtet sein.
Was dafür zu tun ist, habe ich nach der Lösung meines Problems hier festgehalten:
https://forum.iobroker.net/topic/39020/conbee-deconz-could-not-connect/22
Vielleicht hilft es dem ein oder anderen oder du willst die Info vielleicht noch in dein Tutorial aufnehmen.
Hallo,
vielen Dank für dein Feedback. Da man aus dem MACVLAN heraus nicht mit dem Host kommunizieren kann, funktioniert natürlich auch die Kommunikation zu einem Container im network mode host nicht. Das ist korrekt.
Was die Größe des MACVLAN angeht, habe ich das eigentlich absichtlich aus dem Tutorial heraus gelassen und nur den Hinweis darauf gegeben, dass man das MACVLAN auch größer anlegen kann um mehrere Container darin unter zu bringen. Grund dafür war vor allem, dass man hier schon ordentlich aufpassen muss sein Netzwerk nicht zu groß an zu setzen und sich entsprechend im design des Netzwerks auskennen sollte. Das Tutorial ist da praktisch die „Nummer sicher“. 🙂
Ich werde mir das heute Abend nochmal durch den Kopf gehen lassen. Vielleicht kann ich den Hinweis noch ein wenig konkreter werden lassen.
Danke dass du deine Erfahrungen hier geteilt hast.
MfG,
André
Ja, ich kann deine Intention sehr gut nachvollziehen, auch ich war ja bei der Ersteinrichtung froh, dass du es so simpel wie möglich gehalten hast.
Auf der anderen Seite ist die Kommunikation mit Nachbarcontainern oder dem Host selbst auch bestimmt keine Seltenheit, so dass zumindest der explizite Hinweis auf die Problematik + 2-3 Sätze in welche Richtung man dann denken muss dem ein oder anderen Folgeprobleme (wie mir 😉 ) erspart.
Hallo
Erstmals vielen Dank für das super Tutorial
Ich habe jetzt meinen ioBroker mit der MACVLAN Konfiguration eingerichtet.
Läuft soweit alles bestens.
Ein kleines Problem habe ich aber dennoch.
Ich hab in meiner ioBroker Installation auch das Synology und Influxdb Plugin installiert.
Leider funktioniert der Zugriff seit dem Einrichten nicht mehr
influxdb.0 2021-01-05 13:14:14.505 error (20694) Error: connect EHOSTUNREACH 10.0.0.20:8086
influxdb.0 2021-01-05 13:14:11.491 info (20694) Connecting http://10.0.0.20:8086 …
synology.0 2021-01-05 13:17:12.653 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:09.647 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:06.641 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
von meinem z.b. Grafana-Influx host kann ich die Synology aber ohne Probleme anpingen
Hier ist das Network bridget
synology.0 2021-01-05 13:17:12.653 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:09.647 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:06.641 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
von meinem ioBroker host bekomm ich hier keinen Ping durch
Hier ist wie erwähnt das Network mit MACVLAN konfiguriert
synology.0 2021-01-05 13:17:12.653 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:09.647 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
synology.0 2021-01-05 13:17:06.641 error (20925) *** ERROR : src: *sendPolling syno[dsm][getPollingData] code: EHOSTUNREACH message: connect EHOSTUNREACH 10.0.0.20:5000
Meine ioBroker Instanz hat die IP 10.0.0.1 mit /24 und Gateway 10.0.0.200
Wo hab ich hier den Fehler drin ?
Würde mich freuen wenn du mir hier eventuell weiterhelfen könntest.
Vielen Dank schon mal im Voraus
lg
Christian
Hallo Christian,
das liegt daran, dass du vom MACVLAN nicht auf den Host zugreifen kannst. Das geht technisch nicht. Du kannst aber dem ioBroker ein zweites Netzwerk zuweisen (eine Bridge). In deinem Bridge Netzwerk ist dann dein Host das Gateway und damit vom ioBroker Container wieder erreichbar.
MfG,
André
Hallo Andre,
Vielen Dank.
hab ich gemacht und hat so auch funktioniert.
LG
Christian
Habe auch versucht das MCVLAN einzurichten. Habe folgendes Problem.
wenn ich über putty auf die ds zugreife, befehl „ifconfig“ bekomme ich die auflistung der Netzwerkadapter wie in deiner Anleitung.
Mit einem entscheidenden Unterschied: unter eth0 steht bei mir keine IP4 Adresse
Link encap:Ethernet HWaddr XX:XXX:XXX:XXX:XXX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:428985145 errors:0 dropped:0 overruns:0 frame:0
TX packets:270487353 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:467619643387 (435.5 GiB) TX bytes:64418365577 (59.9 GiB)
Was nun?
Hallo Stephan,
ist ja nicht gesagt, dass es bei dir eth0 ist. Was wird denn noch so ausgegeben? Irgendwo muss schließlich die IP deines Host stehen…
MfG,
André
Hallo und guten Morgen Stephan,
hast du eine Lösung gefunden? Bei mir ist das gleiche Problem, ich habe einen Aggregation Link erstellt, dort sind beide Netzwerkanschlüsse gebündelt.
Es gibt eth0 und eth1, bei beiden ist kein ip4 Eintrag vorhanden….
Gruß
Norbert
Hallo Norbert,
wenn du ein Bond erstellt hast, dann solltest du auch ein virtuelles Device mit dem Namen „bond0“ haben. Dort müsste dann auch eine IP-Adresse liegen. Selbst ausprobiert habe ich das aber noch nicht.
MfG,
André
Ich habe mich versehentlich bei der MCVLAN Konfiguration vertippt, wie kann ich die Konfiguration anpassen?
Löschen ist nicht möglich ich erhalte immer die Meldung configuration Network iob_public_conf is in use es greift aber keiner meiner Container darauf zu.
Hallo Mark,
schau mal im ioBroker Forum Thread. Ich selbst hatte diesbezüglich noch nie Probleme, weiß aber von Leuten die ihr MACVLAN nicht mehr löschen konnten. Da gab es auch eine Lösung zu.
Generell kannst du das MACVLAN nicht ändern. Stattdessen musst du es zum Ändern löschen und neu anlegen.
MfG,
André
Hallo André,
mir blieb als Lösung leider nur die Holzhammermethode -> alles löschen, Docker etc.
Zum Glück habe ich auf meiner „Rumspiel-Diskstation“ das ganze zuerst probiert.
MfG Mark
Hallo.
ich wollte mein MACVLAN verändern, komme aber nicht in der „Creation“ weiter, da es mir nicht möglich ist das Feld anzuklicken.
Gibt es da eine Lösung oder Übersehe ich da was?
mfg Steven
Hallo Steven,
soweit ich weiß musst du das MACVLAN löschen und neu einrichten.
MfG,
André
Hallo.
Erstmal danke für die klar verständliche Anleitung.
Ich habe allerdings auch noch eine Frage bezüglich der Verwendung von MACVLAN mit mehreren Containern:
Ich würde gern zunächst ioBroker und PiHole auf der Diskstation per Docker laufen lassen. Beide sollen per MACVLAN über ihre eigene Adresse ansprechbar sein. Ich bekomme es aber nicht hin zwei Creations anzulegen.
Versucht habe ich jetzt zwei verschiedene Arten:
1. Das Anlegen zwei verschiedener Configurations mit einer einzelnen IP. Beim anlegen der zweiten Konfiguration bekomme ich aber den Fehler „failed to allocate Gateway“, da ich ja bei beiden Configurations das selbe Gateway angeben muss.
2. Eine einzelne Configuration mit einem Adressraum für mehrere Adressen. Hier kann ich allerdings keine zwei Creations für zwei Container anlegen. Hier bekomme ich den Fehler „Pool overlaps with other one on this addres space“ beim Anlegen der zweiten Creation aus der selben Configuration.
Nun weiß ich auch nicht weiter an welcher Stelle ich etwas falsch mache. Braucht es nur eine Creation die ich für beide Container nutze?
Hast du mir einen Tipp?
Hallo Markus,
zwei MACVLAN auf einem Host geht nicht. Es kann immer nur eins geben. Du kannst aber den Adressraum deines MACVLAN so definieren, dass du statt einer Adresse eben mehr Adressen zur Verfügung hast. Du solltest dazu aber zumindest ein wenig Wissen zu Netzwerken mitbringen. Eine gute Hilfe beim designen deines MACVLAN ist auch der Netzwerkrechner von Heise.
MfG,
André
Hi Andre,
deine Anleitung ist wirklich klasse. Hat alles sehr gut funktioniert. Jetzt habe ich allerdings ein Problem mit der Verbindung zur influxdb, die idealerweise im selben Netzwerk laufen soll. Dies ist aber mit dem Präfix /32 nicht möglich. Wie würdest du vorgehen? Reicht es auf z. B. /30 umzustellen um zwei Adressen im Netzwerk zu haben? Dann wäre aber .100 eine Netzwerkadresse, allerdings nicht im /24 – Netzwerk. Wie genau muss also das Subnet mit der IP-Range übereinstimmen?
Wäre schön wenn du einen Tipp für mich hättest.
Viele Grüße Jürgen
Hallo Jürgen,
im Prinzip reicht es eine andere Netmask zu verwenden um dein MACVLAN auf zwei oder mehr Adressen zu erweitern. Als kleine Hilfe empfehle ich dir den Netzwerkrechner von Heise.
Wenn es allerdings nur um eine Datenbank geht und du diese auch als Docker Container aufsetzt, dann reicht es doch eigentlich wenn der ioBroker Container intern mit der DB kommunizieren kann, oder? Ich habe zu diesem Zweck ein Bridge Netzwerk aufgesetzt und dies zusätzlich zum MACVLAN dem ioBroker Container sowie dem influxDB Container zugewiesen.
Solltest du von extern eine Verbindung zur DB benötigen, kannst du beim influxDB Container natürlich die entsprechenden Ports freigeben und darüber zugreifen.
MfG,
André
Hallo André,
vielen Dank für deine Tipps! Habe wegen der einfachen Umsetzbarkeit die Lösung mit dem Bridge-Netzwerk genommen. Dann kann der Rest bleiben wie er ist. Funktioniert prima, die Instanz der InfluxDB im ioBroker ist verbunden und sammelt fleißig Daten.
Viele Grüße Jürgen
Habe macvlan dank Deiner Anleitung über Portainer einrichten können. Funktioniert auch prima. Ich versuche jedoch gerade den iobroker-Container in einem anderen Subnet als den Host (DS 218+) zu betreiben. Entsprechend Docker-Doku http://docs.docker.oeynet.com/engine/userguide/networking/get-started-macvlan/#macvlan-8021q-trunk-bridge-mode-example-usage muss hier die VLAN-ID des gewünschten Netzes (bei mir entsprechend im Syntax eth0.20) verwendet werden. Wenn ich dies so unter „Parent network card“ eintrage meckert Portainer jedoch bei „Create the network“. Hast Du eine Idee wie ich das hinbekomme? Gruß Ede
Hallo Ede,
da hab ich jetzt so aus dem Stand keine Idee zu. Ohne mich da jetzt eingelesen zu haben gehe ich mal davon aus, dass man dazu den Host entsprechend konfigurieren muss. Bin mir nicht sicher ob das auf einer DS so einfach machbar ist…
MfG,
André
Auch bei einem ASUSTOR – NAS (nur das kleine AS1004T v2) funktioniert die Anleitung problemlos! Die Schnittstelle ist auch beim ADM 3.5 „eth0“ 😉
Danke für dieses Tolle Tutorial, funktioniert 1a!
Könntest du man noch informationen bereitstellen, wie man jetzt aus dem Docker-Paket den Synology-Host erreichbar macht?
Das wäre der absolute Wahnsinn.
Hallo Simon,
danke für dein Feedback. Das Zauberwort heißt in deinem Fall „zusätzliches Bridge Netzwerk“. Schau mal in den ioBroker Forum Thread zum ioBroker Container. Da wurde das schon diverse Male besprochen.
MfG,
André
Danke für die Anleitung. Ich bin gestern Abend aber fast dran verzweifelt *gg* Ich habe es auf einem Raspberry Pi 4 mit WLAN aktiv versucht und genau hier liegt der Fehler. MACVLANs werden nicht über WLAN unterstützt. Gefunden habe ich das ganze hier. https://superuser.com/questions/1113812/how-to-configure-macvlan-interface-for-getting-the-ip
Der Umstand war mir nicht klar und hat mich viele Stunden und Haare gekostet. Vlt kann ich so den nächsten vor dem Fehler bewahren.
Gruß
Wurmi
Hallo Wurmi,
danke für dein Feedback. Bin ich bis jetzt noch nicht drüber gestolpert.
Wobei ich vermutlich auch generell schon keine Smarthome Zentrale über WLAN anbinden würde. 🙂
MfG,
André
Ebenfalls vielen Dank!
Eine Anmerkung – zumindestens bei Debian Unstable ist das Kommando „ifconfig“ nicht mehr verfügbar. Man kann stattdessen „ip a“ nutzen, das vergleichbare Informationen liefert.
Klaus
Hallo Klaus,
danke für dein Feedback.
Ich würde deinen Hinweis gerne verifizieren, aber „Debian Unstable“ ist m. E. keine Versionsbezeichnung.
Vielleicht hast du ein paar spezifischere Informationen für mich?
MfG,
André
Danke für das Tutorial. Hat wunderbar funktioniert!
Weiter so!
Malte