Server 2012R2 Server DNS che restituisce SERVFAIL per alcune query AAAA


17

(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.caemxmta.owm.bell.net

Sto usando digsu 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 0correzioni. 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.comrestituisce NOERROR e nessun risultato. Stessa cosa per google.comi 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 digda 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, digmostra ancora SERVFAILquel 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.comnon 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?


Stai eseguendo questi test dal server Exchange? In caso contrario, suggerirei di farlo in modo da poterlo vedere dal punto di vista di Exchange. Potresti provare a eseguire SMTPDiag anche dal server Exchange. Suggerirei di eseguirlo mentre esegui un'acquisizione di rete sul server Exchange in modo da poter visualizzare i dettagli dell'attività di rete / DNS. SMTPDiag è un vecchio strumento, ma è uno strumento da riga di comando che non richiede alcuna installazione, quindi sto pensando che dovrebbe funzionare su tutte le versioni di Exchange. - microsoft.com/en-us/download/details.aspx?id=11393
joeqwerty,

Alcuni dispositivi di rete non riconoscono e rifiuteranno i pacchetti EDNS. Il team di rete ha introdotto di recente un nuovo dispositivo / impostazione? Per eliminare questa possibilità, prova a risolvere il record AAAA di google.com, dovrebbe restituire un indirizzo IPv6.
strongline

I pacchetti @strongline EDNS arrivano bene. Record AAAA per google works, così come un paio di altri siti che conosco hanno IPv6 in esecuzione. L'unica possibilità fatta di recente è stata quella di sbarazzarsi del nostro ultimo server DC / DNS Server 2008R2 e sostituirlo con 2012R2.
Concedi il

IPv6 è disabilitato in qualche modo nel tuo ambiente?
Jim B,

@JimB non è realmente abilitato né disabilitato ... Lo stack IPv6 è in esecuzione sui server, perché è attivo per impostazione predefinita, con qualsiasi configurazione predefinita abbia. Il gateway e la connessione Internet non hanno alcun IPv6.
Concedi il

Risposte:


3

Ho esaminato un po 'di più la rete e ho letto. Il requisito per il record AAAA, quando inesistente, restituisce una SOA. Si scopre che la SOA è per un dominio diverso da quello richiesto. Ho il sospetto che sia per questo che Windows sta rifiutando la risposta. Richiedi AAAA per mx.atomwide.com. Risposta SOA per lgfl.org.uk. Vedrò se possiamo fare qualche progresso con queste informazioni. EDIT: Solo per riferimento futuro, la disattivazione temporanea di "Cache sicura contro l'inquinamento" consentirà alla query di avere esito positivo. Non è l'ideale, ma dimostra che il problema è con un record DNS ingannevole. RFC4074 è anche un buon riferimento - Introduzione e Sezione.


Proverò a provarlo oggi nel mio ambiente, ma penso che potresti essere interessato a qualcosa!
Concedi il

Inoltre ho modificato il tuo link: qui non sono consentite firme e link off topic e non voglio vedere la tua risposta altrimenti eccellente essere cancellata per questo.
Concedi il

0

Secondo KB832223

Causa

Questo problema si verifica a causa della funzionalità Extension Mechanisms for DNS (EDNS0) supportata in Windows Server DNS.

EDNS0 consente dimensioni di pacchetti UDP (User Datagram Protocol) più grandi. Tuttavia, alcuni programmi firewall potrebbero non consentire pacchetti UDP di dimensioni superiori a 512 byte. Pertanto, questi pacchetti DNS potrebbero essere bloccati dal firewall.

Microsoft ha la seguente risoluzione:

Risoluzione

Per risolvere questo problema, aggiornare il programma firewall per riconoscere e consentire pacchetti UDP di dimensioni superiori a 512 byte. Per ulteriori informazioni su come eseguire questa operazione, contattare il produttore del programma firewall.

Microsoft ha il seguente suggerimento per aggirare il problema:

Soluzione

Per aggirare questo problema, disattivare la funzionalità EDNS0 su server DNS basati su Windows. Per fare ciò, intraprendi le seguenti azioni:

Al prompt dei comandi, digitare il comando seguente, quindi premere Invio:

dnscmd /config /enableednsprobes 0

Nota Digitare uno 0 (zero) e non la lettera "O" dopo "abilednsprobes" in questo comando.


Ho visto questo articolo - i firewall che ho testato con entrambi passano grandi pacchetti DNS senza problemi, come dimostrato dal suo funzionamento perfetto su Linux. La disabilitazione di edns impedisce l'uso di DNSSEC, quindi sebbene risolva il problema non è una buona soluzione.
Concedi il

mi dispiace non essermi reso conto che la guida di Microsoft si sarebbe applicata anche a Linux. Per curiosità, hai qualche sistema operativo Microsoft che funziona attraverso il firewall?
Tim Penner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.