DNS解析过程

153 阅读2分钟

每台计算机都有其IP地址,类似于人的身份证号,独一无二
实际使用中大家更偏向于通过域名来访问计算机,因为域名更具有可读性
DNS(Domain Name System,域名解析系统)提供IP地址和域名之间的映射关系,它处于应用层(TCP/IP五层协议模型)

DNS的层级结构

  • 权威域名服务器
  • 顶级域名服务器
  • 根域名服务器

image.png

DNS解析过程

假设浏览器输入域名www.example.com,首先查找各级缓存,不存在则发起向各级DNS服务器发起请求,过程如下

DNS缓存

  • 浏览器缓存 chrome://net-internals/#dns (只能看到清除按钮,原因不详,浏览器版本问题?)
    www.jianshu.com/p/9e7aa4ec4…
  • 操作系统缓存 执行ipconfig /displaydns可查看
    执行ipconfig /flushdns 清除
  • 本地host配置文件 所在路径(window系统):C:\Windows\System32\drivers\etc

本地开发时经常配置127.0.0.1至localhost.company.com (公司地址的子域名)

  • 本地DNS服务器

查找DNS服务器

image.png

  1. 客户端向本地本地DNS服务器发起一个查询请求
  2. 本地DNS服务器把该请求转发至根域名服务器,根域名服务器返回对应的.com顶级域名服务器地址列表
  3. 本地DNS服务器把该请求转发至.com顶级域名服务器,.com顶级域名服务器返回负责解析example.com的权威域名服务器ns.example.com的地址
  4. 本地DNS服务器把该请求转发至权威域名服务器,权威域名服务器最终返回www.example.com
  5. 本地DNS服务器将www.example.com跟 IP 地址的映射返回给客户端

拓展

分布式数据库
ISO 分层 应用层
域名
IP地址

哪部分是递归查询和迭代查询