Перечисление всех зон, загруженных в BIND


13

Я пытаюсь перенести DNS-сервер, на котором загружено несколько тысяч зон. Файл named.conf содержит около 17 различных включений, и некоторые из этих файлов также включают в себя, множество закомментированных и т. Д. Это ужасный беспорядок!

Я хочу получить список всех зон, загруженных в данный момент в BIND. Я посмотрел на rndc dumpdb, но он не показывает мне только зоны.

Вместо того, чтобы следовать за грязными включаемыми файлами, есть ли более простой способ получить список авторских зон внутри BIND? Благодарность!

Ответы:


15

Вы можете запустить, rndc dumpdb -zonesчтобы создать файл с именем cache_dump.db . Этот файл будет содержать все официальные зоны и будет создан в каталоге данных BIND.


Это то, что я тоже думал, но это только показывает мне обратные зоны DNS
Arpa

Я хотел бы проверить файлы журнала для получения дополнительной информации. Если в файле дампа находятся только зоны обратного ARPA, я бы сказал, что только они загружаются на DNS-сервер.
Владимир Бласков

1
Где находится каталог данных BIND?
Цянь Чен

Это либо /var/namedили /var/named/chroot/var/named(если вы используете chroot'ed BIND) в большинстве дистрибутивов, но ваш пробег может варьироваться в зависимости от используемого дистрибутива.
Владимир Бласков

1
В Debian jessie файл заканчивался в /var/cache/bind/named_dump.db
Calimo

2

Подтверждено, что rndc dumpdb - лучший метод.

В моем случае я обнаружил, что на одном сервере выполняются 2 отдельных экземпляра привязки (не спрашивать), один выполняет пересылку dns, а другой - пересылку dns. Не указав PID, он привязался к тому, который только делал обратный днс и только показал мне это.


2

Если вы просто хотите, чтобы конфигурация (включая любые включаемые файлы) была напечатана в ее канонической форме, вы можете просто позвонить:

named-checkconf -p(опционально, -t /some/chroot/dirесли BIND запускается chroot и необходимо прочитать конфигурацию из каталога chroot)

Это выравнивает все включаемые файлы, удаляет все комментарии и аккуратно форматирует все.

Хотя выходные данные будут включать статически настроенные зоны, в нем не будут перечислены динамические зоны, подобные тем, которые были добавлены rndc addzone.


1

Добавление -все помогает мне (на Ubuntu Ubuntu 16.04.2 LTS (xenial))

sudo rndc dumpdb -all && cat /var/cache/bind/named_dump.db

1

Для более новых версий BIND9, начиная с 9.12.0a1; там также named-checkconf -lможно перечислить зоны в удобном формате, включая статус «ведущий / ведомый» и представления.

Пример:

$ sudo /usr/sbin/named-checkconf -l -t /chroot/bind/
example.com IN external master
otherdomain.com IN external slave
internal.example.com IN internal master
example.com IN internal in-view external
otherdomain.com IN internal in-view external

# this has 2 views: external, internal
# and 3 zones: example.com, otherdomain.com, internal.example.com
# the external view contains: example.com, and slaves otherdomain.com
# the internal view uses in-view statements to show
# the same version of external zones, plus contains a unique zone

0

Ниже приведена точная команда для отображения зон, которые загружаются во время запуска. Это проверено на RHEL6.7 x86_64.

/usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded

Пример:

[root@dnsserver ~]# /usr/sbin/named-checkconf -z -t /var/named/chroot | grep loaded
zone 0.0.127.in-addr.arpa/IN: loaded serial 2008040700
zone 19.58.10.in-addr.arpa/IN: loaded serial 2008040701
zone 11.54.10.in-addr.arpa/IN: loaded serial 2008040700
zone example.com/IN: loaded serial 2008040702
zone ./IN: loaded serial 2008040700

2
пожалуйста, объясните больше.
Свен

Пожалуйста, обратитесь отредактированный ответ.
Сасикумар К

0

Другой альтернативой является использование bind'собственной статистики в формате XML, если вы включили statistics-channelи включили статистику зоны (например, в глобальной сети options { }). Этот метод также позволяет легко выбирать / показывать виды, типы зон и данные о зонах (например, серийный номер), а также статистику по зонам, конечно.

Использование wgetи xml(xmlstarlet):

wget -O - http://127.0.0.1:1080/xml/v3/zones | 
  xml select -I -t -m '/statistics/views/view[@name="_default"]/zones/zone[type="master"]' \
    -v @name -nl

Выше показан список всех основных доменов в представлении _default .

wget ... |
  xml select -I -t -m '/statistics/views/view/zones/zone' \
   -v @name -o , -v ../../@name -o , -v type -o , -v serial -nl

Выше показаны все зоны в формате CSV: зона, вид, тип, серийный номер.

Чтобы выбрать только определенный вид и тип зоны :

 wget ... |
   xml select -I -t -m '/statistics/views/view[@name="_bind"]/zones/zone[type="builtin"]' \
     -v @name -nl

(Это средство статистики доступно с bind-9.6.0, декабрь 2008 года. /v3/Используемый выше формат доступен только с bind-9.10, апрель 2014 года. Также может быть доступен формат JSON, поэтому может быть возможно что-то аналогичное jot.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.