我正在尋找一個範例配置,其中 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:53
在r1.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