1
0
Files
DiAL/docs/user/checkers/dns.md

5.0 KiB
Raw Blame History

DNS Checker

type: dns 支持两种解析模式:本机解析器检查和指定 DNS server 协议级检查。

resolver 模式

模式 说明
system 使用本机 DNS 解析器检查域名是否能解析到预期地址
server 直接向指定 DNS server 发起 UDP/TCP 深度拨测,检查 RCODE、TTL、flags、记录值等

dns.resolver: system 配置项

字段 说明 必填 默认值
dns.resolver 解析模式 system
dns.name 待解析域名
dns.family 地址族:anyipv4ipv6 any

system 模式 expect

字段 说明 断言模型
values 解析结果地址集合断言 DNS 集合include/exclude/exact
valueCount 解析结果数量 ValueMatcher
durationMs 解析耗时 ValueMatcher
- id: "dns-system-api"
  name: "本机 DNS 解析"
  type: dns
  dns:
    resolver: system
    name: "api.example.com"
    family: any
  expect:
    values:
      exact:
        - "203.0.113.10"
    durationMs:
      lte: 500

dns.resolver: server 配置项

字段 说明 必填 默认值
dns.resolver 解析模式 server
dns.server DNS server 地址
dns.name 查询域名
dns.port DNS server 端口 53
dns.protocol 传输协议:udptcp udp
dns.recordType DNS 记录类型 A
dns.recursionDesired 是否设置 RD flag true
dns.tcpFallback UDP 响应 TC=1 时是否 TCP fallback true
dns.maxResponseBytes 响应最大字节数 4KB

recordType 可选值:AAAAACNAMENSMXTXTSOASRVCAAPTR

server 模式 expect

字段 说明 断言模型
responded 是否收到 DNS response boolean
rcode 期望 RCODE 列表,如 NOERROR string[]
values 目标类型记录值集合断言 DNS 集合include/exclude/exact
valueCount 目标类型记录数量 ValueMatcher
answerCount answer section 总记录数 ValueMatcher
ttlMin answer 中最小 TTL ValueMatcher
ttlMax answer 中最大 TTL ValueMatcher
authoritative AA flag boolean
recursionAvailable RA flag boolean
truncated TC flag boolean
authenticatedData AD flag boolean
result 完整结构化响应的 JSONPath 兜底断言 ContentExpectations
durationMs 完整查询耗时 ValueMatcher
- id: "dns-server-api"
  name: "Cloudflare DNS A 记录"
  type: dns
  dns:
    resolver: server
    server: "1.1.1.1"
    name: "api.example.com"
    recordType: A
  expect:
    rcode: ["NOERROR"]
    values:
      include:
        - "203.0.113.10"
    ttlMin:
      gte: 60
    durationMs:
      lte: 200

注意事项

  • 未配置 expect 时,system 模式默认要求解析成功且 valueCount > 0server 模式默认要求 NOERROR + valueCount > 0
  • 显式配置非 NOERROR rcodeNXDOMAIN)时,不自动要求 valueCount > 0
  • values.exact 忽略返回顺序。
  • 对 A/AAAA 查询CNAME 链不计入 values,单独放入 cnameChain
  • values 按记录类型规范化为字符串,例如 MX 为 "10 mail.example.com"SRV 为 "10 60 443 server.example.com"