ZeroTier viser medlemmet som OK, netværket er tilsluttet, og der er stadig ingen adresse at ping'e. Den kombination føles som en fejl og er som regel en delt konfiguration: at godkende et medlem er én kontakt, og at give det en adresse er en anden. Et netværk kan acceptere en enhed og aldrig tildele den noget, fordi adressepuljen eller tildelingstilstanden aldrig blev sat op.

Læs begge sider, før du ændrer nogen af dem. Svaret er synligt to steder, og kun det ene af dem er på controlleren.

Autorisation og tildeling er forskellige kontakter

Autorisation svarer på, om denne node må deltage i netværket. Adressetildeling svarer på, hvad netværket giver den, når den deltager, og det svar kommer fra en adressepulje plus en tildelingstilstand. Ingen af indstillingerne forudsætter den anden. Den ene er en tilladelse, den anden er en tildeling.

En controllerkonfiguration indeholder typisk en administreret rute, et adresseområde og den tilstand, der afgør, om automatisk tildeling bruges. Kopierer man et netværks-ID fra et andet miljø, får man medlemskabet og intet af den konfiguration.

Derfor kan en enhed se sund ud i medlemslisten, mens dens kolonne for tildelt adresse forbliver tom. Controlleren har accepteret den og har intet at give. Begge udsagn er sande samtidig.

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

Læs medlemmets effektive tilstand

Spørg klienten, hvad den faktisk modtog, i stedet for hvad controlleren havde til hensigt. Den almindelige liste viser status- og adressekolonner, og JSON-formen viser den netværkskonfiguration, klienten har anvendt, inklusive administrerede adresser og ruter.

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

Sammenlign de to output for det samme netværks-ID, ikke for de fysiske adaptere, der optræder i operativsystemets egen liste. En række, der rapporterer OK med et tomt adressesæt, bekræfter tildelingshullet og ikke en forbindelsesfejl. At læse den forkerte række er den anden halvdel af denne fejl.

En status på ACCESS_DENIED peger tilbage på autorisation, og det er en anden reparation. Hvis kommandoen slet ikke kan læse det lokale autentificeringstoken, er problemet lokale tilladelser og ikke en afvisning fra controlleren, og rettelsen er på den maskine, du sidder ved.

Når klienten ignorerer det, controlleren sender

Klienten har sine egne indstillinger, som afgør, om den administrerede konfiguration anvendes. En profil, der deaktiverer administrerede adresser, administrerede ruter eller håndtering af standardruten, kasserer det, netværket sender, og medlemslisten vil stadig se korrekt ud fra controllerens side.

De flag påvirker kun den lokale node. At ændre dem ændrer ikke, hvad andre medlemmer modtager, og det reparerer ikke en pulje, der aldrig blev defineret.

Diagnosen har altså to grene: enten har controlleren ingen adresse at give, eller klienten har afvist den, den fik. De fører til forskellige reparationer på forskellige maskiner. JSON-output skelner dem, fordi adressen enten mangler i netværkets konfiguration eller er til stede og mangler i klientens anvendte tilstand.

Hvad du skal rette i stedet for at opfinde en adresse

At skrive en vilkårlig statisk adresse er den fristende tredje mulighed og den værste. En tilfældig adresse kan kollidere med en anden node, ligge uden for de ruter, netværket udbreder, eller falde i et område, som firewall-regler behandler anderledes. Den skjuler også den manglende pulje for enhver, der kigger på netværket næste gang. Ret i stedet tildelingen, og lad controller og klient blive enige om resultatet.

Spørg administratoren, hvad netværket skal give, og verificér derefter, at puljen dækker det tilsigtede område, og at tildelingstilstanden er aktiveret. Deltag igen efter ændringen i stedet for at forvente, at klienten selv straks finder en ny konfiguration.

Når en adresse dukker op, test det, du faktisk havde brug for: en peer, en tjeneste eller et subnet bag en gateway. At nå et LAN bag et medlem kræver routing og videresendelse ud over medlemskabet, og generel internetadgang kræver en exit-node, så en fungerende adresse er begyndelsen på den test og ikke slutningen.

Relaterede artikler