之前在DNS 自我監控寫了script定時查詢特定FQDN,後來因為想起有人抱怨偶而就會有某個FQDN連不到,就改了一下改成向多個DNS Server查詢一個特定的FQDN,這才發現一些徵兆,除了一兩次是要查詢的FQDN負責的DNS Server查不到,所以自然會有問題的情況以外,有時向Hinet的DNS 168.95.1.1查詢竟然也會查詢不到?!雖然不確定是網路還是168.95.1.1或是其他的問題,但又想起上次參加TWNIC DNS教育課程的時候,講師也說設 forwarders 不見得會比較快,於是乾脆就把 forwarders 拿掉了,目前看起來似乎真的有比較正常,真是奇妙。
至於上次說自行重啟怕會有問題,所以現在只敢用 rndc flush 把 cache 清掉,這樣查詢不到的 negative cache 也就清掉了,不過這招似乎只對這種偶發性查不到某個特定FQDN有效就是了,若是其他問題應該不會有效果,可能還會因為清掉 cache 造成一點頻寬浪費。
以下是script:
#!/bin/sh
#
# 測試特定的 FQDN 是否查詢得到,若有問題則 log 並 mail
#
DATE=`date “+%Y%m%d %H:%M”`
HOST=`hostname -s`
SERVER=`hostname -f`
LOG=/var/log/named/fqdn_check.log
MAIL=”admin@domain.com.tw”
TMPFILE=/tmp/`date “+%Y%m%d%H%M%S”`_fqdn_check.tmp
MAIL_SUBJECT=””
# 要測試的 FQDN
FQDN=”www.domian.com.tw.”
# 全部要測試的 DNS
DNSLIST=”127.0.0.1
dns.hinet.net.
dns.seed.net.tw.”
# 若測試任一 FQDN 有問題則設為 1,最後依此變數決定有沒有問題
CHECK=0
# 依序測試 DNLIST [...]