目录
- 基本概念
- 递归和迭代
- 域名缓存
- 域名解析过程
- DNS安全问题
- HTTPDNS
- 命令
基本概念
DNS(Domain Name System,域名系统)是互联网的核心基础设施之一,它的主要作用是将人类易于记忆的域名(如www.baidu.com)转换为计算机能够识别的IP 地址(如180.101.50.242),从而实现网络设备之间的通信。
根域名服务器:提供顶级域名服务器(TLD)的地址,不直接解析具体域名
顶级域名服务器:返回该顶级域名下二级域名对应的权威域名服务器地址
权威域名服务器:仅管理特定域名(如example.com、baidu.com)及其子域名(如blog.example.com)的解析记录。
递归和迭代
域名缓存
- 浏览器缓存:有固定的缓存时间
- 操作系统缓存:hosts文件
在浏览器中进行访问的时候,会优先查询浏览器缓存,如果未命中则继续查询操作系统缓存,最后再查询本地域名服务器,然后本地域名服务器会递归查找域名记录,最后返回结果。主机和本地域名服务器之间的查询方式是递归查询,也就是说主机请求本地域名服务器,那么本地域名服务器作为请求的接收者一定要给主机想要的答案。
域名解析过程
当本地 DNS 首次解析 www.qq.com 时
理论上:
本地 DNS 不知道 .com 服务器的地址,会先查询根服务器;
根服务器返回 .com 顶级域名服务器的地址列表;
本地 DNS 再向 .com 服务器查询 qq.com 的权威服务器地址,以此类推。
实际上:
本地 DNS 早已通过初始化配置或历史查询,缓存了所有顶级域名(.com、.cn 等)对应的根服务器返回结果(即 TLD 服务器的地址)
当解析域名时,本地 DNS 会直接使用缓存的 TLD 服务器地址,跳过 “查询根服务器” 这一步,直接向 TLD 服务器发起请求。
针对www.qq.com,对 TLD 发起 NS 查询的结果如下:
相当于是去问com. qq.com. 的权威服务器在哪里?
[code]; DiG diggui.com @b.gtld-servers.net www.qq.com NS # 使用 dig 工具,强制向 .com 顶级域名服务器之一(e.gtld-servers.net)发送查询,请求获取 www.qq.com 的 SOA 记录; (2 servers found);; global options: +cmd;; Got answer:;; ->>HEADERHEADERHEADER |