DNS原理

一、DNS是什么

    DNS Domain Name System 域名系统,它是由解析器和域名服务组成的

    域名和IP地址相互映射的一个分布式数据库

    不用去记住能够被机器直接读取的IP

二、DNS解析过程

  1、用户在浏览器中输入www.baidu.com

  2、DNS做域名解析,浏览器自己也有缓存,如果有直接拿缓存ip,windos也会找host文件域名对应的ip,如果有的话就直接返回ip

    如果没有则走DNS域名解析对应的ip并且缓存,通过这种循环迭代的查询相应的ip

  3、用户在得到IP地址后,向该地址所指向的网站的服务器进行访问

 

 

解释DNS域名解析的过程:

  打开浏览器,输入一个域名。比如输入www.163.com,这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。

  本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。

  查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。 

     如果没有,本地DNS服务器还要向DNS根服务器进行查询。

 

  根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。

  本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。

  .com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

 

  最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,

  本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

 

关于DNS解析的TTL参数:

  我们在配置DNS解析的时候,有一个参数常常容易忽略,就是DNS解析的TTL参数,Time To Live。

  TTL这个参数告诉本地DNS服务器,域名缓存的最长时间。

  用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是,本地DNS服务器对于域名的缓存时间是10分钟,

  10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。

 

  其实,如果网站已经进入稳定发展的状态,不会轻易更换IP地址,我们完全可以将TTL设置到协议最大值,即24小时。

  带来的好处是,让域名解析记录能够更长时间的存放在本地DNS服务器中,以加快所有用户的访问。

  设置成24小时,其实,还解决了Googlebot在全球部署的服务器抓取网站可能带来的问题,

  这个问题麦新杰专门有一篇博文,请参考:“Googlebot无法访问您的站点”问题理解和处理方法

 

  阿里云之所以只将TTL设置成10分钟,是为了让域名解析更快生效而已。

  因为之前的解析会在最长10分钟之后失效(本地DNS服务器将对应的解析条目删除),然后新的解析生效。

  如果是24小时,这个生效的时间最长就是24小时,甚至更长(本地DNS服务器要有用户请求,才会发起查询)。

 

  参考:http://www.maixj.net/ict/dns-chaxun-9208

 

posted @ 2017-12-26 18:00  清零者  阅读(421)  评论(0编辑  收藏  举报