Autoryzowano w ZeroTier, ale brak adresu? Dwa osobne ustawienia
Zatwierdzenie członka i przydzielenie mu adresu to dwa ustawienia. Przeczytaj pulę, tryb przydziału i zastosowany stan klienta, zanim wymyślisz IP.
ZeroTier pokazuje członka jako OK, sieć jest dołączona, a mimo to nie ma adresu do pingowania. Ta kombinacja wygląda jak błąd i zwykle jest rozdzieloną konfiguracją: zatwierdzenie członka to jeden przełącznik, a przydzielenie mu adresu to drugi. Sieć może przyjąć urządzenie i nigdy nic mu nie przydzielić, ponieważ pula adresów albo tryb przydziału nigdy nie zostały ustawione.
Przeczytaj obie strony, zanim zmienisz którąkolwiek. Odpowiedź jest widoczna w dwóch miejscach i tylko jedno z nich jest na kontrolerze.
Autoryzacja i przydział to różne przełączniki
Autoryzacja odpowiada, czy ten węzeł może uczestniczyć w sieci. Przydział adresu odpowiada, co sieć mu daje, gdy już uczestniczy, a odpowiedź pochodzi z puli adresów i trybu przydziału. Żadne ustawienie nie implikuje drugiego. Jedno jest zgodą, a drugie alokacją.
Konfiguracja kontrolera zwykle zawiera zarządzaną trasę, zakres adresów i tryb decydujący o tym, czy używany jest przydział automatyczny. Skopiowanie identyfikatora sieci z innego środowiska przynosi członkostwo i nic z tej konfiguracji.
Dlatego urządzenie może wyglądać zdrowo na liście członków, podczas gdy jego kolumna przydzielonego adresu pozostaje pusta. Kontroler je zaakceptował i nie ma nic do dania. Oba stwierdzenia są prawdziwe jednocześnie.
| 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 |
Odczyt rzeczywistego stanu członka
Zapytaj klienta, co faktycznie otrzymał, a nie co zamierzał kontroler. Zwykła lista pokazuje kolumny stanu i adresu, a forma JSON pokazuje konfigurację sieci zastosowaną przez klienta, w tym adresy i trasy zarządzane.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Porównaj oba wyjścia dla tego samego identyfikatora sieci, a nie dla fizycznych adapterów widocznych na własnej liście systemu operacyjnego. Wiersz, który zgłasza OK z pustym zbiorem adresów, potwierdza lukę w przydziale, a nie awarię łączności. Odczytanie niewłaściwego wiersza to druga połowa tego błędu.
Stan ACCESS_DENIED wskazuje z powrotem na autoryzację, a to inna naprawa. Jeśli polecenie w ogóle nie potrafi odczytać lokalnego tokenu uwierzytelniania, problemem są lokalne uprawnienia, a nie odmowa kontrolera, a poprawka jest na maszynie, przy której siedzisz.
Gdy klient ignoruje to, co wysyła kontroler
Klient ma własne ustawienia decydujące o tym, czy konfiguracja zarządzana jest stosowana. Profil, który wyłącza adresy zarządzane, trasy zarządzane lub obsługę trasy domyślnej, odrzuci to, co wysyła sieć, a lista członków nadal będzie wyglądać poprawnie z punktu widzenia kontrolera.
Te flagi dotyczą tylko lokalnego węzła. Ich zmiana nie zmienia tego, co otrzymują inni członkowie, i nie naprawia puli, która nigdy nie została zdefiniowana.
Diagnoza ma więc dwie gałęzie: albo kontroler nie ma adresu do dania, albo klient odrzucił ten, który otrzymał. Prowadzą one do różnych napraw na różnych maszynach. Wyjście JSON je rozróżnia, ponieważ adres albo nie występuje w konfiguracji sieci, albo jest obecny i brakuje go w zastosowanym stanie klienta.
Co naprawić zamiast wymyślać adres
Wpisanie dowolnego statycznego adresu to kusząca trzecia opcja i najgorsza. Przypadkowy adres może kolidować z innym węzłem, leżeć poza trasami rozgłaszanymi przez sieć albo trafić w zakres, który reguły firewalla traktują inaczej. Ukrywa też brakującą pulę przed każdym, kto następnie spojrzy na sieć. Napraw raczej przydział i pozwól kontrolerowi oraz klientowi uzgodnić wynik.
Zapytaj administratora, co sieć powinna przydzielać, a następnie sprawdź, czy pula obejmuje zamierzony zakres i czy tryb przydziału jest włączony. Dołącz ponownie po zmianie, zamiast oczekiwać, że klient sam od razu dotrze do nowej konfiguracji.
Gdy pojawi się adres, przetestuj to, czego naprawdę potrzebowałeś: peera, usługę albo podsieć za bramą. Dotarcie do LAN za członkiem wymaga routingu i przekazywania poza członkostwem, a ogólny dostęp do internetu wymaga węzła wyjściowego, więc działający adres jest początkiem tego testu, a nie jego końcem.