
我們是 DNS 新手。我們正在嘗試使用 Bind 和 CentOS 為現有主伺服器設定輔助 DNS 伺服器(例如:142.250.192.110)。
我們的輔助伺服器配置如下:
listen-on port 53 { 127.0.0.1; any; };
listen-on-v6 port 53 { ::1; any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
zone "example.com" IN {
type slave;
masters { 142.250.192.110; };
file "slaves/example.forward";
};
zone "192.250.142.in-addr.arpa" IN {
type slave;
masters { 142.250.192.110; };
file "slaves/example.reverse";
};
當我們執行時,dig @127.0.0.1 host1.example.com
我們會得到正確的答案。當我們使用本機 IP(輔助伺服器)執行時,dig @192.168.1.10 host1.example.com
我們得到了正確的回應。
但是,當我們使用輔助伺服器的公用 IP/主機名稱執行命令時,例如:dig @dns2.example.com host1.example.com
我們收到以下錯誤;; connection timed out; no servers could be reached
請提出一些幫助來解決這個問題。預先感謝您的寶貴時間和幫助。
一些資訊和故障排除詳細資訊(IP 和主機名稱不是原始的):
主 DNS:142.250.192.110 (dns1.example.com)
輔助 DNS:192.168.1.10(本機 IP)、142.250.192.220(dns2.example.com)
nslookup dns2.example.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: dns2.example.com
Address: 142.250.192.220
dig @127.0.0.1 host1.example.com
- 成功
dig @192.168.1.10 host1.example.com
- 成功
dig @142.250.192.220 host1.example.com
- 失敗的。
dig @dns2.example.com host1.example.com
- 失敗的。
tcp轉儲顯示資料包傳輸,帶有dig @127.0.0.1
和dig @192.168.1.10
。但顯示無資料包傳輸,與dig @142.250.192.220
和dig @dns2.example.com
。
為了檢查防火牆是否阻止了端口 53,我們使用 tcpdump 測試了該端口,tcpdump 顯示了何時阻止了封包傳輸telnet 142.250.192.220 53
筆記:我們有一個防火牆,可以將本機 IP 與公用 IP 進行 NAT。我們正在等待網路團隊的回复,防火牆是否阻止了這個挖掘請求。
答案1
始終檢查兩台伺服器上的日誌。驗證從屬設備是否能夠取得該區域。第一步是使用dig @192.168.1.10 axfr example.com
從站手動進行傳輸,其中@192.168.1.10
主站在從站配置中。
allow-transfer { };
主設備可能需要允許從設備取得區域。同樣,所有這些都在日誌中。
始終首先檢查本地存取。使用 netstat -anp 檢查伺服器是否正常偵聽,然後再次檢查日誌。作為最後的手段,嘗試 tcpdump 看看哪些資料包去了哪裡以及是否有任何回應。