在VPS上配置bind以使用域名作為同域的nameserver
我正在嘗試在 VPS 上配置綁定以生成
ns1.example.com
並ns2.example.com
指向它(已經完成)並使其服務example.com
。我之前在同一台機器上使用過 webmin,並且 webmin 配置了綁定,並且它工作。一段時間後,我不得不轉移到另一個面板,現在我無法完成這項工作。
- 在我的域面板上,我已經將 VPS 的 IP 配置
ns1.example.com
為ns2.example.com
“兒童 NS”。- 我在debian上使用綁定。
- VPS 名稱(由於某種我不清楚的原因無法更改)是
example.serverdomain
.- 剛剛測試了防火牆,它在埠 53 上打開。
- 我實際上複製了 webmin 創建的 99% 的配置文件,這些文件曾經可以工作。
/etc/bind/named.conf.local
文件是:zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-transfer { 127.0.0.1; localnets; }; };
/etc/bind/db.example.com
文件是:$ttl 1D $ORIGIN example.com @ IN SOA example.serverdomain. root.example.serverdomain.( 20051901 ;Serial 10800 ;Refresh 3600 ;Retry 604800 ;Expire 38400 ;Negative Cache TTL ) @ IN NS example.serverdomain. example.com. IN NS ns1.example.com. example.com. IN NS ns2.example.com. example.com. IN A 51.222.30.103 www.example.com. IN A 51.222.30.103 ftp.example.com. IN A 51.222.30.103 localhost.example.com. IN A 127.0.0.1 mail.example.com. IN A 51.222.30.103 example.com. IN MX 5 mail.example.com.
我在 intodns.com 上進行了測試,我得到了這個
不匹配的 NS 記錄 警告:您的一個或多個名稱伺服器未返回您的任何 NS 記錄。錯誤
DNS 伺服器已響應錯誤:您的一個或多個名稱伺服器未響應:未響應的是:51.222.30.103
那麼…… 配置有什麼問題?
在我看來,這與您的 DNS 伺服器無關。
當您有父域的子域記錄時,您需要粘合記錄。這些是根名稱伺服器中的條目,將這些域硬編碼為 IP 地址。聽起來這些需要更新以使您的 DNS 正常工作 - 與您的註冊商討論它,因為這不是在您的名稱伺服器上完成的。
請記住,權威名稱伺服器有技術要求。那裡也提到了阻止您的名稱服務工作的目前配置問題:
膠水與權威數據的一致性
對於將 IP 地址列為粘合的名稱伺服器,IP 地址必須與該主機的權威 A 和 AAAA 記錄匹配。
您已通過註冊商將必要的粘合記錄添加到父區域,但區域本身沒有相應的
A
記錄,即您的區域失去:ns1.example.com. IN A 51.222.30.103 ns2.example.com. IN A 51.222.30.103
現在,還有另一個問題:兩者都指向同一個伺服器。那不行:
名稱伺服器的最小數量
一個委託中必須至少列出兩個 NS 記錄,並且主機不得解析到相同的 IP 地址。
網路多樣性
名稱伺服器必須位於至少兩個拓撲分離的網路中。網路被定義為 BGP 路由表中的源自治系統。通過檢查 BGP 路由表的視圖來評估要求。
您的註冊商或 VPS 提供商都可以提供輔助名稱伺服器作為服務。這應該在建構自己的名稱服務之前解決,但由於您的註冊商已經允許您為兩個名稱伺服器使用相同的 IP 地址,因此您仍有時間解決此問題。一些註冊商在允許更改名稱伺服器之前會執行測試。(在過去的美好時光,例如
.fi
當局對此非常嚴格,錯誤配置的名稱伺服器甚至可能導致完全取消域。)最後,你的
SOA
記錄也有問題。它應該具有您的主要權威名稱伺服器的有效 FQDN 主機名(MNAME
) 和負責該區域的管理員的工作電子郵件地址 (RNAME
),例如hostmaster@example.com
:example.com. IN SOA ns1.example.com. hostmaster.example.com. 2020052000 10800 3600 604800 38400