DNSSEC를 사용하여 내부 및 공용 DNS를 다르게 할 수 있습니까?

DNSSEC를 사용하여 내부 및 공용 DNS를 다르게 할 수 있습니까?

나는 다음을 달성하려고 노력하고 있습니다.

  • example.com공개 IP 주소를 가리키는 내 도메인의 공개 네임서버입니다 .
  • 대신 클라이언트를 동일한 LAN의 개인 IP 주소로 가리키는 LAN 내에서 실행되는 동일한 도메인에 대한 개인 이름 서버입니다.
  • DNSSEC가 활성화되었습니다.

물론 첫 번째와 마지막 포인트를 함께 달성하는 것은 비교적 쉽기 때문에 프라이빗 구성 요소가 작동하도록 하는 것이 문제입니다.

내 실제 설정 측면에서 보면 다음과 같습니다.

  • 저는 Cloudflare의 DNS 서비스를 사용하고 있습니다. 여기서는 공용 IP 주소를 가리키는 내 도메인의 A 레코드가 있고 DNSSEC가 활성화되어 있습니다.
  • 내 등록 기관에서는 Cloudflare가 제공한 내용을 기반으로 DS 레코드를 추가하고 Cloudflare의 이름 서버를 구성했습니다. 예상한 대로 이 모든 것이 잘 작동합니다.
  • 내부적으로는 DNSSEC가 활성화되고 로컬 CoreDNS 인스턴스를 업스트림 확인자로 가리키는 Pi-Hole(내 LAN의 클라이언트에 대한 DNS 서버로 설정)을 실행하고 있습니다.
  • example.comCoreDNS에는 에서 생성된 키로 서명된 영역이 구성되어 있습니다 coredns-keygen. 여기에는 내부 IP 주소를 가리키는 A 레코드가 있습니다.
  • CoreDNS에서 내부적으로 사용하는 키를 기반으로 등록기관에 두 번째 DS 레코드가 있습니다.

무슨 일이야:

  • 일반 설정은 내 도메인이 아닌 도메인을 확인하는 데 사용됩니다.
  • Pi-Hole은 도메인 확인을 시도할 때 응답 SERVFAIL하고 기록합니다 .ABANDONED
  • 그러나 클라이언트를 CoreDNS(예: dig)로 직접 지정하면 LAN IP 주소로 예상되는 응답을 받습니다.
  • 또한 Pi-Hole에서 DNSSEC를 비활성화하면 제대로 작동합니다.

그래서 내 질문은 다음과 같습니다

  • 내가 달성하려는 것이 가능합니까?
  • 내 등록 기관에 별도의 DS 레코드를 갖는 것이 잘못된 것은 아닌지 궁금해지기 시작했지만 Cloudflare가 사용하는 개인 키를 검색할 수 없고 사용자 지정 키를 업로드할 수도 없어서 어떻게 사용할 수 있는지 잘 모르겠습니다. 공개 키와 비공개 키는 동일합니다.
  • 클라이언트를 CoreDNS에 직접 연결했지만 Pi-Hole이 협조를 거부하면 제대로 작동하는 것처럼 보이는 이유가 있나요?

감사해요!

관련 정보