NEWS
IoBroker Docker Image mit MACVLAN möglich?
-
@oliverio sagte in IoBroker Docker Image mit MACVLAN möglich?:
Definiere benutzen.
Als Client oder als Server?Evtl solltest du etwas mal über tcp ip Kommunikation nachlesen.
Wenn wir von portnummetrn sprechen, dann wird eigentlich immer nur die Server Seite betrachtet.
HTTP=80, der Web Server hört auf Port 80. 2 server auf dem gleichen Gerät /gleiche ip können nicht auf die gleiche portnummer hören. Können aber durchaus gleichzeitig viele Anfragen erhalten.
Auf der Client Seite wird ebenfalls ein Port gewählt. Das passiert automatisch und meist werden hier sehr hohe portnummern gewählt. Für dich ist das aber irrelevant.Ein Container kann nur genau eine ip haben.
Also ich versuche es nochmal irgendwie dar zu stellen, denn wir reden aneinander vorbei:
Wenn ich 2 container habe.
Sagen wir man beide wären im MACVLAN und würden eine Datenkommunikation über Port xy anbiten.Dann könnte ich doch aus einem Container in dem ioBroker läuft nicht zu beiden kommunizieren,
weil ich doch dann im ioBroker den Port 2 mal öffnen müsste. (Auch wenn es unterschiedliche IPs wären). Oder etwas nicht?Könnte man etwa mit beiden kommunizieren?
-
@ben1983
irgendwie willst du es nicht konkret machen.
ich muss immer nachfragen: was für eine kommunikation?
benenne es bitte konkret
ich stelle die fragen ja nicht aus spaß
um welche applikation/adapter geht es den ganz genauevtl wird es dir dann selbst klar, das du dich im abstrakten wald verirrst und es evtl viel einfacher ist
bei ip-kommunikation (und zwar bvei tcp und bei udp) gibt es immer einer der horcht (server) und einer der fragt bzw die kommunikation initiiert (client)
ein server-programm kann viele anfragen gleichzeitig auf dem selben port annehmen. sonst wäre das bei webserver ein wenig schwierig, wenn er genau nur eine anfrage für eine datei gleichzeitig annehmen und verarbeiten kann. je website können leicht 100er anfragen von einem client an den webserver gestellt werden (die html-datei, jedes bild, jedes javascript, jede css-datei, stellt einen einzelne anfrage dar)
anschauen kannst du dir das in deinem browser mit f12 in die developer tools und dann unter network. da steht jeder einzelne request an den webserver drin. -
@oliverio Es geht nicht um etwas konkretes, sondern schon abstrakt.
Allgemein kann man also sagen:
Es können mehrer Clients auf einen Port zugreifen,
aber nur ein Server darauf lauschen? RINTIG?Weil die Clients den Port immer wieder schließen, oder wie?
Am Beispiel MQTT wäre es also so:
Man könnte im ioBroker mehrere MQTT Clients haben, die auf externe Broker schreiben (mit der selben Portnummer, aber anderen IP), weil es dann die Kombination ip:port wäre. RICHTIG?Es könnte aber im ioBoker nur eine Instanz des MQTT Adapters als Broker auf einem Port arbeiten. RICHTIG?
Kann an es so sagen?
-
Ja das passt so.
Der Punkt mit dem schließen passt nicht so ganz, da wenn ein Client mit einem Server Kontakt aufnimmt, dann wird die Kombination Client-ip-port/ Server-ip-port socket genannt. Das wird für jede Anfrage geöffnet und nach Abschluss wieder geschlossen.
Der Server horcht natürlich dann immer noch auf seinen Port, bis er das explizit schließt oder das Programm beendet wird.Da ich selbst kein mqtt einsetze, weiß ich nicht genau ob der Adapter selbst ein mqtt-Broker (also Server) darstellt oder einfach nur ein Client, der bei dem Eigentlichen mqtt Broker einfach alle Zustände abonniert hat, um diese dann als Iobroker datenpunkte abzubilden.
-
@oliverio ok super.
Also könnte ich auch aus einem Container über eine Rest API gleichzeitig auf 192.168.2.10:8080 und 192.168.2.20:8080 zugreifen?
Wären je verschiedene ip-Port Kombinationen. -
@ben1983
Ja -
@oliverio ok.
Dann macht das MACVLAN auch mit der separaten IP deswegen Sinn. Im bridged muss ich da eben ein Portmapping machen, da von außen ja immer die ip des Hosts verwendet wird. -
ja, aber das wäre auch für macvlan gut.
ich habe heute mal meine macvlan konfigurationen angeschaut.
wie, glaube ich, schon gesagt verwende ich nur docker-compose-konfigurationen
im portainer (dort heißt es stacks)
das hat den vorteil, das alles einheitlich dokumentiert ist und ich das sichern kann.
die arbeit mit docker-container ist da auch wesentlich angenehmer, da man sich die ganzen parameter von docker nicht merken muss.auf jeden fall habe ich festgestellt, das das portmapping bei macvlan tatsächlich nicht beachtet wird, was ich schade finde, falls man mal doch einen port auf einen anderen mappen will.
-
@oliverio sagte in IoBroker Docker Image mit MACVLAN möglich?:
auf jeden fall habe ich festgestellt, das das portmapping bei macvlan tatsächlich nicht beachtet wird, was ich schade finde, falls man mal doch einen port auf einen anderen mappen will.
Ja, das ist echt blöd, dass die Parameter zum Portmapping bei Containern im MACVLAN klaglos von Docker gefressen werden, aber letztlich natürlich keine Wirkung haben.
-
@oliverio ja nutze seit kurzem auch die stacks.
Ja schade dass das Mapping bei MacVlan nicht geht.
Ich suche noch nach einer kurzen guten Beschreibung wie ich meinen pihole Container in ipv6 bekomme. -
@oliverio wie kriege ich es denn hin dass mein iobroker welches über Macvlan läuft auf broadcast anfragen von aussen reagiert? Hast du das lösen können?
Mit von aussen meine ich von ausserhalb des containers sprich aus meinem hauptnetz -
@drapo
Das müsste eigentlich direkt funktionieren -
@oliverio normalerweise hatte ich das auch gedacht wenn ich aber einen ping auf die broadcast adresse auslöse kommt überall keine antwort. Im meinem macvlan ist die broadcast adresse diese hier 192.168.1.15
Kriegst du eine antwort wenn du in deinem container einen ping auf die macvlan broadcast adresse auslöst
-
ja bekomme ich, ich habe mir allerdings auch den link eingerichtet und beim start automatisiert
https://forum.iobroker.net/topic/4733/howto-iobroker-unter-docker-auf-synology-diskstation/2842?_=1705323960752 -
Ich muss nochmal nach Haken.
Ich habe ja soweit alles (ioBroker) soweit über den Host Mode am laufen.Was müsste man denn noch beachten, wenn man (ich habe es als Stack im Portainer erstellt) den networkmode weg lässt?
Dann würde docker ja ein Bridge Network erstellen.
Kann es dann zu Problemen kommen? Also Port mäßig? -
@ben1983 beim bridge network läuft der iobroker in einem eigenen netz. Die ports müssen aber auf den host weitergeleitet werden. Bei der bridge variante funktioniert allerdings multicast nicht was zb. Für sonos notwendig ist. Das war für mich der grund auf MACVLAN umzustellen