DNS 查询测的是什么
DNS 是用户访问网站的第一步。域名解析错了或者慢了,后面所有优化都白搭。
DNS 查询工具干的事,就是从全国各地的递归节点同时发起解析,把每个地区拿到的结果和耗时摆在一起。
它返回什么
一次查询能拿到的不只是 IP:
- A / AAAA:域名对应的 IPv4 / IPv6 地址
- CNAME:别名记录,CDN 接入最常见
- MX:邮件服务器地址
- TXT:文本记录,常用于域名验证、SPF、DKIM
- NS:这个域名由哪组 DNS 服务器负责解析
除了记录值,还有解析耗时。这两样合起来,才能判断解析是否正常。
为什么要多节点查
因为 DNS 是一个分布式系统,不同地区的递归服务器缓存的内容可能不一样,走的线路也可能不一样。
你本地 nslookup 查到的是对的,不代表全国都对。某些地区可能因为缓存没刷新、运营商劫持、或者智能解析配置错误,返回完全不同的结果。这种时候我会用DNS 查询从几个地区同时解析一遍,先看是局部异常还是全国都不对。
多节点查询的价值就在于横向对比:同一个域名,各地拿到的到底是不是同一个答案。
它和本地查询的区别
本地查只能看到你这一条线路、这一个递归服务器的结果,样本量为 1。
多节点查询相当于同时问几十个人「你看到的是什么」,然后看大家说的是不是一致。排查区域性故障、CDN 调度、DNS 污染,靠的就是这个。
常见用途
新域名上线前确认解析生效、切换 CDN 后验证调度、怀疑被污染时看分布范围、排查邮件收发问题、核对 NS 是否已转到目标服务商。
这些问题用 Ping 和 TCPing 都答不了,因为它们工作在 IP 层,压根不经过 DNS。