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

http://tech.ddvip.com   2007年09月01日    社区交流

内容摘要:在实际应用过程中可能会遇到DNS解析错误的问题,就是说当我们访问一个域名时无法完成将其解析到IP地址的工作,而直接输入网站IP却可以正常访问,这就是因为DNS解析出现故障造成的。

  在实际应用过程中可能会遇到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

责编:豆豆技术应用

正在加载评论...