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的解析过程的更多相关文章

  1. DNS详细解析过程【转】

    转自:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baid ...

  2. dig理解DNS的解析过程 - 阿权的书房

    关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...

  3. DNS的解析过程

    1.什么是DNS 在互联网上,唯一标识一台计算机的是IP地址,但是IP地址不方便记忆,通过一个域名对应一个IP地址,来达到找到IP地址的目的,那么DNS就是将域名转换成IP地址的过程. 2.DNS查询 ...

  4. DNS解析过程详解

    先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点 ...

  5. 转载:DNS解析过程详解

    2015-09-20 此好文是转载,如有侵权联系我,立马删掉 DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com. ...

  6. DNS解析过程和DNS挟持

    1.DNS解析过程详解 1).在浏览器中输入一个域名,例如www.tmall.com,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析, ...

  7. (转)DNS解析过程详解

    DNS解析过程详解 原文:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的 ...

  8. DNS解析过程详解【转】

    转自:http://blog.chinaunix.net/uid-28216282-id-3757849.html 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www. ...

  9. DNS解析过程详解(转载)

    DNS解析过程详解(转载) DNS Domain Name System 域名系统,它就是根据域名查出IP地址.    先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址ww ...

随机推荐

  1. Oracle基础--命令

    ====================== 基础命令====================== 1.su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界 ...

  2. tomcat websocket 实现网页在线即时聊天

    背景介绍 近一个月完成了公司的一个项目,负责即时聊天部分 寻找了一下,决定使用websocket,要问原因的话,因为tomcat 自带相关消息收发的API,用起来方便 闲话少叙,进入实现步骤 使用工具 ...

  3. Nginx反向代理和负载均衡的配置

    1.反向代理配置 反向代理也称"动静分离",nginx不自己处理图片的相关请求,而是把图片的请求转发给其他服务器来处理. 修改nginx部署目录下conf子目录的nginx.con ...

  4. 会话控制cookie和session

    Cookie Cookie简介 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的Web程序的设计.如:在我们进行网购时, ...

  5. noip普及组2005 陶陶摘苹果

    陶陶摘苹果 描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在 ...

  6. 复杂DIV交错布局

    问题: 请写一段html和CSS实现图中布局: 解析: 考察实现此种效果布局的几种方式. --- 答案:TBD

  7. C语言指针(二)指向指针的指针

    注意:指向指针的指针适合于做链表 1.声明方式:在变量名前放置两个*符号 int**var; 2.实例: #include<stdio.h>int main (){intvar;int*p ...

  8. linux允许root远程登录

    在根目录下自己建了一个目录 /software 通过ssh传输文件时遇到问题, 虽然ssh中su 切换用户到root ,但不能传输文件,所以要允许root登录才行 修改ssh配置文件 修改完重启 ss ...

  9. Office办公软件(Excel PPT Word)使用整理

    Office办公软件(Excel PPT Word)使用整理.. -------------- Excel默认打印预览于当前连接的打印机的纸张大小保持一致. Excel sheet不见了怎么办 --- ...

  10. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...