Двоичный файл зоны на BIND9

8

Файл зоны DNS Master был передан ведомому, но я не могу прочитать файл зоны:

> less db.example.com

"db.example.com "may be a binary file.  See it anyway?

Это произошло после того, как я использовал эту команду:

cp -r /usr/local/sbin/* /usr/sbin/.

Я установил bind V.9.9 вместо V.9.6. Я хотел бы иметь возможность читать файл зоны в виде простого текста.

user1044942
источник
6
Почему ты cp -r /usr/local/sbin/* /usr/sbin/.???
Гевиал
1
Я бы сказал: переустановите свой сервер и все. Сокращением может быть просто переустановить «world» (или часть «sbin») и удалить все добавленные файлы из «/ usr / local / sbin».
Ouki
Является ли этот файл DNS действительно двоичным файлом (или есть некоторые управляющие символы, которые делают его "менее" несовпадающим)?
Ouki
это может быть что-то простое, такое как непечатаемые управляющие символы в файле, или данные вашей зоны на ведомых устройствах могут действительно храниться в необработанном формате, так как вы используете BIND 9.9, в этом случае см. мой ответ ниже - вы Вы можете использовать named.compilezone для перехода из одного формата в другой, если вы просто хотите посмотреть файл.
Майкл МакНалли,

Ответы:

23

Файлы данных ведомой зоны в BIND 9.9 по умолчанию имеют «сырой» формат. Вы можете конвертировать файлы зон в «сыром» формате в «текстовый», используя утилиту named-compilezone, которая поставляется с BIND.

сырье в текст:

# convert raw zone file "example.net.raw", containing data for zone example.net,
# to text-format zone file "example.net.text"
#
#   (command)     (format options)   (output file)  (zone origin) (input file)
named-compilezone -f raw -F text -o example.net.text example.net example.net.raw

текст в сырье:

# convert text format zone file "example.net.text", containing data for zone
# example.net, to raw zone file "example.net.raw"
#
#   (command)     (format options)   (output file) (zone origin)  (input file)
named-compilezone -f text -F raw -o example.net.raw example.net example.net.text
Майкл МакНалли
источник
Спасибо. Есть 2 файла. 1-й файл - это db-HdPKbJ2m (оригинал, а не бинарный файл) и db.example.com (бинарный файл), и я использовал следующую команду: named-compilezone -f raw -F text -o db.example.com db-HdPKbJ2m db.example.comНо эта ошибка произошла. dns_master_load: example.com: not at top of zone dns_master_load: not at top of zone zone db-HdPKbJ2m/IN: loading from master file db.example.com failed: not at top of zone zone db-HdPKbJ2m/IN: not loaded due to errors.
user1044942
Возможно, что-то в вашей системе каким-то образом повредило файлы зоны. Я бы порекомендовал, чтобы, если файлы не читались правильно, я остановил сервер на ведомом устройстве, удалил поврежденные файлы зоны (или, если хотите, переименовал их, чтобы убрать их с пути), и перезапустил подчиненный сервер. Он должен повторно передать содержимое зоны от мастера.
Майкл МакНалли
Спасибо за это просвещение. К вашему сведению, требуется (!) 5 (!) Минут (!), Чтобы выгрузить файл зоны размером 11 КБ, содержащий всего 628 записей на моей стороне. Нет, это ни IO, ни процессор. (Это, вероятно, нужно назвать магией привязки.) И еще один интересный вопрос: зачем мне указывать имя зоны? Разве эта информация уже не в файле?!? (Ну, давайте назовем это секретом темной привязки.) PS: С опцией-i none это занимает долю секунды.
Тино
7

Или просто отредактируйте ваш named.conf и используйте эту опцию:

Masterfile-Format Text;

Вы можете сделать то же самое в каждом варианте зоны.

VBnoob
источник
Возможно ли сделать это глобально?
ноября
да, просто вставьте его в named.conf.options
VBnoob