首页/网络/抓包与流量分析速查/NXDOMAIN 判读与影响
应用层报文判读71 条

NXDOMAIN 判读与影响

名字不存在(rcode 3):拼写错误、记录被删或内网域外泄查询都会产生;大量 NXDOMAIN 拖慢页面且污染日志。

NXDOMAIN 是什么

NXDOMAIN 对应响应码 3,表示所查询的名字在权威数据中不存在。它有三类常见来源:用户或程序把域名拼错;记录被删除或尚未创建;终端在搜索域补全、CDN 探测与安全扫描时发出的大量无意义查询。大量 NXDOMAIN 会拖慢页面首屏,因为每次失败都要等一个响应才能继续,同时也会污染解析日志与失败率指标。排查思路是先按查询名聚集,把预期内的噪音与真正的拼写错误、配置遗漏区分开来。

基本信息

响应码3(NXDOMAIN,名字不存在)
抓包字段dns.flags.rcode == 3
常见来源拼写错误、记录被删、搜索域补全、子域探测
性能影响每次失败都要等待响应,首屏与重试逻辑变慢
相关机制否定结果同样会被解析器缓存

典型使用场景

  • 首屏变慢排查:确认是否存在大量等待失败响应的查询
  • 配置核查:上线后发现解析不到,先确认记录是否真的存在
  • 噪音识别:搜索域补全与探测类查询会产生预期内的失败结果
  • 安全观察:子域扫描会造成失败查询的尖峰
  • 日志治理:把无意义的失败查询从故障指标中剔除

聚集与观察

聚集与观察
tshark -r dns.pcap -Y 'dns.flags.rcode == 3' -T fields -e dns.qry.name \
  | sort | uniq -c | sort -rn | head
# 按查询名聚集,区分预期噪音与真实错拼
# 再看来源地址分布:集中还是分散

来源与处置

来源特征处置
拼写错误集中在个别名称且长期重复修正配置或代码中的域名
记录缺失与变更时间点吻合补齐记录并预留否定缓存时间
搜索域补全名称带单标签或半截域名统计时按特征剔除
子域扫描来源分散、名称无规律纳入安全告警而不是故障指标
否定结果同样会被缓存:记录修改之后,在否定缓存有效期内仍可能继续返回名字不存在,这属于预期行为,不要当成配置没有生效。
判断失败查询是否异常,先看来源分布:单一来源反复失败更像配置问题,来源分散且名称随机的查询更接近扫描行为。

易错点

  • 记录已经配置却在否定缓存期内继续解析不到,容易被误判为配置未生效,先确认否定缓存的有效期再下结论
  • 把 CDN 与搜索域补全产生的失败查询计入故障指标会虚高失败率,统计前先按域名特征剔除
  • 大量失败查询会让首屏明显变慢,只优化成功路径而不清理失败请求,收效非常有限
  • 仅凭失败查询尖峰就判定遭受攻击会误伤探测类工具,需要结合来源分散度与名称规律

数据来源与参考

  • RFC 2308(NXDOMAIN 缓存)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌