Авторизовано в ZeroTier, але адреси немає? Два окремі налаштування
Схвалення учасника і надання йому адреси — два різні налаштування. Прочитайте пул, режим призначення та застосований стан клієнта, перш ніж вигадувати IP.
ZeroTier показує учасника як OK, мережу приєднано, а адреси для ping усе одно немає. Така комбінація здається помилкою і зазвичай означає розділену конфігурацію: схвалення учасника — один перемикач, а надання йому адреси — інший. Мережа може прийняти пристрій і так і не призначити йому нічого, бо пул адрес або режим призначення не було налаштовано.
Прочитайте обидві сторони, перш ніж змінювати будь-яку з них. Відповідь видно у двох місцях, і лише одне з них — на контролері.
Авторизація і призначення — різні перемикачі
Авторизація відповідає, чи може цей вузол брати участь у мережі. Призначення адреси відповідає, що мережа дає йому після участі, і ця відповідь складається з пулу адрес і режиму призначення. Жодне налаштування не передбачає іншого. Одне — це дозвіл, друге — розподіл.
Конфігурація контролера зазвичай містить керований маршрут, діапазон адрес і режим, що визначає, чи використовується автоматичне призначення. Копіювання ідентифікатора мережі з іншого середовища приносить членство і нічого з цієї конфігурації.
Тому пристрій може виглядати здоровим у списку учасників, а стовпець призначеної адреси залишається порожнім. Контролер його прийняв і не має чого дати. Обидва твердження правдиві одночасно.
| 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 |
Читання фактичного стану учасника
Запитайте клієнт, що він насправді отримав, а не що мав на увазі контролер. Звичайний список показує стовпці стану й адреси, а форма JSON показує конфігурацію мережі, яку застосував клієнт, включно з керованими адресами й маршрутами.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Порівнюйте два виводи для того самого ідентифікатора мережі, а не для фізичних адаптерів, що з'являються у власному списку операційної системи. Рядок, який повідомляє OK із порожнім набором адрес, підтверджує прогалину в призначенні, а не збій зв'язку. Читання не того рядка — друга половина цієї помилки.
Стан ACCESS_DENIED вказує назад на авторизацію, і це інший ремонт. Якщо команда взагалі не може прочитати локальний токен автентифікації, проблема в локальних правах, а не у відмові контролера, і виправлення виконується на машині, за якою ви сидите.
Коли клієнт ігнорує те, що надсилає контролер
У клієнта є власні налаштування, що визначають, чи застосовується керована конфігурація. Профіль, який вимикає керовані адреси, керовані маршрути або обробку маршруту за замовчуванням, відкине те, що надсилає мережа, а список учасників з боку контролера все одно виглядатиме правильно.
Ці прапорці впливають лише на локальний вузол. Їх зміна не змінює того, що отримують інші учасники, і не виправляє пул, який ніколи не було визначено.
Отже, діагностика має дві гілки: або контролер не має адреси, щоб її дати, або клієнт відмовився від наданої. Вони ведуть до різних ремонтів на різних машинах. Вивід JSON їх розрізняє, бо адреса або відсутня в конфігурації мережі, або присутня й відсутня в застосованому стані клієнта.
Що виправити замість вигадування адреси
Введення довільної статичної адреси — спокусливий третій варіант і найгірший. Випадкова адреса може зіткнутися з іншим вузлом, опинитися поза маршрутами, які поширює мережа, або потрапити в діапазон, який правила брандмауера обробляють інакше. Вона також приховує відсутній пул від кожного, хто погляне на мережу наступного разу. Виправте натомість призначення і дайте контролеру та клієнту домовитися про результат.
Запитайте адміністратора, що мережа має видавати, потім перевірте, що пул покриває потрібний діапазон і режим призначення увімкнено. Приєднайтеся знову після зміни, а не чекайте, що клієнт сам одразу перейде на нову конфігурацію.
Щойно адреса з'явиться, перевірте те, що вам насправді було потрібно: піра, сервіс або підмережу за шлюзом. Доступ до LAN за учасником потребує маршрутизації та пересилання понад членство, а загальний доступ до інтернету потребує вихідного вузла, тож робоча адреса — це початок такої перевірки, а не її кінець.