Skip to content

Pi-hole e DNS

O Pi-hole é responsável pela resolução DNS interna do ambiente e sustenta o funcionamento do split DNS, permitindo que os serviços do homelab sejam acessados corretamente dentro da rede.

Esta página deve ser usada como referência operacional para diagnóstico de problemas de acesso.


  • fornecer resolução DNS interna estável
  • permitir split DNS para serviços do homelab
  • reduzir impacto de falhas de um único resolvedor
  • facilitar troubleshooting de acesso e conectividade

ComponentePrimárioBackupEndereço
Pi-holeRPiNAS (macvlan)192.168.1.11 / 192.168.1.12
DHCPUniFi-entrega DNS aos clientes
  • alterações devem ser feitas primeiro no Pi-hole do RPi
  • sincronização entre instâncias via Nebula Sync
  • UniFi DHCP distribuindo os dois DNS
  • registros de split DNS consistentes com o VIP do proxy
  • conectividade entre clientes e ambos os resolvedores
Terminal window
nslookup git.scultetus.dev.br
nslookup git.scultetus.dev.br 192.168.1.11
nslookup git.scultetus.dev.br 192.168.1.12
dig git.scultetus.dev.br
  • failover por múltiplos DNS não é HA imediato
  • cliente pode insistir no DNS primário e demorar a alternar
  • cache local pode mascarar correções
  • 20/04/2026

InstânciaPapelLocalObservação
Pi-hole principalDNS principal da redeRaspberry Pihost 24/7 (192.168.1.11)
Pi-hole backupcontingência / failoverNASmacvlan (192.168.1.12)

O Pi-hole backup no NAS utiliza uma rede dedicada via Docker macvlan:

  • interface própria na rede (192.168.1.12)
  • isolamento da rede bridge padrão do Docker
  • evita conflito com portas (especialmente DNS/53)

Isso permite que o Pi-hole funcione como um host independente na rede.


ComponenteFunçãoObservação
Nebula Syncsincroniza configuração entre os Pi-holesmantém listas, settings e consistência
  • garante consistência entre instâncias
  • evita divergência de bloqueios e registros locais
  • reduz esforço manual de manutenção

ℹ️ Alterações devem ser feitas preferencialmente no Pi-hole principal.


ComponentePapel
UniFi DHCPdistribui servidores DNS aos clientes
Pi-holeresolve domínios internos e externos
CloudflareDNS autoritativo externo
Split DNSresolve domínios internos para IP local

Cliente → DHCP (UniFi) → DNS recebido (Pi-hole)
Pi-hole resolve:
- domínio interno → IP local
- domínio externo → upstream

DomínioResultado esperado
git.scultetus.dev.brIP interno (NAS)
mantis.scultetus.dev.brIP interno
portainer.scultetus.dev.brIP interno
pihole.scultetus.dev.brIP do Pi-hole

  • evitar hairpin NAT
  • reduzir latência
  • manter acesso consistente interno/externo
  • garantir que o proxy funcione corretamente

OrdemServidorPapel
1Pi-hole no RPiprincipal
2Pi-hole no NASbackup

  • DHCP entrega múltiplos DNS
  • cliente decide qual usar
  • fallback ocorre apenas após falha percebida
  • caches influenciam o comportamento

⚠️ Esse modelo não é alta disponibilidade real

  • troca não é imediata
  • alguns clientes insistem no DNS primário
  • falhas podem parecer intermitentes
  • comportamento varia por sistema operacional

  • NAS não é 24/7
  • split DNS incorreto gera inconsistência
  • cache local pode mascarar mudanças
  • múltiplos registros podem gerar respostas duplicadas

Terminal window
nslookup git.scultetus.dev.br

ou:

Terminal window
dig git.scultetus.dev.br

Terminal window
nslookup git.scultetus.dev.br 192.168.1.11

👉 confirma se o Pi-hole está correto


macOS:

Terminal window
scutil --dns

ou:

Terminal window
ipconfig getpacket en0

Terminal window
curl -I http://IP_DO_SERVIÇO

👉 se isso funciona, o problema não é DNS


Terminal window
curl -k -I https://git.scultetus.dev.br

Terminal window
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Terminal window
nslookup git.scultetus.dev.br

→ observar qual servidor respondeu (principal ou backup)

👉 útil para verificar comportamento de failover


SintomaInterpretação
resolve para IP públicosplit DNS não aplicado
alterna IPcache antigo
interno falha / externo funcionaDNS interno errado
resolve mas não conectaproblema no proxy
resposta duplaconflito DNS interno + externo

Resolveu o nome?
↓ não → DNS
↓ sim
Conecta no IP?
↓ não → serviço
↓ sim
HTTPS funciona?
↓ não → proxy / SSL / Authelia

  • manter RPi como DNS principal
  • configurar dois DNS no DHCP
  • padronizar nomes internos
  • revisar registros após mudanças
  • sempre validar DNS antes do proxy
  • documentar alterações relevantes

ℹ️ O VIP 192.168.1.20 com keepalived é utilizado pelo Nginx Proxy Manager (NPM), não pelo Pi-hole.


  • DHCP → UniFi
  • DNS principal → Pi-hole (RPi)
  • DNS backup → Pi-hole (NAS)
  • DNS externo → Cloudflare
  • Proxy → NPM (VIP + keepalived)