Implementação de um Servidor ZeroTier Planet Privado via Docker

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.

  1. Autentique-se com o usuário admin e a senha configurada no Docker Compose.
  2. Clique em Add Network, atribua um nome e confirme em Create Network.
  3. Utilize a opção Easy Setup para definir automaticamente o endereçamento IP privado e a máscara de sub-rede.
  4. 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).

Tags: ZeroTier Docker SDN VPN Networking

Publicado em 6-11 18:19 por Thomas