Para estabelecer uma infraestrutura de rede definida por software (SDN) totalmente indepenednte da infraestrutura oficial da ZeroTier, é necessário configurar um controlador próprio, comumente chamado de "Planet". Esta abordagem garante maior controle sobre a latência e a privacidade dos dados.
Requisitos do Sistema
- Servidor com endereço IP público estático.
- Portas de rede liberadas no firewall: 4000 (TCP), 9993 (TCP/UDP) e 3180 (TCP).
- Ambiente com Docker e Docker Compose devidamente instalados.
Configuração do Ambiente de Orquestração
O primeiro passo consiste na definição do arquivo docker-compose.yml. Este arquivo gerencia o container do controlador e a interface administrativa (ztncui).
version: '3.8'
services:
zt-controller-node:
image: keynetworks/ztncui
container_name: zero-planet-service
restart: unless-stopped
environment:
- MYADDR=SEU_IP_PUBLICO
- HTTP_PORT=4000
- HTTP_ALL_INTERFACES=yes
- ZTNCUI_PASSWD=sua_senha_segura
ports:
- '4000:4000'
- '9993:9993'
- '9993:9993/udp'
- '3180:3180'
volumes:
- './storage/zt-data:/var/lib/zerotier-one'
- './storage/zt-conf:/opt/key-networks/ztncui/etc'
Substitua SEU_IP_PUBLICO pelo endereço real do seu servidor e defina uma credencial forte em ZTNCUI_PASSWD.
Inicialização do Serviço
Navegue até o diretório onde o arquivo foi criado e execute o comando de subida do container:
docker-compose up -d
Patch e Geração dos Arquivos Planet/Moon
Para transformar a instância em um nó "Planet", é necessário aplicar scripts de patch dentro do container. Certifique-se de que os binários de geração (mkmoonworld-x86_64 e patch.sh) estejam presentes no diretório atual.
# Transferência dos utilitários para o container
docker cp mkmoonworld-x86_64 zero-planet-service:/tmp
docker cp patch.sh zero-planet-service:/tmp
# Execução do processo de patching
docker exec -it zero-planet-service bash /tmp/patch.sh
# Reinicialização para aplicar as alterações
docker restart zero-planet-service
Caso ocorram erros de permissão, atribua privilégios de execução aos scripts locais antes da cópia usando chmod +x.
Configuração da Rede via Interface Web
Acesse o painel de controle através do navegador utilizando o endereço http://IP_DO_SERVIDOR:4000.
- Autentique-se com o usuário
admine a senha configurada no Docker Compose. - Clique em Add Network, atribua um nome e confirme em Create Network.
- Utilize a opção Easy Setup para definir automaticamente o endereçamento IP privado e a máscara de sub-rede.
- Anote o Network ID gerado; ele será fundamental para a conexão dos clientes.
Exportação do Arquivo de Configuração Planet
O arquivo planet gerado é o "DNA" da sua rede privada. Ele deve ser distribuído para todos os dispositivos clientes que farão parte desta rede para que eles ignorem os servidores globais da ZeroTier e utilizem o seu controlador.
Localização padrão baseada no volume configurado:
./storage/zt-data/planet
Este arquivo deverá substituir o arquivo planet original nas máquinas clientes (geralmente localizados em /var/lib/zerotier-one/ no Linux ou na pasta de instalação no Windows/macOS).