DS 记录是什么
DS(Delegation Signer,委托签名者)是 DNSSEC 信任链的关键环节:父区域用 DS 记录保存子区域 KSK 公钥的摘要,验证解析器从根区域一路向下校验,最终确认你的区域签名可信。注意 DS 不在你自己的区域里,而是由上级(注册商或父区)发布,所以它的摘要必须与本地 DNSKEY 严格对应。摘要类型、算法号写错或者忘记提交,都会让整条链断开。
基本信息
| 类型 | DS(TYPE 43) |
|---|---|
| 字段 | key tag、algorithm、digest type、digest(十六进制摘要) |
| 规范 | RFC 4034 §5;RFC 4509 定义 SHA-256 摘要 |
| 位置 | 父区域,通常由域名注册商侧发布 |
| 常见取值 | digest type 2=SHA-256;算法 13=ECDSAP256SHA256、8=RSASHA256、15=ED25519 |
典型使用场景
- 启用 DNSSEC 时把本地 DNSKEY 的摘要提交给注册商,把信任链建立起来
- 更换 KSK 时按轮换流程先在父区加新 DS,双签一段时间后再撤旧 DS
- 排查解析失败:核对 DS 与 DNSKEY 是否匹配、算法与摘要类型是否被验证器支持
- 迁移 DNS 服务商后确认 DS 同步更新,避免长时间处于半失效状态
- 安全审计:DS 摘要类型仍为 SHA-1(digest type 1)应列为待升级项
查询与比对
查询与比对
dig +short example.com DS # 读父区发布的 DS:keytag alg digestype digest
dig +short example.com DNSKEY # 读本区公钥,用于与 DS 比对
dig +dnssec example.com A | grep -E 'flags:|ad' # ad 标志表示解析器已验证通过
dig @1.1.1.1 example.com A +dnssec # 用开启验证的解析器复测:权威能答而它 SERVFAIL 常见于链断输出逐列读法
| 列 | 含义 | 正常或异常 |
|---|---|---|
| key tag | DNSKEY 的短标识 | 与本地 DNSKEY 对不上就是链断起点 |
| algorithm | 签名算法号(13=ECDSAP256SHA256) | 验证器不支持该算法会判为不安全 |
| digest type | 摘要算法(2=SHA-256,1=SHA-1) | 仍用 1 属历史遗留,建议更换 |
| digest | 公钥摘要的十六进制串 | 与本地计算结果不一致说明提交了过期摘要 |
DS 由父区发布,你无法在自己的区域文件里直接改写:改过 DNSKEY 或轮换密钥后必须回到注册商处更新 DS,否则形成签名孤岛——权威应答完全正常,而所有开启验证的解析器都判为不安全。
RSASHA1 与 digest type 1(SHA-1)正在被主流验证器逐步淘汰,新部署直接选 13(ECDSAP256SHA256)或 8(RSASHA256)更省事,也避免日后被动轮换。
删除 DS 等于对外宣布该区域不再使用 DNSSEC;密钥轮换期间若先删后加,中间窗口内子域会验证失败,表现为部分解析器返回 SERVFAIL。