如何配置 CoreDNS 以使用外部解析器解析 CNAME 記錄

如何配置 CoreDNS 以使用外部解析器解析 CNAME 記錄

我正在尋找一個範例配置,其中 CoreDNS 將從文件(文件插件)中讀取 CNAME 記錄,然後使用自訂解析器(轉發插件?)對其進行解析。客戶端不應取得 CNAME 記錄,而只能取得 A 記錄。

例如:

  • 如果客戶端向 CoreDNS 詢問test.r1.svc
  • 然後CoreDNS取得CNAME記錄test IN CNAME test.r2.svc.
  • 10.11.12.13:53然後向外國解析器詢問test.r2.svc
  • A並將記錄回覆給客戶

是否可以?

這個配置對我不起作用:

Corefile
# root
. {
  log
  errors
}

r1.svc {
  file r1.svc
  forward r2.svc 10.11.12.13:53
  log
  errors
}
r1.svc文件
$ORIGIN r1.svc.
@ 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. (
    202211241713 ; serial
    7200         ; refresh (2 hours)
    3600         ; retry (1 hour)
    1209600      ; expire (2 weeks)
    3600         ; minimum (1 hour)
)
3600 IN NS a.iana-servers.net.
3600 IN NS b.iana-servers.net.
test IN CNAME test.r2.svc.

答案1

我可能弄錯了,但它forward r2.svc 10.11.12.13:53r1.svc塊中,所以它永遠不會被調用。

Client asks for test.r1.svc
Server responds that it's a CNAME for test.r2.svc
Client asks for test.r2.svc
Server doesn't know how to process the answer

將線路移動forward r2.svc 10.11.12.13:53.區塊應該允許它處理第二個請求。

答案2

我為 CoreDNS 編寫了插件來做到這一點:https://github.com/kinjelom/coredns-recursor

在此輸入影像描述

相關內容