DNSSEC で内部 DNS とパブリック DNS を別々にすることは可能ですか?

DNSSEC で内部 DNS とパブリック DNS を別々にすることは可能ですか?

私は次のことを達成しようとしています:

  • example.comパブリック IP アドレスを指すドメインのパブリック ネーム サーバー。
  • LAN 内で実行されている同じドメインのプライベート ネームサーバー。代わりに、クライアントを同じ LAN 上のプライベート IP アドレスにポイントします。
  • DNSSECが有効です。

もちろん、最初のポイントと最後のポイントを同時に達成するのは比較的簡単ですが、問題はプライベート コンポーネントを機能させることです。

私の実際のセットアップに関しては:

  • 私は Cloudflare の DNS サービスを使用しており、ドメインの A レコードがパブリック IP アドレスを指し、DNSSEC が有効になっています。
  • 私のレジストラでは、Cloudflare から提供されたものに基づいて DS レコードを追加し、Cloudflare のネームサーバーを構成しました。予想どおり、これらはすべて正常に動作します。
  • 内部的には、DNSSEC が有効に設定され、アップストリーム リゾルバとしてローカル CoreDNS インスタンスを指す Pi-Hole (LAN 上のクライアントの DNS サーバーとして設定) を実行しています。
  • example.comCoreDNS には、によって生成されたキーで署名された のゾーンが設定されていますcoredns-keygen。これには、内部 IP アドレスを指す A レコードがあります。
  • CoreDNS が内部的に使用するキーに基づいて、レジストラに 2 番目の DS レコードがあります。

何が起こるのですか:

  • 一般的な設定は、自分のものではないドメインを解決するために機能します。
  • ドメインを解決しようとすると、Pi-Hole が応答してSERVFAILログに記録します。ABANDONED
  • ただし、クライアントを CoreDNS に直接ポイントすると ( などを使用dig)、LAN IP アドレスで期待される応答が返されます。
  • また、Pi-Hole で DNSSEC を無効にすると、正常に動作します。

私の質問は次のとおりです:

  • 私が達成しようとしていることは可能なのでしょうか?
  • レジストラに別々の DS レコードがあるのは間違っているのではないかと思い始めていますが、Cloudflare が使用している秘密キーを取得したり、カスタム キーをアップロードしたりすることはできないと思うので、公開キーと秘密キーに同じキーを使用する方法がわかりません。
  • クライアントを CoreDNS に直接ポイントすると正常に動作しているように見えるのに、Pi-Hole が協力を拒否するのはなぜでしょうか?

ありがとう!

関連情報