我有一个域名 example.company.com,该域名受 DNSSEC 保护,并已将其 DS 记录发送到父域名 company.com。我想创建另外 2 个子域名,均受 DNSSEC 保护,即 sub1.example.company.com 和 sub2.example.company.com。但是这里的父域名是 example.company.com 而不是 company.com,所以我想将子域名的 DS 记录包含在 example.company.com 的区域文件中。
但是,当我手动添加 DS 记录并尝试使用与之前相同的密钥(未过期)重新签署 example.company.com 时,我收到以下错误
dnssec-signzone: fatal: dnssec-signzone: fatal: 'sub1.example.company.com': found DS RRset without NS RRset
我在这里做错了什么,或者如何在给定我现有的主域名(example.company.com)的情况下确保子域名的 DNSSEC 保护?
答案1
DS
NS
记录仅用作区域之间委派的一部分,即与定义此类委派的记录并行。
例如,如果您有一个区域example.com
,并且只是为这个区域添加记录foo.example.com
或foo.bar.example.com
向这个区域添加记录,那么由于它是同一区域的一部分,所以该区域已经被覆盖。
但是,如果您委托例如sub.example.com
这样一个单独的区域,那么您将拥有该区域中的NS
和DS
记录。sub.example.com
example.com
我不确定这个问题描述的是上述哪种情况,但要么您缺少NS
新区域委派的记录,要么您试图DS
在区域“内”添加多余的记录。
此外,我强烈建议使用在 BIND 中集成 DNSSEC 签名支持(auto-dnssec maintain
如果需要inline-signing
配置选项)而不是旧的外部dnssec-signzone
工具。