Linux
綁定區域錯誤 - 輸入意外結束
Everyting 似乎沒問題,但我得到了 Unexpected end of input :
$TTL 10800 @ IN SOA ns1.riddimdub.com. admin.radiohost.riddimdub.com. ( 1 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 3600 ) ; Negative caching TTL of 1 day @ IN NS ns1.riddimdub.com. @ IN NS ns2.riddimdub.com. radiohost.riddimdub.com. IN MX 10 radiohost.riddimdub.com. radiohost.riddimdub.com. IN A 185.40.20.124 ns1 IN A 185.40.20.124 ns2 IN A 185.40.20.124 www IN CNAME radiohost.riddimdub.com. mail IN A 185.40.20.124 ftp IN CNAME radiohost.riddimdub.com.
我還得到了 Unexpected RR type 10800。
可能是什麼問題呢?
作為人類,我可以將文件的這一部分辨識為應該是
SOA
記錄的內容:@ IN SOA ns1.riddimdub.com. admin.radiohost.riddimdub.com. ( 1 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 3600 ) ; Negative caching TTL of 1 day
但是,如果這些行被正確解析,那麼上面的實際意思並不是這樣。
問題
由於主文件格式使用換行符作為記錄之間的分隔符*,因此記錄數據的第一個欄位之後的換行符意味著這應該是
SOA
記錄:@ IN SOA ns1.riddimdub.com.
*) 除了可以花哨並使用括號 (
( )
) 以跨多行的方式格式化單個記錄(純粹是出於樣式/人類可讀性的原因)。由於一條
SOA
記錄必須有七個記錄數據欄位,但這個假定SOA
記錄只有一個欄位,因此您會收到“輸入意外結束”錯誤。(我完全希望原始錯誤消息也引用了發生這種情況的行號。)
SOA
接下來,當其餘的記錄數據從下一行開始並被視為下一條記錄時,您會遇到二次故障。在那裡您使用了括號,因此整個位被讀取為跨多行的單個記錄。
然後將假定的“下一條記錄”解釋為:
admin.radiohost.riddimdub.com. 1 10800 ... ^ ^ ^ owner name ttl "must be the record type, I guess"?!
這會導致“未知 RR 類型 10800”錯誤消息。
這個錯誤並不是那麼重要,只要你解決了第一個問題,它就會消失,這會
SOA
在錯誤的上下文中留下一半的記錄價值。修復
有多種寫法:
SOA
最簡單的(不使用花哨的語法,對於記錄實際包含的內容可能是最直覺的):@ IN SOA ns1.riddimdub.com. admin.radiohost.riddimdub.com. 1 10800 3600 604800 3600
很常見的多行格式,為註釋串列和計時器騰出空間:
@ IN SOA ns1.riddimdub.com. admin.radiohost.riddimdub.com. ( 1 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 3600 ) ; Negative caching TTL of 1 hour
另一種選擇,如果您想註釋所有內容:
@ IN SOA ns1.riddimdub.com. ( ; Mname (master nameserver) admin.radiohost.riddimdub.com. ; Rname (email address) 1 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 3600 ) ; Negative caching TTL of 1 hour
請注意您如何將記錄的欄位寫入同一行(寫入記錄的典型方式),或者您必須使用括號來指定如何將記錄拆分為多行。