从实习就开始在做域名和 dns 的前端工作,今天整理下 DNS 相关的知识;
相关概念
域名分层
- 根域
- 顶级域
- 二级域
- 三级域

权威 DNS 服务器
保存着域名和 dns 解析关系数据的服务器;
递归 DNS 服务器
去 root NameServer、top-level NameServer、second-level nameserver 去递归查询的 DNS 服务器;
DNS 解析过程
1) 浏览器缓存
当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址(若曾经访问过该域名且没有清空缓存便存在);
2) 系统缓存
当浏览器缓存中无域名对应 IP 则会自动检查用户计算机系统 Hosts 文件 DNS 缓存是否有该域名对应 IP;
3) 路由器缓存
当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查,以上三步均为客服端的 DNS 缓存;
4) ISP(互联网服务提供商)DNS 缓存
当在用户客服端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找;
5) 根域名服务器
当以上均未完成,则进入根服务器进行查询。全球仅有 13 台根域名服务器,1 个主根域名服务器,其余 12 为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器 IP 告诉本地 DNS 服务器;
6) 顶级域名服务器
顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的 IP 地址告诉本地 DNS 服务器;
7) 主域名服务器
主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确纪录;
8)保存结果至缓存
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个 IP 地址与 web 服务器建立链接。

DNSSec
DNS 使用 UDP 作为传输层协议,开销低,效率高,使用 53 端口进行明文通信,但安全性不强。DNSSec(Domain Name System Security Extensions,也叫”DNS 安全扩展”)机制,让客户端对域名来源身份进行验证,并勘察传输过程有无被篡改。
工具
dig

dig +trace

