国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

在Linux和Unix上用Dig工具排除域名解析DNS故障
2007-08-31   

在實際應用過程中可能會遇到DNS解析錯誤的問題,就是說當我們訪問一個域名時無法完成將其解析到IP地址的工作,而直接輸入網站IP卻可以正常訪問,這就是因為DNS解析出現故障造成的
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

返回

; <<>> DiG 9.3.2-P1 <<>> @a.gtld-servers.net upsdn.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34265
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 8, ADDITIONAL: 8

;; QUESTION SECTION:
;upsdn.net. IN A

;; AUTHORITY SECTION:
upsdn.net. 172800 IN NS ns1.dnspod.net.
upsdn.net. 172800 IN NS ns1.everydns.net.
upsdn.net. 172800 IN NS ns2.dnspod.net.
upsdn.net. 172800 IN NS ns2.everydns.net.
upsdn.net. 172800 IN NS ns3.dnspod.net.
upsdn.net. 172800 IN NS ns3.everydns.net.
upsdn.net. 172800 IN NS ns4.dnspod.net.
upsdn.net. 172800 IN NS ns4.everydns.net.

;; ADDITIONAL SECTION:
ns1.dnspod.net. 172800 IN A 218.108.58.68
ns1.everydns.net. 172800 IN A 38.99.14.207
ns2.dnspod.net. 172800 IN A 60.195.249.161
ns2.everydns.net. 172800 IN A 216.218.240.206
ns3.dnspod.net. 172800 IN A 60.195.249.166
ns3.everydns.net. 172800 IN A 80.84.249.169
ns4.dnspod.net. 172800 IN A 61.129.70.142
ns4.everydns.net. 172800 IN A 63.219.183.200

;; Query time: 599 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Sun Sep 24 19:03:23 2006
;; MSG SIZE rcvd: 315

如果只有Question,沒有Answer,那就有問題了
如何判斷域名的DNS服務器記錄本身有沒有解析
域名的DNS服務器記錄是一組特殊的主機名。這些DNS主機名必須要在Internic注冊之后,才能用于域名注冊。注冊之后,通過whois能夠查到,而且在互聯網根服務器上會為注冊的DNS服務器作解析。
以upsdn.com為例,他的dns服務器
Name Server: SENS01.DIG.COM
Name Server: SENS02.DIG.COM
Name Server: orNS01.DIG.COM
Name Server: orNS02.DIG.COM

都可以通過whois以及dig @a.gtld-servers.net查到。
為了保險起見,所有注冊過的DNS服務器,同時也要在它本身的域名服務器上作A紀錄的解析。否則,有的客戶端可能不能正常工作。
如SENS01.DIG.COM本身在其自身的DNS服務器上也作了解析。
如果你注冊了自己的DNS服務器,但沒有為DNS服務器做解析,可能會出現解析不穩定的情況。
如何判斷域名的DNS服務器上未解析
登陸到域名的DNS服務器上,執行:
dig @localhost upsdn.net

如果沒有結果,可以看/etc/named.conf中有沒有該域名的記錄,以及記錄中的zone文件是否存在,如果都存在,可以執行程序代碼:
rndc reload abc.com

然后執行:
tail /var/log/messages

看log中有沒有報錯,有沒有zone文件格式的問題。
如何判斷域名的多個DNS服務器上的解析不一致
依次查詢該域名的每個DNS服務器,看結果是否一致。在所有的服務器中,如果有的服務器沒有返回結果,不會影響到域名的正常解析,因為此時解析客戶端會嘗試其他的服務器,只有當所有的服務器都沒有結果才會報錯。但是如果A服務器上和B服務器上的解析不一致,則會出現域名解析時對時不對的故障。
Dig @ns2.everydns.com upsdn.net
Dig @ns4.dnspod.net upsdn.net

如果不一致,通常是服務器之間的同步問題。
如何判斷域名的DNS服務器網絡設置是否正確
可以從其他機器分別以tcp和udp協議連接,如:
dig +tcp @ns4.dnspod.net upsdn.net
及
dig +notcp @ns4.dnspod.net upsdn.net

如果不能連接,而且服務器上named服務已經啟動,多半是軟件或硬件防火墻的原因。在服務器上檢查/etc/sysconfig/ipchains或 iptable中是否允許domain(53端口)的tcp及udp連接。或暫時停止ipchains/iptable服務,看外部是否能夠連接。如果軟件防火墻配置正確或根本未啟動,則檢查硬件防火墻有沒有打開53端口。
如何判斷本地DNS cache未更新
可以查出域名的DNS服務器,檢查這些服務器上解析是否正確,如果服務器上正確,而本地解析不正確,則說明使用的本地DNS服務器沒有刷新,需要等到它刷新之后。通常需要4到12個小時左右。


熱詞搜索:

上一篇:切斷入侵道路 兩招關閉微軟系統特殊共享資源
下一篇:Linux安全配置步驟大全(1)

分享到: 收藏
主站蜘蛛池模板: 清新县| 贵定县| 嵩明县| 奉化市| 绥阳县| 忻城县| 灵山县| 承德县| 津南区| 石首市| 浠水县| 西宁市| 志丹县| 新民市| 南陵县| 松原市| 宜宾市| 师宗县| 桦川县| 陇南市| 年辖:市辖区| 黎城县| 万载县| 宜君县| 鄂尔多斯市| 太仆寺旗| 普格县| 蒲江县| 台州市| 隆安县| 永昌县| 黄石市| 高邑县| 阳西县| 辽宁省| 龙门县| 商河县| 阿瓦提县| 保康县| 泰顺县| 永和县|