DNS域名解析与诊断工具

起因

这两天线上遇到一个问题,合作方无法把用户的操作结果通知我们,造成用户在合作方操作成功,但我们这边业务一直失败,收到了不少用户的投诉。联系合作方查询,原来是对方的DNS域名解析出了问题,解析不成功,一直不能把操作结果通知过来。后来在对方的机房DNS Server中添加了我们域名授权DNS服务器的IP地址,才基本解决了这个问题。趁此机会,总结下DNS域名解析的问题诊断。

--这篇文章最初写于几个月前了,一直没有写完,今天得空更新出来

工具:nslookup,dig,traceroute

域名解析,简单的说就是提供域名与ip地址的映射。常用的域名解析查看工具当属nslookup和dig了。

nslookup简单易用,以快订阅为例:

$nslookup www.kuaidingyue.com
Server: 10.x.x.222
Address: 10.x.x.222#53
Non-authoritative answer:
Name: www.kuaidingyue.com
Address: 115.28.21.187

这里本地域名服务器地址是10.x.x.222,可以在/etc/resolv.conf文件(centos)中指定本地域名解析服务器的地址

nslookup使用比较直接,有兴趣的同学可以查看下man手册。dig工具就比较强大了,google一下可以发现不少好的博文。这里仅介绍比较常用的命令:跟踪解析过程,控制结果显示。

$dig +trace www.kuaidingyue.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> +trace www.kuaidingyue.com
;; global options:  printcmd
. 7187 IN NS i.root-servers.net.
. 7187 IN NS g.root-servers.net.
. 7187 IN NS j.root-servers.net.
. 7187 IN NS k.root-servers.net.
. 7187 IN NS c.root-servers.net.
. 7187 IN NS a.root-servers.net.
. 7187 IN NS b.root-servers.net.
. 7187 IN NS f.root-servers.net.
. 7187 IN NS l.root-servers.net.
. 7187 IN NS h.root-servers.net.
. 7187 IN NS m.root-servers.net.
. 7187 IN NS e.root-servers.net.
. 7187 IN NS d.root-servers.net.
;; Received 509 bytes from 10.x.x.222#53(10.x.x.222) in 1 ms
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
;; Received 509 bytes from 192.x.x.17#53(i.root-servers.net) in 80 ms
kuaidingyue.com. 172800 IN NS f1g1ns1.dnspod.net.
kuaidingyue.com. 172800 IN NS f1g1ns2.dnspod.net.
;; Received 219 bytes from 192.x.x.30#53(b.gtld-servers.net) in 3 ms
www.kuaidingyue.com. 600 IN A 115.28.21.187
kuaidingyue.com. 600 IN NS f1g1ns2.dnspod.net.
kuaidingyue.com. 600 IN NS f1g1ns1.dnspod.net.
;; Received 117 bytes from 122.225.217.192#53(f1g1ns1.dnspod.net) in 29 m

通过+trace选项,可以看到域名kuaidingyue.com的解析过程

  • 从本地域名服务器(10.x.x.222)获取根域名服务器

  • 从根域名服务器(192.x.x.17)获取com.域名服务器

  • 从域名服务器(192.x.x.30)获取可以解析该域名的域名服务器

  • 从最终提供解析域名的服务器(122.225.217.192)获取域名IP地址

关于域名解析的配置、A记录、NS记录的说明,稍候会介绍。这里可以看到完整的域名解析过程。

dig可以控制输出结果的显示格式,例如我们只想看到域名解析的结果,而不需要过多的注释,就可以用下面的命令:

$dig +nocmd www.kuaidingyue.com +noall +answer 
www.kuaidingyue.com. 248 IN A 115.28.21.187

dig还可以指定起始的域名解析服务地址,这样就不用取/etc/resolv.conf中本地域名服务器,再去递归查询域名了:

$dig @f1g1ns2.dnspod.net www.kuaidingyue.com +nocomments +nostats
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> @f1g1ns2.dnspod.net www.kuaidingyue.com +nocomments +nostats
; (4 servers found)
;; global options:  printcmd
;www.kuaidingyue.com. IN A
www.kuaidingyue.com. 600 IN A 115.28.21.187
kuaidingyue.com. 600 IN NS f1g1ns2.dnspod.net.
kuaidingyue.com. 600 IN NS f1g1ns1.dnspod.net.

在工作中,我们通常愿意查看一下从本地到目标地址的连通性。一般的手段就是直接用ping工具查看回包,统计丢包率来判断网络状况。还有一个也是利用ICMP协议,详细列出从本地到目标地址的路由情况的工具:traceroute

$traceroute www.kuaidingyue.com
traceroute to www.kuaidingyue.com (115.28.21.187), 30 hops max, 40 byte packets
 1  10.x.x.1 (10.x.x.1)  0.664 ms  0.697 ms  0.734 ms
 2  10.x.x.49 (10.x.x.49)  0.362 ms  0.359 ms  0.315 ms
 3  10.x.x.29 (10.x.x.29)  0.304 ms  0.327 ms  0.292 ms
 4  10.x.x.73 (10.x.x.73)  0.629 ms  0.594 ms  0.530 ms
 5  220.x.x.2 (220.x.x.2)  1.353 ms  1.390 ms  1.358 ms
 6  10.x.x.10 (10.x.x.10)  0.881 ms  1.158 ms  1.223 ms
 7  220.x.x.49 (220.x.x.49)  5.751 ms  5.129 ms  5.856 ms
 8  * 218.x.x.173 (218.x.x.173)  2.031 ms *
 9  220.x.x.57 (220.x.x.57)  3.920 ms  4.037 ms 218.x.x.229 (218.x.x.229)  4.475 ms
10  202.x.x.42 (202.x.x.42)  5.833 ms 202.x.x.46 (202.x.x.46)  7.375 ms 202.x.x.242 (202.x.x.242)  4.206 ms
11  202.x.x.18 (202.x.x.18)  24.380 ms  25.699 ms 202.x.x.6 (202.x.x.6)  29.984 ms
12  219.x.x.46 (219.x.x.46)  34.037 ms 219.x.x.22 (219.x.x.22)  11.162 ms 219.x.x.46 (219.x.x.46)  35.278 ms
13  219.146.18.218 (219.146.18.218)  28.358 ms  27.852 ms 219.146.18.246 (219.146.18.246)  26.695 ms
14  42.120.244.78 (42.120.244.78)  35.698 ms 219.146.18.246 (219.146.18.246)  18.112 ms 42.120.244.78 (42.120.244.78)  35.228 ms
15  42.120.244.78 (42.120.244.78)  25.574 ms 42.120.245.62 (42.120.245.62)  53.592 ms 42.120.245.6 (42.120.245.6)  122.412 ms
16  * 42.120.245.18 (42.120.245.18)  98.152 ms *
17  ip28.hichina.com (115.28.21.187)  27.691 ms  28.291 ms  25.866 ms

上面每条记录是数据包经过的路由地址,以及响应时间。traceroute每次发送3个数据包,可以看到在每一跳中经过的路由地址并不一定相同。

域名解析服务

快订阅DNSPod配置的域名解析服务为例:

140120_Qmma_188847.jpg

其中A,NS记录表示的意义在DNSPod上都有清晰的说明,如下图所示

140507_t5mS_188847.jpg

DNSPod还支持单独解析联通IP,这里就不细述了,可以到DNSPod查看"线路类型"。

这里说明一下域名解析中有递归服务器和授权服务器的区别:

域名解析都是递归进行的,而最终有个域名服务器来解析域名对应的记录,这台负责最终解析域名记录的服务器称为授权域名服务器

小结

域名解析故障时,dig可以帮助快速定位问题。dig工具很强大,但需要慢慢积累。

转载于:https://my.oschina.net/merkerxu/blog/199882

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值