Listando todas as zonas carregadas no BIND

13

Estou tentando migrar um servidor DNS que possui vários milhares de zonas carregadas nele. O arquivo named.conf tem cerca de 17 inclusões diferentes, e alguns desses arquivos também incluem, além de muitos comentários, etc. É uma bagunça!

Estou querendo obter uma lista de todas as zonas atualmente carregadas no BIND. Eu olhei para o rndc dumpdb, mas ele não me mostra apenas as zonas.

Em vez de seguir os arquivos de inclusão desarrumados, existe uma maneira mais fácil de obter uma lista das zonas autorizadas dentro do BIND? Obrigado!

DuPie
fonte

Respostas:

15

Você pode executar rndc dumpdb -zonespara criar um arquivo chamado cache_dump.db . Este arquivo conterá todas as zonas autorizadas e será criado no diretório de dados do BIND.

Vladimir Blaskov
fonte
Isso é o que eu pensei também, mas sua única me mostrando os dns reverso arpa zonas
DuPie
Eu verificaria os arquivos de log para obter mais informações. Se apenas as zonas ARPA reversas estiverem no arquivo de despejo, eu diria que apenas essas são carregadas no servidor DNS.
Vladimir Blaskov
1
Onde está o diretório de dados do BIND?
Qian Chen
É /var/namedou /var/named/chroot/var/named(se você estiver usando o chroot'BIND ed') na maioria das distribuições, mas sua milhagem pode variar dependendo da distribuição que você está usando.
Vladimir Blaskov
1
No Debian jessie, o arquivo terminou em /var/cache/bind/named_dump.db
Calimo 15/11
2

O rndc dumpdb confirmado é o melhor método.

No meu caso, descobri que havia duas instâncias de ligação separadas sendo executadas no mesmo servidor (não pergunte), uma fazendo DNS avançado e outra fazendo DNS reverso. Sem especificar o PID, ele anexava ao único que fazia DNS reverso e só me mostrou isso.

DuPie
fonte
2

Se você quiser apenas imprimir a configuração (incluindo arquivos de inclusão) em sua forma canônica, basta ligar para:

named-checkconf -p(opcionalmente, -t /some/chroot/dirse BIND for executado chroot e a configuração precisar ser lida no diretório chroot)

Isso simplifica todos os arquivos incluídos, remove todos os comentários e formata tudo perfeitamente.

Embora a saída inclua zonas configuradas estaticamente, não listará zonas dinâmicas, como as adicionadas rndc addzone.

Håkan Lindqvist
fonte
1

Adicionar -all faz o truque para mim (no Ubuntu Ubuntu 16.04.2 LTS (xenial))

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

Para versões mais recentes do BIND9, a partir de 9.12.0a1; há também named-checkconf -lque pode listar as zonas em um formato fácil, incluindo status e visualizações de mestre / escravo.

Exemplo:

$ 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
fonte
0

A seguir está o comando exato para listar as zonas que são carregadas durante a inicialização. Isso é testado no RHEL6.7 x86_64.

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

Exemplo:

[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
fonte
2
por favor explique mais.
Sven
Por favor, consulte a resposta editada.
precisa saber é o seguinte
0

Outra alternativa é usar bind'as próprias estatísticas de formato XML, se você tiver ativado statistics-channele estatísticas de zona ativadas (por exemplo, no global options { }). Este método também permite que você selecione / mostre facilmente visualizações, tipos de zonas e dados de zonas (por exemplo, número de série), bem como estatísticas por zona, é claro.

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

O acima mostra uma lista de todos os domínios principais na exibição _default .

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

O exemplo acima mostra todas as zonas no formato CSV: zona, exibição, tipo, serial.

Para selecionar apenas uma vista e um tipo de zona específicos :

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

(Esse recurso de estatísticas está disponível desde o bind-9.6.0, dezembro de 2008. O /v3/formato usado acima está disponível apenas desde o bind-9.10, abril de 2014. O formato JSON também pode estar disponível, portanto, algo análogo deve ser possível jot.)

mr.spuratic
fonte