博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DNS域名解析与诊断工具
阅读量:5883 次
发布时间:2019-06-19

本文共 4783 字,大约阅读时间需要 15 分钟。

hot3.png

起因

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

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

工具:nslookup,dig,traceroute

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

nslookup简单易用,以为例:

$nslookup www.kuaidingyue.comServer: 10.x.x.222Address: 10.x.x.222#53Non-authoritative answer:Name: www.kuaidingyue.comAddress: 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 mscom. 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 mskuaidingyue.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 mswww.kuaidingyue.com. 600 IN A 115.28.21.187kuaidingyue.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 Awww.kuaidingyue.com. 600 IN A 115.28.21.187kuaidingyue.com. 600 IN NS f1g1ns2.dnspod.net.kuaidingyue.com. 600 IN NS f1g1ns1.dnspod.net.

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

$traceroute www.kuaidingyue.comtraceroute 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 ms10  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 ms11  202.x.x.18 (202.x.x.18)  24.380 ms  25.699 ms 202.x.x.6 (202.x.x.6)  29.984 ms12  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 ms13  219.146.18.218 (219.146.18.218)  28.358 ms  27.852 ms 219.146.18.246 (219.146.18.246)  26.695 ms14  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 ms15  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 ms16  * 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个数据包,可以看到在每一跳中经过的路由地址并不一定相同。

域名解析服务

以在配置的域名解析服务为例:

140120_Qmma_188847.jpg

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

140507_t5mS_188847.jpg

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

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

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

小结

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

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

你可能感兴趣的文章
输入输出练习
查看>>
Git commit message和工作流规范
查看>>
java面试。答案源于网上
查看>>
yii中取得CActiveDataProvider的分页信息
查看>>
我的大学
查看>>
Google翻译接口收费啦
查看>>
Debian+Apache2服务器
查看>>
MySQL库和表的操作
查看>>
shell编程:编译器、解释器 变量
查看>>
yum仓库一些简单介绍
查看>>
HashMap----工作原理
查看>>
nodejs 安装 postgresql module
查看>>
【转】iOS学习之iOS禁止Touch事件
查看>>
【小记录】解决链接libcufft_static.a库出现的错误
查看>>
两列布局的几种实现方案
查看>>
Java8新特性之Collectors
查看>>
怎么用CorelDRAW制作表格
查看>>
eclipse智能配置
查看>>
安装Scrapy遇到的问题处理
查看>>
个人作业——软件产品案例分析
查看>>