如何將區域的某些子網域轉送到預設轉發器

如何將區域的某些子網域轉送到預設轉發器

我想使用bind9劫持一個區域,例如“qq.com”,我的區域配置是

zone "qq.com" IN {
  type master;
  file "db.qq.com";
  forwarders { 119.29.29.29; 8.8.8.8; };
};

我的資料庫檔案是

[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也可以支援這個功能。

這實際上是 AFAIK 的一個獨特功能網域解析

普通的 DNS 伺服器(例如 ISC Bind)要么是遞歸的,要么是權威的。當它們對某個(子)域具有權威時,它們掌握該(子)域的完整事實,並且它們的區域資料包含該域存在的所有資源記錄(儘管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.

相關內容