DNS解析流程

DNS解析流程DNS 即 Domain Name System,字面上理解,其实就是一个域名的名字系统,用来管理域名:ip的对应关系。通俗来讲,就是一个键值对的列表。 DNS是域名:ip的对应关系,那么我们来看一下域名的结构,举个例子,首先有一个域名:tlab.cloud.tencent.c…

当浏览器输入一个url的时候,会发生什么事情呢?第一步,当然事DNS解析啦,下面来剖析一下DNS解析的过程。

what

首先,什么事DNS?

DNS 即 Domain Name System,字面上理解,其实就是一个域名的名字系统,用来管理域名:ip的对应关系。通俗来讲,就是一个键值对的列表。

域名

DNS是域名:ip的对应关系,那么我们来看一下域名的结构,举个例子,首先有一个域名:tlab.cloud.tencent.com,我们看到的最后的com就是顶级域名,顶级域名往前就是二、三……级域名,所以tencent就是二级域名,clloud就是三级域名,以此类推。

DNS解析

那么,在浏览器输入域名的时候,DNS是怎样解析的呢?分以下几步:

  1. 本地hosts文件
  2. 本地DNS缓存
  3. DNS服务器缓存
  4. DNS服务器递归查找

本地hosts文件

修改hosts文件对于开发者来说并不陌生,这样我们可以不改变线上域名的配置,然后直接通过域名访问我们想要访问的机器。

本地DNS缓存

如果hosts文件没有的话,那么DNS就会查看本地的DNS缓存,如果有的话就直接返回对应的ip即可。下面是我本地对tlab.cloud.tencent.com的DNS解析,因为之前已经解析过来,所以缓存里就有对应的ip地址:193.112.230.97。

DNS解析流程

DNS服务器缓存

如果是第一次访问某个域名的话,那本地缓存肯定是没有的。

所以就会到DNS服务器查找,链接网络之后,我们的电脑就会有对应的DNS服务器的地址,下图:

DNS解析流程

这个时候,由于前两个都走不通,这时就会去询问DNS服务器:请问tlab.cloud.tencent.com对应的ip是多少呢?

这个时候,DNS服务器首先是查看自己的缓存,如果有的话,就可以直接返回。

DNS服务器递归查找

如果DNS服务器也没有缓存的话,那就要进行递归查找了。

首先,我们先dig math tlab.cloud.tencent.com 可以看到answer

这里我们会看到域名最后加了一个. 其实所有域名后面其实都是有.的,即.root,表示根域名,因为大家都一样,所以省略了。

tlab.cloud.tencent.com. 600 IN A 193.112.230.97

DNS解析流程

继续,我们来看以下DNS服务器是怎么递归查找的。

  1. 询问根域名,获取顶级域名 .com 的 NS(Name Server) 和 A(Address),NS为顶级域名的名字,A即NS对应的ip地址
  2. 询问顶级域名,获取二级域名 .tencnet.com 的NS 和 A
  3. 询问二级域名,获取三级域名 .cloud.tencent.com 的NS 和 A
  4. 询问三级域名,获取四级域名 .tlab.cloud.tencent.com 的NS 和 A
  5. 最后,将tlab.cloud.tencent.com的ip地址返回给用户,并且缓存
  6. 用户获取到真正的ip地址,并且缓存

写在最后

DNS缓存是我们每天都会用到的,当然,我们也不会每天都用到,了解之后也有助于我们更加熟悉开发流程。

今天的文章DNS解析流程分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/18903.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注