ゾーンのサブドメインをデフォルトのフォワーダーに転送する方法

ゾーンのサブドメインをデフォルトのフォワーダーに転送する方法

私は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.

関連情報