
Estou tentando alcançar o seguinte:
- Um servidor de nomes público para meu domínio que aponta
example.com
para um endereço IP público. - Um servidor de nomes privado para o mesmo domínio executado em uma LAN que, em vez disso, aponta os clientes para um endereço IP privado na mesma LAN.
- DNSSEC ativado.
Alcançar o primeiro e o último pontos juntos é, obviamente, comparativamente fácil, então o problema é fazer o componente privado funcionar.
Em termos da minha configuração real:
- Estou usando o serviço DNS da Cloudflare, onde tenho um registro A para meu domínio apontando para um endereço IP público e DNSSEC habilitado.
- No meu registrador, adicionei um registro DS com base no que a Cloudflare me fornece e configurei os servidores de nomes da Cloudflare. Tudo isso funciona bem, como seria de esperar.
- Internamente, estou executando o Pi-Hole (definido como servidor DNS para clientes em minha LAN), que está configurado com DNSSEC habilitado e apontando para uma instância CoreDNS local como o resolvedor upstream.
- No CoreDNS, tenho uma zona configurada para
example.com
a qual é assinada com chaves geradas porcoredns-keygen
. Este possui um registro A apontando para um endereço IP interno. - Tenho um segundo registro DS em meu registrador com base na chave usada internamente pelo CoreDNS.
O que acontece:
- A configuração geral funciona para resolver domínios que não são meus.
- Pi-Hole responde
SERVFAIL
e registraABANDONED
quando tento resolver meu domínio. - Mas, se eu apontar um cliente diretamente para o CoreDNS (por exemplo, com
dig
), obtenho a resposta esperada com o endereço IP da LAN. - Além disso, se eu desabilitar o DNSSEC no Pi-Hole, tudo funcionará bem.
Então minhas perguntas são:
- O que estou tentando alcançar é possível?
- Estou começando a me perguntar se ter registros DS separados em meu registrador é errado, mas não acho que posso recuperar a chave privada que a Cloudflare está usando e nem posso fazer upload de chaves personalizadas, então não tenho certeza de como posso usar as mesmas chaves para público e privado.
- Existe alguma razão pela qual as coisas parecem funcionar se eu apontar diretamente para o CoreDNS aos meus clientes, mas o Pi-Hole se recusar a cooperar?
Obrigado!