Чтобы убедиться, что распознаватель также может разрешить, когда он не подключен к Интернету (что обычно не так), я настроил зону пересылки:
zone "example.com" {
type forward;
forward only;
forwarders { 1.2.3.4; 5.6.7.8; };
}
Перечисленные здесь серверы пересылки являются авторитетными серверами имен. Это отлично работает, за исключением зоны, в которой включен dnssec. Проверка не выполняется, потому что запрос не выполняется рекурсивно и, следовательно, не подписан правильно (что я ожидаю).
Я не хочу отключать проверку dnssec для этой зоны, но вместо этого доверяю ключу.
Как я могу этого добиться? Можно ли настроить это для каждой зоны?
Относится к: bind9 настроить прямую зону для локального домена без DNSSEC только для этой зоны
Если я правильно понимаю вопрос, проблема может заключаться в том, что вы по какой-либо причине не можете проверить всю цепочку доверия вплоть до корня (где у вас есть привязка доверия по умолчанию). Если проблема возникает, в частности, без подключения к Интернету, это имеет смысл.
Что вы можете сделать (особенно если вы будете осведомлены о любых изменениях, например, если это ваша собственная зона), так это явно добавить свой собственный якорь доверия для этой конкретной зоны напрямую.
В BIND это можно сделать с помощью trusted-keys
директива config (или managed-keys
если применимо, для автоматизированных (RFC5011) доверять обновлениям якоря).
Затем вы, по сути, указываете ключ, которому вы хотите доверять для определенной зоны, вместо того, чтобы полагаться на обычную цепочку доверия, опубликованную через DS
записи, отслеживающие весь путь до корня.
Например
trusted-keys {
example.com. 257 3 8 "AwEAAbOFAxl+Lkt0UMglZizKEC1AxUu8zlj65KYatR5wBWMrh18TYzK/ ig6Y1t5YTWCO68bynorpNu9fqNFALX7bVl9/gybA0v0EhF+dgXmoUfRX 7ksMGgBvtfa2/Y9a3klXNLqkTszIQ4PEMVCjtryl19Be9/PkFeC9ITjg MRQsQhmB39eyMYnal+f3bUxKk4fq7cuEU0dbRpue4H/N6jPucXWOwiMA kTJhghqgy+o9FfIp+tR/emKao94/wpVXDcPf5B18j7xz2SvTTxiuqCzC MtsxnikZHcoh1j4g+Y1B8zIMIvrEM+pZGhh/Yuf4RwCBgaYCi9hpiMWV vS4WBzx0/lU=";
};