Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Aktuelle »

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

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

(Fehler) 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)

Erreichbar

Exakt alle 60 Sekunden erfolgt eine Anfrage per TCP Zielport 8443 gegen DNS eu.ccbroker.loxonecloud.com (Stand , 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.

Alle im Rahmen des Testaufbaus gefundenen öffentliche IPs, mit denen der Miniserver Kontakt aufnehmen möchte, können der Hetzner Online GmbH (AS24940) zugeordnet werden (siehe vorherige Tabelle, grüne Zeilen).

Allgemein scheinen die Loxone-eigenen Überwachungsfunktionen die einwandfreie Funktion eines Hetzner-Rechenzentrums vorauszusetzen. Dies sollte bei der Nutzung dieser Verbindungsüberwachung berücksichtigt werden.

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.

00:34:29.118042 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:34:31.101952 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:34:35.005804 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:34:43.005517 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:34:58.876883 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:35:27.152922 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 31
00:35:30.107669 IP <MS_privateIP>.60588 > 162.55.40.117.8443: tcp 62
00:35:32.220380 IP <MS_privateIP>.60604 > 162.55.40.117.8443: tcp 0
00:35:33.243555 IP <MS_privateIP>.60604 > 162.55.40.117.8443: tcp 0
00:35:35.291484 IP <MS_privateIP>.60604 > 162.55.40.117.8443: tcp 0
00:35:39.323303 IP <MS_privateIP>.60604 > 162.55.40.117.8443: tcp 0
00:35:47.515044 IP <MS_privateIP>.60604 > 162.55.40.117.8443: tcp 0
00:37:17.623703 IP <MS_privateIP>.60610 > 162.55.40.117.8443: tcp 0
00:37:18.647499 IP <MS_privateIP>.60610 > 162.55.40.117.8443: tcp 0
00:37:20.695396 IP <MS_privateIP>.60610 > 162.55.40.117.8443: tcp 0
00:37:24.727278 IP <MS_privateIP>.60610 > 162.55.40.117.8443: tcp 0
00:37:32.982931 IP <MS_privateIP>.60610 > 162.55.40.117.8443: tcp 0
00:38:31.348869 IP <MS_privateIP>.60614 > 162.55.40.117.8443: tcp 0
00:38:32.372669 IP <MS_privateIP>.60614 > 162.55.40.117.8443: tcp 0
00:38:34.420566 IP <MS_privateIP>.60614 > 162.55.40.117.8443: tcp 0
00:38:38.379054 IP <MS_privateIP> > 159.69.36.131: ICMP echo request, id 19979, seq 0, length 8
00:38:38.452423 IP <MS_privateIP>.60614 > 162.55.40.117.8443: tcp 0
00:38:46.708115 IP <MS_privateIP>.60614 > 162.55.40.117.8443: tcp 0
00:38:48.375767 IP <MS_privateIP> > 159.69.36.131: ICMP echo request, id 21259, seq 0, length 8
00:38:58.385687 IP <MS_privateIP> > 159.69.36.131: ICMP echo request, id 22539, seq 0, length 8
00:39:08.387968 IP <MS_privateIP> > 159.69.36.131: ICMP echo request, id 23819, seq 0, length 8
00:39:13.094442 IP <MS_privateIP>.60616 > 162.55.40.117.8443: tcp 0
00:39:14.099037 IP <MS_privateIP>.60616 > 162.55.40.117.8443: tcp 0
00:39:16.146957 IP <MS_privateIP>.60616 > 162.55.40.117.8443: tcp 0
00:39:20.178815 IP <MS_privateIP>.60616 > 162.55.40.117.8443: tcp 0
00:39:28.690498 IP <MS_privateIP>.60616 > 162.55.40.117.8443: tcp 0

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.

23:30:27.014847 IP <MS_privateIP>.56740 > 188.34.183.236.443: tcp 0   (api. / dns.loxonecloud.com)
23:30:28.050202 IP <MS_privateIP>.56740 > 188.34.183.236.443: tcp 0
23:30:30.361681 IP <MS_privateIP>.38672 > 159.69.36.131.443: tcp 0   (api. / dns.loxonecloud.com)
23:30:31.378088 IP <MS_privateIP>.38672 > 159.69.36.131.443: tcp 0
23:30:33.707584 IP <MS_privateIP>.56744 > 188.34.183.236.443: tcp 0   (wie 23:30:27)
23:30:34.769972 IP <MS_privateIP>.56744 > 188.34.183.236.443: tcp 0

weather.loxone.com vermutlich unabhängig:

23:31:09.020935 IP <MS_privateIP>.33806 > 49.12.16.137.6066: tcp 0   (weather.loxone.com)
23:31:10.032625 IP <MS_privateIP>.33806 > 49.12.16.137.6066: tcp 0
23:31:13.037975 IP <MS_privateIP>.33808 > 49.12.16.137.6066: tcp 0
23:31:14.064455 IP <MS_privateIP>.33808 > 49.12.16.137.6066: tcp 0
23:31:17.052412 IP <MS_privateIP>.33810 > 49.12.16.137.6066: tcp 0
23:31:18.096300 IP <MS_privateIP>.33810 > 49.12.16.137.6066: tcp 0

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.

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.

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:

sudo tcpdump -i igb1 -nvv dst port 53

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.).

  • Keine Stichwörter