Использование bind 9.8.2 в RHEL 6.5, запуск chroot'd.
У меня есть файл зоны, который включает другие файлы (это зона с большим количеством серверов в разных центрах обработки данных, и есть один включенный файл на каждый центр обработки данных).
Файлы зоны и включенные файлы находятся в
/var/named/chroot/var/named/zones/master/example.com
/var/named/chroot/var/named/zones/master/lax01
На подключаемые файлы ссылаются в файле зоны относительно каталога chroot'd:
$INCLUDE zones/master/lax01
При попытке использовать dnssec-signzone для подписи зоны возникает ошибка, поскольку не удается загрузить включенный файл.
# cd /var/named/chroot/var/named/zones/master
# dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
-N INCREMENT -o example.com -t example.com
dnssec-signzone: error: dns_master_load: example.com:287: zones/master/lax01: file not found
dnssec-signzone: fatal: failed loading zone from 'example.com': file not found
Есть ли лучший способ указать путь для директивы INCLUDE? Я не вижу способа указать dnssec-signzone учитывать директиву chroot. Нужно ли мне делать это из другого каталога и по-другому ссылаться на пути?
Я не думаю, что ваш chroot имеет к этому какое-то отношение. Даже без chroot я все равно ожидал бы сбоя этой команды. dnssec-signzone
не читает из named.conf
и не знает рабочий каталог, указанный через directory
вариант.
Учитывая, что это так, все включаемые файлы должны относиться к вашему текущему рабочему каталогу. Команда должна работать должным образом, если вы выполните ее так:
# cd /var/named/chroot/var/named
# dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) \
-N INCREMENT -o example.com -t zones/master/example.com
Обратите внимание, что каталог, в который мы перешли, фактически является рабочим каталогом вашего сервера BIND во время выполнения.