Marcio Cunha

Como configurar failover de DNS no Pi-hole para alta disponibilidade

Descubra como estruturar redundância de servidores DNS locais usando instâncias sincronizadas de Pi-hole e roteamento dinâmico no homelab.

Marcio Cunha•4 min
Também disponível em:EnglishEspañol
Resumo
  • A redundância de DNS elimina o ponto único de falha quando o servidor principal para de responder na rede doméstica.
  • O roteamento dinâmico com Anycast garante que os clientes encontrem o servidor ativo sem precisar alterar ips manualmente.
  • A sincronização de listas e bloqueios entre instâncias evita discrepâncias de comportamento ao trocar de servidor.
  • A separação física do hardware garante que quedas de energia pontuais não derrubem toda a infraestrutura de nomes.
  • O monitoramento contínuo da saúde das instâncias antecipa problemas antes que os dispositivos percam a resolução.

Por que o DNS local precisa de redundância no homelab

Quem gerencia um laboratório residencial ou uma rede doméstica um pouco mais robusta sabe o peso que um servidor de nomes centralizado carrega. Quando utilizamos o Pi-hole para bloquear anúncios e organizar os endereços internos, ele se torna o cérebro de toda a navegação. Na prática, isso significa que se a máquina onde ele roda reiniciar ou apresentar problemas, a internet inteira parece cair na casa, mesmo com a operadora funcionando perfeitamente. Para evitar esse tipo de dor de cabeça, criar uma estratégia de alta disponibilidade com duas instâncias trabalhando juntas deixa de ser luxo e passa a ser uma necessidade operacional.

Em uma arquitetura padrão, costumamos apontar o endereço do Pi-hole diretamente nas configurações do roteador ou via DHCP (o protocolo que distribui os endereços IP para os aparelhos da rede). Se esse único servidor falhar, os dispositivos ficam sem saber para onde enviar os pedidos de tradução de endereços, travando o acesso a qualquer site. Antes de avançarmos para a solução, vale lembrar que configurar redundância de rede envolve conceitos parecidos com o que discutimos ao configurar failover automático de internet no OpenWrt, onde o tráfego precisa encontrar um caminho alternativo sem intervenção humana.

A arquitetura ideal com instâncias sincronizadas

A ideia básica por trás da alta disponibilidade é simples na teoria, mas exige cuidado na execução: precisamos de pelo menos dois servidores Pi-hole independentes rodando em hardwares separados, como dois mini PCs diferentes ou um servidor principal e um Raspberry Pi esquecido na gaveta. Se um deles parar de responder, o segundo assume o trabalho de forma transparente. Para que isso funcione sem surpresas desagradáveis, as duas instâncias precisam manter as mesmas listas de bloqueio, os mesmos registros locais (os apelidos que damos para as nossas máquinas) e as mesmas regras de encaminhamento.

Manter esses dados iguais manualmente é um convite ao caos, já que qualquer alteração pontual exigiria repetição em dobro. É aqui que entram ferramentas de sincronização, como o Gravity-Sync, que conectam os dois servidores por baixo dos panos e mantêm tudo alinhado de forma automatizada. Na prática, você faz uma alteração no servidor principal e a ferramenta cuida de replicar os arquivos de configuração para o servidor secundário em poucos segundos, garantindo consistência na ponta.

Configurando o roteamento dinâmico e os endereços IP

O grande desafio no DNS residencial é que a maioria dos dispositivos de consumo aceita apenas dois endereços de servidores de nomes (o primário e o secundário). Se colocarmos o IP do primeiro Pi-hole e o IP do segundo Pi-hole, o sistema operacional dos computadores e celulares vai alternar entre eles de maneira imprevisível. Algumas aplicações podem mandar consultas para o secundário e acabar recebendo respostas diferentes se os servidores não estiverem perfeitamente sincronizados no mesmo instante.

Para contornar esse comportamento errático, uma abordagem avançada de engenharia utiliza roteamento dinâmico ou endereços virtuais compartilhados (com o auxílio do protocolo VRRP, que permite que duas máquinas dividam o mesmo endereço IP de forma inteligente). Quando a primeira máquina deixa de responder aos batimentos cardíacos de rede, a segunda assume imediatamente o IP virtual. Assim, para os dispositivos da rede, absolutamente nada mudou e o serviço continua fluindo sem interrupções perceptíveis.

Passo a passo para implantar a segunda instância

A implantação do segundo servidor exige um planejamento prévio do endereço de rede e dos pacotes instalados. O procedimento abaixo resume a preparação inicial da máquina secundária antes de ativar a sincronização automatizada com a primária.

  1. Instale o sistema operacional base (como o Debian ou Raspberry Pi OS) no hardware secundário e atribua um endereço IP estático na sua rede local.
  2. Execute o script de instalação oficial do Pi-hole utilizando o comando padrão no terminal para garantir a mesma versão base:
    curl -sSL https://install.pi-hole.net | bash
  3. Configure as mesmas opções de encaminhamento de DNS upstream (como o Cloudflare ou o Google) que você utiliza na sua primeira instância, garantindo respostas padronizadas.

Depois de concluir essa etapa inicial, os dois servidores estarão prontos para receber a camada de sincronização e começar a operar em conjunto na sua infraestrutura. Para complementar essa implementação em produção, vale conferir também nossas análises técnicas sobre Placa-mãe em curto? Como achar o componente queimado com fonte e Como inspecionar tráfego MQTT de dispositivos IoT com Wireshark.

Validação e boas práticas de operação

Com as duas instâncias rodando e sincronizadas, chegou o momento de testar a resiliência do sistema antes de relaxar. Desligue fisicamente a tomada do seu servidor principal e observe o comportamento dos computadores e celulares conectados à rede. Se a configuração de IP virtual ou de múltiplos servidores estiver correta, a navegação não deve sofrer interrupções perceptíveis, e as consultas de DNS continuarão sendo resolvidas pelo servidor de backup de forma totalmente transparente.

Monitore também o uso de recursos para garantir que os hardwares escolhidos suportem a carga e não apresentem gargalos inesperados. Uma infraestrutura bem planejada no homelab evita que problemas corriqueiros na rede transformem uma noite de descanso em uma sessão interminável de solução de problemas manuais.