NEWS
Slave-Master-Reconnect nach Reboot Router/Firewall
-
Ausgangslage:
Ich betreibe ein Master-Slave-System mit einem Master und insgesamt 2 Slaves Alle Maschinen sind aus Sicherheitsgründen in verschiedenen VLANs/Subnetzen untergebracht.Problem:
Sobald ich den Router/Firewall einmal neu starten muss (z.B. Update etc.), bauen die Slaves die Verbindung zum Master nicht automatisch wieder auf. Ich muss mich immer manuell auf die Slaves schalten und den iobroker-Service neu starten.Frage:
Gibt es eine Möglichkeit das irgendwie in der Slave-Konfiguration zu lösen oder hat ggf. jemand andere Ideen, wie ich es hinbekomme, dass die Slaves sich automatisch zum Master reconnecten?Danke euch vorab für euren Input
-
Eventuell steht hier Deine Lösung
https://www.iobroker.net/#de/documentation/config/multihost.md
Multihost mit verschiedenen Subnetzen
-
@martenn Hmm, verstehe ich nicht ganz, wenn die 2 Slaves und der Master alle in unterschiedlichen VLANs sind, KÖNNEN sie doch (hoffentlich) gar nicht miteinander kommunizieren... oder hast Du für die drei iobroker Instanzen Routen eingerichtet?
Wobei VLAN und Subnetz ja ganz unterschiedliche Bedeutungen haben ...
Zu der Frage, wieso die drei Instanzen nicht wieder zueinander finden, kann ich nichts sagen (Gibt es Logging?).
Vielleicht hätte ich eine Idee zum Automatisieren deiner manuellen Handgriffe, um die Slaves wieder neu zu starten...
Man könnte ein Skript im Cron installieren, was folgendes zyklisch macht ..
Zustand OK: Prüfen, ob die Firewall nicht mehr oben ist
Ist das so, Zustand FEHLER setzen, im nächsten Durchlauf...Zustand FEHLER: Prüfen, ob die Firewall wieder oben ist
Ist das so, Zeitpunkt merken, Zustand RECOVER setzen, im nächsten Durchlauf...Zustand RECOVER: Ist die "Karenzzeit" nach dem Hochfahren der Firewall verstrichen, Slave-iobroker neu starten, Zustand OK setzen.
-
@haselchen said in Slave-Master-Reconnect nach Reboot Router/Firewall:
Eventuell steht hier Deine Lösung
https://www.iobroker.net/#de/documentation/config/multihost.md
Multihost mit verschiedenen Subnetzen
Danke für dein Feedback. Den angegeben Absatz kenne ich, der bezieht sich nach meinem Verständnis aber nur auf die Einrichtung der Master-Slave-Konstellation. Das System an sich läuft ja wie gewünscht.
-
Ich habe so eine Konstellation nicht .
Aber vielleicht führst Du die Einrichtung anhand der Anleitung nochmal durch . -
@martinp said in Slave-Master-Reconnect nach Reboot Router/Firewall:
@martenn Hmm, verstehe ich nicht ganz, wenn die 2 Slaves und der Master alle in unterschiedlichen VLANs sind, KÖNNEN sie doch (hoffentlich) gar nicht miteinander kommunizieren... oder hast Du für die drei iobroker Instanzen Routen eingerichtet?
Wobei VLAN und Subnetz ja ganz unterschiedliche Bedeutungen haben ...
Zu der Frage, wieso die drei Instanzen nicht wieder zueinander finden, kann ich nichts sagen (Gibt es Logging?).
Vielleicht hätte ich eine Idee zum Automatisieren deiner manuellen Handgriffe, um die Slaves wieder neu zu starten...
Man könnte ein Skript im Cron installieren, was folgendes zyklisch macht ..
Zustand OK: Prüfen, ob die Firewall nicht mehr oben ist
Ist das so, Zustand FEHLER setzen, im nächsten Durchlauf...Zustand FEHLER: Prüfen, ob die Firewall wieder oben ist
Ist das so, Zeitpunkt merken, Zustand RECOVER setzen, im nächsten Durchlauf...Zustand RECOVER: Ist die "Karenzzeit" nach dem Hochfahren der Firewall verstrichen, Slave-iobroker neu starten, Zustand OK setzen.
Das ein VLAN und ein IP-Subnetz unterschiedliche Bedeutungen haben, ist klar aber hier nicht das Thema. Auch möchte ich nicht über die Sinnhaftigkeit meiner Netzwerksegmentierung sprechen. Fakt ist, die Systeme sollen miteinander als Master-Slave kommunizieren können. Dazu sind in der Firewall entsprechende Regeln eingerichtet, die explizit nur diese Verbindungen von den Slaves zum Master erlauben.
Den Ansatz mittels cron hatte ich ebenfalls im Hinterkopf, wollte aber zunächst einmal "abklopfen", ob es da nicht irgendeine iobroker Onboard-Lösung gibt.
-
Wird UDP geroutet?
-
@thomas-braun ja UDP-Pakete werden ebenfalls durch die Firewall durchgelassen.
-
Falls du Redis einsetzt, könntest du durch großzügiges Setzen der Retry Anzahl die Offlinezeit überbrücken.

Falls nicht,könntest du versuchen den Connect Timeout hochzusetzen

-
Ich habe nun eine Lösung über die Firewall (opensense) gefunden. Ich habe die zuständigen Regeln nun so eingestellt, dass die Zustände der entsprechenden Verbindungen nicht dauerhaft gehalten, sondern bei jedem Paket neu geprüft werden. Frist auf der Firewall mehr performance aber das ist zu verschmerzen.
Nun verbinden sich die Slaves auch ohne einen Neustart des iobroker Services.Komisch finde ich dieses Verhalten aber schon, kann aber auch an der opensense liegen. Ich meine auch, dass das mit einer früheren Version von opensense mal funktioniert hat.