Авторизован в 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 за участником требует маршрутизации и пересылки сверх членства, а общий доступ в интернет требует выходного узла, поэтому работающий адрес — это начало такой проверки, а не её конец.