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

DNS lt. tcpdump

IP

AS

updatefiles.loxone.com > d3opwsj31yuxtx.cloudfront.net

ping: 108.138.7.10

nslookup: 13.226.153.103
13.226.153.67
13.226.153.57
13.226.153.82

Amazon.com, Inc. (AS16509)

Amazon.com, Inc. (AS16509)

update.loxone.com

62.138.179.37

DNS Record Published / Host Europe

eu.ccbroker.loxonecloud.com > cluster-c.loxonecloud.com

Systemvariable Internetverbindung / Remote Connect

159.69.44.112
162.55.40.117

Hetzner Online GmbH (AS24940)
Hetzner Online GmbH (AS24940)

api.loxonecloud.com > cluster-a.loxonecloud.com

dns.loxonecloud.com > cluster-a.loxonecloud.com

159.69.36.131
188.34.183.236

Hetzner Online GmbH (AS24940)
Hetzner Online GmbH (AS24940)

weather.loxone.com

49.12.16.137

Hetzner Online GmbH (AS24940)

eu.ccd2.loxonecloud.com > cluster-d2.loxonecloud.com

195.201.222.243

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 per TCP Zielport 8443 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 Baustein Ping 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. Die Systemvariable Internetverbindung löst im Betrieb mit erreichbarer IP nur deutlich seltener auf.

  • Systemvariable Internetverbindung ohne Remote Connect scheint in der Firmware 12.2.11.5 nicht zuverlässig zu funktionieren.

    Als Alternative bei deaktiviertem Remote Connect bietet sich der Baustein Ping an; zur Unterscheidung Ping 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.).