例如:
[root@dns1 ~]# cd /var/named/chroot/var/named/原本很直覺得反應,應該是設定檔(/etc/named.conf或/var/named/chroot/var/named/named.abc.com.tw)有問題,一般來說Bind 9的DNS問題不外乎這是從這兩個地方下手。還很認真的看著網友的設定檔。但有個小奇怪的地方,網友反應,雖然有錯誤訊息,但Bind 9載入named.abc.com.tw執行確正常。
[root@dns1 named]# named-checkzone -d named.abc.com.tw named.abc.com.tw......
zone named.abc.com.tw/IN: has 0 SOA records
zone named.abc.com.tw/IN: has no NS records
在我的Linux上重覆測試,測了三台不同的Linux版本的Bind 9,從設定檔/etc/named.conf到zonefile(named.abc.com.tw),怪了,測不出來有什麼問題!上網搜尋了一下,看到國內外好多人有同樣的問題,但都沒有解決之道,奇了,這是什麼問題?
但有發現一個現象,三台Linux中只要使用named-checkzone都出現一樣的錯誤訊息。這是怎麼了,怎麼可能?我想,那問題應該是出在named-checkzone?那就來好好的man一下吧!
[root@dns1 named]#man named-checkzone玩一玩參數,有幾個比較重要參數的我列出來。但問題還是沒解決。又找了ISC原始指令文件,嗯,跟man一樣,但我也注意到了一個地方,原本在測試時,只是將網友的指令Copy起來,直接paste到putty中測試,也沒多想什麼,但為什麼named-checkzone中一定要下「兩次」路徑呢?
OPTIONS
-d
Enable debugging. # 啟動除錯
-q
Quiet mode - exit code only. # 安靜模式
-j
When loading the zone file read the journal if it exists.
# 如果*.jnl存在,在載入zone檔案讀取*.jnl
-c class
Specify the class of the zone. If not specified "IN" is assumed.
# 如果你的zone檔案沒使用IN語法,例如:「IN A 192.168.10.1」,但你使用簡寫 「A 192.168.10.1」,請下這個參數。
zonename
The domain name of the zone being checked.
filename
The name of the zone file.
想著,看著Monitor:zonename、filename、zonename、filename???ㄝ,我想通了,文件其實有交代清楚,只是我們沒了解清楚。
zonename測試後,BingGo,正確解答,正確指令如下:
指定一個在zone裡的domain name來開始檢查。
filename
指定zone檔案的名稱。
錯誤指令:第一個zone指的是「domain name」不是單純的file anme。這樣了解嗎?
[root@dns1 named]# named-checkzone -d named.abc.com.tw named.abc.com.tw
正確指令:
[root@dns1 named]# named-checkzone -d abc.com.tw named.abc.com.tw
我又再一次見證了男人(man)的實力。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。