我正在使用 Bind 9.7.2-P2 测试 DNSSEC。我对在已存在的区域上创建的第一个签名有疑问。我正在使用动态 DNS。
我创建了前两个密钥:一个 KSK 和一个 ZSK。根据https://datatracker.ietf.org/doc/draft-ietf-dnsop-dnssec-key-timing/,第一个 ZSK 需要发布等于 Ipub 的间隔,然后才能激活。
我创建了 ZSK,其发布日期早于激活日期。我重新启动服务,可以看到密钥在发布日期发布,但当激活日期到来时,密钥不再有效。
这是 named.conf 文件中区域 dnssec.es 的配置:
zone "dnssec.es" {
auto-dnssec maintain;
update-policy local;
sig-validity-interval 1;
key-directory "dnssec/keys_dnssec";
type master;
file "dnssec/db.dnssec.es";
};
有什么线索吗?
问候
答案1
该互联网草案中讨论的时间考虑因素是针对您从一个密钥滚动到另一个密钥时,留出时间让来自前一个 ZSK 的签名从缓存中过期。首次对区域进行签名时,无需预先发布 ZSK。
这里发生的事情是,您告诉它开始使用一个密钥(KSK)对区域进行签名。由于没有其他已发布的密钥,因此它使用可用的一个密钥(KSK)对整个区域进行签名。(这是合法的 DNSSEC,但不是典型的配置。如果有有是一个活跃的 ZSK,它会使用 KSK 签署 DNSKEY 记录,并单独使用 ZSK 签署所有其他内容,但它必须与给定的内容一起工作。)
一段时间后,ZSK 发布了(但未激活),因此它被添加到 DNSKEY 记录中,但未用于签名。再后来,ZSK 确实变为活动状态,但此时区域中的记录已经全部签名,因此 named 认为它现在不需要做任何工作。当 KSK 签名接近其到期时间时,它们应该会自动从区域中清除并替换为现在活动的 ZSK 的签名。由于您已将 sig-validity-interval 设置为一天,因此这应该会在明天某个时候开始发生。
无论如何,就您的目的而言,您只想制作两个立即发布并生效的密钥。在滚动密钥之前,您无需考虑发布前的间隔。
Evan(BIND 9.7 的主要作者)