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