BIND non risponde autorevolmente
Voglio usare BIND come server dei nomi pubblico per i domini delle società. Sto usando una nuova installazione del server Ubuntu 20.04.1 e BIND 9.16.1. Il problema è che BIND non risponde mai in modo autorevole. Posso vederlo usando dig. Per individuare il problema l'ho provato con un'unica e minima zona "example.com" ma senza alcun successo. Il file di zona è db.example.com:
example.com. 86400 IN SOA ns1.example.com. hostmaster.example.com. (
1 ; Serial
900 ; Refresh
300 ; Retry
86400 ; Expire
600 ) ; Negative Cache TTL
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN MX 10 mail.example.com.
ns1.example.com. 86400 IN A 123.123.123.123
mail.example.com. 86400 IN A 125.125.125.125
Ovviamente, gli indirizzi IP sopra non sono i veri indirizzi IP, ma l'indirizzo IP per ns1.example.com è l'indirizzo IP pubblico del sistema su cui è in esecuzione BIND. named-checkzone ne è felice. In named.conf.local vengono aggiunte solo le seguenti righe:
zone "example.com" {
type master;
file "/var/lib/bind/db.example.com";
};
named.conf.options:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { any; };
listen-on-v6 { any; };
recursion no;
};
Utilizzando dig con QUALSIASI posso vedere tutti i record nel file di zona ma BIND risponde sempre AUTHORITY: 0 . Anche i record A non vengono visualizzati nella sezione della risposta ma nella sezione aggiuntiva. Purtroppo non sono autorizzato a postare l'output originale di dig perché sembra spam. La zona è configurata come master e il record NS punta all'indirizzo IP del server su cui è in esecuzione BIND. Un altro pensiero è stato che BIND potrebbe provare a interrogare "example.com" da root e sa che non è realmente il server dei nomi autorevole. Quindi ho provato lo stesso anche con il dominio "example.invalid" che in realtà non dovrebbe esistere da nessuna parte. Il risultato era lo stesso di "example.com". Non ho mai avuto questo problema prima. Cos'altro posso provare per risolvere questo problema?
Risposte
BIND risponde sempre AUTHORITY: 0.
È normale e non significa che la risposta non fosse autorevole. Al contrario, questa sezione ha lo scopo di contenere record che dicono al cliente che l'autorità è da qualche altra parte - per esempio, se interroghi un server dei nomi che ospita la comzona genitore o anche la zona radice, riceverai una risposta "referral" che contiene Record NS in questa sezione.
Per quanto ne so, una risposta autorevole effettiva non dovrebbe mai contenere alcun record in questa sezione.
Quindi, in altre parole, stai guardando la parte sbagliata dell'output di dig. Per scoprire se una risposta è stata autorevole o meno, guarda la sezione "flag" : l'indicatore aaè il flag ( Authoritative Answer ).
Anche i record A non vengono visualizzati nella sezione della risposta ma nella sezione aggiuntiva
Anche questo è normale. Non verranno visualizzati nella sezione delle risposte perché il tuo example.comdominio non ha record A.
Tuttavia, ha alcuni tipi di record (NS e MX) che fanno riferimento a un altro nome di dominio con record A. Normalmente sarebbe necessaria una seconda query per risolverli in indirizzi effettivi, ma il server DNS può facoltativamente includere quei record A / AAAA nella sezione aggiuntiva.
Pertanto, quando esegui una query dig example.com MX, la sezione Answer conterrà i record MX per example.com (ovvero esattamente ciò che hai richiesto) e la sezione Additional avrà i record A / AAAA per mail.example.com (che non hai richiesto , ma il server li ha inclusi per velocizzare le cose).