
私はbind9を使ってゾーンをハイジャックしたいのですが、例えば「qq.com」の場合、私のゾーン構成は
zone "qq.com" IN {
type master;
file "db.qq.com";
forwarders { 119.29.29.29; 8.8.8.8; };
};
私のdbファイルは
[root@cenotstest named]# cat db.qq.com
$TTL 1800
@ IN SOA ns1.qq.com. my.example.com. (
20210409 ;
3H ;
15M ;
1W ;
1D ) ;
IN NS ns1.qq.com.
ns1 IN A 183.36.112.46
a IN A 1.1.1.1
a.qq.comを解決すると、以下のように正しい答えが得られます。
[root@cenotstest named]# nslookup a.qq.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: a.qq.com
Address: 1.1.1.1
しかし、「mail.qq.com」や「www.qq.com」などの他のドメインについては(おそらく私が知らないドメインが他にもたくさんあるでしょう)、これらの知らないドメインを、デフォルトで 8.8.8.8 などのフォワーダーに設定されているネーム サーバーに転送したいだけです。
しかし現在、ゾーン「qq.com」のフォワーダーは機能しません。bind9 はこれをサポートしていますか?
答え1
ドメインが設定内のどのレコードとも一致しない場合、dnsmasq は /etc/resolv.conf からネームサーバーを読み取り、デフォルトのフォワーダーとしてドメインを解決できます。したがって、bind9 もこの機能をサポートできると思います。
私の知る限り、これは実際にはdnsmasq。
ISC Bind のような通常の DNS サーバーは、再帰的または権威的のいずれかです。DNS サーバーが (サブ) ドメインに対して権威的である場合、その (サブ) ドメインの完全な情報を保持し、そのゾーン データにはそのドメインに存在するすべてのリソース レコードが含まれます (ただし、NS
レコードを使用してサブドメインを他のネーム サーバーに委任することもできます)。権威的ネーム サーバーが、そのサーバーが知らない、または委任されていないレコードを照会すると、そのサーバーに関する限り、そのレコードは存在しません。これで終わりです。
ゾーン ファイルを作成することで、存在しないすべてのレコードを委任すること (DNS ワイルド カードを使用) を試すことができます。
db.qq.com
$TTL 1800
@ IN SOA ns1.qq.com. my.example.com. (
20210409 ;
3H ;
15M ;
1W ;
1D ) ;
IN NS ns1.qq.com.
ns1 IN A 183.36.112.46
a IN A 1.1.1.1
the.original.authoritative.nameserver.for.qq.com. IN A 10.9.8.7
* IN NS the.original.authoritative.nameserver.for.qq.com.