ZeroTier hlásí ONLINE na úrovni služby a ACCESS_DENIED na úrovni sítě a tato dvojice není rozpor. První je tvrzení o cestě mezi vaším klientem a koordinační infrastrukturou. Druhé je tvrzení o seznamu členů jedné sítě. Čtěte je odděleně a kombinace vám přesně ukáže, kam se dívat.

Co ONLINE měří

Příkaz status hlásí, zda má místní služba funkční cestu ke kořenovým serverům, které koordinují objevování peerů. O žádné jednotlivé síti neříká nic a nic o tom, zda kontroler toto zařízení schválil. Proto čerstvá instalace na funkčním připojení hlásí ONLINE okamžitě, dřív než ji kdokoli kdekoliv autorizoval.

Berte ONLINE jako tvrzení o vodovodním potrubí a stav jednotlivé sítě jako tvrzení o členství. Použití jednoho k vysvětlení druhého je místo, kde začíná většina tohoto zmatku.

Co po vás ACCESS_DENIED chce

V privátní síti vede kontroler seznam členů. Uzel, který v seznamu chybí, nebo je v něm uveden, ale není autorizovaný, dostane ACCESS_DENIED a k tomu žádnou konfiguraci nad rámec základního handshake. Oprava je na straně kontroleru a potřebuje adresu uzlu, nikoli jméno stroje, proto porovnejte adresu z výstupu klienta se záznamem člena a tento záznam autorizujte.

Přeinstalace klienta je špatný první krok, protože nová instalace přináší novou identitu a stará autorizace na ni už neplatí. Je-li síť veřejná, stejný stav ukazuje na jinou podmínku, proto se před žádostí o schválení zeptejte vlastníka kontroleru, zda je síť privátní. Tahle jediná otázka rozhodne zbytek rozhovoru.

Text stavu je větev, ne verdikt

Každý stav zužuje další kontrolu a právě čtení těchto stavů jako jedné chybové zprávy mění opravu na dvě minuty v celé odpoledne reinstalací. NOT_FOUND znamená, že identifikátor, který jste zadali, u tohoto kontroleru neexistuje, takže otázka členství ještě nebyla dosažena. REQUESTING_CONFIGURATION znamená, že uzel dosáhl kontroleru a čeká na konfiguraci, která nepřichází, což ukazuje na cestu, nikoli na autorizaci. OK znamená, že členství i konfigurace jsou na místě, takže další otázkou je přidělená adresa a potom sama služba.

Všechno to oddělují dva příkazy a oba čtou stejného klienta. Referenční příručka ZeroTier CLI uvádí stavové řetězce pro jednotlivé sítě, které vracejí. První příkaz je pohled na službu a druhý je pro jednotlivé sítě:

zerotier-cli status
zerotier-cli listnetworks

Text stavu si nechte, když žádáte správce o pomoc. Místní příkaz pro připojení, který vytiskl potvrzení, dokazuje jen to, že požadavek byl přijat místně, což je jiný fakt než být vpuštěn dovnitř.

Členství patří identitě

Kontroler rozpoznává právě soubory identity klienta, proto zkopírování konfigurace na jiný stroj nebo smazání identity při reinstalaci vytvoří člena, kterého kontroler nikdy neviděl. Proto se také smazání záznamu člena liší od odebrání jeho autorizace. Autorizovaný uzel, který stále běží, to zkouší dál, a záznam smazaný místo odvolaného se může vrátit jako nový požadavek ze stejné adresy.

Když zařízení vyřazujete, nejdřív mu odeberte autorizaci a potvrďte, že záznam tento stav odráží, než cokoli odstraníte. Pořadí je rozdíl mezi čistým odstraněním a záhadným opětovným připojením.

Ověřte po změně

Přečtěte znovu záznam sítě, ne příkaz, který změnu provedl. Výsledek pokrývají čtyři otázky a kterákoli z nich může být špatně, zatímco ostatní vypadají správně:

zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5

První vypíše členství a přidělenou adresu pro každou síť a druhý příkaz ukáže, zda rozhraní tuto adresu skutečně dostalo. Poslední dva dokazují, že peer v síti odpovídá a které rozhraní nese provoz. Poznamenejte si, který příkaz odpověděl na kterou otázku, aby příští člověk začal od důkazů, ne od paměti.

Je-li členství OK a adresa existuje, ale peeři neodpovídají, problém se přesunul do směrování nebo do vlastní politiky peera. Vyjměte text stavu z té konverzace, protože už udělal svou práci. Záznam o členství a cesta jsou oddělená témata a čím dřív se oddělí, tím kratší je vyšetřování.

Související články