ZeroTier prikazuje člana kao OK, mreža je pridružena, a adrese za ping još nema. Ta kombinacija izgleda kao greška i obično je podijeljena konfiguracija: odobravanje člana je jedan prekidač, a dodjela adrese drugi. Mreža može prihvatiti uređaj i nikada mu ništa ne dodijeliti, jer bazen adresa ili način dodjele nikada nije postavljen.

Pročitajte obje strane prije nego što promijenite bilo koju. Odgovor je vidljiv na dva mjesta, a samo je jedno od njih na kontroleru.

Autorizacija i dodjela različiti su prekidači

Autorizacija odgovara smije li ovaj čvor sudjelovati u mreži. Dodjela adrese odgovara što mu mreža daje nakon sudjelovanja, a taj odgovor dolazi iz bazena adresa plus načina dodjele. Nijedna postavka ne podrazumijeva drugu. Jedna je dozvola, druga je raspodjela.

Konfiguracija kontrolera obično nosi upravljanu rutu, raspon adresa i način koji odlučuje koristi li se automatska dodjela. Kopiranje ID-a mreže iz drugog okruženja donosi članstvo i ništa od te konfiguracije.

Zato uređaj može izgledati zdravo na listi članova dok njegova kolona dodijeljene adrese ostaje prazna. Kontroler ga je prihvatio i nema šta dati. Obje tvrdnje su istovremeno tačne.

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

Čitanje stvarnog stanja člana

Pitajte klijenta šta je stvarno primio, a ne šta je kontroler namjeravao. Obična lista prikazuje kolone statusa i adrese, a JSON oblik prikazuje mrežnu konfiguraciju koju je klijent primijenio, uključujući upravljane adrese i rute.

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

Uporedite ta dva izlaza za isti ID mreže, a ne za fizičke adaptere koji se pojavljuju na vlastitoj listi operativnog sistema. Red koji javlja OK s praznim skupom adresa potvrđuje prazninu u dodjeli, a ne kvar povezanosti. Čitanje pogrešnog reda je druga polovina ove greške.

Status ACCESS_DENIED upućuje natrag na autorizaciju, a to je druga popravka. Ako naredba uopće ne može pročitati lokalni token za provjeru identiteta, problem su lokalne dozvole, a ne odbijanje kontrolera, i popravka je na računaru na kojem sjedite.

Kada klijent ignorira ono što kontroler šalje

Klijent ima vlastite postavke koje odlučuju primjenjuje li se upravljana konfiguracija. Profil koji onemogući upravljane adrese, upravljane rute ili obradu zadane rute odbacit će ono što mreža šalje, a lista članova će sa strane kontrolera i dalje izgledati ispravno.

Te zastavice utječu samo na lokalni čvor. Njihova promjena ne mijenja ono što primaju drugi članovi i ne popravlja bazen koji nikada nije definiran.

Dijagnoza dakle ima dvije grane: kontroler nema adresu koju bi dao, ili je klijent odbio onu koja mu je data. One vode do različitih popravki na različitim računarima. JSON izlaz ih razlikuje, jer adresa ili nedostaje u konfiguraciji mreže, ili postoji i nedostaje u primijenjenom stanju klijenta.

Šta popraviti umjesto izmišljanja adrese

Upisivanje proizvoljne statičke adrese primamljiva je treća opcija i najgora. Slučajna adresa može se sudariti s drugim čvorom, pasti izvan ruta koje mreža propagira, ili u raspon koji firewall pravila tretiraju drukčije. Ona također skriva bazen koji nedostaje od svakoga ko sljedeći pogleda mrežu. Popravite radije dodjelu i pustite kontroler i klijent da se slože o rezultatu.

Pitajte administratora šta mreža treba davati, zatim provjerite pokriva li bazen predviđeni raspon i je li način dodjele uključen. Ponovno se pridružite nakon promjene, umjesto da očekujete da će klijent sam odmah doći do nove konfiguracije.

Kad se adresa pojavi, testirajte šta vam je stvarno trebalo: peer, servis ili podmrežu iza pristupnika. Dosezanje LAN-a iza člana zahtijeva usmjeravanje i prosljeđivanje izvan članstva, a opći pristup internetu zahtijeva izlazni čvor, pa je radna adresa početak tog testa, a ne njegov kraj.

Povezani članci