Liste de toutes les zones chargées dans BIND


13

J'essaie de migrer un serveur DNS qui a plusieurs milliers de zones chargées dessus. Le fichier named.conf contient environ 17 inclusions différentes, et certains de ces fichiers contiennent également des inclusions, et beaucoup de commentaires, etc. C'est un bordel!

Je souhaite obtenir une liste de toutes les zones actuellement chargées dans BIND. J'ai regardé rndc dumpdb mais il ne me montre pas seulement les zones.

Au lieu de suivre les fichiers include désordonnés, existe-t-il un moyen plus simple d'obtenir une liste des zones autorisées dans BIND? Merci!

Réponses:


15

Vous pouvez exécuter rndc dumpdb -zonespour créer un fichier appelé cache_dump.db . Ce fichier contiendra toutes les zones faisant autorité et sera créé dans le répertoire de données de BIND.


C'est ce que je pensais aussi, mais cela ne me montre que les zones arpa dns inversées
DuPie

Je voudrais vérifier les fichiers journaux pour plus d'informations. Si seules les zones ARPA inversées sont dans le fichier de vidage, je dirais que seules celles-ci sont chargées dans le serveur DNS.
Vladimir Blaskov

1
Où se trouve le répertoire de données de BIND?
Qian Chen

C'est soit /var/namedou /var/named/chroot/var/named(si vous utilisez chroot'ed BIND) sur la plupart des distributions, mais votre kilométrage peut varier en fonction de la distribution que vous utilisez.
Vladimir Blaskov

1
Sur Debian Jessie, le fichier s'est terminé dans /var/cache/bind/named_dump.db
Calimo

2

Confirmé rndc dumpdb est la meilleure méthode.

Dans mon cas, j'ai découvert qu'il y avait 2 instances de liaison distinctes fonctionnant sur le même serveur (ne demandez pas), une faisant des DNS directs et une faisant des DNS inverses. Sans spécifier le PID, il s'est attaché à celui qui ne faisait que le DNS inverse et ne m'a montré que cela.


2

Si vous souhaitez simplement que la configuration (y compris les fichiers include) soit imprimée sous sa forme canonique, vous pouvez simplement appeler:

named-checkconf -p(facultativement avec -t /some/chroot/dirsi BIND s'exécute chrooté et que la configuration doit être lue depuis le répertoire chroot)

Cela aplatit tous les fichiers inclus, supprime tous les commentaires et met tout en forme proprement.

Bien que la sortie contienne des zones configurées statiquement, elle ne répertorie pas les zones dynamiques, comme celles ajoutées avec rndc addzone.


1

L'ajout de -all fait l'affaire pour moi (sur Ubuntu Ubuntu 16.04.2 LTS (xenial))

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

1

Pour les nouvelles versions de BIND9, à partir de 9.12.0a1; là aussi named-checkconf -lqui peut lister les zones dans un format facile, y compris l'état et les vues maître / esclave.

Exemple:

$ 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

Voici la commande exacte pour répertorier les zones chargées au démarrage. Ceci est testé sur RHEL6.7 x86_64.

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

Exemple:

[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
veuillez expliquer plus.
Sven

Veuillez vous référer à la réponse modifiée.
Sasikumar K

0

Une autre alternative consiste à utiliser bind'ses propres statistiques au format XML, si vous avez activé statistics-channelet que les statistiques de zone sont activées (par exemple dans le global options { }). Cette méthode vous permet également de sélectionner / afficher facilement les vues, les types de zone et les données de zone (par exemple le numéro de série), ainsi que les statistiques par zone bien sûr.

Utilisation de wgetet 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

Ce qui précède affiche une liste de tous les domaines maîtres dans la vue _default .

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

Ce qui précède montre toutes les zones sous forme CSV: zone, vue, type, série.

Pour sélectionner uniquement une vue et un type de zone spécifiques :

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

(Cette fonction de statistiques est disponible depuis bind-9.6.0, décembre 2008. Le /v3/format utilisé ci-dessus n'est disponible que depuis bind-9.10, avril 2014. Le format JSON peut également être disponible, donc quelque chose d'analogue devrait être possible avec jot.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.