Я пытаюсь реализовать DNSSEC с параметром bind> = 9.9 inline-sgning
.
Ранее я успешно вручную подписывал ту же зону, создав файл .signed с dnssec-signzone
. Но я не хочу каждый раз вручную подписывать зону, поэтому хочу использовать inline-signing
чтобы позволить bind делать вещи.
Поэтому я изменил оператор параметров с помощью key-directory "/etc/bind/keys"; dnssec-validation auto; dnssec-enable yes;
и в заявлении зоны я добавил auto-dnssec maintain; inline-signing yes;
. Но сервер все еще не отвечал
$ dig DNSKEY @<domain_ns>
В итоге я нашел эту команду, которая выдает ошибку.
# rndc loadkeys <domain>
rndc: 'loadkeys' failed: multiple
zone '<domain>' was found in multiple views
Немного контекста: я использую «внутреннее представление» для людей в моей сети и «внешнее представление» для других. Мне нужно сохранить их, и зона, которую я хочу подписать, доступна для обоих представлений.
И тогда я не знаю, как это решить, я пробовал использовать auto-dnssec
и inline-siging
варианты в обоих или только в одном из представлений. Кажется, не помогает. Итак, я спрашиваю здесь, знает ли кто-нибудь решение
Когда у вас есть одна и та же зона в нескольких представлениях, вам нужно указать rndc, с каким представлением работать. Это должно быть представление, в котором зона была определена как «мастер типа», а не то, в котором на нее была сделана ссылка с помощью «in-view».
Итак, предполагая, что вы определили зону для example.com в представлении под названием «external», вам нужно будет ввести:
# rndc loadkeys example.com IN external
То же самое для других команд rndc, просто поставьте «IN external» после имени домена, и он должен работать.