ZeroTier zobrazuje člena jako OK, síť je připojena, a přesto není žádná adresa, na kterou by se dalo pingnout. Tahle kombinace vypadá jako chyba a obvykle je to rozdělená konfigurace: schválení člena je jeden přepínač a přidělení adresy druhý. Síť může zařízení přijmout a nikdy mu nic nepřidělit, protože fond adres nebo režim přidělování nebyl nikdy nastaven.

Přečtěte si obě strany, než změníte kteroukoli z nich. Odpověď je vidět na dvou místech a jen jedno z nich je na kontroleru.

Autorizace a přidělení jsou různé přepínače

Autorizace odpovídá na to, zda tento uzel smí v síti participovat. Přidělení adresy odpovídá na to, co mu síť dá, jakmile participuje, a tato odpověď pochází z fondu adres plus režimu přidělování. Ani jedno nastavení neimplikuje druhé. Jedno je oprávnění a druhé je alokace.

Konfigurace kontroleru obvykle nese spravovanou trasu, rozsah adres a režim, který rozhoduje, zda se používá automatické přidělování. Zkopírování ID sítě z jiného prostředí přinese členství a nic z této konfigurace.

Proto může zařízení vypadat v seznamu členů zdravě, zatímco jeho sloupec přiřazené adresy zůstává prázdný. Kontroler ho přijal a nemá co dát. Obě tvrzení platí současně.

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

Čtení efektivního stavu člena

Zeptejte se klienta, co skutečně dostal, ne co kontroler zamýšlel. Prostý seznam ukazuje sloupce stavu a adresy a forma JSON ukazuje síťovou konfiguraci, kterou klient aplikoval, včetně spravovaných adres a tras.

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

Porovnejte oba výstupy pro stejné ID sítě, ne pro fyzické adaptéry, které se objevují ve vlastním seznamu operačního systému. Řádek, který hlásí OK s prázdnou množinou adres, potvrzuje mezeru v přidělení, nikoli poruchu konektivity. Čtení špatného řádku je druhá polovina této chyby.

Stav ACCESS_DENIED ukazuje zpět na autorizaci, a to je jiná oprava. Pokud příkaz vůbec nedokáže přečíst místní autentizační token, problém je v místních oprávněních, nikoli v odmítnutí kontrolerem, a oprava je na stroji, u kterého sedíte.

Když klient ignoruje to, co kontroler posílá

Klient má vlastní nastavení, která rozhodují, zda se spravovaná konfigurace aplikuje. Profil, který vypne spravované adresy, spravované trasy nebo zpracování výchozí trasy, zahodí to, co síť posílá, a seznam členů bude z pohledu kontroleru stále vypadat správně.

Tyto příznaky ovlivňují jen místní uzel. Jejich změna nemění to, co dostávají ostatní členové, a neopraví fond, který nebyl nikdy definován.

Diagnóza má tedy dvě větve: kontroler nemá žádnou adresu, kterou by dal, nebo klient odmítl tu, která mu byla dána. Vedou k různým opravám na různých strojích. Výstup JSON je rozlišuje, protože adresa buď v konfiguraci sítě chybí, nebo je přítomná a chybí v aplikovaném stavu klienta.

Co opravit místo vymýšlení adresy

Napsat libovolnou statickou adresu je lákavá třetí možnost a ta nejhorší. Náhodná adresa se může srazit s jiným uzlem, ležet mimo trasy, které síť propaguje, nebo spadnout do rozsahu, který pravidla firewallu ošetřují jinak. Také skrývá chybějící fond před každým, kdo se na síť podívá příště. Opravte raději přidělení a nechte kontroler a klienta shodnout se na výsledku.

Zeptejte se správce, co má síť přidělovat, pak ověřte, že fond pokrývá zamýšlený rozsah a že režim přidělování je zapnutý. Po změně se připojte znovu, místo abyste čekali, že klient sám okamžitě dojde k nové konfiguraci.

Jakmile se adresa objeví, otestujte to, co jste skutečně potřebovali: peer, službu nebo podsíť za bránou. Dostupnost LAN za členem vyžaduje směrování a předávání nad rámec členství a obecný přístup k internetu vyžaduje výstupní uzel, takže fungující adresa je začátek tohoto testu, nikoli jeho konec.

Související články