![BIND と Cloudflare による DNS 委任](https://rvso.com/image/769304/BIND%20%E3%81%A8%20Cloudflare%20%E3%81%AB%E3%82%88%E3%82%8B%20DNS%20%E5%A7%94%E4%BB%BB.png)
おそらく普通の質問でしょうが、私は何ヶ月もこれに何時間も費やしてきました。他のログ/出力/説明などが必要な場合は、お気軽にお尋ねください :)
前もって感謝します!
必要なもの
- ゾーンは
local.example.com
ローカルサーバーによって管理される10.20.0.9
- ローカルサーバー(10.20.0.0/24)はネットワーク内からのみアクセス可能です。しかし
- ホスト名は
xxx.local.example.com
インターネットから世界中で解決可能です
これまでのところ
私はDNSプロバイダーとしてCloudFlareを使用しています。このガイド、私は以下を設定しました:
- CloudFlare の記録:
ns.example.com A 10.20.0.9 (local DNS server) loc.example.com NS ns.example.com (delegation to local DNS)
- ローカル DNS サーバーのレコード ファイル (
10.20.0.9
bind9 を使用)loc.example.com. IN SOA ns.example.com. hostmaster.example.com. ( 1628517915 3600 600 24H 3600 ) s1.loc.example.com. IN A 10.20.0.9
私の問題
loc.example.com
CloudFlare は、期待どおりにの NS ルックアップ要求に応答しませんns.example.com
。代わりに、要求は「サーバー障害」で失敗します (最後の CLI ログを参照)...
CLI出力
dig ns.example.com
; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> ns.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10036 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;ns.example.com. IN A ;; ANSWER SECTION: ns.example.com. 300 IN A 10.20.0.9 ;; Query time: 111 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) ;; WHEN: Mon Aug 09 16:42:06 CEST 2021 ;; MSG SIZE rcvd: 66
つまり、ネーム サーバーはローカル IP に解決されます。すばらしいですね。
dig @10.20.0.9 NS loc.example.com
; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @10.20.0.9 NS loc.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47653 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7fa7e218d1c20f1e113b236e61113fb96c1b101d374cbde7 (good) ;; QUESTION SECTION: ;loc.example.com. IN NS ;; ANSWER SECTION: loc.example.com. 3600 IN NS ns.example.com. ;; Query time: 1 msec ;; SERVER: 10.20.0.9#53(10.20.0.9) ;; WHEN: Mon Aug 09 16:46:17 CEST 2021 ;; MSG SIZE rcvd: 96
ローカルDNSサーバーはサブドメインの責任を負っていることを認識しています
dig @10.20.0.9 s1.loc.example.com
; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @10.20.0.9 s1.loc.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38039 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7790b2d359140e5f04be8596611140927c7321fefc1fbbe9 (good) ;; QUESTION SECTION: ;s1.loc.example.com. IN A ;; ANSWER SECTION: s1.loc.example.com. 3600 IN A 10.20.0.1 ;; AUTHORITY SECTION: loc.example.com. 3600 IN NS ns.example.com. ;; Query time: 1 msec ;; SERVER: 10.20.0.9#53(10.20.0.9) ;; WHEN: Mon Aug 09 16:49:54 CEST 2021 ;; MSG SIZE rcvd: 119
ローカルDNSはローカルホストを解決できる
dig @1.1.1.1 NS loc.example.com
; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @1.1.1.1 NS loc.example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 33748 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; OPT=15: 00 16 ("..") ;; QUESTION SECTION: ;loc.example.com. IN NS ;; Query time: 12 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) ;; WHEN: Mon Aug 09 16:51:45 CEST 2021 ;; MSG SIZE rcvd: 57
ここに問題があります:CloudFlare は NS レコード リクエストに応答しません。なぜでしょうか :o ?