Autorizuota ZeroTier, bet adreso nėra? Du atskiri nustatymai
Nario patvirtinimas ir adreso suteikimas yra du atskiri nustatymai. Prieš išgalvodami IP perskaitykite baseiną, priskyrimo režimą ir kliento pritaikytą būseną.
ZeroTier rodo narį kaip OK, tinklas prisijungtas, o adreso pinginti vis dar nėra. Toks derinys atrodo kaip klaida ir paprastai yra perskelta konfigūracija: nario patvirtinimas yra vienas jungiklis, o adreso suteikimas – kitas. Tinklas gali priimti įrenginį ir niekada nieko jam nepaskirti, nes adresų baseinas arba priskyrimo režimas nebuvo nustatytas.
Perskaitykite abi puses prieš keisdami bet kurią. Atsakymas matomas dviejose vietose, ir tik viena jų yra valdiklyje.
Autorizacija ir priskyrimas yra skirtingi jungikliai
Autorizacija atsako, ar šis mazgas gali dalyvauti tinkle. Adreso priskyrimas atsako, ką tinklas jam duoda po to, kai jis dalyvauja, ir šis atsakymas kyla iš adresų baseino kartu su priskyrimo režimu. Nė vienas nustatymas neimplikuoja kito. Vienas yra leidimas, kitas – paskirstymas.
Valdiklio konfigūracija paprastai turi valdomą maršrutą, adresų intervalą ir režimą, kuris nusprendžia, ar naudojamas automatinis priskyrimas. Tinklo ID kopijavimas iš kitos aplinkos atneša narystę ir nieko iš tos konfigūracijos.
Todėl įrenginys gali atrodyti sveikas narių sąraše, o jo paskirto adreso stulpelis lieka tuščias. Valdiklis jį priėmė ir neturi ko duoti. Abu teiginiai yra teisingi tuo pačiu metu.
| Layer | What it decides | Where it is configured |
|---|---|---|
| Membership | Whether the node may join | Member authorization on the network |
| Pool | Which addresses exist to hand out | Network address range |
| Assignment mode | Whether they are handed out automatically | Network v4/v6 assignment settings |
Nario faktinės būsenos skaitymas
Klauskite kliento, ką jis iš tikrųjų gavo, o ne ką valdiklis ketino. Paprastas sąrašas rodo būsenos ir adreso stulpelius, o JSON forma rodo tinklo konfigūraciją, kurią klientas pritaikė, įskaitant valdomus adresus ir maršrutus.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Palyginkite abu išvestis tam pačiam tinklo ID, o ne fiziniams adapteriams, kurie rodomi pačios operacinės sistemos sąraše. Eilutė, kuri praneša OK su tuščiu adresų rinkiniu, patvirtina priskyrimo spragą, o ne ryšio gedimą. Netinkamos eilutės skaitymas yra kita šios klaidos pusė.
Būsena ACCESS_DENIED nurodo atgal į autorizaciją, ir tai kitas taisymas. Jei komanda iš viso negali perskaityti vietinio autentifikavimo žetono, problema yra vietiniai leidimai, o ne valdiklio atmetimas, ir pataisa atliekama tame kompiuteryje, prie kurio sėdite.
Kai klientas nepaiso to, ką siunčia valdiklis
Klientas turi savo nustatymus, kurie nusprendžia, ar taikoma valdoma konfigūracija. Profilis, kuris išjungia valdomus adresus, valdomus maršrutus arba numatytojo maršruto apdorojimą, išmes tai, ką siunčia tinklas, o narių sąrašas valdiklio pusėje vis tiek atrodys teisingai.
Tie žymekliai veikia tik vietinį mazgą. Jų keitimas nekeičia to, ką gauna kiti nariai, ir nepataiso baseino, kuris niekada nebuvo apibrėžtas.
Taigi diagnozė turi dvi šakas: arba valdiklis neturi adreso, kurį duoti, arba klientas atmetė duotąjį. Jos veda prie skirtingų taisymų skirtinguose kompiuteriuose. JSON išvestis jas atskiria, nes adreso arba nėra tinklo konfigūracijoje, arba jis yra ir jo trūksta kliento pritaikytoje būsenoje.
Ką taisyti, o ne išgalvoti adresą
Savavališko statinio adreso įvedimas yra viliojantis trečias variantas ir pats blogiausias. Atsitiktinis adresas gali susidurti su kitu mazgu, atsidurti už maršrutų, kuriuos tinklas skelbia, arba patekti į intervalą, kurį užkardos taisyklės traktuoja kitaip. Jis taip pat paslepia trūkstamą baseiną nuo kiekvieno, kas toliau žiūrės į tinklą. Taisykite priskyrimą ir leiskite valdikliui bei klientui susitarti dėl rezultato.
Paklauskite administratoriaus, ką tinklas turėtų duoti, tada patikrinkite, ar baseinas apima numatytą intervalą ir ar priskyrimo režimas įjungtas. Prisijunkite iš naujo po pakeitimo, o ne tikėkitės, kad klientas pats iškart pasieks naują konfigūraciją.
Kai adresas atsiranda, išbandykite tai, ko iš tikrųjų reikėjo: partnerį, paslaugą ar potinklį už tinklų sietuvo. Pasiekti LAN už nario reikia maršrutizavimo ir persiuntimo daugiau nei narystė, o bendrai interneto prieigai reikia išėjimo mazgo, tad veikiantis adresas yra to testo pradžia, o ne pabaiga.