Salta al contenuto

Come funziona il DNS e come faccio a risolvere gli errori DNS parziali o intermittenti?

8 minuti di lettura
0

Desidero risolvere gli errori DNS parziali o intermittenti.

Risoluzione

Descrizione del DNS

Il DNS traduce nomi facili da ricordare come www.esempio.com in indirizzi IP numerici come 192.0.2.1 e quindi indirizza l'utente alle applicazioni Internet. Questo processo è chiamato "risoluzione DNS". Per ulteriori informazioni, consulta la pagina Cos'è un DNS?

Scenari di errori DNS parziali, temporanei o intermittenti

In alcuni casi, un client presenta errori DNS per un breve periodo di tempo o in modo intermittente. Di seguito sono riportati alcuni scenari comuni che potrebbero causare un errore DNS parziale:

Server dei nomi non configurati correttamente nel registrar

A volte uno o più server dei nomi non sono configurati correttamente nel registrar. Una ricerca whois fornisce i server dei nomi configurati nel registrar del dominio. Durante la risoluzione DNS, se i server dei nomi registrati non rispondono o rispondono con informazioni inaspettate, il risolutore locale restituisce un messaggio SERVFAIL. In alcuni casi, i risolutori locali possono provare la richiesta con un server dei nomi diverso che potrebbe non essere configurato in modo errato. Quando lo fanno, ricevono la risposta DNS prevista.

Inoltre, i risolutori locali possono memorizzare nella cache i server dei nomi errati per l'ora TTL e possono inviare la query successiva al server dei nomi non configurato correttamente.

Server dei nomi alterati nella zona ospitata

Quando il record NS di un dominio non è configurato correttamente nella zona ospitata, può verificarsi un errore DNS parziale. I server dei nomi esistenti sono stati aggiornati oppure sono stati aggiunti altri server dei nomi al valore del record NS. Se il risolutore tenta di risolvere il dominio utilizzando il server dei nomi errato, è possibile che si verifichi un errore DNS parziale.

Il risolutore DNS del client non è in grado di risolvere il dominio

A volte nel file di configurazione del risolutore sono impostati risolutori errati, come ad esempio resolv.conf in Linux. Quando risolvi il dominio da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in un Amazon Virtual Private Cloud (Amazon VPC), l'istanza EC2 utilizza i server dei nomi definiti in resolv.conf.

Server DNS fornito da Amazon che limita le query DNS

I server DNS forniti da Amazon applicano un limite di 1.024 pacchetti al secondo per ogni interfaccia di rete elastica. I server DNS forniti da Amazon rifiutano il traffico che supera questo limite. A causa della limitazione del DNS, il DNS presenta un timeout intermittente. Per risolvere il problema, attiva la memorizzazione nella cache dell'istanza o aumenta i tentativi DNS sull'applicazione.

L'URL del dominio viene risolto da Internet, ma non dall'istanza EC2

Dopo aver completato quanto segue, le query DNS per il tuo dominio vengono sempre risolte dalla zona ospitata privata:

Se il record richiesto per il tuo dominio non è presente nella zona ospitata privata, la query DNS ha esito negativo. Inoltre, la tua richiesta DNS non viene inoltrata al dominio pubblico. Poiché il record DNS è presente nella zona del dominio pubblico, si risolve da Internet.

Regola del firewall DNS non configurata correttamente in Route 53

Se una delle seguenti condizioni è vera per qualsiasi dominio, controlla se il firewall DNS di Amazon Route 53 è configurato per il tuo dominio.

  • Si risolve in Internet
  • Si risolve tramite un risolutore pubblico (ovvero 1.1.1.1 o 8.8.8.8 come IP del risolutore)
  • Non si risolve da un server privato virtuale (VPS).

Endpoint del risolutore Route 53 non configurati correttamente

Gli endpoint in uscita del risolutore Route 53 e la regola del risolutore possono essere configurati per inviare una query DNS specifica a un server DNS locale. Assicurati che gli endpoint di Route 53, la regola del risolutore e il server DNS locale siano configurati correttamente. Per ulteriori informazioni, consulta Come posso risolvere i problemi di risoluzione DNS con gli endpoint del risolutore Route 53?

Risolvi gli errori DNS dei sistemi operativi basati su Linux

Usa il comando dig per eseguire una ricerca sul server DNS del client configurato nel file /etc/resolv.conf dell'host.

$ dig www.amazon.com    
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13150
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.amazon.com.    IN    A

;; ANSWER SECTION:
www.amazon.com.        41    IN    A    54.239.17.6

;; Query time: 1 msec
;; SERVER: 10.108.0.2#53(10.108.0.2)
;; WHEN: Fri Oct 21 21:43:11 2016
;; MSG SIZE rcvd: 48

Nell'esempio precedente, la sezione delle risposte mostra che 54.239.17.6 è l'indirizzo IP del server HTTP per www.amazon.com. Se aggiungi la variabile +trace, il comando dig può anche eseguire una ricerca ricorsiva di un record DNS. Di seguito è riportato un esempio di comando dig con la variabile +trace:

$ dig +trace www.amazon.com    
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> +trace www.amazon.com
;; global options: +cmd
.        518400    IN    NS    J.ROOT-SERVERS.NET.
.        518400    IN    NS    K.ROOT-SERVERS.NET.
.        518400    IN    NS    L.ROOT-SERVERS.NET.
...
;; Received 508 bytes from 10.108.0.2#53(10.108.0.2) in 31 ms

com.        172800    IN    NS    a.gtld-servers.net.
com.        172800    IN    NS    b.gtld-servers.net.
com.        172800    IN    NS    c.gtld-servers.net.
...
;; Received 492 bytes from 193.0.14.129#53(193.0.14.129) in 93 ms
amazon.com.        172800    IN    NS    pdns1.ultradns.net.
amazon.com.        172800    IN    NS    pdns6.ultradns.co.uk.
...
;; Received 289 bytes from 192.33.14.30#53(192.33.14.30) in 201 ms
www.amazon.com.    900    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.    900    IN    NS    ns-1568.awsdns-04.co.uk.
www.amazon.com.    900    IN    NS    ns-277.awsdns-34.com.
...
;; Received 170 bytes from 204.74.108.1#53(204.74.108.1) in 87 ms

www.amazon.com.    60     IN    A    54.239.26.128
www.amazon.com.    1800   IN    NS   ns-1019.awsdns-63.net.
www.amazon.com.    1800   IN    NS   ns-1178.awsdns-19.org.
...
;; Received 186 bytes from 205.251.195.251#53(205.251.195.251) in 7 ms

Puoi anche eseguire una query che restituisce solo i server dei nomi.

$ dig -t NS www.amazon.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> -t NS www.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48631
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.amazon.com.        IN    NS

;; ANSWER SECTION:
www.amazon.com.        490    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.        490    IN    NS    ns-1178.awsdns-19.org.
www.amazon.com.        490    IN    NS    ns-1568.awsdns-04.co.uk.
www.amazon.com.        490    IN    NS    ns-277.awsdns-34.com.

;; Query time: 0 msec
;; SERVER: 10.108.0.2#53(10.108.0.2)
;; WHEN: Fri Oct 21 21:48:20 2016
;; MSG SIZE rcvd: 170

Nell'esempio precedente, www.amazon.com ha questi quattro server dei nomi autorevoli:

  • ns-1019.awsdns-63.net.
  • ns-1178.awsdns-19.org.
  • ns-1568.awsdns-04.co.uk.
  • ns-277.awsdns-34.com.

Ognuno di questi quattro server può rispondere in modo autorevole a domande sul nome host www.amazon.com. Utilizza il comando dig per interrogare direttamente un server dei nomi specifico. Verifica se tutti i server dei nomi autorevoli per un determinato dominio rispondono correttamente.

Di seguito è riportato un esempio di output per una query inviata a www.amazon.com su uno dei suoi server dei nomi autorevoli (ns-1019.awsdns-63.net). La risposta del server mostra che www.amazon.com è disponibile all'indirizzo 54.239.25.192:

$ dig www.amazon.com @ns-1019.awsdns-63.net.; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com @ns-1019.awsdns-63.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.amazon.com.    IN    A

;; ANSWER SECTION:
www.amazon.com.        60    IN    A    54.239.25.192

;; AUTHORITY SECTION:
www.amazon.com.        1800    IN    NS    ns-1019.awsdns-63.net.
www.amazon.com.        1800    IN    NS    ns-1178.awsdns-19.org.
www.amazon.com.        1800    IN    NS    ns-1568.awsdns-04.co.uk.
...

;; Query time: 7 msec
;; SERVER: 205.251.195.251#53(205.251.195.251)
;; WHEN: Fri Oct 21 21:50:00 2016
;; MSG SIZE rcvd: 186

La riga seguente mostra che ns-576.awsdns-08.net è un server dei nomi autorevole per amazon.com:

;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

La presenza del flag aa mostra che il server dei nomi ns-1019.awsdns-63.net ha fornito una risposta autorevole per il record di risorse www.amazon.com.

Risolvi gli errori DNS dei sistemi operativi basati su Windows

Utilizza l'utilità nslookup per restituire l'indirizzo IP associato a un nome host.

C:\>nslookup www.amazon.comServer:     ip-10-20-0-2.ec2.internal
Address:    10.20.0.2

Non-authoritative answer:
Name:       www.amazon.com
Address:    54.239.25.192

Per determinare i server dei nomi autorevoli per un nome host utilizzando l'utilità nslookup, usa il flag -type=NS:

C:\>nslookup -type=NS www.amazon.comServer:     ip-10-20-0-2.ec2.internal
Address:    10.20.0.2

Non-authoritative answer:
www.amazon.com    nameserver = ns-277.awsdns-34.com
www.amazon.com    nameserver = ns-1019.awsdns-63.net
www.amazon.com    nameserver = ns-1178.awsdns-19.org
...

Per verificare se il server dei nomi ns-277.awsdns-34.com per www.amazon.com risponde correttamente a una richiesta per www.amazon.com, utilizza la sintassi seguente:

C:\>nslookup www.amazon.com ns-277.awsdns-34.comServer:     UnKnown
Address:    205.251.193.21

Name:       www.amazon.com
Address:    54.239.25.200
AWS UFFICIALEAggiornata un anno fa