Docker Network Type - Host oder Bridge ?


cayman
Go to solution Solved by Ford Prefect,

Recommended Posts

Hallo,

in den von mir gelesenen Diskussionen wird i.d.R. Bridge als die geeignete 'normale' Einstellung enpfohlen.

Bei Home Assistant und Ur-Backup steht als Vorgabe allerdings Host.

Kann ich das unbeschadet auf Bridge umstellen ?

Oder gibt es einen technischen Hintergrund dafür ?

Link to comment

Host bedeutet, es läuft auf der IP von unraid selbst...wenn Du also Plugins hast oder anderer Docker auf Host, dann können diese Teile nicht mit einem Docker auf ner Bridge kommunizieren und umgekehrt.

 

Edit: custom:Bridge hat Vorteile, weil es keine Port-Problematik durch "Doppelbelegung" gibt....jeder Docker ne eigene IP, zB auch mit VLANs....wie ne "echte", kleine VM.

Aber Kommunikation mit den unraid Host selbst ist dann nicht...muss auch nicht sein, wenn alles richtig aufgestellt ist. 

Edit: Zu den unterschiedlichen network Konfigurationen, auch bridge vs. custom:<bridge> siehe meinen Post unten.

Sorry für etwaige Verwirrung.

Edited by Ford Prefect
Link to comment
1 hour ago, cayman said:

Oder gibt es einen technischen Hintergrund dafür ?

 

13 minutes ago, Ford Prefect said:

Host bedeutet, es läuft auf der IP von unraid selbst...wenn Du also Plugins hast oder anderer Docker auf Host, dann können diese Teile nicht mit einem Docker auf ner Bridge kommunizieren und umgekehrt.

 

dafür ist folgende Einstellung in den Docker Settings, dann klappt das auch ...

 

image.thumb.png.1367ab90a827f63b0332853859e0dde2.png

 

ich bin ein Freund der custom:br0, jeder Docker mit eigener LAN IP aus dem normalen Bereich und keine mappings und co ... alles läuft "nativ" fast wie jeder in seiner VM ...

 

image.thumb.png.cdf0c754ba4994c36192cc561bb51d45.png

 

das wäre die 3. Option ;)

  • Thanks 2
Link to comment
  • Solution
2 hours ago, alturismo said:

dafür ist folgende Einstellung in den Docker Settings, dann klappt das auch ...

Da kommt aber eben eine Secuity Warnung, nicht ohne Grund.

 

2 hours ago, alturismo said:

ich bin ein Freund der custom:br0, jeder Docker mit eigener LAN IP aus dem normalen Bereich und keine mappings und co ... alles läuft "nativ" fast wie jeder in seiner VM ...

Ich glaube ich hab mich mit meiner obigen Aussage vertanmeinte natürlich auch custom:<bridge>.

Das einfache host vs bridge: bridge bedeutet nur, dass die Container in einer virtuellen Bridge laufen und untereinander kommuniziere können, aber eben ohne Host-Access.

Unterschied zwischen Bridge und custom:<bridge> -> https://docs.docker.com/network/bridge/

Edited by Ford Prefect
  • Like 1
  • Thanks 1
Link to comment

@Ford Prefect @alturismo: vielen Dank für die Erklärungen. Das ist jetzt komplexer, als ich das erwartet hatte.

 

6 hours ago, cayman said:

Bei Home Assistant und Ur-Backup steht als Vorgabe allerdings Host.

Kann ich das unbeschadet auf Bridge umstellen ?

     das gibt jetzt erstmal kein Problem. Solange ich keinen Docker/Docker-Netzwerkverkehr brauche.

 

Für ein übersichtliches Netzwerkdesign werde ich mich zusätzlich mit:

4 hours ago, alturismo said:

jeder Docker mit eigener LAN IP aus dem normalen Bereich und keine mappings und co ... alles läuft "nativ" fast wie jeder in seiner VM ...

    beschäftigen.

 

@alturismo: sorry ich kann nur einen Post als Lösung kennzeichnen, sonst hätte ich beide Antworten dafür genommen.

  • Like 2
Link to comment
On 2/2/2023 at 6:06 PM, cayman said:

Kann ich das unbeschadet auf Bridge umstellen ?

Nein. Erst wenn du alle Ports hinzufügst, die HA benötigt, wird HA dann fehlerfrei laufen. Tatsächlich scheint es nicht mal eine Doku zu geben, welche Ports man alles braucht. Ich habe nur im Forum jemanden gefunden, der ein paar aufgelistet hat:

https://community.home-assistant.io/t/is-there-an-official-list-of-ports/395592/7?u=mgutt

 

Natürlich hängt es auch davon ab welche Geräte man in HA einbinden möchte, aber eine Tabelle hätte ich jetzt doch schick gefunden.

 

Jedenfalls ist standardmäßig beim dem Container nur ein Port angegeben:

image.png.dcc2a3c98af45286bb32e88d2a4c654d.png

 

Würde nun ein Smart Devices in deinem Haus mit dem HA sprechen und der würde das über einen anderen Port als 8123 tun wollen, würde er den HA nicht erreichen.

 

Wenn ich das richtig sehe, dann nutzt HA bei mir ziemlich viele Ports:

# netstat -tulpn | grep python
tcp        0      0 192.168.178.8:1400      0.0.0.0:*               LISTEN      63/python3          
tcp        0      0 0.0.0.0:8123            0.0.0.0:*               LISTEN      63/python3          
tcp        0      0 192.168.178.8:40000     0.0.0.0:*               LISTEN      63/python3          
tcp6       0      0 :::8123                 :::*                    LISTEN      63/python3          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:5683            0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:45592           0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:46515           0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:58311           0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:1900            0.0.0.0:*                           63/python3          
udp        0      0 0.0.0.0:1900            0.0.0.0:*                           63/python3

 

zB auf 1400 und 40000 reagiert der HA bei mir:

image.png.71f4021bded969137c3a0ac8d10f2935.png

 

  • Thanks 1
Link to comment
10 hours ago, mgutt said:

Nein. Erst wenn du alle Ports hinzufügst, die HA benötigt, wird HA dann fehlerfrei laufen.

Das wäre dann aber doch auch bei HA auf "Host" ein Problem, oder?

Ich nutze einfach immer custom:bridge mit eigener IP und da spielt die Portfreigabe/Konfig keine Rolle...daher weiss ich es eben aber auch nicht genau, wie sich das verhält.

10 hours ago, mgutt said:

Tatsächlich scheint es nicht mal eine Doku zu geben, welche Ports man alles braucht.

Das ist allerdings ärgerlich und eigentlich ein "Bug" im HA Docker, oder?

Link to comment

🤦‍♂️ und ich dachte ich hätte eine einfache Frage gestellt.
Erstmal lasse ich alle Einstellung wie initial eingestellt. Allerdings vermute ich, dass ich bereits ein Problem mit HA und UrBackup (beide Host) habe. Das versuche ich nun näher zu verifizieren.

Link to comment
1 hour ago, Ford Prefect said:

Das wäre dann aber doch auch bei HA auf "Host" ein Problem, oder?

Ja, sobald man andere Docker auf Host laufen hat, die genau diese Ports brauchen, hat man automatisch einen Konflikt. Bei mir läuft außer HA nur NPM auf Host (wegen IPv6). Beim Nginx Proxy Manager habe ich dann irgendwann durch Zufall bemerkt, dass der einfach einen Port aufmacht, der nirgends dokumentiert ist:

1364644737_2023-02-0415_18_14.png.3d7bb93990a88f0c3d279059dca7a589.png

 

Das führt dann zu reichlich Verwirrung, wenn man versucht auf Port 3000 etwas bereitzustellen und das dann nicht läuft.

Link to comment
  • 11 months later...

Ich habe gerade ein anderes Problem und evtl. könnt Ihr mir dabei helfen. Ich habe sowohl HomeAssistant als auch Ad Gurad Home als Docker auf Unraid installiert. HomeAssistant gemäß Vorgabe als Host üner die IP vom Unraid Server und Ad Guard als Bridge mit eigenständiger IP - damit ich es besser in meiner FritzBox einpflegen kann usw.

 

Alles für sich funktioniert ohne Probleme, nur kann ich Ad Guard nicht per Integration in Home Assistant einpflegen, so das mir dort die Werte vom HomeAssistant angezeigt werden, es kann keine Verbindung aufgebaut werden. Ich hatte zufällig einen Intel NUC hier auf den ich HomeAssistant als Vollversion installiert hatte und die Verbindung funktioniert ohne Probleme.

 

Daher vermute ich das die Kommunikation zwischen Host und Bridge auf Unraid bzw zwischen den Docker von unraid nicht möglich ist, jetzt sagt @alturismo ich könnte in den Docker Einstellungen das umstellen, wobei @Ford Prefect darauf hinweist das da nicht ohne Grund eine Warnung kommt. Nun die Frage, was kann ich tun, dass die Kommunikation zwischen den beiden Dockern möglich ist??

 

Vielen Dank

Link to comment
47 minutes ago, Curiosity said:

Nun die Frage, was kann ich tun, dass die Kommunikation zwischen den beiden Dockern möglich ist??

was tun ist klar ... wobei HA nicht auf dem Host laufen muss, aber egal ;)

 

host access aktivieren ...

 

warum @Ford Prefect das sagt, er hat Recht dass dies einen Grund hat, die Idee hinter Docker ist dass die alle isoliert laufen ...

dazu gibt es auch reichlich Lesestoff online .... klar machen ob du dich dem Risiko aussetzen möchtest oder nicht, ganz einfach ...

 

kurz, Funktion schlägt Design, Design schlägt Funktion ... deine Entscheidung ;)

Link to comment

Ich hab die Standart Einstellungen der Installation angewendet und da in keinem YT Tutorial darauf eingegangen wurde, das ich bei der Installation des Hass Docker das umstellen soll/kann, bin ich auch nicht davon ausgegangen das man es umstellen sollte. Es funktioniert ja auch soweit ohne Probleme 😉

 

12 minutes ago, alturismo said:

host access aktivieren ...

 

also das aktivieren was du beschrieben hast? In den Docker Einstellungen Host Access auf enable umstellen und in Docker Custom Networtk Type von ipvlan auf macvlan??

 

Was für ein Risiko entsteht denn dann in meinem eigenen Heimnetzwerk??

Edited by Curiosity
Link to comment
1 minute ago, Curiosity said:

also das aktivieren was du beschrieben hast? In den Docker Einstellungen Host Access auf enable umstellen und in Docker Custom Networtk Type auf macvlan??

 

wie man das einstellt haben wir ja mittlerweile sogar in den Anleitungen drin, bitte nachlesen und entsprechend einstellen.

 

2 minutes ago, Curiosity said:

Was für ein Risiko entsteht denn dann in meinem eigenen Heimnetzwerk??

 

14 minutes ago, alturismo said:

dazu gibt es auch reichlich Lesestoff online .... klar machen ob du dich dem Risiko aussetzen möchtest oder nicht, ganz einfach ...

 

 

da du selbst nicht nachlesen möchtest ... fasse ich kurz zusammen.

 

Host access macht was es heißt, ein Docker hat jetzt Netzwerkzugriff auf Unraid ... mit allen Konsequenzen die sich bei einem Netzwerkzugriff ergeben können ... sprich, hackt jemand deinen bridged Docker kann er von dem aus per Netzwerk auf den Host Unraid zugreifen .... fertig sind wir ...

 

mal abgesehen davon das in dem Fall der Docker auf das restliche Netzwerk sowieso zugreifen könnte ... ;)

 

für mich persönlich, total überbewertet ... aber daher schrieb ich ja, lies dich ein ... jedem seine Entscheidung und nicht meine.

 

6 minutes ago, Curiosity said:

Ich hab die Standart Einstellungen der Installation angewendet und da in keinem YT Tutorial darauf eingegangen wurde, das ich bei der Installation des Hass Docker das umstellen soll/kann, bin ich auch nicht davon ausgegangen das man es umstellen sollte. Es funktioniert ja auch soweit ohne Probleme 😉

dann ist ja alles gut ;)

 

auch hier, es gibt einie Threads zu Docker's (auch HA), zu YT Videos ... ich ignoriere das mittlerweile oder verweise auf die Quelle,

sprich, bei Problemen bitte dahin wenden ;)

Link to comment
18 minutes ago, alturismo said:

wie man das einstellt haben wir ja mittlerweile sogar in den Anleitungen drin, bitte nachlesen und entsprechend einstellen.

Sorry bin eher der Frischling hier und hatte anhand von Schlagwörtern dieses Thema hier gefunden und war froh das hier das angesprochen wird, was mich auch derzeit beschäftigt. Ich hatte da noch keine Zeit mich tiefer in die Thematik mit Host Access einzulesen - bitte daher um etwas nachsicht.

 

Aber danke für deine Hilfe - ich werde es umstellen, in der Hoffnung das es dann funktioniert und der rest danach auch noch funktioniert, bin froh das alles andere soweit läuft 😀

Link to comment
2 hours ago, Curiosity said:

Daher vermute ich das die Kommunikation zwischen Host und Bridge auf Unraid bzw zwischen den Docker von unraid nicht möglich ist, jetzt sagt @alturismo ich könnte in den Docker Einstellungen das umstellen, wobei @Ford Prefect darauf hinweist das da nicht ohne Grund eine Warnung kommt. Nun die Frage, was kann ich tun, dass die Kommunikation zwischen den beiden Dockern möglich ist??

einfach die Docker auf custom.network mit eigener IP umkonfigurieren...dann können die auch miteinander kommunizieren.

Ich nutze grundsätzlich keine Docker, die damit nicht klarkommen.

Link to comment
11 minutes ago, Ford Prefect said:

einfach die Docker auf custom.network mit eigener IP umkonfigurieren...dann können die auch miteinander kommunizieren.

Puh das übersteigt wahrscheinlich meine Fähigkeiten. Soweit bin ich wohl nicht in der Marterie drin um das zu können. Ich habe jetzt den Host Access umgestellt und damit funktioniert es jetzt. Aber gerne kannst du mir erklären was du mit deiner Empfehlung meinst bzw. wo ich mich da einlesen kann - am besten auf Deutsch...ich schreibe ja leider nicht ohne Grund im Deutschen Forum.😔Wäre für jede Nachhilfe bzw. Quelle sehr dankbar.

 

Wobei Stopp...ich war jetzt gerade nochmal in den Einstellungen von AdGuard - den habe ich auf Custom -br0 stehen und dort natürlich auch die IP eingetragen. Wenn ich nur Bridge auswähle geht das ja nicht, also das ich eine IP dort fest vorgeben kann. Aber selbst mit Custom -br0 (so war es ja auch vorher) bekomme ich keine Verbindung zwischen AdGuard (br0) und HomeAssistant (Host). Das geht jetzt erst nachdem umstellen des Host Access in den Docker Einstellungen. Jetzt ist die Verbindung möglich bzw. ich konnte die Integration von AdGuard in HomeAssistant abschließen. Vorher wurde der "Host" - also AdGuard nicht in HomeAssistant gefunden.

Edited by Curiosity
Link to comment
45 minutes ago, Curiosity said:

bekomme ich keine Verbindung zwischen AdGuard (br0) und HomeAssistant (Host).

Du sollst HomeAssistant auf custom.network, also br0 mit eigener IP umstellen....so wie Du es bei Adguard schon hast - natürlich mit anderer, bislang nicht vergebener IP ais dem gleichen (Deinem) Netzwerk. ... dann können die auch miteinander kommunizieren, auch wenn Host Access "aus" ist (dann aber eben nur nicht mit dem unraid host selbst).

  • Like 1
Link to comment

@Ford Prefect Danke für den Tipp....das  hat geklappt, ich habe Host Access aktiviert und auf macvlan umgestellt, damit hat es bereits funktioniert. Habe dann aber doch noch deinen Hinweis befolgt und HomeAssistant auf Custom: br0 mit eigener IP umgestellt.

 

Nun hat HomeAssistant zwar eine eigene IP und kann auch weiterhin mit AdGuard kommunizieren, aber ich kann HomeAssistant nicht mehr via NGINX aus dem Internet erreichen! Die IP habe ich in NGINX natürlich abgeändert, aber ohne Erfolg. Nun habe ich den Host schon komplett neu angelegt und erhalte trotzdem keinen Zugriff bzw. den Fehler 400 Bad Request. Es hat sich doch nichts außer die IP geändert, was ist denn da das Problem

Link to comment
On 2/5/2024 at 10:21 AM, Curiosity said:

Es hat sich doch nichts außer die IP geändert, was ist denn da das Problem

Sorry, meine Glaskugel ist kaputt ;-)

Aber vielleicht hast Du einfach vergessen den Reverse-DNS Eintrag für die neue IP upzudaten?

Für Details dazu kann ich Dir leider nicht helfen, da ich NGINX nicht nutze.

Link to comment

Ich hab jetzt HomeAssistant wieder auf Host gesetzt und auch den Reverse Proxy Eintrag bei NGINX wieder auf die alte IP Adresse umgestellt, aber alles hilft nicht. Ich bekomme beim Versuch HomeAssistant aus dem Internet aufzurufen immer den 400 Bad Request Fehler. Ich werde noch Wahnsinnig.

On 1/31/2024 at 7:31 PM, alturismo said:

host access aktivieren ...

kann es damit zu tun haben?

Link to comment

Ich hab da was interessantes in einem Beitrag im Internet gelesen und das mal in HomeAssistant geprüft. Tatsächlich läuft da auch die Reverse Proxy Anfrage auf der IP 172.17.0.3 auf ich hab also in der YAML mal die IP mit eingetragen und siehe da-es funktioniert wieder. Warum das so ist-ich weiß es nicht.

 

Hier noch die Docker Einstellung

 

Docker.thumb.jpg.16c7fd15a4be7459d0f939a19ca2cc6e.jpg

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.