Liste des domaines sur le serveur DNS?

8

Existe-t-il un moyen d'obtenir une liste complète des enregistrements A et CNAME sur mon serveur DNS BIND?

J'ai accès aux fichiers de zone. Mais sur mon serveur, il y a beaucoup de fichiers de zone, et il faudrait trop de temps pour les parcourir tous à la main. Existe-t-il une commande qui répertorie ces informations ou devrai-je écrire un script moi-même?

chroder
la source
O non! Pas un script!
womble

Réponses:

9

Plutôt que d'utiliser grepsur tous les fichiers de zone, utilisez:

% rndc dumpdb -zones

Cela créera un vidage des données faisant autorité du serveur appelées named_dump.db, probablement dans /var/named/data(ou similaire).

Ce fichier est plus facile à analyser que les fichiers de zone d'origine car chaque ligne commence par le nom de domaine auquel elle s'applique. Les fichiers de zone brute sont probablement abrégés.

Alnitak
la source
2
Parfait, c'est exactement ce dont j'avais besoin! Bien que le fichier ait été nommé named_dump.db dans mon cas. Merci :)
chroder
4
Sur Ubuntu, il semble finir/var/cache/bind/named_dump.db
m01
1

Depuis votre var/named/data(ou un répertoire équivalent) grep à travers les fichiers db. * Avec une expression régulière appropriée, quelque chose comme:

grep '\(.  *A   *[0-9][0-9]*\)\|\(..*CNAME..*\)' db.*

Notez que le fichier final 'db. * `Regroupe tous les fichiers db. Répétez l'opération pour chaque répertoire dans lequel vous avez des fichiers de zone.

ConcernedOfTunbridgeWells
la source
1
C'est à cela que sert la commande find! find / var / named / data -name 'db. *' -print0 | xargs -0 grep '...'
Chris Jester-Young
-2

pour i dans ma liste de domaines; do dig -t axfr $ i @localhost; terminé

Vous devez d'abord autoriser les transferts de zone depuis l'hôte local.

dmourati
la source