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 番目のリクエストを処理できるようになります。
答え2
これを実現するために、CoreDNS 用のプラグインを作成しました:https://github.com/kinjelom/coredns-recursor