Linux

Virtualmin (/var/lib/bind/mydomain.com.hosts) 中的錯誤導致“未知 RR 類型” - 阻止區域載入和 DNS 傳播

  • July 12, 2019

前幾天我遇到了一個奇怪的情況,我將註冊商的 DNS 記錄指向我自己的 DNS 伺服器,但 DNS 沒有傳播。我以前成功地做到了這一點,並且直到現在都覺得這是微不足道的。因此,當域名的傳播時間超過 2 天時,我決定與我的註冊商對質,他將我指向http://leafdns.com,其中說明了以下內容:

ns1.mydomain.com - 名稱伺服器對 mydomain.com 不具有權威性 ns2.mydomain.com - 名稱伺服器對 mydomain.com 不具有權威性 父名稱伺服器列出的名稱伺服器都不是對您的域具有響應性和權威性。此錯誤是致命的,並且域無法解析。

我對為什麼會發生這種情況感到困惑,所以我訪問了其他服務,例如https://viewdns.info/dnsreport/指出了這一點:

檢查所有名稱伺服器是否響應:糟糕!父伺服器上列出的以下名稱伺服器未響應 DNS 請求:ns1.mydomain.com ns2.mydomain.com

名稱伺服器允許 TCP 連接:糟糕!我們無法在埠 53 上使用 TCP 連接到以下名稱伺服器:ns1.mydomain.com ns2.mydomain.com

我開始認為我的防火牆出了點問題,所以從昨天開始我一直在搞砸,直到我允許所有流量通過,卻發現上述報告沒有任何變化!發生了什麼事?唯一剩下的就是 BIND。BIND 中一定有問題。為什麼不通信?我之前確實快速查看了 syslog,但沒有發現任何錯誤。

所以我檢查了 BIND 狀態,重新啟動它並再次檢查狀態。沒什麼好寫的。

所以我決定清空 syslog 並重新啟動 BIND。我逐行檢查 syslog 並看到了這一點,這引起了我的注意:

/var/lib/bind/mydomain.com.hosts:20: unknown RR type 'mydomain.com.'
zone mydomain.com/IN: loading from master file /var/lib/bind/mydomain.com.hosts failed: unknown class/type
zone mydomain.com/IN: not loaded due to errors.
all zones loaded

我打開 /var/lib/bind/mydomain.com.hosts ,果然在第 20 行是阻止 BIND 為我的 ns1 載入區域的問題。

mydomain.com. IN CAA 0 issue "letsencrypt.org"   mydomain.com. IN CAA 0 issuewild ";"

刪除這條線修復了所有問題,區域載入並且 BIND 再次開始與他的同行交談。

原因是這條線被錯誤地定義了。

該行應該在 2 個單獨的行上定義,如下所示:

mydomain.com. IN CAA 0 issue "letsencrypt.org"
mydomain.com. IN CAA 0 issuewild ";"

希望這對其他人有一些幫助。

**更新:**經過進一步調查,我發現這是由 Virtualmin 中的錯誤引起的,正如我在此錯誤報告中概述的那樣:https ://www.virtualmin.com/node/66527 。

如果您在 Virtualmin>System Settings>Server Templates>Default Settings>BIND DNS domain>BIND DNS 記錄中為新域指定 2 行或更多行,則無論何時創建新域,這些行都會合併為一行。這是問題的根本原因。

引用自:https://unix.stackexchange.com/questions/528044