权威域名服务器(Authoritative Server):存储具体域名的 IP 地址(如 example.com 的权威服务器由域名所有者管理)。
DNS服务器
DNS 记录:存储域名相关信息的条目,常见类型包括:
A 记录:域名到 IPv4 地址的映射。
AAAA 记录:域名到 IPv6 地址的映射。
CNAME 记录:域名别名(如将 www.example.com 指向 example.com)。
MX 记录:邮件服务器地址。
NS 记录:指定管理域名的权威服务器。
这也是在我们域名解析的时候所需要了解的
3. DNS 解析流程
当用户在浏览器输入 www.sbnvidia.com 时,解析过程如下:
本地缓存查询:
浏览器检查自身缓存 → 若无,检查操作系统缓存(如 hosts 文件)。
若仍无结果,向递归解析器(如本地 DNS 服务器)发起请求。
递归解析器处理:
递归解析器先检查自身缓存,若未命中,则从根域名服务器开始逐级查询: a. 根域名服务器:返回 .com 顶级域服务器的地址。 b. 顶级域服务器(.com):返回 sbnvidia.com 的权威服务器地址。 c. 权威域名服务器:返回 www.sbnvidia.com 的 IP 地址。
返回结果:
递归解析器将最终 IP 返回给用户设备,并缓存结果(根据记录的 TTL 时间)。
DNS解析过程
缓存层级:浏览器 → 操作系统 → 递归解析器均会缓存结果,减少重复查询。
TTL(Time to Live):每条 DNS 记录设有时效性,超时后缓存失效,需重新查询。
4.DNS 发展历史
UDP 在过去的几十年中其实都是 DNS 主要使用的协议,作为互联网的标准,目前的绝大多数 DNS 请求和响应都会使用 UDP 协议进行数据的传输,我们通过抓包工具就能轻松获得以 UDP 协议为载体的 DNS 请求和响应。
抓去 baidu.com 的DNS解析发现协议是UDP
但其实 DNS 使用了 UDP 来获取域名对应的 IP 地址,这个观点虽然没错,抓包抓出来也确实是这样,但是还是有一些片面,这仅仅只是验证了这种case是UDP,更加准确的说法其实是 DNS 查询在刚设计时主要使用 UDP 协议进行通信,但 TCP 也是在 DNS 的演进和发展中被加入到规范的那我们就要讲讲DNS的发展历史了:
UDP报文段
1987 年的 RFC1034 和 RFC1035 定义了最初版本的 DNS 协议,刚被设计出来的 DNS 就会同时使用 UDP 和 TCP 协议,对于绝大多数的 DNS 查询来说都会使用 UDP 数据报进行传输,TCP 协议只会在区域传输的场景中使用,其中 UDP 数据包只会传输最大 512 字节的数据,多余的会被截断;
两年后发布的 RFC1123 预测了 DNS 记录中存储的数据会越来越多,同时也第一次显式的指出了发现 UDP 包被截断时应该通过 TCP 协议重试。