关于百度DNS的解析过程
if现在我用一台电脑,通过ISP接入互联网,那么ISP就会分配给我一个DNS服务器(非权威服务器)。
now,我的computer向这台ISPDNS发起请求查询www.baidu.com。
首先,ISPDNS会检查自己的缓存中有没有这个地址,有的话直接返回给我的PC,没有的话,ISPDNS会把请求发送给根服务器(13台)。
根服务器发现是.com结尾的即是.com这个顶级域名下的,就告诉请求者负责解析.com的DNS服务器。(目前百度有4台baidu.com的顶级域名服务器)。
ISPDNS再次向baidu.com这个域的权威服务器发起请求,baidu.com收到后,查一下www这台主机,然后把它的IP返回给IPSDNS,然后IPSDNS把地址返回给我的PC,并且存入告诉cache中,以便再次访问。
//当然这是完美的解析不走,不过百度的DNS没这么简单。
[root@zichen star]# nslookup www.baidu.com
Server: 211.140.13.188
Address: 211.140.13.188#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 220.181.112.76
Name: www.a.shifen.com
Address: 220.181.111.111
百度有个cname=www.a.shifen.com.的别名,这所怎么一个过程呢?用dig工具跟踪一下。
[root@zichen star]# dig +trace www.baidu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.2.rc1.fc16 <<>> +trace www.baidu.com
;; global options: +cmd
. 167778 IN NS b.root-servers.net.
. 167778 IN NS d.root-servers.net.
. 167778 IN NS f.root-servers.net.
. 167778 IN NS m.root-servers.net.
. 167778 IN NS e.root-servers.net.
. 167778 IN NS h.root-servers.net.
. 167778 IN NS l.root-servers.net.
. 167778 IN NS g.root-servers.net.
. 167778 IN NS i.root-servers.net.
. 167778 IN NS k.root-servers.net.
. 167778 IN NS c.root-servers.net.
. 167778 IN NS a.root-servers.net.
. 167778 IN NS j.root-servers.net.
;; Received 228 bytes from 211.140.13.188#53(211.140.13.188) in 1841 ms--------(1)
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; Received 503 bytes from 198.41.0.4#53(198.41.0.4) in 1884 ms-------------------------(2)
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
;; Received 167 bytes from 192.31.80.30#53(192.31.80.30) in 305 ms-------------------(3)
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
a.shifen.com. 86444 IN NS ns4.a.shifen.com.
a.shifen.com. 86444 IN NS ns7.a.shifen.com.
a.shifen.com. 86444 IN NS ns9.a.shifen.com.
a.shifen.com. 86444 IN NS ns5.a.shifen.com.
;; Received 194 bytes from 202.108.22.220#53(202.108.22.220) in 68 ms-------------(4)
DIG工具会在本地计算机做迭代,然后记录查询的过程。
第一步是我这台PC的ISPDNS获取到13个根服务器的13个IP和主机名【b-j】.root-servers.net。
第二步是向其中的一台根域服务器198.41.0.4发送www.baidu.com的请求,他返回来com.顶级域的服务器的IP(未显示)和名称。
第三步是向com.域的一台服务器192.31.80.30请求www.baidu.com,他返回来baidu.com域发服务器IP(未显示)和名称.
第四步,向百度的顶级域名服务器dns.baidu.com.请求www.baidu.com,他发现这个www有别名叫www.a.shifen.com。
按照一般逻辑,当dns请求到别名时,查询都会终止,而所重新发起查询别名的请求,所以此处应该返回的是www.a.shifen.com.但是为什么返回的是a.shifen.com这个NS呢?
此处我们可以用:
[root@zichen star]# dig +trace shifen.com
shifen.com. 172800 IN NS dns.baidu.com.
shifen.com. 172800 IN NS ns2.baidu.com.
shifen.com. 172800 IN NS ns3.baidu.com.
shifen.com. 172800 IN NS ns4.baidu.com.
;; Received 170 bytes from 192.26.92.30#53(192.26.92.30) in 325 ms
发现shifen.com的顶级域名服务器和baidu.com的域名服务器是同一台!
当 我拿到www.baidu.com的别名www.a.shifen.com的时候,本来要重新到com域查找shifen.com的NS,又因为,两个域 在同一台NS上,所以直接向本机发起了shifen.com域发现请求的www.a.shifen.com是属于a.shifen.com这个域的,于是 就把a.shifen.com的这个NS和IP返回,让我到a.shifen.com这个域的域名服务器上查询www.a.shifen.com。
于是
shifen.com. 7200 IN A 202.108.250.218
shifen.com. 86400 IN NS ns3.baidu.com.
shifen.com. 86400 IN NS ns1.baidu.com.
shifen.com. 86400 IN NS ns2.baidu.com.
shifen.com. 86400 IN NS ns4.baidu.com.
;; Received 186 bytes from 220.181.37.10#53(220.181.37.10) in 61 ms
拿到一条A记录,最终也就是www.baidu.com的IP地址了。
关于百度DNS的解析过程的更多相关文章
- DNS详细解析过程【转】
转自:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baid ...
- dig理解DNS的解析过程 - 阿权的书房
关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...
- DNS的解析过程
1.什么是DNS 在互联网上,唯一标识一台计算机的是IP地址,但是IP地址不方便记忆,通过一个域名对应一个IP地址,来达到找到IP地址的目的,那么DNS就是将域名转换成IP地址的过程. 2.DNS查询 ...
- DNS解析过程详解
先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点 ...
- 转载:DNS解析过程详解
2015-09-20 此好文是转载,如有侵权联系我,立马删掉 DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com. ...
- DNS解析过程和DNS挟持
1.DNS解析过程详解 1).在浏览器中输入一个域名,例如www.tmall.com,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析, ...
- (转)DNS解析过程详解
DNS解析过程详解 原文:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的 ...
- DNS解析过程详解【转】
转自:http://blog.chinaunix.net/uid-28216282-id-3757849.html 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www. ...
- DNS解析过程详解(转载)
DNS解析过程详解(转载) DNS Domain Name System 域名系统,它就是根据域名查出IP地址. 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址ww ...
随机推荐
- 树状数组lowbit()函数原理的解释 x&(x^(x-1)) x&-x
树状数组lowbit()函数所求的就是最低位1的位置所以可以通过位运算来计算 树状数组通过 x&(x^(x-1)) 能够成功求出lowbit的原因: 首先设x=6,即110(2) 于是我们使 ...
- php面试题汇总二(基础篇附答案)
介绍一些php常见面试题及答案,都是平时面试的时候经常会遇到的,小伙伴们仔细了解下吧.接着上一篇php面试题汇总一(基础篇附答案) 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义 ...
- [js高手之路] 跟GhostWu一起封装一个字符串工具库-扩展camelize与dasherize方法(3)
在此之前,我们已经完成了4个方法: trimLeft, trimRight, trim, capitalize 本文,我们扩展驼峰式与下划线转化这两个对称的方法 camelize: 把空格,下划线,中 ...
- vs2010等宽字体设置
VS2010自带的字体非等宽,不同行的代码采用同样的缩进空格时,可能左侧未对齐. 这个里有一款字体很帮,字体名字叫Fixedsys Excelsior 3.01,下载地址:http://www.fix ...
- Ubuntu 14.04下Redis安装报错:“You need tcl 8.5 or newer in order to run the Redis test”问题解决
Redis简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工 ...
- Json安全
1.不要使用顶级JSON数组,避免被<script>标签引用. 2.使用POST+密钥获取JSON,尽量不要用GET方式. 3.不要使用eval()将对象放入内存,eval()会执行所传入 ...
- CSS高级技巧
使用CSS复位 CSS复位可以在不同的浏览器上保持一致的样式风格.您可以使用CSS reset 库Normalize等,也可以使用一个更简化的复位方法:· * { box-sizing: border ...
- python+selenium自动化软件测试(第12章):Python读写XML文档
XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> ...
- github如何搜索资料
进入自己的主页,然后点击explore→trending; 或者google搜索,如github java 后端 请参考:http://mp.weixin.qq.com/s?__biz=MzA4NTQ ...
- zip7压缩
7-zip 解压 1.引入依赖文件 sevenzipjbinding.jar sevenzipjbinding-Allwindows.jar <!-- https://mvnrepository ...