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.

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

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.

Artigos relacionados