ID de nó ou ID de rede: qual deles entra numa rede ZeroTier
Um ID de nó nomeia um dispositivo e um ID de rede nomeia a rede virtual. Entrar exige a rede, e autorizar um membro exige a identidade do dispositivo.
Dois identificadores aparecem em toda conversa sobre ZeroTier, e são parecidos o bastante para serem confundidos numa janela de chat. O ID de nó nomeia um dispositivo. O ID de rede nomeia a rede virtual à qual esse dispositivo quer entrar. Entrar usa o segundo, e autorizar um membro usa o primeiro.
Dois identificadores, duas tarefas
Uma identidade de nó é gerada quando o serviço roda pela primeira vez numa máquina, e é um endereço hexadecimal de dez caracteres. Ela permanece com essa instalação até que os arquivos de identidade sejam removidos, por isso uma reinstalação pode produzir um membro novo que ninguém aprovou. Um ID de rede tem dezesseis caracteres hexadecimais e identifica uma rede virtual, não uma máquina. O controlador que possui a rede é ele mesmo um nó, por isso os primeiros dez caracteres do ID de rede coincidem com o endereço do controlador.
Nenhum dos dois valores é segredo e nenhum substitui o outro. Compartilhar o ID de rede com todos os participantes é normal; compartilhar um ID de nó identifica um dispositivo ao controlador.
Leia cada valor no comando que o reporta
Um comando reporta a identidade do serviço local, e outro reporta as redes a que ele entrou. Pedir um valor ao comando errado é como as pessoas acabam colando um ID de rede numa lista de membros.
zerotier-cli info zerotier-cli status zerotier-cli listnetworks
O primeiro imprime o endereço do nó e se o serviço está online. O segundo acrescenta informações de versão e porta. O terceiro lista as redes conectadas com seus IDs, estado e endereços atribuídos, e é o único que deve ser usado quando você precisa do ID de rede.
Entre com a rede, autorize com o nó
O comando de entrada recebe o ID de rede fornecido por quem administra o controlador. Uma resposta positiva do comando significa que a solicitação foi enviada, não que a participação numa rede privada foi concedida.
Depois da entrada, o administrador autoriza o dispositivo pelo seu ID de nó na lista de membros daquela rede. Ele não precisa mais do ID de rede, e não pode autorizar um dispositivo pelo nome de host, porque a identidade é o endereço. Se você é o administrador, leia a lista de membros e compare o endereço do nó com a solicitação. Uma solicitação que nomeia uma rede mas não um endereço de nó não é executável.
O prefixo compartilhado tem uma razão
Como um ID de rede começa com o endereço de nó do controlador, os mesmos dez caracteres aparecem nos dois lugares. É uma conveniência de roteamento, não uma pista de que os dois valores sejam intercambiáveis.
Isso também explica por que a identidade de um controlador importa mais que o nome exibido. Restaurar um controlador com uma identidade nova cria um espaço de endereços diferente, então as redes definidas com a antiga não são as mesmas redes mesmo que os nomes sejam reutilizados.
Guarde a identidade do controlador no backup junto com a configuração. Tratar essa identidade como um rótulo regenerável transforma uma restauração num redesenho.
Verifique o resultado, não a saída do comando
Uma entrada bem-sucedida é o começo da verificação, não o fim. Depois olhe a entrada de rede e leia três campos: o estado, o endereço atribuído e o ID de rede.
zerotier-cli listnetworks -j ip -br addr show | grep zt ping -c 2 10.147.20.5
O primeiro comando imprime a mesma lista numa forma analisável, o que facilita comparar com o que o administrador esperava. O segundo confirma que a interface recebeu um endereço, e o terceiro testa um par na rede em vez do estado local.
Se a entrada diz ACCESS_DENIED, o ID de nó não está autorizado. Se diz NOT_FOUND, o ID de rede está errado. Se diz OK sem endereço, a atribuição de endereços do controlador é a próxima pergunta, e nenhuma dessas três se resolve entrando de novo.