Auktoriserad i ZeroTier men ingen adress? Två separata inställningar
Att godkänna en medlem och att ge den en adress är två inställningar. Läs poolen, tilldelningsläget och klientens tillämpade tillstånd innan du hittar på en IP.
ZeroTier visar medlemmen som OK, nätverket är anslutet, och det finns fortfarande ingen adress att pinga. Kombinationen känns som en bugg och är oftast en delad konfiguration: att godkänna en medlem är en strömbrytare, och att ge den en adress är en annan. Ett nätverk kan acceptera en enhet och aldrig tilldela den något, eftersom poolen eller tilldelningsläget aldrig ställdes in.
Läs båda sidorna innan du ändrar någon av dem. Svaret syns på två ställen, och bara det ena av dem finns på styrenheten.
Auktorisering och tilldelning är olika strömbrytare
Auktorisering svarar på om den här noden får delta i nätverket. Adresstilldelning svarar på vad nätverket ger den när den deltar, och svaret kommer från en adresspool plus ett tilldelningsläge. Ingen av inställningarna förutsätter den andra. Den ena är ett tillstånd och den andra är en tilldelning.
En styrenhetskonfiguration innehåller vanligtvis en hanterad rutt, ett adressintervall och läget som avgör om automatisk tilldelning används. Att kopiera ett nätverks-ID från en annan miljö tar med medlemskapet och ingenting av den konfigurationen.
Därför kan en enhet se frisk ut i medlemslistan medan kolumnen för tilldelad adress förblir tom. Styrenheten har accepterat den och har ingenting att ge. Båda påståendena är sanna samtidigt.
| Layer | What it decides | Where it is configured |
|---|---|---|
| Membership | Whether the node may join | Member authorization on the network |
| Pool | Which addresses exist to hand out | Network address range |
| Assignment mode | Whether they are handed out automatically | Network v4/v6 assignment settings |
Att läsa medlemmens faktiska tillstånd
Fråga klienten vad den faktiskt tog emot i stället för vad styrenheten avsåg. Den vanliga listan visar status- och adresskolumner, och JSON-formen visar nätverkskonfigurationen som klienten har tillämpat, inklusive hanterade adresser och rutter.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Jämför de två utskrifterna för samma nätverks-ID, inte för de fysiska adaptrarna som visas i operativsystemets egen lista. En rad som rapporterar OK med en tom adressmängd bekräftar tilldelningsgapet och inte ett anslutningsfel. Att läsa fel rad är den andra halvan av detta misstag.
En status på ACCESS_DENIED pekar tillbaka på auktorisering, och det är en annan reparation. Om kommandot inte alls kan läsa den lokala autentiseringstoken, är problemet lokala behörigheter och inte ett avslag från styrenheten, och rättelsen görs på maskinen du sitter vid.
När klienten ignorerar det styrenheten skickar
Klienten har egna inställningar som avgör om den hanterade konfigurationen tillämpas. En profil som stänger av hanterade adresser, hanterade rutter eller hanteringen av standardrutten kastar det nätverket skickar, och medlemslistan kommer fortfarande att se korrekt ut från styrenhetens sida.
De flaggorna påverkar bara den lokala noden. Att ändra dem ändrar inte vad andra medlemmar tar emot, och det reparerar inte en pool som aldrig definierades.
Diagnosen har alltså två grenar: antingen har styrenheten ingen adress att ge, eller så har klienten avvisat den den fick. De leder till olika reparationer på olika maskiner. JSON-utskriften skiljer dem åt, eftersom adressen antingen saknas i nätverkets konfiguration eller finns och saknas i klientens tillämpade tillstånd.
Vad du bör rätta i stället för att hitta på en adress
Att skriva in en godtycklig statisk adress är det frestande tredje alternativet och det sämsta. En slumpmässig adress kan kollidera med en annan nod, ligga utanför rutterna som nätverket annonserar, eller hamna i ett intervall som brandväggsregler behandlar annorlunda. Den döljer också den saknade poolen för alla som tittar på nätverket nästa gång. Rätta i stället tilldelningen, och låt styrenheten och klienten komma överens om resultatet.
Fråga administratören vad nätverket ska dela ut, och kontrollera sedan att poolen täcker det avsedda intervallet och att tilldelningsläget är aktiverat. Anslut igen efter ändringen i stället för att förvänta dig att klienten själv omedelbart hittar en ny konfiguration.
När en adress dyker upp, testa det du faktiskt behövde: en peer, en tjänst eller ett subnät bakom en gateway. Att nå ett LAN bakom en medlem kräver routning och vidarebefordran utöver medlemskapet, och allmän internetåtkomst kräver en utgångsnod, så en fungerande adress är början på det testet och inte slutet.