ZeroTier viser ONLINE men ACCESS_DENIED: hvor rettes det?
ONLINE beskriver kontakten til rodinfrastrukturen; ACCESS_DENIED beskriver medlemskab af ét netværk. Rettelsen hører til på controller-siden.
ZeroTier rapporterer ONLINE på tjenesteniveau og ACCESS_DENIED på netværksniveau, og de to er ikke en modsætning. Det første er en udtalelse om vejen mellem din klient og koordinationsinfrastrukturen. Det andet er en udtalelse om ét netværks medlemsliste. Læs dem hver for sig, og kombinationen fortæller præcis, hvor du skal kigge.
Hvad ONLINE måler
Statuskommandoen rapporterer, om den lokale tjeneste har en fungerende vej til rodserverne, der koordinerer opdagelsen af peers. Den siger intet om et enkelt netværk og intet om, hvorvidt en controller har godkendt denne enhed. Derfor rapporterer en frisk installation på en fungerende forbindelse ONLINE med det samme, før nogen har autoriseret den noget sted.
Behandl ONLINE som en udtalelse om rørene og status per netværk som en udtalelse om medlemskab. At bruge den ene til at forklare den anden er, hvor det meste af denne forvirring begynder.
Hvad ACCESS_DENIED beder dig gøre
På et privat netværk holder controlleren en medlemsliste. En node, der mangler på listen, eller som står på den uden at være autoriseret, får ACCESS_DENIED uden nogen konfiguration ud over det grundlæggende håndtryk. Rettelsen er på controller-siden, og den har brug for nodeadressen i stedet for maskinnavnet, så match adressen i din klientuddata med medlemsindgangen, og autoriser den indgang.
At geninstallere klienten er det forkerte første skridt, fordi en ny installation bringer en ny identitet, og den gamle autorisation gælder ikke for den. Hvis netværket er offentligt, peger den samme status på en anden tilstand, så spørg controllerens ejer, om netværket er privat, før du anmoder om godkendelse. Det ene spørgsmål afgør resten af samtalen.
Statustekst er en forgrening, ikke en dom
Hver status indsnævrer den næste kontrol, og det er læsningen af dem som en enkelt fejlmeddelelse, der gør en rettelse på to minutter til en hel eftermiddag med geninstallation. NOT_FOUND betyder, at den identifikator, du skrev, ikke findes hos den controller, så spørgsmålet om medlemskab er endnu ikke nået. REQUESTING_CONFIGURATION betyder, at noden har nået controlleren og venter på konfiguration, der ikke kommer, hvilket peger på vejen snarere end på autorisation. OK betyder, at medlemskab og konfiguration er på plads, så det næste spørgsmål er den tildelte adresse og derefter selve tjenesten.
To kommandoer skiller alt dette, og begge læser den samme klient. ZeroTier CLI-reference viser statusstrenge per netværk, som de returnerer. Den første kommando er tjenestevisningen, og den anden er per netværk:
zerotier-cli status
zerotier-cli listnetworks
Gem statusteksten, når du beder administratoren om hjælp. En lokal join-kommando, der har udskrevet en bekræftelse, beviser kun, at anmodningen blev accepteret lokalt, og det er en anden kendsgerning end at være lukket ind.
Medlemskab tilhører en identitet
Det er klientens identitetsfiler, controlleren genkender, så at kopiere en konfiguration til en anden maskine eller slette identiteten under en geninstallation skaber et medlem, som controlleren aldrig har set. Det er også derfor at slette en medlemspost er noget andet end at deautorisere den. En autoriseret node, der stadig kører, bliver ved med at forsøge, og en post, der blev slettet i stedet for tilbagekaldt, kan komme tilbage som en ny anmodning fra samme adresse.
Når du pensionerer en enhed, skal du tilbagekalde den først og bekræfte, at posten afspejler den tilstand, før du fjerner noget. Rækkefølgen er forskellen mellem en ren fjernelse og et mystisk genindtræden.
Bekræft efter ændringen
Læs netværksposten igen i stedet for kommandoen, der lavede ændringen. Fire spørgsmål dækker resultatet, og ethvert af dem kan være forkert, mens de andre ser rigtige ud:
zerotier-cli listnetworks
ip -br addr show
ping -c 2 10.147.20.5
ip route get 10.147.20.5
Den første udskriver medlemskab og den tildelte adresse for hvert netværk, og den anden viser, om en grænseflade faktisk modtog den adresse. De sidste to beviser, at en peer på netværket svarer, og hvilken grænseflade der bærer trafikken. Noter, hvilken kommando der svarede på hvilket spørgsmål, så den næste person starter fra beviser i stedet for fra hukommelsen.
Hvis medlemskab er OK, og adressen findes, men peers ikke svarer, er problemet flyttet til routing eller til peerens egen politik. Tag statusteksten ud af den samtale, for den har allerede gjort sit arbejde. Medlemsposten og vejen er adskilte emner, og jo før de skilles, jo kortere bliver undersøgelsen.