Domain-Name-System
BIND9 - dig 無法從不同的伺服器解析
$ named -v BIND 9.16.1-Ubuntu (Stable Release) <id:d497c32>
我在 digitalocean nyc1 中配置了 3 台伺服器,它們都在同一個子網中
在 server01 上 - 我已經安裝了 bind9 並配置了區域,效果很好
server01 $ dig @10.116.16.2 -p 53 ns1.prod.nyc1.example ... ;; ANSWER SECTION: ns1.prod.nyc1.example. 43200 IN A 10.116.16.2
當我在 server01 上時,這很好用
來自 server02(也在同一個子網中)
server02 $ dig @10.116.16.2 -p 53 ns1.prod.nyc1.example ; <<>> DiG 9.16.1-Ubuntu <<>> @10.116.16.2 -p 53 ns1.prod.nyc1.example ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
但是我可以從 server02 telnet 到它
server02 $ telnet 10.116.16.2 53 Trying 10.116.16.2... Connected to 10.116.16.2. Escape character is '^]'.
現在當我在 server01 上重新啟動
sudo systemctl restart bind9
時,它在 server02 上斷開連接這裡是
/etc/bind/named.conf.options
options { directory "/var/cache/bind"; recursion yes; listen-on port 53 { any; }; allow-query { any; }; allow-recursion { any; }; dnssec-enable no; dnssec-validation no; auth-nxdomain no; # conform to RFC1035 }; include "/etc/bind/consul.conf";
我究竟做錯了什麼?查找在 server01 上工作,但從不同的伺服器它不起作用
我看了 -內部 DNS 設置$$ Bind9 $$,無法從另一台機器探勘,但能夠在本地探勘,但這並不能解決我的問題
telnet
使用 TCP 而 DNS (dig
) 預設使用 UDP 但也使用 TCP,這種差異可以解釋您觀察到的情況。嘗試
dig +tcp
強制 TCP 連接,它可能會成功,證明您在不應該的地方過濾 UDP。在您的系統中刪除對 UDP 的過濾,一切都應該開始按預期工作。