Ich versuche Folgendes zu erreichen:
- Ein öffentlicher Nameserver für meine Domain, der
example.com
auf eine öffentliche IP-Adresse verweist. - Ein privater Nameserver für dieselbe Domäne, der innerhalb eines LAN ausgeführt wird und Clients stattdessen auf eine private IP-Adresse im selben LAN verweist.
- DNSSEC aktiviert.
Den ersten und letzten Punkt gleichzeitig zu erreichen, ist natürlich vergleichsweise einfach, das Problem besteht also darin, die private Komponente zum Funktionieren zu bringen.
In Bezug auf mein tatsächliches Setup:
- Ich verwende den DNS-Dienst von Cloudflare, wo ich einen A-Eintrag für meine Domäne habe, der auf eine öffentliche IP-Adresse verweist und DNSSEC aktiviert hat.
- Bei meinem Registrar habe ich einen DS-Eintrag basierend auf dem hinzugefügt, was Cloudflare mir gibt, und die Nameserver von Cloudflare konfiguriert. All das funktioniert wie erwartet einwandfrei.
- Intern verwende ich Pi-Hole (als DNS-Server für Clients in meinem LAN eingerichtet), das mit aktiviertem DNSSEC konfiguriert ist und auf eine lokale CoreDNS-Instanz als Upstream-Resolver verweist.
- In CoreDNS habe ich eine Zone konfiguriert,
example.com
die mit von generierten Schlüsseln signiert istcoredns-keygen
. Diese hat einen A-Eintrag, der auf eine interne IP-Adresse verweist. - Ich habe bei meinem Registrar einen zweiten DS-Eintrag, der auf dem von CoreDNS intern verwendeten Schlüssel basiert.
Was geschieht:
- Das allgemeine Setup funktioniert zum Auflösen von Domänen, die nicht mir gehören.
- Pi-Hole antwortet
SERVFAIL
und protokolliert,ABANDONED
wenn ich versuche, meine Domäne aufzulösen. - Wenn ich einen Client jedoch direkt auf CoreDNS verweise (z. B. mit
dig
), erhalte ich die erwartete Antwort mit der LAN-IP-Adresse. - Auch wenn ich DNSSEC in Pi-Hole deaktiviere, funktioniert es einwandfrei.
Meine Fragen sind also:
- Ist das, was ich erreichen möchte, überhaupt möglich?
- Ich frage mich allmählich, ob es falsch ist, bei meinem Registrar separate DS-Einträge zu haben, aber ich glaube nicht, dass ich den von Cloudflare verwendeten privaten Schlüssel abrufen kann, und ich kann auch keine benutzerdefinierten Schlüssel hochladen. Daher bin ich mir nicht sicher, wie ich dieselben Schlüssel für öffentliche und private Zwecke verwenden kann.
- Gibt es einen Grund, warum die Dinge scheinbar funktionieren, wenn ich meine Clients direkt auf CoreDNS verweise, Pi-Hole jedoch die Zusammenarbeit verweigert?
Danke!