bind9:rndc 冻结:键重新定义?

bind9:rndc 冻结:键重新定义?

我的系统上有这个 rnd.key 文件:

key "rndc-key1" {
    algorithm hmac-md5;
    secret "xxxxxxxxxxxxxxx==";
};
key "rndc-key2" {
        algorithm hmac-md5;
        secret "yyyyyyyyyyy==";
};

然后我将它们用于不同的区域:

zone "somedomain1.com" {
    type master;
    file "/etc/bind/master/db.somedomain1.com";
    allow-update {
    key rndc-key1;
    };
};


zone "somedomain2.com" {
    type master;
    file "/etc/bind/master/db.somedomain2.com";
    allow-update {
    key rndc-key2;
    };
};

当我尝试运行“rndc freeze”时出现此错误:

rndc: error: /etc/bind/rndc.key:5: 'key' redefined near 'key'
rndc: could not load rndc configuration

这是什么意思?这里有什么问题?不同的区域不能使用不同的密钥吗?

答案1

看来您误解了rndc密钥的用途。
这种误解很可能源自阅读了许多草率编写的教程,这些教程偷工减料,rndc在完全不同的环境中滥用为特定用途创建的现有密钥(密钥),甚至没有对这种滥用进行评论。

rndc密钥应该只有一个用途,即由rndc实用程序使用,named以便rndc可以发送控制命令named(例如rndc reloadrndc freeze或其他)。

此密钥不应用于动态更新(如allow-update)。

文件中不应有多个键rndc.key

但是,您可以自由地(如果您愿意的话)将任意数量的keyTSIG 密钥语句添加到named配置 ( named.conf)。这些是您应该用于动态更新、区域传输等目的的内容。
我建议您为这些密钥命名以反映其用途。

如果您有 BIND 的现代版本,只需使用它tsig-keygen foo来创建新密钥。它不仅更方便,而且具有合理的默认值(hmac-sha256而不是hmac-md5您创建的密钥)。

相关内容