Come funziona il DNS e come faccio a risolvere gli errori DNS parziali o intermittenti?
Come funziona il DNS e come faccio a risolvere gli errori DNS parziali o intermittenti?
Risoluzione
Panoramica dei DNS
Il DNS indirizza gli utenti alle applicazioni Internet traducendo nomi facili da ricordare (ad esempio, www.example.com) in indirizzi IP numerici, come 192.0.2.1. Questo processo è chiamato "risoluzione DNS". Un server dei nomi autorevole risolve un nome di dominio in uno o più indirizzi IP e trasmette l'indirizzo IP attraverso la catena di resolver DNS al client (ad esempio, il computer di qualcuno che richiede di visualizzare un sito web). Il client utilizza quindi quell'indirizzo IP per connettersi al server in cui è ospitato il sito web. Quando il DNS non funziona correttamente, i server DNS non possono risolvere i nomi di dominio. Pertanto, i server DNS non possono fornire ai client l'indirizzo IP del server su cui è ospitato il sito web. Ciò significa che non è possibile accedere a tali siti web da Internet.
Per ulteriori informazioni, consulta la pagina Cos'è un DNS?
Scenari di errori DNS parziali, temporanei o intermittenti
In alcuni casi, un client riscontra errori DNS per un breve periodo di tempo o in modo intermittente. Di seguito sono riportati alcuni scenari comuni che potrebbero causare un errore parziale del DNS:
Scenario 1: server dei nomi non configurati correttamente presso il registrar
A volte uno o più server dei nomi non sono configurati correttamente nel registrar. Una ricerca "whois" fornirà i server dei nomi configurati nel registrar del dominio. In questo caso, durante la risoluzione DNS, se i server dei nomi registrati non rispondono o rispondono con informazioni inaspettate, il resolver locale restituirà un messaggio SERVFAIL. Tuttavia, in alcuni casi i resolver locali possono provare la richiesta con un server dei nomi diverso e possono restituire il risultato.
Inoltre, i resolver 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.
Scenario 2: server dei nomi alterati nella zona ospitata
Un altro motivo di errore parziale del DNS si ha quando il record NS di un dominio non è configurato correttamente nella zona ospitata. In questo caso, i server dei nomi esistenti sono stati aggiornati oppure sono stati aggiunti altri server dei nomi al valore del record NS.
In questo caso, alcuni client potrebbero riscontrare errori DNS parziali se il resolver tenta di risolvere il dominio utilizzando il server dei nomi sbagliato.
Scenario 3: il resolver DNS del client non è in grado di risolvere il dominio
A volte i client impostano resolver personalizzati o errati nel file di configurazione del resolver, come resolv.conf in Linux. Se questo è il caso e stai risolvendo il dominio da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in un Amazon Virtual Private Cloud (Amazon VPC), l'istanza EC2 utilizzerà i server dei nomi definiti in resolv.conf.
Scenario 4: server DNS fornito da Amazon che limita le query DNS
I server DNS forniti da Amazon applicano un limite di 1024 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 questo problema è possibile attivare la memorizzazione nella cache dell'istanza o aumentare i tentativi DNS sull'applicazione.
Scenario 5: l'URL del dominio viene risolto da Internet, ma non dall'istanza EC2
Le query DNS per il tuo dominio vengono sempre risolte dalla zona ospitata privata se hai effettuato le seguenti operazioni:
- Hai creato una zona ospitata privata con lo stesso nome del tuo dominio.
- Hai associato il tuo VPC alla zona ospitata privata e alle opzioni DHCP del VPC configurate con AmazonProvidedDNS.
Se il record interrogato per il tuo dominio non è presente nella zona ospitata privata, la query DNS ha esito negativo e non viene inoltrata al dominio pubblico. Poiché il record DNS è presente nella zona di dominio pubblico, si risolverà da Internet.
Risolvi gli errori DNS sui 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, come mostrato nell'esempio seguente:
$ 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
È inoltre possibile eseguire una query che restituisca solo i server dei nomi, come illustrato nell'esempio seguente:
$ 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. Usa 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 di nomi autorevoli (ns-1019.awsdns-63.net). La risposta del server indica che www.amazon.com è disponibile sull'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 indica che il server dei nomi ns-1019.awsdns-63.net ci ha fornito una risposta autorevole per il record di risorse www.amazon.com.
Risolvi gli errori DNS sui sistemi operativi basati su Windows
Utilizza l'utilità nslookup per restituire l'indirizzo IP associato a un nome host, come mostrato nell'esempio seguente:
C:\>nslookup www.amazon.com Server: 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.com Server: 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.com Server: UnKnown Address: 205.251.193.21 Name: www.amazon.com Address: 54.239.25.200
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 6 mesi fa
- AWS UFFICIALEAggiornata un anno fa