ZeroTier zeigt das Mitglied als OK an, das Netzwerk ist beigetreten, und trotzdem gibt es keine Adresse, die sich anpingen lässt. Diese Kombination fühlt sich wie ein Fehler an und ist meist eine geteilte Konfiguration: ein Mitglied freizugeben ist ein Schalter, ihm eine Adresse zuzuteilen ein anderer. Ein Netzwerk kann ein Gerät annehmen und ihm nie etwas zuweisen, weil der Adresspool oder der Zuweisungsmodus nie eingerichtet wurde.

Lies beide Seiten, bevor du eine davon änderst. Die Antwort ist an zwei Stellen sichtbar, und nur eine davon liegt auf dem Controller.

Autorisierung und Zuweisung sind verschiedene Schalter

Die Autorisierung beantwortet, ob dieser Knoten am Netzwerk teilnehmen darf. Die Adresszuweisung beantwortet, was das Netzwerk ihm übergibt, sobald es teilnimmt, und diese Antwort stammt aus einem Adresspool plus einem Zuweisungsmodus. Keine der beiden Einstellungen bedingt die andere. Die eine ist eine Berechtigung, die andere eine Zuteilung.

Eine Controller-Konfiguration enthält normalerweise eine verwaltete Route, einen Adressbereich und den Modus, der über die automatische Zuweisung entscheidet. Wer eine Netzwerk-ID aus einer anderen Umgebung übernimmt, bekommt die Mitgliedschaft und keine dieser Einstellungen.

Deshalb kann ein Gerät in der Mitgliederliste gesund aussehen, während seine Spalte für die zugewiesene Adresse leer bleibt. Der Controller hat es akzeptiert und hat nichts zu vergeben. Beide Aussagen sind gleichzeitig wahr.

LayerWhat it decidesWhere it is configured
MembershipWhether the node may joinMember authorization on the network
PoolWhich addresses exist to hand outNetwork address range
Assignment modeWhether they are handed out automaticallyNetwork v4/v6 assignment settings

Den effektiven Zustand des Mitglieds lesen

Frage den Client, was er tatsächlich erhalten hat, statt danach, was der Controller beabsichtigt hat. Die einfache Liste zeigt Status- und Adressspalten, die JSON-Form zeigt die Netzwerkkonfiguration, die der Client angewendet hat, einschließlich verwalteter Adressen und Routen.

zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'

Vergleiche die beiden Ausgaben für dieselbe Netzwerk-ID, nicht für die physischen Adapter, die in der Liste des Betriebssystems selbst erscheinen. Eine Zeile, die OK mit einer leeren Adressmenge meldet, bestätigt die Zuweisungslücke und nicht einen Konnektivitätsfehler. Die falsche Zeile zu lesen ist die andere Hälfte dieses Fehlers.

Ein Status ACCESS_DENIED deutet auf die Autorisierung zurück, und das ist eine andere Reparatur. Wenn der Befehl das lokale Authentifizierungstoken gar nicht lesen kann, liegt das Problem an lokalen Berechtigungen und nicht an einer Ablehnung durch den Controller, und die Korrektur erfolgt an dem Rechner, an dem du sitzt.

Wenn der Client ignoriert, was der Controller sendet

Der Client hat eigene Einstellungen, die entscheiden, ob die verwaltete Konfiguration angewendet wird. Ein Profil, das verwaltete Adressen, verwaltete Routen oder die Behandlung der Standardroute deaktiviert, verwirft, was das Netzwerk sendet, und die Mitgliederliste sieht aus Sicht des Controllers weiterhin korrekt aus.

Diese Flags betreffen nur den lokalen Knoten. Sie zu ändern verändert nicht, was andere Mitglieder erhalten, und es repariert keinen Pool, der nie definiert wurde.

Die Diagnose hat also zwei Zweige: Der Controller hat keine Adresse zu vergeben, oder der Client hat die ihm gegebene abgelehnt. Beide führen zu unterschiedlichen Reparaturen auf unterschiedlichen Rechnern. Die JSON-Ausgabe unterscheidet sie, weil die Adresse entweder in der Konfiguration des Netzwerks fehlt oder vorhanden ist und im angewendeten Zustand des Clients fehlt.

Was zu reparieren ist, statt eine Adresse zu erfinden

Eine beliebige statische Adresse einzutippen ist die verlockende dritte Option und die schlechteste. Eine zufällige Adresse kann mit einem anderen Knoten kollidieren, außerhalb der Routen liegen, die das Netzwerk verteilt, oder in einen Bereich fallen, den Firewall-Regeln anders behandeln. Sie verbirgt zudem den fehlenden Pool vor allen, die als Nächstes auf das Netzwerk schauen. Repariere stattdessen die Zuweisung und lass Controller und Client sich auf das Ergebnis einigen.

Frage den Administrator, was das Netzwerk vergeben soll, und prüfe dann, ob der Pool den beabsichtigten Bereich abdeckt und der Zuweisungsmodus aktiviert ist. Tritt nach der Änderung erneut bei, statt zu erwarten, dass sich der Client von selbst sofort eine neue Konfiguration holt.

Sobald eine Adresse erscheint, teste, was du eigentlich gebraucht hast: einen Peer, einen Dienst oder ein Subnetz hinter einem Gateway. Ein LAN hinter einem Mitglied zu erreichen braucht Routing und Weiterleitung über die Mitgliedschaft hinaus, und allgemeiner Internetzugang braucht einen Exit-Node, eine funktionierende Adresse ist also der Anfang dieses Tests und nicht sein Ende.

Ähnliche Artikel