DNS
Geräte erreichen einander über Namen. DNS-Server erweitern das auf die internen Domains hinter Ihren Netzen, und der lokale Resolver des Agenten führt beides auf jedem Gerät zusammen.
Jedes Gerät erhält einen DNS-Namen unter der internen Domain der Organisation, abgeleitet aus seinem Hostnamen. Der Agent betreibt einen lokalen Resolver, der Anfragen nach diesen Namen beantwortet; so funktioniert ssh build-server auf jedem Rechner im Netzwerk, ohne dass jemand eine Hosts-Datei pflegt.
Nicht abgedeckt sind damit die Namen hinter Ihren Netzen - Ihre Active-Directory-Domain, eine interne Zone, das private DNS eines Cloud-Anbieters. Dafür gibt es DNS-Server.

DNS-Server
Ein DNS-Server-Eintrag besagt: Frage diese Server nach diesen Domains, auf den Geräten dieser Gruppen. Sie legen ihn unter DNS → DNS servers → Add DNS server an. Diese Schaltfläche öffnet zuerst Choose a DNS server, mit je einer Karte für mehrere bekannte öffentliche Resolver und einer für Custom DNS. Die Karte eines öffentlichen Resolvers trägt dessen Adressen für Sie ein; für die Resolver in Ihrem eigenen Netz wählen Sie Custom DNS.
Das folgende Formular hat drei Schritte; mit Continue gelangen Sie jeweils zum nächsten:
- DNS server: IP und Port von bis zu drei Servern (Add another IP), der Port fast immer 53. Applies to nennt die Gruppen, deren Geräte diesen DNS-Server nutzen; mindestens eine Gruppe ist nötig. Enable DNS server schaltet den Eintrag ab, ohne ihn zu löschen.
- Domains: die Match Domains, für die diese Server antworten, etwa
corp.example.com, hinzugefügt mit Add Domain. Ohne Match Domain ist der DNS-Server primär: Er beantwortet jede Anfrage dieser Geräte, auch die nach öffentlichen Namen. Mark match domains as search domains nimmt die Match Domains in die Suchliste des Geräts auf, sodassfileserverden Hostfileserver.corp.example.comfindet; der Schalter ist nur verfügbar, wenn es Match Domains gibt. - Name: ein DNS Name mit höchstens 40 Zeichen und eine optionale Beschreibung. Add DNS server speichert den Eintrag.
Um einen Eintrag später zu ändern, öffnen Sie ihn aus der Liste: Dieselben drei Teile erscheinen als die Reiter DNS server, Domains und Name & Description, und Save Changes speichert sie. In der API liegt dasselbe Objekt unter /api/dns/servers; der Schalter für Suchdomänen heißt dort search_domains_enabled.

Eine interne Zone auflösen
- 1
Die DNS-Server erreichbar machen
Geräte erreichen die DNS-Server über SXAccess. Veröffentlichen Sie die Adresse jedes Servers als
host-Ressource im internen Netzwerk des Standorts, und wählen Sie dann in der Spalte Access rules dieser Ressource Add Access rule. Als Quelle wählen Sie die Gruppen, deren Geräte diese Server nutzen sollen, also dieselben Gruppen wie weiter unten unter Applies to. Stellen Sie das Protokoll auf UDP, geben Sie im Feld für die Ports53ein, drücken Sie die Eingabetaste und wählen Sie Create access rule. Können Antworten groß werden, ergänzen Sie eine zweite Regel für TCP 53: Der Agent fragt über TCP erneut, wenn eine UDP-Antwort abgeschnitten ist. - 2
Einen Eintrag mit Custom DNS beginnen
Öffnen Sie DNS → DNS servers → Add DNS server und wählen Sie Custom DNS.
- 3
Server und Gruppen eintragen
Tragen Sie im Schritt DNS server unter IP die Adresse des ersten Resolvers ein und behalten Sie Port 53 bei; Add another IP fügt einen zweiten hinzu. Wählen Sie unter Applies to die Gruppen, deren Geräte diese Server nutzen sollen, lassen Sie Enable DNS server eingeschaltet und wählen Sie Continue.
- 4
Eine Match Domain beibehalten
Wählen Sie im Schritt Domains die Schaltfläche Add Domain, geben Sie die Zone ein, etwa
corp.example.com, und wählen Sie Continue. Mit einer Match Domain gehen nur Anfragen für diese Zone an diese Server, und öffentliche Namen nutzen weiterhin die eigenen Resolver des Geräts. - 5
Namen vergeben und speichern
Geben Sie im Schritt Name einen DNS Name ein, etwa
Corp DNS, und wählen Sie Add DNS server. - 6
Prüfen
Lösen Sie von einem Gerät in einer der Gruppen unter Applies to einen Namen aus der Zone auf, mit dem Block für sein System unten. Unter Linux gibt der erste Befehl dessen Adresse aus, und die Zeile
SERVERdes zweiten zeigt, welcher Resolver geantwortet hat. Unter macOS übergehtdigdie domainbezogenen DNS-Einstellungen, die der Agent dort vornimmt; nehmen Sie deshalbdscacheutil, das die Adresse alsip_addressausgibt.sxaccess info -dzeigt jeden DNS-Server, den das Gerät nutzt, die Domains, für die er antwortet, und ob er erreichbar ist.
dig +short fileserver.corp.example.comdig fileserver.corp.example.com | grep SERVERsxaccess info -ddscacheutil -q host -a name fileserver.corp.example.comsxaccess info -dAuflösung auf dem Routing-Gerät
Resolve wildcard domains (Organisationsmenü → Organization settings) ist standardmäßig an. Damit schickt ein Gerät seine DNS-Anfragen für eine domain-Ressource oder eine Domains-Route an das Routing-Gerät, das sie innerhalb des Netzwerks auflöst, wo die Antwort korrekt ist. Erst dadurch funktioniert ein Platzhalter wie *.internal.example.com. Ist die Einstellung aus, löst jedes Gerät die Namen jede Minute selbst auf; das funktioniert für einfache Namen, aber nie für einen Platzhalter. In der API heißt die Einstellung routing_device_dns_resolution_enabled.
Eine eigene Domain für Geräte
Gerätenamen liegen unter der internen Domain der Organisation. Für eine eigene setzen Sie Internal domain (Organisationsmenü → Organization settings, in der API dns_domain) etwa auf corp.example.com, und aus build-server wird build-server.corp.example.com. Wählen Sie eine Domain, die Sie kontrollieren und nicht im öffentlichen DNS verwenden - ein Name, der innerhalb und außerhalb von SXAccess aufgelöst wird, beschert Ihnen nur unnötige Fehlersuche.
DNS unangetastet lassen
Manche Geräte müssen ihre bisherige DNS-Konfiguration behalten. Dafür gibt es zwei Wege:
- DNS → Settings → Disable DNS management for these groups: Wählen Sie Add group, wählen Sie die Gruppen aus und speichern Sie mit Save Changes. Geräte in diesen Gruppen erhalten überhaupt keine DNS-Konfiguration von SXAccess - keine DNS-Server, nicht einmal Gerätenamen. Sie lösen Namen so auf, wie ihr Betriebssystem es bereits tut.
--disable-dnslässt die DNS-Einstellungen eines einzelnen Geräts unangetastet. Auf einem verbundenen Gerät setzen Sie die Option mitsxaccess stop && sxaccess start --disable-dns. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bisstartfertig ist. In einer Sitzung übersxaccess shellklappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung.

Der lokale Resolver
Der Agent stellt die DNS-Konfiguration des Rechners auf einen eigenen Resolver um. Dieser beantwortet Anfragen nach Gerätenamen, schickt Anfragen für die Domains Ihrer DNS-Server an diese Server und reicht alles andere an die Resolver weiter, die der Rechner bereits hatte. Unter Linux arbeitet der Agent mit dem, was der Host nutzt - systemd-resolved, NetworkManager, resolvconf oder eine einfache /etc/resolv.conf; unter macOS mit den DNS-Einstellungen des Systems.
Der Resolver braucht eine Adresse, auf der er lauscht. Der Agent nimmt die erste dieser Möglichkeiten, die frei ist:
- Port 53 auf der Overlay-Adresse des Geräts (nicht unter macOS), auf
127.0.0.1oder auf127.0.0.153, in dieser Reihenfolge. - Unter Linux, wenn Port 53 überall belegt ist, ein anderer Port auf der Overlay-Adresse. Ein kleines Kernel-Programm leitet die Anfragen an Port 53 dorthin um, sodass es für den Host weiterhin wie Port 53 aussieht.
- Port 5053 auf einer dieser Adressen.
Nur der letzte Fall kann Probleme machen. systemd-resolved und macOS können Anfragen an einen anderen Port als 53 schicken. NetworkManager, resolvconf und eine einfache /etc/resolv.conf können das nicht: Sie geben nur eine Adresse an und fragen daher immer an Port 53. Auf einem Host, der eines davon nutzt, protokolliert der Agent eine Warnung mit einem Link auf diesen Abschnitt, und das Gerät dient nicht mehr als primärer Resolver: Primäre DNS-Server gelten auf ihm nicht mehr. Machen Sie Port 53 frei - meist, indem Sie einen anderen lokalen DNS-Dienst stoppen oder umkonfigurieren - und verbinden Sie das Gerät mit sxaccess stop && sxaccess start neu. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bis start fertig ist. In einer Sitzung über sxaccess shell klappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung.
Die Option --dns-resolver-address von sxaccess start legt Adresse und Port stattdessen fest. Sie ist für den Support gedacht: Nutzen Sie sie, wenn der Support Sie darum bittet, und wählen Sie Port 53, damit die oben beschriebene Warnung nicht auftreten kann. Solange das Gerät verbunden ist, übernimmt sxaccess start keine Einstellungen; beide Blöcke unten führen deshalb zuerst sxaccess stop aus, in derselben Zeile wie start. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bis start fertig ist. In einer Sitzung über sxaccess shell klappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung.
sxaccess stop && sxaccess start --dns-resolver-address 127.0.0.153:53sxaccess stop && sxaccess start --dns-resolver-address ""Wenn Namen nicht aufgelöst werden
- Gehört das Gerät zu einer Gruppe unter Applies to? Ein DNS-Server erreicht nur die dort aufgeführten Gruppen, und nur, solange Enable DNS server an ist.
- Ist die DNS-Verwaltung für das Gerät aus? Eine Gruppe unter Disable DNS management for these groups oder
--disable-dnsauf dem Gerät schaltet all das ab. - Sind die DNS-Server erreichbar?
sxaccess info -dzeigt für jeden, ob er erreichbar ist. Das Gerät braucht eine Route zu ihnen und eine Zugriffsregel, die UDP 53 erlaubt. - Hat der Agent Port 53 bekommen? Wenn er die unter Der lokale Resolver beschriebene Warnung protokolliert hat, nicht.
- Verwaltet etwas anderes den Resolver? Unter Linux zeigt
resolvectl status, welcher Server für welche Domain zuständig ist. Ein VPN-Client oder eine Container-Laufzeit kannresolv.confüberschrieben haben. - Ist der Name vollständig? Ein kurzer Name wird vor dem Senden mit den Suchdomänen des Geräts ergänzt;
fileserverwird also nur dann zufileserver.corp.example.com, wenn diese Zone zu den Suchdomänen gehört. Lösen Sie den vollständigen Namen auf, um das auszuschließen.

