NEWS
Portainer / Synology Netzwerkprobleme
-
Hallo,
ich nutze iobroker in einem Container. Iobroker hat als Netzwerkschnittstelle macvlan. Das funktioniert soweit. Der Iobroker ist im LAN erreichbar.Was nicht funktioniert sind bestimmte Adapter:
- Synology
- sonoff
u.a.
Ich hatte gelesen, man soll noch zusätzlich eine Bridge zum Iobroker Container hinzufügen.
Wenn ich das mache, funktioniert z.B. der Synology Adapter aber dann nicht mehr z.B. der Harmony Adapter.
Kann mir mal jemand erklären, wie ich macvlan und die Bridge konfigurieren muss oder was der besser wäre?
-
hallo
ohne garantie, da ich mir es selbst auch zusammenbasteln musste und deine Umgebung uU anders ist.
Damit die bridge beim hochfahren deines hosts eingerichtet wird, habe ich mir die folgende datei angelegt (debian buster)/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
ggfs muss du die folgenden Werte ändern:
enp3s0 =
Bezeichnung deiner Netzwerkschnittstelle (sowas wie eth0).
Aber das musstest du ja schon beim einrichten von macvlan im portainer/docker raussuchen192.168.1.80/28
Netzadresse/Gateway-Adresse meines macvlans. Ich habe ein relativ kleines Netz eingerichtet. also es ist die unterste Adresse deines Netzsegments
Hiermit kann man das nochmal überprüfen
https://www.heise.de/netze/tools/netzwerkrechner/das iobroker container nicht mit dem synology host kommunizieren kann ist einleuchtend. aber warum iobroker nicht mit den sonoff geräten kommunizieren kann könnte ich mir nicht erklären.
die container mit einer ip-adresse aus deinem normalen netz müssten auch mit allen geräten (bis auf den docker host) im gleichen netz kommunizieren können -
@oliverio said in Portainer / Synology Netzwerkprobleme:
vielen Dank schon mal!
Mein Iobroker hat, über macvlan, die feste IP 192.168.167.3 und die Netzwerkschnittstelle eth0
Würde ich nun mit diesem Script:
#!/bin/sh
if [ "$IFACE" = "eth1" ]; then
ip link add macvlan0 link eth1 type macvlan mode bridge
ip addr add 192.168.167.80/29 dev macvlan0
ip link set macvlan0 up
fifür die Bridge die IP's 192.168.167.80 bis 192.168.167.87 verfügbar machen?
Nun noch eine ganz dumme Frage:
Die kann ich überhaupt das Script im Portainer / Synology hinzufügen?
-
@aldoa1 sagte in Portainer / Synology Netzwerkprobleme:
192.168.167.80
ok, erstmal:
host=die maschine auf der der docker läuft, ich nehme an das ist bei dir synology?@aldoa1 sagte in Portainer / Synology Netzwerkprobleme:
Mein Iobroker hat, über macvlan, die feste IP 192.168.167.3 und die Netzwerkschnittstelle eth0
warum hat der iobroker eine ip, die nicht im bereich des macvlan liegt? also 192.168.167.81-86. die erste ist der gateway, die letzte ist die broadcast-adresse für das segment und sollten nicht verwendet werden
ich verwende on portainer meistens stacks (docker-compose in portainer)
ich verwende hier 2 netze, einmal das dockermacvlan für das die ip-adresse definiert ist und dann noch das interne iobrokerprod netz, über das der iobroker mit dem 2.container redis reden kann.
das external steht da (weißt wahrscheinlich ja), das das netz dockermacvlan bereits existiert und durch diesen service nicht neu definiert wird.version: '3' services: iobrokerprod: restart: always image: buanet/iobroker:latest container_name: iobrokerprod hostname: iobrokerprod ports: - "8081:8081" environment: SETGID: 1001 SETUID: 1001 volumes: - /home/iobroker/docker/volume/iobroker_prod:/opt/iobroker - /home/iobroker/docker/volume/iobroker_prod_nodemodules:/usr/lib/node_modules networks: dockerMACVLAN: ipv4_address: 192.168.1.85 iobrokerprod: redis: image: "redis:alpine" volumes: - /home/iobroker/docker/volume/redis_prod:/data networks: iobrokerprod: networks: dockerMACVLAN: external: true iobrokerprod:
beim skript hast du geschrieben iobroker hat das netzwerkinterface eth0.
- du must die bridge auf dem host und nicht im container einrichten.
daher benötigst du das netzwerkinterface des hosts. das erfähst du über
an dem interface, bei dem die ipadresse des hosts zugeordnet ist, den ersten namen brauchst du.
den hast du aber auch schon beim einrichten das macvlan raussuchen müssen. damit docker weiß wo er sich einklinken muss
sudo ifconfig
@aldoa1 sagte in Portainer / Synology Netzwerkprobleme:
für die Bridge die IP's 192.168.167.80 bis 192.168.167.87 verfügbar machen?
durch die angabe von 192.168.167.80/29, definierst du das gesamte segment
von anfang bis ende.
gib mal in dem heise tool einfach ganz oben die ipadresse an und als cidr suffix die 29.
dann werden die anderen felder berechnet und hast alle informationen, - du must die bridge auf dem host und nicht im container einrichten.