RRSIG 是什么
RRSIG(TYPE 46)是 DNSSEC 中每个记录集(RRset)的数字签名:验证解析器用区域 DNSKEY 校验它,确认记录来自该权威区域且未被篡改(RFC 4034 §3)。签名带明确的起止时间,必须定期重签,因此 DNSSEC 的日常运维重点就是「签名有效期」与「自动重签是否正常」,而不是签一次就永久有效。
基本信息
| 类型 | RRSIG(TYPE 46) |
|---|---|
| 字段 | 覆盖类型、算法、标签数、原始 TTL、起始与过期时间、key tag、签名者、签名值 |
| 规范 | RFC 4034 §3 |
| 有效期 | 由起始与过期时间决定,过期即验证失败 |
| 运维要点 | 自动重签与密钥轮换必须留重叠期 |
典型使用场景
- DNSSEC 验证失败排障:第一件事就是看签名是否过期
- 自动化运维:确认签名轮换与重签任务正常运行
- 解释解析器行为:为什么权威直查正常、走验证解析器却 SERVFAIL
- 安全审计:确认区域内所有记录集都被签名覆盖
- 变更管理:改记录后必须重签,否则记录集与签名不匹配
- 迁移演练:区域搬移后验证整条签名链是否完整
查看记录与签名
查看记录与签名
# 查看 A 记录及其对应的 RRSIG
dig +dnssec +noall +answer example.com A
dig +dnssec +noall +answer example.com RRSIG
# example.com. 3600 IN RRSIG A 13 2 3600 (
# 20261001000000 20261101000000 2371 example.com. <base64签名> )
# 字段顺序:覆盖类型 算法 标签数 原始TTL 起始 过期 key tag 签名者RRSIG 字段读法
| 字段 | 含义 | 异常信号 |
|---|---|---|
| 覆盖类型 | 本条签名保护哪种记录 | 某类型缺失说明该类型未签名 |
| 算法编号 | 如 13 表示 ECDSA P-256 | 新旧算法切换需双签过渡 |
| 签名有效期 | 起始与过期时间 | 已过期即验证失败 |
| key tag | 指向所用的 DNSKEY | 找不到对应密钥说明链断 |
| 原始 TTL | 签名时记录的 TTL 值 | 与实际 TTL 偏差过大会引发验证问题 |
典型症状是「权威直接查询正常、走验证解析器就 SERVFAIL」,多数源于签名过期,或链上 DS 与 DNSKEY 不一致。
时间敏感操作(重签、密钥轮换)要预留重叠期,避免过期瞬间全网验证失败;小站用支持自动重签的托管 DNS 更省事。
记录值变更后旧签名不再匹配,变更流程必须把「重新签名并发布」列为必要步骤,而不是可选项。