Internetverbindung (Systemvariable) aus Netzwerksicht
Ziel
Beschreibung der Systemvariable Internetverbindung
aus Netzwerksicht über die Loxone-eigene Dokumentation hinaus.
Internet-Monitoring-Möglichkeiten
TCP
-Handshake: Miniserver baut eine TCP-Verbindung mit einem Zielport zu einem Server auf. Für das Monitoring gut geeignet, da die Anforderung zum Betrieb der App und weitere Funktionen ebenfalls einen TCP-Handshake voraussetzten.
ICMP-Ping
: Standard-Monitoring-Funktion, kann jedoch gezielt oder "beiläufig" gefiltert oder blockiert werden. Hat im Internet niedrigere Priorität.
IP vs DNS: DNS beschreibt eine Möglichkeit, Namen zu verwenden und diese “im Hintergrund” auf IP-Adressen aufzulösen. Aus Nutzersicht ist das heutige Internet überwiegend bereits nicht mehr funktional, wenn die DNS-Auflösung nicht funktioniert, auch wenn öffentliche IP-Adressen weiterhin erreichbar sein sollten.
Für ein umfassendes Monitoring aus Nutzer-Sicht wäre also ein Monitoring der DNS-Auflösung per TCP
-Handshake eine gute Kontrolle.
Die Systemvariable Internetverbindung
prüft den Zugriff auf das Internet per DNS-aufgelöster IPv4-Adressen aus einem Hetzner-Rechenzentrum über einen TCP
-Handshake.
Dabei muss Remote Connect
für den zuverlässigen Betrieb aktiviert sein, außerdem wird der Verlust der Internetverbindung erst nach 5 - 8 Minuten erkannt.
Die vorliegenden Tests sollen dem persönlichen grundsätzlichen Verständnis dienen. Die Versuche wurden nur kurzzeitig sowie stichprobenartig durchgeführt.
Es liegt in der Natur des Loxone-Konzepts, dass der Hersteller mit jeder Firmware-Aktualisierung den Mechanismus oder einzelne IP-Adressen ändern kann.
Hersteller-Dokumentation
Firmware 12.2.11.5
, Loxone Config
> Systemvariablen
> Internetverbindung
Die Systemvariable Internetverbindung
kann nicht direkt umbenannt werden, ist jedoch eine Beschreibung vorhanden, wird diese als Name in der Visualisierung angezeigt.
Die Systemvariable Internetverbindung
kann in der Visualisierung sichtbar gemacht werden und der Statustext verändert.
Beispielsweise sehen diese Einstellungen inkl. Beschreibung Internet Hausanschluss…
…dann wie folgt aus:
Setzt man nur die Eigenschaft der Systemvariable Internetverbindung
auf Offline
, so wird das Icon nicht eingefärbt, und das Ausrufungszeichen rechts fehlt
Funktionsweise Systemvariable Internetverbindung
Übersicht aufgelöste DNS-Namen
nslookup example.org 8.8.8.8
DNS lt. tcpdump | IP | AS |
---|---|---|
|
| Amazon.com, Inc. (AS16509) Amazon.com, Inc. (AS16509) |
|
| DNS Record Published / Host Europe |
|
| Hetzner Online GmbH (AS24940) |
|
| Hetzner Online GmbH (AS24940) |
|
| Hetzner Online GmbH (AS24940) |
|
| Hetzner Online GmbH (AS24940) |
Erreichbar
Exakt alle 60 Sekunden erfolgt eine Anfrage per TCP
Zielport 8443
gegen DNS eu.ccbroker.loxonecloud.com
(Stand Jan 8, 2023, Firmware 12.2.11.5
) und wird von diesem auch beantwortet. In den Logs erfolgen die DNS-Anfragen im Bereich von einigen Minuten (nicht bei jeder Anfrage).
Somit wird die Erreichbarkeit eines Zieles im Internet per TCP
-Handshake geprüft inkl. der Funktion des DNS-Servers aus Sicht des lokalen Netzes.
22:11:38.797240 IP <MS_privateIP>.55018 > 162.55.40.117.8443: tcp 31
22:11:38.828163 IP 162.55.40.117.8443 > <MS_privateIP>.55018: tcp 31
22:11:38.829029 IP <MS_privateIP>.55018 > 162.55.40.117.8443: tcp 0
Der Quellport (in diesem Beispiel 55018
) war auch über mehrere Neustarts des Miniservers hinaus identisch.
00:02:23.690866 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 98
00:02:23.728757 IP 162.55.40.117.8443 > <MS_privateIP>.60588: tcp 33
00:02:23.729619 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 0
Nach dem Deaktivieren und wieder Aktivieren von Remote Connect
wurde eine neue Quell-Port-Nummer verwendet - in diesem Beispiel 60588
. Die Portnummer scheint also entweder pro Remote Connect
-Aktivierung oder in mehrstündigen Zeiträumen (länger als der Versuch) generiert zu werden.
Nicht erreichbar
Erreicht der Miniserver sein Ziel, so führt er die oben beschriebene Abfrage alle 60s durch. Ist dies nicht der Fall (Internetzugriff über die Firewall vollständig blockiert und bestehende TCP
-Verbindung gelöscht), so versucht er weiterhin und in erhöhter Frequenz die DNS-Auflösung gegen eu.ccbroker.loxonecloud.com
durchzuführen und per TCP
Zielport 8443
zu erreichen.
Pausen zwischen den TCP
-Anfragen in Sekunden: ... 2 ... 4 ... 8 ... 15 ... 30 ... 2 ... 1 ... 2 ... 4 ... 8 ... 90 ... 1 ... 2 ... 4 ... 8 ... 60 ... 1 ... 2 ... 4 ... 8 ... 27 ... 1 ... 2 ... 4 ... 8 ....
Außerdem werden nach ca. 4 Minuten 4 ICMP-Pings
im Abstand von 10s ausgesendet an die DNS-Adresse dns.loxonecloud.com
(in dem Fall 159.69.36.131
, siehe Tabelle oben).
Nach erst etwa 5 - 8 Minuten geht die Systemvariable Internetverbindung
auf 0
und kann damit einen Alarm auslösen.
Sofern gewünscht kann diese Alarmierungszeit kann über einen Baustein Ping
auf wenige Sekunden verkürzt werden, jedoch steht dann nur die Überprüfung per ICMP-Ping
zur Verfügung, und nicht per TCP
-Handshake.
Wird der Miniserver ohne Internetverbindung neu gestartet, so versucht er eine Reihe von weiteres IP-Adressen aus dem Hetzner AS per TCP
auf verschiedenen Zielports zu erreichen.
weather.loxone.com
vermutlich unabhängig:
Nach ca. 5 - 8 Minuten wird die Systemvariable Internetverbindung
auf 0
gesetzt und eine entsprechende Systemwarnung ausgelöst.
Verknüpfung mit Remote Connect
Die Anzeige der Systemvariable Internetverbindung
ist gekoppelt an die Aktivierung von Remote Connect
in den Einstellungen des Miniservers. D.h. auch wenn die Systemvariable Internetverbindung
in ihren Eigenschaften auf Offline-Betrieb
und damit auf 0
gesetzt wird, so finden die minütlichen Abfragen weiterhin statt, da Remote Connect
ja weiterhin aktiv ist.
Erst nach Deaktivierung von Remote Connect
werden die minütlichen Abfragen nicht mehr ausgesendet.
Im umgekehrten Fall:
Remote Connect deaktiviert
Systemvariable Internetverbindung
aktiv (NICHT Offline)
… ist das Verhalten leider uneinheitlich. Häufig bleibt die Systemvariable Internetverbindung
auch für >15 min auf Wert 1
und ist somit falsch / irreführend.
Ein anderes mal benötigt die Systemvariable Internetverbindung nur etwa 5 Minuten auf den Wert 0
.
Versuchsaufbau
pfSense
als Router/Gateway erzeugt auf dem Interface, auf dem der Loxone Miniserver angeschlossen ist, ein Paket-Capture mit allen Paketen, die als Quelle oder Ziel die IP des Miniservers beinhalten (pfSense
> Diagnostics
> Packet Capture
). Die Technik ist identisch mit einem PC mit der Software Wireshark
, der an richtiger Stelle im Netzwerk positioniert ist.
Da sämtliche Internet-Prüfungen an eine öffentliche IP gesendet werden und damit per Definition geroutet, werden auch alle Prüfungen des Miniservers über seine Internet-Anbindung hier gecaptured.
Über einen Aufzeichnungszeitraum von mehreren Minuten waren die o.g. IP-Adressen die einzigen sog. öffentlichen IPs, d.h. sie waren IPs aus dem Internet. Alle anderen Pakete waren für/von private IPs, was zwingend eine Kommunikation in dem lokalen Netzwerk (beispielsweise zu Modbus-TCP-Geräten) bedeutet, die hier nicht weiter von Bedeutung ist.
Der Router pfSense
ist außerdem als Namensserver in dem Miniserver eingetragen, sodass DNS-Anfragen an den Router hätten gerichtet werden müssen, oder zumindest von ihm weitergeleitet.
Die Anfragen können auf der pfSense
in Echtzeit wie folgt dargestellt werden:
Hinweise und Fazit
Die
Systemvariable Internetverbindung
ist relativ träge und prüft perTCP
Zielport8443
gegen Hetzner-Server (ca. 3-8 Minuten Verzögerung bei Störung, ca. 5 s - 3 Minuten bei der Wiederherstellung). Falls hier eine schnellere Reaktion gewünscht ist, sollte der BausteinPing
eingebunden werden (Ping
vs.TCP
siehe erstes Kapitel).Das Monitoring der DNS-Auflösung aus Sicht des Miniservers kann über den Baustein
Ping
ergänzt werden, da der Baustein alle 5 Minuten eine erneute DNS-Auflösung durchführt. DieSystemvariable Internetverbindung
löst im Betrieb mit erreichbarer IP nur deutlich seltener auf.Systemvariable Internetverbindung
ohneRemote Connect
scheint in der Firmware12.2.11.5
nicht zuverlässig zu funktionieren.Als Alternative bei deaktiviertem
Remote Connect
bietet sich der BausteinPing
an; zur UnterscheidungPing
vs.TCP
siehe erster Absatz.Nur der Vollständigkeit halber: Falls Benutzer / Verwalter außerhalb des Miniserver-Netzwerkes von einem Internet-Ausfall informiert werden sollen, so sollten geeignete Alarmierungswege gewählt werden, die ggf. nicht auf der ausgefallenen Internet-Anbindung angewiesen sind (SMS-Gateway mit Digitalem Input etc.).