Autorizado no ZeroTier mas sem endereço? Dois ajustes separados
Aprovar um membro e atribuir-lhe um endereço são dois ajustes. Leia o pool, o modo de atribuição e o estado aplicado do cliente antes de inventar um IP.
O ZeroTier mostra o membro como OK, a rede está associada e ainda assim não há nenhum endereço para pingar. Essa combinação parece um defeito e costuma ser uma configuração dividida: aprovar um membro é um interruptor e atribuir-lhe um endereço é outro. Uma rede pode aceitar um dispositivo e nunca lhe atribuir nada, porque o pool ou o modo de atribuição nunca foi configurado.
Leia os dois lados antes de alterar qualquer um deles. A resposta é visível em dois lugares, e apenas um deles está no controlador.
Autorização e atribuição são interruptores diferentes
A autorização responde se este nó pode participar da rede. A atribuição de endereços responde o que a rede lhe entrega depois que ele participa, e essa resposta vem de um pool de endereços mais um modo de atribuição. Nenhum dos ajustes implica o outro. Um é uma permissão e o outro é uma alocação.
A configuração de um controlador costuma incluir uma rota gerenciada, um intervalo de endereços e o modo que decide se a atribuição automática é usada. Copiar um identificador de rede de outro ambiente traz a associação e nada dessa configuração.
Por isso um dispositivo pode parecer saudável na lista de membros enquanto a coluna do endereço atribuído continua vazia. O controlador o aceitou e não tem nada a dar. Ambas as afirmações são verdadeiras ao mesmo tempo.
| 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 |
Ler o estado efetivo do membro
Pergunte ao cliente o que ele realmente recebeu, em vez do que o controlador pretendia. A lista simples mostra colunas de estado e endereço, e a forma JSON mostra a configuração de rede que o cliente aplicou, incluindo endereços e rotas gerenciadas.
zerotier-cli listnetworks
zerotier-cli -j listnetworks | jq '.networks[] | {nwid, status, assignedAddresses}'
Compare as duas saídas para o mesmo identificador de rede, não para os adaptadores físicos que aparecem na lista do próprio sistema operacional. Uma linha que relata OK com um conjunto de endereços vazio confirma a lacuna de atribuição e não uma falha de conectividade. Ler a linha errada é a outra metade deste erro.
Um estado ACCESS_DENIED aponta de volta para a autorização, e esse é outro reparo. Se o comando não consegue ler de todo o token de autenticação local, o problema são as permissões locais e não uma rejeição do controlador, e a correção é na máquina em que você está sentado.
Quando o cliente ignora o que o controlador envia
O cliente tem ajustes próprios que decidem se a configuração gerenciada é aplicada. Um perfil que desativa endereços gerenciados, rotas gerenciadas ou o tratamento da rota padrão descartará o que a rede envia, e a lista de membros continuará parecendo correta do lado do controlador.
Esses sinalizadores afetam apenas o nó local. Alterá-los não muda o que os outros membros recebem e não repara um pool que nunca foi definido.
Assim, o diagnóstico tem dois ramos: ou o controlador não tem nenhum endereço a dar, ou o cliente recusou o que recebeu. Eles levam a reparos diferentes em máquinas diferentes. A saída JSON os distingue, porque o endereço ou está ausente da configuração da rede ou está presente e falta no estado aplicado do cliente.
O que reparar em vez de inventar um endereço
Digitar um endereço estático arbitrário é a terceira opção tentadora e a pior. Um endereço aleatório pode colidir com outro nó, ficar fora das rotas que a rede propaga ou cair numa faixa que as regras do firewall tratam de forma diferente. Também esconde o pool em falta de quem olhar a rede em seguida. Repare a atribuição e deixe o controlador e o cliente concordarem com o resultado.
Pergunte ao administrador o que a rede deve entregar, depois verifique se o pool cobre o intervalo pretendido e se o modo de atribuição está ativado. Volte a associar-se após a alteração em vez de esperar que o cliente chegue sozinho de imediato a uma configuração nova.
Assim que um endereço aparecer, teste o que realmente precisava: um par, um serviço ou uma sub-rede atrás de um gateway. Alcançar uma LAN atrás de um membro exige encaminhamento e roteamento além da associação, e o acesso geral à internet exige um nó de saída, portanto um endereço funcional é o começo desse teste e não o seu fim.