Comment le DNS fonctionne-t-il et comment puis-je résoudre les échecs partiels ou intermittents de DNS ?

Lecture de 8 minute(s)
0

Comment le DNS fonctionne-t-il et comment puis-je résoudre les problèmes d’échecs partiels ou intermittents de DNS ?

Résolution

Présentation de DNS

DNS dirige les utilisateurs vers des applications Internet en traduisant des noms faciles à mémoriser, comme www.exemple.com, en adresses IP numériques telles que 192.0.2.1. Ce processus est appelé « résolution DNS. » Un serveur de noms officiel résout un nom de domaine en une ou plusieurs adresses IP qu’il transmet au client via la chaîne de résolveurs DNS (par exemple, l’ordinateur d’une personne demandant à consulter un site Web). Le client utilise ensuite cette adresse IP pour se connecter au serveur qui héberge le site Web. Lorsque DNS ne fonctionne pas correctement, les serveurs DNS ne peuvent pas résoudre les noms de domaine. Ils ne peuvent donc pas non plus fournir aux clients l’adresse IP du serveur qui héberge le site Web. Par conséquent, le site Web est inaccessible depuis Internet.

Pour plus d’informations, consultez la page Qu’est-ce que le DNS ?

Scénarios d’échec partiel, temporaire ou intermittent de DNS

Dans certains cas, un client présente des échecs DNS pendant une courte période ou de manière intermittente. Les scénarios courants ci-dessous peuvent provoquer un échec DNS partiel :

Scénario 1 : Serveurs de noms mal configurés auprès du bureau d’enregistrement

Il arrive qu’un ou plusieurs serveurs de noms soient mal configurés auprès du bureau d’enregistrement. Une recherche « whois » renvoie les serveurs de noms configurés auprès du bureau d’enregistrement du domaine. Dans ce cas, lors de la résolution DNS, si les serveurs de noms enregistrés ne répondent pas ou fournissent des informations inattendues, le résolveur local renvoie un message SERVFAIL. Toutefois, dans certains cas, les résolveurs locaux peuvent essayer la requête avec un autre serveur de noms et peuvent renvoyer le résultat.

En outre, les résolveurs locaux peuvent mettre en cache les mauvais serveurs de noms pendant la durée TTL et peuvent envoyer la requête suivante au serveur de noms mal configuré.

Scénario 2 : Serveurs de noms modifiés dans la zone hébergée

Une mauvaise configuration de l’enregistrement NS d’un domaine dans la zone hébergée peut être une autre cause d’échec partiel de DNS. Dans ce cas, soit les serveurs de noms existants ont été mis à jour, soit des serveurs de noms supplémentaires ont été ajoutés à la valeur de l’enregistrement NS.

Certains clients peuvent alors présenter des échecs partiels de DNS si le résolveur tente de résoudre le domaine en utilisant le mauvais serveur de noms.

Scénario 3 : Le résolveur DNS du client ne parvient pas à résoudre le domaine

Parfois, les clients définissent des résolveurs personnalisés ou incorrects dans le fichier de configuration du résolveur, tel que resolv.conf sous Linux. Si tel est le cas et que vous résolvez le domaine à partir d’une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un réseau Amazon Virtual Private Cloud (Amazon VPC), l’instance EC2 utilise les serveurs de noms définis dans le fichier resolv.conf.

Scénario 4 : Le serveur DNS fourni par Amazon limite les requêtes DNS

Les serveurs DNS fournis par Amazon appliquent une limite de 1 024 paquets par seconde par interface réseau Elastic. Les serveurs DNS fournis par Amazon rejettent tout trafic supérieur à cette limite. En raison de la limitation du DNS, les délais DNS expirent par intermittence. Pour résoudre ce problème, vous pouvez activer la mise en cache au niveau de l’instance ou augmenter le délai de nouvelle tentative DNS de l’application.

Scénario 5 : L’URL du domaine est résolue à partir d’Internet, mais pas à partir de l’instance EC2

Les requêtes DNS pour votre domaine sont toujours résolues à partir de la zone hébergée privée si vous avez effectué les opérations suivantes :

Si l’enregistrement demandé pour votre domaine n’est pas présent dans la zone hébergée privée, la requête DNS échoue et n’est pas transmise au domaine public. Étant donné que l’enregistrement DNS est présent dans la zone du domaine public, il est résolu à partir d’Internet.

Résoudre des échecs DNS sur les systèmes d’exploitation Linux

Exécutez la commande dig pour effectuer une recherche sur le serveur DNS client configuré dans le fichier /etc/resolv.confichier de l’hôte.

$ 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

Dans l’exemple précédent, la section des réponses montre que 54.239.17.6 est l’adresse IP du serveur HTTP de www.amazon.com.

Si vous ajoutez la variable +trace, la commande dig peut également effectuer une recherche récursive d’un enregistrement DNS, comme illustré dans l’exemple suivant :

$ 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

Vous pouvez également effectuer une requête qui renvoie uniquement les serveurs de noms, comme illustré dans l’exemple suivant :

$ 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

Dans l’exemple précédent, www.amazon.com a les quatre serveurs de noms officiels suivants :

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

Chacun de ces quatre serveurs peut répondre de manière officielle aux interrogations concernant le nom d’hôte www.amazon.com. Exécutez la commande dig pour cibler directement un serveur de noms spécifique. Vérifiez si chaque serveur de noms officiel pour un domaine donné répond correctement.

Voici un exemple de sortie pour une requête adressée à www.amazon.com sur l’un de ses serveurs de noms officiels (ns-1019.awsdns-63.net). La réponse du serveur indique que www.amazon.com est disponible à l’adresse 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 ligne suivante indique que ns-576.awsdns-08.net est un serveur de noms officiel pour amazon.com :

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

La présence de l’indicateur aa montre que le serveur de noms ns-1019.awsdns-63.net a renvoyé une réponse officielle pour l’enregistrement de ressource www.amazon.com.

Résoudre des problèmes d’échecs DNS sur les systèmes d’exploitation Windows

Exécutez l’utilitaire nslookup pour renvoyer l’adresse IP associée à un nom d’hôte, comme illustré dans l’exemple suivant :

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

Pour déterminer les serveurs de noms officiels pour un nom d’hôte à l’aide de l’utilitaire nslookup, utilisez l’indicateur -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
…

Pour vérifier si le serveur de noms ns-277.awsdns-34.com pour www.amazon.com répond correctement à une requête pour www.amazon.com, utilisez la syntaxe suivante :

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

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans
Aucun commentaire