深入理解 DNS

2019-11-19 来源: WillLin 发布在  https://www.cnblogs.com/willLin/p/11887289.html

深入理解 DNS

简介

DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址。

DNS使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。

DNS备份

为防止服务中断和网络攻击,全球共有13台根DNS服务器,严格意义上来说不是13台,而是13个服务集群,为什么是13?

专有名词

  • FQDN:完整合法域名,也就是根域(绝对域名)
  • NS:权威域名服务器
  • 顶级域:用来指示某个国家 / 地区或组织使用的名称的类型名称,例如 .com
  • 二级域:个人或组织在因特网上使用的注册名称,例如 google.com
  • 子域:已注册的二级域名派生的域名,一般就是网站名,例如 www.google.com
  • 主机名:标识网络上的特定计算机,例如 h1.www.google.com

DNS的基本解析流程

  1. 以客户端浏览器访问 www.lbinin.com 域名为例,首先,它会去检查当前浏览器缓存,如果有,就直接响应,如果没有,就继续往下找
  2. 接着,操作系统会去检查自己的 host 文件,如果从中没找到对应关系,会再到系统 DNS 缓存中查,如果缓存中有,就直接返回该域名所对应的 IP
  3. 如果缓存中没有,则会向我们事先设置好的 DNS 服务器 [ 一般有两个, 主 & 备 ] 去请求,即所谓的递归查询,DNS 服务器首先会到自身解析数据库中去查
  4. 如果 DNS 服务器在自己的解析库中也没找到,它就会自动帮我们向根发送询问请求
  5. 此时,根看到要请求的是 com 的后缀,就会把 com 所在的 ns 服务器告诉我们的 DNS
  6. 然后,我们的 DNS 服务器就会去请求 com 所在的 ns 服务器(权威域名服务器)
  7. 当请求到达 com ns 服务器时,com 一看域名是在 lbinin 这个域下的,就会把 lbinin 所在的 ns 服务器再告诉我们的 DNS 服务器
  8. 再然后,我们的 DNS 服务器就会去请求 lbinin 这个域的 ns 服务器
  9. lbinin 这个域的 ns 服务器一看是要访问 www 就直接找到了 www 对应的「A记录」的 IP,并把它丢给我们的 DNS,上面逐个询问的过程,即 迭代查询
  10. 最后,我们的 DNS 再把最终解析到的这个 IP 丢给我们的客户端,然后客户端就直接拿着去访问了。

流程总结

浏览器缓存

相关文章