DNS域名解析协议

  

 

一. 根域

 

就是所谓的“.”,其实咱们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),通常咱们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。浏览器

根域服务器咱们知道有13台,可是这是错误的观点。缓存

根域服务器只是具备13个IP地址,但机器数量却不是13台,由于这些IP地址借助了任播的技术,因此咱们能够在全球设立这些IP的镜像站点,你访问到的这个IP并非惟一的那台主机。服务器

具体的镜像分布能够参考维基百科。这些主机的内容都是同样的

网络

二. 域的划分

根域下来就是顶级域或者叫一级域,

有两种划分方式,一种互联网刚兴起时的按照行业性质划分的com.,net.等,一种是按国家划分的如cn.,jp.,等。spa

具体多少你能够本身去查,咱们这里不关心。代理

每一个域都会有域名服务器,也叫权威域名服务器。server

Baidu.com就是一个顶级域名,而www.baidu.com却不是顶级域名,他是在baidu.com 这个域里的一叫作www的主机。blog

一级域以后还有二级域,三级域,只要我买了一个顶级域,而且我搭建了本身BIND服务器(或者其余软件搭建的)注册到互联网中,那么我就能够随意在前面多加几个域了(固然长度是有限制的)。递归

好比a.www.baidu.com,在这个网址中,www.baidu.com变成了一个二级域而不是一台主机,主机名是a。dns

三. 域名服务器

能提供域名解析的服务器,上面的记录类型能够是A(address)记录,NS记录(name server),MX(mail),CNAME等。

A记录是什么意思呢,就是记录一个IP地址和一个主机名字,好比我这个域名服务器所在的域test.baidu.com,咱们知道这是一个二级的域名,而后我在里面有一条A记录,记录了主机为a的IP,查到了就返回给你了。

若是我如今要想baidu.com这个域名服务器查询a.test.baidu.com,那么这个顶级域名服务器就会发现你请求的这个网址在test.baidu.com这个域中,我这里记录了这个二级域的域名服务器test.baidu.com的NS的IP。我返回给你这个地址你再去查主机为a的主机把。

这些域内的域名服务器都称为权威服务器,直接提供DNS查询服务。(这些服务器可不会作递归哦)

 

 

那么咱们的DNS是怎么解析一个域名的呢?

 

1.如今我有一台计算机,经过ISP接入了互联网,那么ISP就会给我分配一个DNS服务器,这个DNS服务器不是权威服务器,而是至关于一个代理的dns解析服务器,他会帮你迭代权威服务器返回的应答,而后把最终查到IP返回给你。

2.如今的我计算机要向这台ISPDNS发起请求查询www.baidu.com这个域名了,(经网友提醒:这里其实准确来讲不是ISPDNS,而应该是用户本身电脑网络设置里的DNS,并不必定是ISPDNS。好比也有可能你手工设置了8.8.8.8)

3.ISPDNS拿到请求后,先检查一下本身的缓存中有没有这个地址,有的话就直接返回。这个时候拿到的ip地址,会被标记为非权威服务器的应答

4.若是缓存中没有的话,ISPDNS会从配置文件里面读取13个根域名服务器的地址(这些地址是不变的,直接在BIND的配置文件中),

5.而后像其中一台发起请求。

6.根服务器拿到这个请求后,知道他是com.这个顶级域名下的,因此就会返回com域中的NS记录,通常来讲是13台主机名和IP。

7.而后ISPDNS向其中一台再次发起请求,com域的服务器发现你这请求是baidu.com这个域的,我一查发现了这个域的NS,那我就返回给你,你再去查。

(目前百度有4台baidu.com的顶级域名服务器)。

8.ISPDNS不厌其烦的再次向baidu.com这个域的权威服务器发起请求,baidu.com收到以后,查了下有www的这台主机,就把这个IP返回给你了,

9.而后ISPDNS拿到了以后,将其返回给了客户端,而且把这个保存在高速缓存中。

相关文章
相关标签/搜索