Ubuntu
Bind9 DNS 伺服器連接超時
我正在我的實驗室中設置 DNS 伺服器,其中 DNS 伺服器(Ubuntu 伺服器)和客戶端(Ubuntu 桌面)位於同一個 LAN(vSwitch)中,pfsense 作為外部傳出流量的防火牆。沒有定義阻止規則,pfsense 上的一切都是開放的,因此每個虛擬機都可以相互交談,也可以訪問網際網路。
當我使用從客戶端(172.16.0.2)向 DNS 伺服器發送查詢時
nslookup facebook.com 172.16.0.7
;幾秒鐘後我得到連接超時。我還嘗試使用 Wireshark 檢查流量,並看到從 DNS 伺服器到客戶端的 ICMP 故障,如下圖所示。只是為了試一試,我
iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
在客戶端和 DNS 伺服器上為 ICMP 添加了 IPtables 規則,但沒有用。有什麼我做錯了或需要打開任何基於主機的規則或使 DNS 伺服器工作的東西嗎?
named.conf.options 文件:
acl "trusted" { 172.16.0.7; #localhost 172.16.0.1; #GW and FW 172.16.0.2; 172.16.0.3; 172.16.0.0/16; #complete subnet }; options { directory "/var/cache/bind"; dump-file "/var/cache/bind/dump.file"; recursion yes; allow-recursion { trusted; }; listen-on { 172.168.0.7; }; allow-transfer { none; }; forwarders { 8.8.8.8; 8.8.4.4; }; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation no; //listen-on-v6 { any; }; };
問題不在於使用
listen-on
本身,而在於您指定的 IP 地址。你有過
listen-on { 172.168.0.7; };
請注意 IP 地址 (
172.168.0.7
)172.16.0.7
與 Wireshark 螢幕截圖中的不同。(它與 ACL 中的其他地址不在同一網路中。)
listen-on { 172.168.0.7; };
通過從named.conf.options
文件中刪除該行並重新啟動服務,問題得到了解決 。來自這篇文章的參考: 如何配置bind9以接受來自其他機器的連接
有沒有人解釋一下監聽的確切作用以及為什麼它在我的情況下丟棄了 ICMP 數據包,如原始文章中所述?
謝謝!