首页/网络/抓包与流量分析速查/CD/AD 位与 DNSSEC 相关位
应用层报文判读71 条

CD/AD 位与 DNSSEC 相关位

CD 表示客户端不信任验证结果、AD 表示响应已通过验证:两者缺失或语义错会在启用 DNSSEC 的域名上造成"有答案但被弃用"。

CD 与 AD 是什么

启用 DNSSEC 之后,响应里会出现两个与验证相关的关键标志:CD 表示客户端要求解析器不做验证,AD 表示这份响应已经通过验证。它们的缺失或语义被错误设置,会在启用 DNSSEC 的域名上造成有答案却被弃用的现象,典型表现是客户端拿到响应后仍然报解析失败。另有一类情况是启用了验证的解析器在验证失败时直接返回服务器故障码,这时抓包里根本没有可用答案,必须换到解析器视角核对验证状态。

基本信息

协议依据RFC 4035(DNSSEC 协议)、RFC 6840
抓包字段dns.flags.check_disable(CD)与 dns.flags.authenticated(AD)
CD 语义客户端要求跳过验证
AD 语义响应已经通过验证
失败表现验证失败的解析器可能直接返回服务器故障码

典型使用场景

  • DNSSEC 域名排障:确认验证结果是成功、失败还是被跳过
  • 中间解析器核查:确认 AD 位是否被上游或中间设备剥离
  • 客户端行为分析:判断客户端是否主动要求跳过验证
  • 变更验证:启用验证前后对比标志位的变化
  • 故障归类:把验证失败与记录不存在区分开

标志位观察

标志位观察
dns.flags.check_disable == 1     # CD 位被置位
dns.flags.authenticated == 1     # AD 位被置位
# 启用验证的解析器在验证失败时可能直接返回服务器故障
# 此时抓包里没有可用答案,需要换到解析器视角核对

标志位判读

标志状态含义异常表现
CD 置位客户端要求跳过验证被错误置位会直接绕过验证
AD 置位响应已通过验证被中间设备剥离会造成误判
两者都不置位未启用或未要求验证需结合配置预期判断是否正常
本地抓包常常看不到验证记录的细节,因为上游解析器已经把结果消化掉了;判断验证是否成功要以解析器视角的日志与状态为准。
不支持验证的中间解析器可能把 AD 位直接剥掉,仅凭该位缺失就断定域名未通过验证并不严谨。

易错点

  • 不支持验证的中间解析器会剥离 AD 位,仅凭该位缺失就断定域名验证失败会得出错误结论
  • CD 位被错误置位会直接跳过验证,安全场景必须单独核对,不能只看能否解析成功
  • 验证失败时解析器可能直接返回服务器故障码,看起来像解析器故障,实际问题出在验证环节
  • 只依赖本地抓包判断验证状态不可靠,上游消化后本地看不到完整的验证信息

数据来源与参考

  • RFC 4035(DNSSEC 协议)
  • RFC 6840
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌