Eingeschränkte Netze und blockierte Verbindungen
Was eine Firewall tatsächlich verhindert, was der Agent von selbst dagegen tut und wie Sie die Fehlerbilder auseinanderhalten.
Hotel-WLAN, ein Konferenznetz, ein gehärteter Filter für ausgehenden Verkehr im Unternehmensnetz, ein Captive Portal. Diese Netze verhindern jeweils anderes, doch von außen sehen die Symptome ähnlich aus - wichtig ist deshalb, sie schnell zu unterscheiden, statt zu raten.
Der Agent hängt von vier Dingen ab: dem Management-Dienst, der Schlüssel, Zugriffsregeln und die Netzwerkbeschreibung verteilt; dem Discovery-Dienst, über den sich zwei Geräte auf einen Pfad einigen; einem Relay; und einem direkten Pfad zu jedem Gerät. Der Management-Dienst ist unter mgmt.sxaccess.com über TCP 443 erreichbar. Er teilt jedem Agenten seine Discovery- und Relay-Endpunkte mit, die ebenfalls TLS auf TCP 443 nutzen. Die vier fallen unabhängig voneinander aus, und die Folgen sind sehr verschieden.
Die Fehlerbilder
| Was blockiert ist | Was weiter funktioniert | Was ausfällt | Wie es aussieht |
|---|---|---|---|
| Ausgehendes UDP | Alles. Tunnel laufen stattdessen über ein Relay auf TCP 443 | Direkte Gerät-zu-Gerät-Pfade | Jedes Gerät zeigt Path: Relayed; die Latenz steigt |
| Zusätzlich die Relay-Endpunkte | Geräte, zu denen bereits ein direkter Pfad besteht | Jedes Gerät, das ein Relay braucht | Manche Geräte erreichbar, andere nicht, ohne erkennbares Muster bei den Namen |
| Discovery | Tunnel, die bereits stehen | Neue Tunnel, auch alle Tunnel nach einem Neustart des Geräts | Discovery zeigt Disconnected mit einem Grund; auf einem laufenden Gerät lautet die Kopfzeile Partly connected |
TCP 443 zu mgmt.sxaccess.com | Tunnel, die bereits stehen. Sind zusätzlich die Relay-Endpunkte blockiert, fallen Tunnel über ein Relay aus | Registrierung, Änderungen an Zugriffsregeln, neue Geräte | Service zeigt Disconnected. Zunächst ändert sich nichts, dann kommen neue Geräte und Änderungen nie an |
Was der Agent von selbst tut
Ist der Management-Dienst unerreichbar, gibt der Agent nicht auf und überlastet auch nicht das Netz. Jede Wartezeit unten ist zufällig gestreut, eine einzelne kann also bis zum Doppelten des genannten Werts betragen.
- Verbindungsaufbau. Ein Gerät, das startet oder sich von Grund auf neu verbindet, versucht es nach etwa einer Sekunde erneut und wartet jedes Mal 1,7-mal so lange, bis zu 15 Sekunden zwischen den Versuchen.
- Abbruch einer laufenden Verbindung. Reißt eine bestehende Verbindung ab, etwa weil ein Notebook in einem Netz zugeklappt und in einem anderen geöffnet wird, versucht der Agent es nach 0,8 Sekunden erneut und verlängert die Wartezeit um denselben Faktor bis auf 10 Sekunden. Die Tunnel bleiben derweil bestehen.
- Auf lange Sicht. Der Agent hält beides drei Monate lang durch. Danach startet der Agent-Dienst die Verbindung in Abständen von 30 bis 60 Minuten neu, bis zu 14 weitere Tage lang.
In der Praxis heißt das: Ein Notebook, das in einem blockierten Netz zugeklappt und in einem funktionierenden wieder geöffnet wird, verbindet sich binnen Sekunden neu, ohne Zutun der Person, die es nutzt.
Zwei Arten der Ablehnung werden anders behandelt. Weist der Management-Dienst das Gerät selbst ab, kann ein erneuter Versuch nie gelingen: Die Sitzung des Geräts ist dann abgelaufen, das Gerät wurde gelöscht, oder das Mitglied, zu dem es gehört, wurde gesperrt. Der Agent stellt die Versuche ein, und sxaccess info meldet This device is not signed in, bis sxaccess start das Gerät wieder anmeldet. Ist die ganze Organisation ausgesetzt, versucht der Agent es etwa alle 5 Minuten weiter und verbindet sich von selbst wieder, sobald die Organisation wieder aktiv ist.
Die Fehlerbilder unterscheiden
Beginnen Sie mit sxaccess info -d. Die Kopfzeile und die Zeilen Service, Discovery und Relays zeigen, welche Abhängigkeit fehlt, und die Zeile Path: jedes Geräts zeigt, ob der Pfad direkt (P2P) oder über ein Relay (Relayed) verläuft. Genau dafür gibt es die Filter, denn Sie brauchen die Anzahl, keine seitenlange Ausgabe. Jeder von ihnen schaltet die Detailansicht von selbst ein.
Drei Befehle grenzen den Fehler ein. Zuerst: Ist überhaupt etwas direkt? Listen Sie die verbundenen Geräte mit direktem Pfad auf, dann die über ein Relay:
sxaccess info --filter-by-status connected --filter-by-connection-type P2Psxaccess info --filter-by-status connected --filter-by-connection-type RelayedLäuft alles über ein Relay und nichts direkt, ist ausgehendes UDP blockiert, oder beide Seiten sitzen hinter strengem NAT. Prüfen Sie dann, ob dieser Host den Management-Dienst erreicht:
curl -sS -o /dev/null -w '%{http_code}\n' https://mgmt.sxaccess.comDer Befehl gibt einen HTTP-Statuscode aus. Jeder dreistellige Code, meist 404, bedeutet: Dieser Host erreicht den Management-Dienst per TLS über TCP 443; der Dienst hat geantwortet, nur hat sein Stammpfad nichts zurückzugeben. 000 bedeutet, dass keine Antwort ankam. Die Fehlermeldung, die curl darüber ausgibt, nennt den Grund, etwa eine Zeitüberschreitung, wenn eine Firewall den Verkehr verwirft, oder einen Zertifikatsfehler, wenn unterwegs eine TLS-Inspektion stattfindet.
Sehen Sie zuletzt nach, welche Geräte in der Netzwerkbeschreibung stehen und in welchem Zustand sie sind:
sxaccess info --filter-by-status connectedsxaccess info --json | jq '.devices.items[] | {dnsName, address, state, path}'Einen Relay-Pfad gezielt nachstellen
Bevor Sie einem Netzwerkteam sagen, der Umweg über das Relay sei das Problem, überzeugen Sie sich, dass es das tatsächlich ist. Mit SX_RELAY_ONLY=true in seiner Umgebung schickt der Agent-Dienst jeden Tunnel über ein Relay und überspringt direkte Pfade. So messen Sie das Verhalten des eingeschränkten Netzes in einem nicht eingeschränkten.
Die Variable liest der Agent-Dienst, nicht der Befehl sxaccess. Setzen Sie sie deshalb mit sudo sxaccess agent reconfigure --service-env; der Befehl startet einen laufenden Agenten von selbst neu. Sobald sich der Agent wieder verbunden hat, zeigt sxaccess info -d jedes verbundene Gerät mit Path: Relayed. reconfigure ersetzt außerdem jedes Mal die gesamte Umgebung des Dienstes: Haben Sie auf diesem Weg weitere Variablen gesetzt, nennen Sie sie im selben Befehl, durch Kommas getrennt. Zum Zurücksetzen führen Sie reconfigure erneut ohne SX_RELAY_ONLY aus.
Läuft die Anwendung über einen erzwungenen Relay-Pfad einwandfrei, kostet die Firewall Sie Latenz, aber keine Funktion - und die Lösung ist ein Gespräch über Prioritäten, nicht die Behebung eines Ausfalls.
sudo sxaccess agent reconfigure --service-env SX_RELAY_ONLY=truesxaccess info -dsudo sxaccess agent reconfigureWorum Sie das Netzwerkteam bitten
Nach Nutzen geordnet. Die erste Zeile allein macht das Produkt funktionsfähig.
| Bitte | Wirkung, falls gewährt |
|---|---|
Direkter ausgehender Zugriff über TCP 443 auf mgmt.sxaccess.com und app.sxaccess.com sowie auf die Discovery- und Relay-Endpunkte, die sxaccess info -d nennt | Das Netzwerk funktioniert. Alles läuft über Relays, was Latenz kostet. Der Zugriff muss direkt sein: Der Agent hat keine Proxy-Einstellung |
Direkter ausgehender Zugriff über TCP 443 auf pkgs.sxaccess.com | Die CLI lässt sich in diesem Netz installieren und aktualisieren: Das Installationsskript lädt sie von dort herunter. Für die Verbindungen der Geräte ist der Zugriff nicht nötig |
| Ausgehendes UDP ohne Zieleinschränkung | Direkte Tunnel werden möglich; die meisten Geräte nutzen kein Relay mehr |
| Keine TLS-Inspektion für diese Verbindungen | Verhindert, dass ein ausgetauschtes Zertifikat sie unterbricht. Die Apps vertrauen nur den Zertifizierungsstellen, die sie mitbringen - bei ihnen unterbricht eine Inspektion die Verbindung immer |
| UDP zwischen Geräten im selben LAN | Zwei Maschinen im selben Büro kommunizieren über das LAN, statt dass ihr Verkehr das Gebäude verlässt. Der CLI-Agent lauscht auf UDP 51820 oder, wenn dieser belegt ist, auf einem anderen Port; die Apps nutzen einen zufälligen Port |
Belege sammeln, die das Gespräch überstehen
Eine Aufzeichnung, die den Fehler erfasst, ist mehr wert als seine Beschreibung. sxaccess diagnose capture 5m stellt den Agenten auf Trace-Logging um, verbindet das Gerät neu, läuft für die angegebene Dauer und packt genau diesen Zeitraum in ein Bündel - das Log deckt also den Moment des Fehlers ab statt den ganzen Tag. Weil der Befehl neu verbindet, brechen Sitzungen über SXAccess ab.
Mit -A ersetzen Sie öffentliche Adressen und fremde Domains, bevor das Archiv Ihre Maschine verlässt. Private Bereiche, Overlay-Adressen und Gerätenamen bleiben sichtbar - öffnen Sie das Archiv also und prüfen Sie es, bevor Sie es irgendwo anhängen.
sxaccess diagnose capture 5m -Asxaccess diagnose collect -A
