ZeroTier показує учасника як OK, мережу приєднано, а адреси для ping усе одно немає. Така комбінація здається помилкою і зазвичай означає розділену конфігурацію: схвалення учасника — один перемикач, а надання йому адреси — інший. Мережа може прийняти пристрій і так і не призначити йому нічого, бо пул адрес або режим призначення не було налаштовано.

Прочитайте обидві сторони, перш ніж змінювати будь-яку з них. Відповідь видно у двох місцях, і лише одне з них — на контролері.

Авторизація і призначення — різні перемикачі

Авторизація відповідає, чи може цей вузол брати участь у мережі. Призначення адреси відповідає, що мережа дає йому після участі, і ця відповідь складається з пулу адрес і режиму призначення. Жодне налаштування не передбачає іншого. Одне — це дозвіл, друге — розподіл.

Конфігурація контролера зазвичай містить керований маршрут, діапазон адрес і режим, що визначає, чи використовується автоматичне призначення. Копіювання ідентифікатора мережі з іншого середовища приносить членство і нічого з цієї конфігурації.

Тому пристрій може виглядати здоровим у списку учасників, а стовпець призначеної адреси залишається порожнім. Контролер його прийняв і не має чого дати. Обидва твердження правдиві одночасно.

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

Читання фактичного стану учасника

Запитайте клієнт, що він насправді отримав, а не що мав на увазі контролер. Звичайний список показує стовпці стану й адреси, а форма JSON показує конфігурацію мережі, яку застосував клієнт, включно з керованими адресами й маршрутами.

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

Порівнюйте два виводи для того самого ідентифікатора мережі, а не для фізичних адаптерів, що з'являються у власному списку операційної системи. Рядок, який повідомляє OK із порожнім набором адрес, підтверджує прогалину в призначенні, а не збій зв'язку. Читання не того рядка — друга половина цієї помилки.

Стан ACCESS_DENIED вказує назад на авторизацію, і це інший ремонт. Якщо команда взагалі не може прочитати локальний токен автентифікації, проблема в локальних правах, а не у відмові контролера, і виправлення виконується на машині, за якою ви сидите.

Коли клієнт ігнорує те, що надсилає контролер

У клієнта є власні налаштування, що визначають, чи застосовується керована конфігурація. Профіль, який вимикає керовані адреси, керовані маршрути або обробку маршруту за замовчуванням, відкине те, що надсилає мережа, а список учасників з боку контролера все одно виглядатиме правильно.

Ці прапорці впливають лише на локальний вузол. Їх зміна не змінює того, що отримують інші учасники, і не виправляє пул, який ніколи не було визначено.

Отже, діагностика має дві гілки: або контролер не має адреси, щоб її дати, або клієнт відмовився від наданої. Вони ведуть до різних ремонтів на різних машинах. Вивід JSON їх розрізняє, бо адреса або відсутня в конфігурації мережі, або присутня й відсутня в застосованому стані клієнта.

Що виправити замість вигадування адреси

Введення довільної статичної адреси — спокусливий третій варіант і найгірший. Випадкова адреса може зіткнутися з іншим вузлом, опинитися поза маршрутами, які поширює мережа, або потрапити в діапазон, який правила брандмауера обробляють інакше. Вона також приховує відсутній пул від кожного, хто погляне на мережу наступного разу. Виправте натомість призначення і дайте контролеру та клієнту домовитися про результат.

Запитайте адміністратора, що мережа має видавати, потім перевірте, що пул покриває потрібний діапазон і режим призначення увімкнено. Приєднайтеся знову після зміни, а не чекайте, що клієнт сам одразу перейде на нову конфігурацію.

Щойно адреса з'явиться, перевірте те, що вам насправді було потрібно: піра, сервіс або підмережу за шлюзом. Доступ до LAN за учасником потребує маршрутизації та пересилання понад членство, а загальний доступ до інтернету потребує вихідного вузла, тож робоча адреса — це початок такої перевірки, а не її кінець.

Схожі статті