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.