(Riscrivendo la maggior parte di questa domanda poiché molti dei miei test originali sono irrilevanti alla luce di nuove informazioni)
Sto riscontrando problemi con i server DNS Server 2012R2. Il principale effetto collaterale di questi problemi è che le e-mail di Exchange non vengono esaminate. Scambiare le query per i record AAAA prima di provare i record A. Quando vede SERVFAIL per il record AAAA, non prova nemmeno i record A, si arrende e basta.
Per alcuni domini, quando eseguo una query sui miei server DNS di Active Directory, ottengo SERVFAIL invece di NOERROR senza risultati.
Ho provato questo da diversi controller di dominio Server 2012R2 che eseguono DNS. Uno di questi è un dominio completamente separato, su una rete diversa dietro un firewall e una connessione Internet diversi.
Due indirizzi che conosco causano questo problema sono smtpgw1.gov.on.ca
emxmta.owm.bell.net
Sto usando dig
su una macchina Linux per testare questo (192.168.5.5 è il mio controller di dominio):
grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE rcvd: 46
Ma le query su un controller di dominio pubblico funzionano come previsto:
grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE rcvd: 46
Come ho detto, l'ho provato su due reti e domini diversi. Uno è un nuovo dominio, che ha sicuramente tutte le impostazioni predefinite per DNS. L'altro è stato migrato su Server 2012, quindi alcune vecchie impostazioni del 2003/2008 potrebbero essere state trasferite. Ottengo gli stessi risultati su entrambi.
La disabilitazione di EDNS con dmscnd /config /enableednsprobes 0
correzioni. Vedo che molti risultati di ricerca su EDNS sono un problema in Server 2003, ma non molto corrisponde a quello che vedo in Server 2012. Nessuno dei due firewall ha un problema con EDNS. La disabilitazione di EDNS dovrebbe tuttavia essere solo una soluzione temporanea: impedisce l'uso di DNSSEC e potrebbe causare altri problemi.
Ho anche visto alcuni post su problemi con Server 2008R2 ed EDNS, ma quegli stessi post dicono che le cose sono state risolte in Server 2012, quindi dovrebbe funzionare correttamente.
Ho anche provato ad abilitare il registro di debug per DNS. Riesco a vedere i pacchetti che mi aspettavo, ma non mi dà molte idee sul perché sta tornando SERVFAIL. Ecco le parti rilevanti del registro di debug del server DNS:
Primo pacchetto: query dal client al mio server DNS
16/10/2015 09:42:29 0974 PACCHETTO 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informazioni sulla domanda UDP a 000000EFF1BF01A0 Presa = 508 Indirizzo remoto 172.16.0.254, porta 50764 Query temporale = 4556080, in coda = 0, scadenza = 0 Lunghezza buf = 0x0fa0 (4000) Lunghezza messaggio = 0x002e (46) Messaggio: XID 0xa61e Bandiere 0x0120 QR 0 (DOMANDA) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 0 Z 0 CD 0 1 d.C. RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 1 SEZIONE DOMANDA: Offset = 0x000c, conteggio RR = 0 Nome "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SEZIONE RISPOSTA: vuoto SEZIONE AUTORITÀ: vuoto SEZIONE AGGIUNTIVA: Offset = 0x0023, conteggio RR = 0 Nome "(0)" TIPO OPT (41) CLASSE 4096 TTL 0 DLEN 0 DATI Dimensione buffer = 4096 Rcode Ext = 0 Rcode Full = 0 Versione = 0 Bandiere = 0
Secondo pacchetto: query dal mio server DNS al loro server DNS
16/10/2015 09:42:29 0974 PACCHETTO 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informazioni sulla domanda UDP a 000000EFF0A22160 Presa = 9812 Indirizzo remoto 204.41.8.237, porta 53 Query temporale = 0, in coda = 0, scadenza = 0 Lunghezza buf = 0x0fa0 (4000) Lunghezza messaggio = 0x0023 (35) Messaggio: XID 0x3e6c Bandiere 0x0000 QR 0 (DOMANDA) OPCODE 0 (QUERY) AA 0 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 SEZIONE DOMANDA: Offset = 0x000c, conteggio RR = 0 Nome "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SEZIONE RISPOSTA: vuoto SEZIONE AUTORITÀ: vuoto SEZIONE AGGIUNTIVA: vuoto
Terzo pacchetto: risposta dal loro server DNS (NOERROR)
16/10/2015 09:42:29 AM 0974 PACCHETTO 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [0084 A NOERROR] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informazioni sulla risposta UDP a 000000EFF2188100 Presa = 9812 Indirizzo remoto 204.41.8.237, porta 53 Query temporale = 4556080, in coda = 0, scadenza = 0 Lunghezza buf = 0x0fa0 (4000) Lunghezza messaggio = 0x0023 (35) Messaggio: XID 0x3e6c Bandiere 0x8400 QR 1 (RISPOSTA) OPCODE 0 (QUERY) AA 1 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 SEZIONE DOMANDA: Offset = 0x000c, conteggio RR = 0 Nome "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SEZIONE RISPOSTA: vuoto SEZIONE AUTORITÀ: vuoto SEZIONE AGGIUNTIVA: vuoto
Quarto pacchetto: risposta dal mio server DNS al client (SERVFAIL)
16/10/2015 09:42:29 AM 0974 PACCHETTO 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA (7) smtpgw1 (3) gov (2) on (2) ca (0) Informazioni sulla risposta UDP a 000000EFF1BF01A0 Presa = 508 Indirizzo remoto 172.16.0.254, porta 50764 Query temporale = 4556080, in coda = 4556080, scadenza = 4556083 Lunghezza buf = 0x0fa0 (4000) Lunghezza messaggio = 0x002e (46) Messaggio: XID 0xa61e Bandiere 0x8182 QR 1 (RISPOSTA) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 1 Z 0 CD 0 AD 0 RCODE 2 (SERVFAIL) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 1 SEZIONE DOMANDA: Offset = 0x000c, conteggio RR = 0 Nome "(7) smtpgw1 (3) gov (2) on (2) ca (0)" QTYPE AAAA (28) QCLASS 1 SEZIONE RISPOSTA: vuoto SEZIONE AUTORITÀ: vuoto SEZIONE AGGIUNTIVA: Offset = 0x0023, conteggio RR = 0 Nome "(0)" TIPO OPT (41) CLASSE 4000 TTL 0 DLEN 0 DATI Dimensione buffer = 4000 Rcode Ext = 0 Rcode Full = 2 Versione = 0 Bandiere = 0
Altre cose da notare:
- Una delle reti ha accesso a Internet nativo IPv6, l'altra no (ma lo stack IPv6 è abilitato sui server con impostazioni predefinite). Non sembra essere un problema di rete IPv6
- Non influisce su tutti i domini. Ad esempio,
dig @192.168.5.5 -t AAAA serverfault.com
restituisce NOERROR e nessun risultato. Stessa cosa pergoogle.com
i rendimenti Google indirizzi IPv6 in modo corretto. - Ho provato a installare l'aggiornamento rapido da KB3014171 , non ha fatto differenza.
- L'aggiornamento da KB3004539 è già installato.
Modifica il 7 novembre 2015
Ho installato un'altra macchina Server 2012R2 non appartenente al dominio, ho installato il ruolo del server DNS e testato con il comando nslookup -type=aaaa smtpgw1.gov.on.ca localhost
. NON ha gli stessi problemi.
Entrambe le macchine virtuali si trovano sullo stesso host e sulla stessa rete, in modo da eliminare eventuali problemi di rete / firewall. Ora dipende dal livello di patch o dall'essere un membro di dominio / controller di dominio che fa la differenza.
Modifica l'8 novembre 2015
Applicato tutti gli aggiornamenti, non ha fatto differenza. Sono passato per ricontrollare se ci fossero differenze di configurazione tra il mio nuovo server di prova e le impostazioni DNS del mio controller di dominio, e ci sono: il controller di dominio aveva configurato gli spedizionieri.
Ora, sono sicuro di aver provato con gli spedizionieri e senza nei miei test iniziali, ma l'ho provato solo usando dig
da una macchina Linux. Ottengo risultati leggermente diversi con e senza configurazione degli spedizionieri (provato con Google, OpenDNS, 4.2.2.1 e i miei server DNS ISP) quando utilizzo nslookup su un computer Windows.
Con un set di spedizionieri, ottengo Server failed
.
Senza uno spedizioniere (quindi utilizza server DNS di root), ottengo No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca
.
Ma non è ancora lo stesso di quello che ottengo per altri domini che non hanno record IPv6 - nslookup su Windows non restituisce risultati per altri domini.
Con o senza server d' inoltro, dig
mostra ancora SERVFAIL
quel nome quando interrogo il mio server DNS di Windows.
C'è una piccola differenza tra il dominio problematico e altri che sembrano rilevanti, anche quando non coinvolgo il mio server DNS di Windows:
dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca
non ha risposte e non ha una sezione di autorità.
dig -t aaaa @8.8.8.8 serverfault.com
non restituisce risposte, ma ha una sezione di autorità. Quindi faccio la maggior parte degli altri domini che provo, indipendentemente dal resolver che utilizzo.
Quindi perché manca quella sezione di autorità e perché il server DNS di Windows la considera un errore quando altri server DNS no?