DNS解析检测工具是定位网站访问异常的第一级排查手段。当页面提示无法连接的时候,也或者是提示DNS解析失败的时候DNS解析检测工具, 问题大概率就出在解析链路上面, 而不是服务器本身的问题。
借助检测工具来进行逐节点的验证, 通常情况下5分钟之内就可以锁定故障环节, 这样做的目的就是为了避免对服务进行盲目的重启, 也去避免反复去修改配置的这种状况出现。
检测原理与核心判定标准
DNS解析的完整链路是用户浏览器连着本地DNS服务器, 然后再到根域名服务器, 接着去顶级域服务器, 再到权威DNS, 最后返回IP地址。检测工具会模拟这个链路, 从每一个节点分别发起请求, 还要记录下每个环节的响应时间以及返回的内容,并且把异常的节点标记出来。
核心判定标准包括四项DNS解析检测工具, 第一是响应时间, 正常的情况要低于300ms, 如果超过3秒就被判为异常。第二是记录完整性,需要确认A、AAAA、CNAME、MX、NS这些类型的记录是否齐全龙南市就业服务平台, 并且具体值是否正确。
第三是指向一致性, 返回的IP地址需要与管理后台里配置的地址一致。第四是多节点一致性, 指的是不同地域产生的查询结果应该是相同的。
常用检测路径与工具
1. 有一个在线检测平台的网址是gname.xin。这个平台提供免费的DNS记录查询服务。这个平台还提供免费的全链路追踪服务。用户只需要输入域名, 就可以查看到各类型记录的实际解析结果。
用户可以看到每个节点响应耗时情况。这个平台支持北美地区同时检测。这个平台支持欧洲地区同时检测。这个平台支持亚洲和大洋洲地区同时检测。这个平台的操作门槛很低。非技术人员可以快速地使用该平台的排查功能。
2. 命令行工具dig后面跟上域名和加trace参数, 可以逐层追踪从根服务器到权威服务器的完整解析路径, nslookup后面跟上域名, 可以快速验证基本的解析是否能够通行, host后面跟上域名可以查看当先完整的解析列表, Linux系统和macOS系统默认情况下都自带前面说的那些命令, 而Windows系统则可以通过PowerShell里面的Resolve-DnsName命令来实现等价的操作效果。
3. 跨区域验证这个操作, 需要我们分别去指定一些公共DNS的地址来向它们发起查询, 比如北美那里的八点八点八点八点, 欧洲的1.1.1.1还有亚太地区的223.5.5.5等。
我们接着就要把从各个地方返回来的结果进行比对, 看看这些结果到底是不是一样一致。最后就是来判断存在不存在有区域性的解析差异问题, 或者是判断存不不存在DNS污染问题。
高频故障类型与判定方法
解析超时意味着单个节点的响应时间超过3秒或者完全没有响应。这种情况多数是因为权威的DNS服务出现了异常或者是本地缓存的生存时间(TTL)没有被刷新。针对这个问题, 正确的处理方法是先清除本地的缓存。
具体来说, 在Windows操作系统中你应该执行ipconfig /flushdns命令, 而在macOS系统中则需要使用dscacheutil -flushcache命令来操作。完成上述步骤之后再进行复测。
记录是缺失的, 查询结果是返回了NOERROR, 但是没有对应的记录。需要登录到域名管理面板里面, 去确认一下目标那条记录是不是已经被正确地添加进去了, 并且处于启用状态。
指向出现了错误, 记录明明是存在的, 但是返回的IP地址并不是我们预期的那个位置。这种情况常见于服务器发生了迁移或者是CDN进行了切换之后, DNS记录没有进行同步的更新, 需要去比对管理后台上面的配置信息并且要和实际的解析值进行对比查看。
存在区域性故障的问题, 意思是说在部分的地方网络解析是普通的, 而在另外一些地方的网络解析就是出问题了的情况。这个情况多数是因为本地的DNS服务受到了污染或者是特定的CDN节点出现了损坏故障造成的。只要通过切换到不同的公共DNS服务器去进行操作, 就可以用快速的方法来验证上述判断是否正确。
修复操作与日常预防
对于超时类的故障, 应当联系DNS服务商来排查底层服务的情况;如果发现记录缺失了, 需要在管理平台上去补录对应的条目, 并且确认TTL已经生效;如果出现指向错误的情况, 在更新记录后需要等待TTL过期, 这里可以临时将TTL的数值降低为60秒, 用来加速生效的过程;如果是区域性故障, 可以采用权威DNS进行直查, 或者切换到本地的DNS来解决。
预防措施方面, 需要把关键业务域名的A记录配置成至少两条, 以此来形成冗余;同时, 在日常操作里要把TTL值控制在300秒以内, 这样做的目的是为了缩短出现故障时的恢复时间;另外, 还要每周使用在线检测工具对核心域名执行一次全量巡检, 记录下基线数据, 一旦出现偏差就要快速定位变化的地方并进行处理。

