Linux

在 Linux 上使用命名的條件 DNS 轉發

  • October 5, 2020

我有一個以 DNS 解析命名的 Centos 5.2 伺服器——它不保存任何自己的資訊,只轉發所有請求。從named.conf:

options {
[...]
       forwarders { 1.1.1.1; 1.1.1.2; };
};

named.conf 中的所有其他行都保留為預設值。

我想更改配置,以便將 newdomain.com 下的任何請求傳遞到 22.22.22.22,而對任何其他地址的請求傳遞到 1.1.1.1 或 1.1.1.2

如何在此伺服器上配置 DNS 來執行此操作?

呵呵,在自己動手之前,我對之前的答案投了贊成票。

對,所以,如果您編輯named.conf並添加以下內容:

zone "newdomain.com" {
   type forward;
   forward only;
   forwarders { 22.22.22.22; };
};

現在您將無法輕鬆地進行反向查找,您必須修改以下區域語句以使域的 IP 地址有意義(這最初是 192.168.80.0/24 的反向)。

zone "80.168.192.in-addr.arpa" {
   type forward;
   forward only;
   forwarders { 22.22.22.22; };
};

進行更改後,您應該

  1. 檢查您是否沒有修改配置文件: named-checkconf
  2. 告訴 bind 重新載入它的配置:( rndc reload 更喜歡/etc/init.d/bind reload

請記住,這將返回域的非權威答案。解決這個問題的方法(並在遠端 DNS 出現問題時提供更好的本地記憶體)將充當區域的從屬。


編輯以添加forward only;語句。這將導致查詢在嘗試轉發器中指定的伺服器後失敗,而不是失敗然後嘗試標準查找。還進行了編輯以將 /etc/init.d/bind reload 更改為rndc reload在評論中的建議之後。

引用自:https://serverfault.com/questions/99101