Como depurar a configuração do BIND?

1

Existe alguma maneira de entender o que meu servidor Bind9 está fazendo passo-a-passo?

Atualmente, estou lutando com um problema no qual as solicitações são recusadas e dig informa que recursion requested but not available . No entanto, a recursão não deve estar envolvida, pois deve ser o servidor autoritário.

O que devo fazer para entender onde tudo está errado?

Aqui está a resposta para dig @127.0.0.1 client.example.com :

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @127.0.0.1 client.example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 55821
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;client.example.com.     IN      A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Oct 31 01:09:08 EET 2017
;; MSG SIZE  rcvd: 54

Eu tentei depurar com um modo detalhado (este é um pedido emitido por outra máquina) e aqui está o que eu recebi:

31-Oct-2017 00:48:04.363 client 198.51.100.2#54921: UDP request
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921: request is not signed
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921: recursion not available
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921: query
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): query (cache) 'client.example.com/A/IN' denied
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): query failed (REFUSED) for client.example.com/IN/A at ../../../bin/named/query.c:6475
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): error
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): send
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): sendto
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): senddone
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): next
31-Oct-2017 00:48:04.363 client 198.51.100.2#54921 (client.example.com): endrequest
31-Oct-2017 00:48:04.363 client @0x123456789abcdef: udprecv

Não foi lícito entender como foi necessário recursividade neste caso.

Se alguém puder me ajudar com a depuração manual, veja como meu servidor está configurado.

named.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

named.conf.options:

options {
    directory "/var/cache/bind";

    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
    listen-on port 53 { any; };

    recursion no;
    allow-transfer { localhost; };
    allow-query-cache { none; };
    allow-query { any; };
};

named.conf.local:

zone "example.com" {
    type master;
    file "/etc/bind/zones/example.com";
};

zones / example.com:

$TTL    300
@   IN  SOA ns.example.com. admin.example.com (
                  4     ; Serial
                300     ; Refresh
                300     ; Retry
            2419200     ; Expire
               300 )    ; Negative Cache TTL

@           IN  NS  ns.example.com.
ns          IN  A   192.0.2.1

@           IN  A   192.0.2.1
www         IN  A   192.0.2.1
client      IN  A   192.0.2.1

@           IN  MX  50 mx.example.net.
@           IN  MX  100 mx2.example.net.

O arquivo named.conf.default-zones foi deixado como instalado por padrão, assim como os arquivos das zonas padrão.

Estou usando o BIND 9.10.3-P4-Ubuntu.

    
por Džuris 30.10.2017 / 22:40

1 resposta

2

Iniciar o BIND com -d 1 ativará a depuração. Dependendo do seu OS / Distro, você pode precisar procurar como definir os argumentos da linha de comando de inicialização. Você pode aumentar o valor se precisar de mais informações.

Se você quiser mais orientação, provavelmente deverá postar seus arquivos de configuração em sua pergunta, redigindo segredos e substituindo seus nomes por exemplos. É provável que algo possa ser identificado aqui por outras pessoas que estejam vendo sua configuração.

Atualização 1:

Eu acho que o erro pode ser que o named não possa ler o arquivo de zona, então ele está ignorando a zona inteiramente, deixando-a pensando que deveria perguntar em outro lugar, mas não porque a recursão está desativada. Observe o arquivo de log de volta para quando o nome foi iniciado e veja se ele tem alguma dica sobre o que está acontecendo.

    
por 30.10.2017 / 23:11

Tags