DNS學習(二)---DNS一些故障

原文地址:http://zhiwei.li/text/2008/08/%E7%94%A8dig%E6%8E%92%E6%9F%A5dns%E6%95%85%E9%9A%9C/

    一個域名註冊之後,如果需要使大衆可訪問,必須要設置好DNS。DNS解析就是一套用域名得到對應的IP地址的機制。

DNS不能解析的常見原因有:
域名本身已經過期或被停止;
域名的DNS服務器記錄不正確;
域名的DNS服務器記錄本身沒有作解析;
域名的DNS服務器上named服務沒有啓動;
域名的DNS服務器上未解析;
域名的多個DNS服務器上的解析不一致;
域名的DNS服務器網絡設置禁止了53端口TCP/UDP協議;
本地DNS cache未更新,與DNS服務器上的記錄不同步

DNS的解析過程:

1) 首先查找本地DNS的cache,如果cache裏有,且未超過服務器或域名本身定義的生存時間,則返回cache中的記錄;
2) 如果cache中沒有,或已過期,首先查詢互聯網根服務器(如a.gtld-servers.net),找出該域名的DNS服務器是哪幾個,如果查不到,返回錯誤;
3) 隨機地從域名的DNS服務器中挑出一個,查出其IP地址,如果查不到,返回錯誤;
4) 連接到該IP地址的53端口(UDP或TCP協議),查詢域名,如果連接不上,或服務器未返回結果,則返回錯誤。

如何判斷域名的DNS服務器記錄不正確
在Linux/Unix上,可以使用dig
$dig @a.gtld-servers.net upsdn.net

如果只有Question,沒有Answer,那就有問題了

如何判斷域名的DNS服務器記錄本身有沒有解析

域名的DNS服務器記錄是一組特殊的主機名。這些DNS主機名必須要在Internic註冊之後,才能用於域名註冊。註冊之後,通過whois能夠查到,而且在互聯網根服務器上會爲註冊的DNS服務器作解析。

以zhiwei.li爲例,他的dns服務器都可以通過whois以及dig @a.gtld-servers.net查到。
爲了保險起見,所有註冊過的DNS服務器,同時也要在它本身的域名服務器上作A紀錄的解析。否則,有的客戶端可能不能正常工作。<br />如SENS01.DIG.COM本身在其自身的DNS服務器上也作了解析。<br />如果你註冊了自己的DNS服務器,但沒有爲DNS服務器做解析,可能會出現解析不穩定的情況。

如何判斷域名的DNS服務器上未解析

登陸到域名的DNS服務器上,執行:

看log中有沒有報錯,有沒有zone文件格式的問題。

如何判斷域名的多個DNS服務器上的解析不一致

依次查詢該域名的每個DNS服務器,看結果是否一致。在所有的
服務器中,如果有的服務器沒有返回結果,不會影響到域名的正常解析,因爲此時解析客戶端會嘗試其他的服務器,只有當所有的服務器都沒有結果纔會報錯。但是
如果A服務器上和B服務器上的解析不一致,則會出現域名解析時對時不對的故障。

如何判斷域名的DNS服務器網絡設置是否正確
可以從其他機器分別以tcp和udp協議連接,如:

如果不能連接,而且服務器上named服務已經啓動,多半是軟件或硬件防火牆的原因。在服務器上檢查/etc/sysconfig/ipchains或
iptable中是否允許domain(53端口)的tcp及udp連接。或暫時停止ipchains/iptable服務,看外部是否能夠連接。如果軟
件防火牆配置正確或根本未啓動,則檢查硬件防火牆有沒有打開53端口。

如何判斷本地DNS cache未更新

      可以查出域名的DNS服務器,檢查這些服務器上解析是否正確,如果服務器上正確,而本地解析不正確,則說明使用的本地DNS服務器沒有刷新,需要等到它刷新之後。通常需要4到12個小時左右。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章