Listado de todas las zonas cargadas en BIND

13

Estoy tratando de migrar un servidor dns que tiene varios miles de zonas cargadas. El archivo named.conf tiene aproximadamente 17 inclusiones diferentes, y algunos de esos archivos también tienen inclusiones, y muchos comentarios, etc. ¡Es un desastre!

Quiero obtener una lista de todas las zonas actualmente cargadas en BIND. Miré a rndc dumpdb pero no me muestra solo las zonas.

En lugar de seguir los archivos de inclusión desordenados, ¿hay una manera más fácil de obtener una lista de las zonas autorizadas dentro de BIND? ¡Gracias!

DuPie
fuente

Respuestas:

15

Puede ejecutar rndc dumpdb -zonespara crear un archivo llamado cache_dump.db . Este archivo contendrá todas las zonas autorizadas y se creará en el directorio de datos de BIND.

Vladimir Blaskov
fuente
Eso es lo que pensé también, pero solo me muestra las zonas
dpa
Verificaría los archivos de registro para obtener más información. Si solo las zonas ARPA inversas están en el archivo de volcado, diría que solo estas se cargan en el servidor DNS.
Vladimir Blaskov
1
¿Dónde está el directorio de datos de BIND?
Qian Chen
Es /var/namedo bien /var/named/chroot/var/named(si está usando chroot'ed BIND) en la mayoría de las distribuciones, pero su kilometraje puede variar dependiendo de la distribución que esté usando.
Vladimir Blaskov
1
En Debian jessie el archivo terminó en /var/cache/bind/named_dump.db
Calimo
2

Confirmado rndc dumpdb es el mejor método.

En mi caso, descubrí que había 2 instancias de enlace separadas que se ejecutaban en el mismo servidor (no preguntar), una que hacía dns de reenvío y otra que hacía dns de reversa. Sin especificar el PID, se unió al que solo hacía DNS inverso y solo me mostró eso.

DuPie
fuente
2

Si solo desea que la configuración (incluidos los archivos de inclusión) se imprima en su forma canónica, simplemente puede llamar a:

named-checkconf -p(opcionalmente con -t /some/chroot/dirsi BIND se ejecuta chrooted y la configuración debe leerse desde el directorio chroot)

Esto aplana todos los archivos de inclusión, elimina todos los comentarios y formatea todo perfectamente.

Si bien la salida incluirá zonas configuradas estáticamente, no enumerará zonas dinámicas, como las agregadas con rndc addzone.

Håkan Lindqvist
fuente
1

Agregar -todos hace el truco para mí (en Ubuntu Ubuntu 16.04.2 LTS (xenial))

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

Para versiones más nuevas de BIND9, a partir de 9.12.0a1; allí también named-checkconf -lpuede enumerar las zonas en un formato fácil, incluido el estado maestro / esclavo y las vistas.

Ejemplo:

$ 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
robbat2
fuente
0

El siguiente es el comando exacto para enumerar las zonas que se cargan durante el inicio. Esto se prueba en RHEL6.7 x86_64.

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

Ejemplo:

[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
Sasikumar K
fuente
2
Por favor explique más.
Sven
Por favor, consulte la respuesta editada.
Sasikumar K
0

Otra alternativa es utilizar bind'las propias estadísticas de formato XML, si ha habilitado statistics-channely tiene habilitadas las estadísticas de zona (por ejemplo, en el global options { }). Este método también le permite seleccionar / mostrar fácilmente vistas, tipos de zona y datos de zona (por ejemplo, número de serie), así como estadísticas por zona, por supuesto.

Usando wgety 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

Lo anterior muestra una lista de todos los dominios maestros en la vista _default .

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

Lo anterior muestra todas las zonas en forma CSV: zona, vista, tipo, serie.

Para seleccionar solo una vista específica y un tipo de zona :

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

(Este servicio de estadísticas está disponible desde bind-9.6.0, diciembre de 2008. El /v3/formato utilizado anteriormente solo está disponible desde bind-9.10, abril de 2014. El formato JSON también puede estar disponible, por lo que debería ser posible algo similar jot).

Sr. púrpura
fuente