Linux
為什麼 nslookup 不返回我對綁定伺服器的期望?(已配置 RPZ)
在這個問題之前,我一直在尋求一些幫助,以找到一種方法來根據他們的 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 區域將無法載入,並且應該有錯誤(我預計會出現關於“壞虛線四邊形”或類似內容的錯誤)。作為一個單獨的說明,我不認為最後一行是真正需要的,它似乎只是(嘗試)明確定義預設行為是什麼。