В моей системе есть файл 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
Что это означает? В чем проблема? Разве нельзя использовать разные ключи для разных зон?
Похоже, вы неправильно поняли цель rndc
ключ.
Вполне возможно, что это недоразумение связано с прочтением одного из многих небрежно написанных руководств, которые срезают углы за счет неправильного использования уже существующего ключа ( rndc
key), созданный для одной конкретной цели в совершенно другом контексте, даже не комментируя это неправильное использование.
В rndc
ключ должен иметь ОДНУ цель, он должен использоваться rndc
полезность и named
так что rndc
может отправлять команды управления named
(например rndc reload
, rndc freeze
или что-то еще).
Этот ключ НЕ должен использоваться для динамических обновлений (как в allow-update
).
НЕ ДОЛЖНО быть нескольких ключей в rndc.key
файл.
Однако вы можете, если хотите, можете добавить любое количество key
операторов для ключей TSIG к named
конфигурация (named.conf
). Это то, что вы должны использовать для таких целей, как динамическое обновление, перенос зон и т. Д.
Я бы посоветовал вам назвать эти ключи так, чтобы они отражали их использование.
Если у вас есть современная версия BIND, просто используйте tsig-keygen foo
для создания нового ключа. Это и удобнее, и имеет разумные настройки по умолчанию (hmac-sha256
а не hmac-md5
ключи, которые вы создали).