Linux

為什麼 nslookup 不返回我對綁定伺服器的期望?(已配置 RPZ)

  • August 5, 2014

在這個問題之前,我一直在尋求一些幫助,以找到一種方法來根據他們的 IP 地址向查詢客戶端返回不同的響應。問題在這裡得到了解答:如何選擇性地覆蓋綁定 DNS 伺服器上的一些 A 記錄?

我遵循了公認的答案,現在遇到了問題。

當我執行時:

nslookup faq.test.com 

我期望這個:

root@dev:/etc/bind# nslookup vaultofsatoshi.com
Server:     172.16.225.132
Address:    172.16.225.132#53

Non-authoritative answer:
Name:   faq.test.com
Address: 192.168.1.1

但是,我得到了這個:

root@dev:/etc/bind# nslookup faq.test.com
Server:     172.16.225.132
Address:    172.16.225.132#53

** server can't find faq.test.com: NXDOMAIN

我應該提到,查詢 google.com 或任何其他網站都可以正常工作並返回一切正常,只是我覆蓋它失敗的那些。我在下麵包含了我的配置文件,任何幫助將不勝感激。

/etc/bind/named.conf

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

/etc/bind/named.conf.options

options {
   directory "/var/cache/bind";

   forwarders {
       8.8.8.8;
       8.8.4.4;
   };

   response-policy { 
       zone "development-overrides"; 
   };

   auth-nxdomain no;    # conform to RFC1035
   listen-on-v6 { any; };
   allow-query { trusted; };
   allow-recursion { trusted; };
   recursion yes;
   dnssec-enable no;
   dnssec-validation no;
};

/etc/bind/named.conf.local

include "/etc/bind/rndc.key";

acl "trusted" {
   172.16.225.132;
   127.0.0.1;
};

include "/etc/bind/zones.override";

logging {
   channel bind_log {
       file "/var/log/named/named.log" versions 5 size 30m;
       severity info;
       print-time yes;
       print-severity yes;
       print-category yes;
   };
   category default { bind_log; };
   category queries { bind_log; };
};

/etc/bind/named.conf.default-zones

// prime the server with knowledge of the root servers
zone "." {
   type hint;
   file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
   type master;
   file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
   type master;
   file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
   type master;
   file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
   type master;
   file "/etc/bind/db.255";
};

/etc/bind/development-overrides

$TTL 1H
@                       SOA LOCALHOST. test.com (1 1h 15m 30d 2h)
                       NS  LOCALHOST.

support.test.com     A   192.168.1.1
faq.test.com         A   192.168.1.1

; do not rewrite (PASSTHRU) OK.DOMAIN.COM
*               A   rpz-passthru.

RPZ 區域中的最後一行在語法上看起來無效。

RPZ 區域的語法與正常區域的語法相同,只是對 RPZ 有特殊的語義。

考慮到這一點,很明顯,A記錄不可能具有rpz-passthru.它的價值。一條A記錄只能有一個 IPv4 地址作為它的值。

如果您查看RPZ 文件,您會發現特殊的 RPZ 指令(如rpz-passthru.)使用CNAME記錄類型。

named-checkconf -zj和/或閱讀日誌通常會有所幫助。我假設,當使用問題中的區域數據時,RPZ 區域將無法載入,並且應該有錯誤(我預計會出現關於“壞虛線四邊形”或類似內容的錯誤)。

作為一個單獨的說明,我不認為最後一行是真正需要的,它似乎只是(嘗試)明確定義預設行為是什麼。

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