Comment le DNS fonctionne-t-il et comment puis-je résoudre les problèmes de type échec DNS partiel ou intermittent ?

Date de la dernière mise à jour : 11/04/2022

Comment le DNS fonctionne-t-il et comment puis-je résoudre les problèmes de type échec DNS partiel ou intermittent ?

Résolution

Présentation du DNS

Le DNS achemine les utilisateurs vers des applications Internet en traduisant des noms faciles à mémoriser (par exemple www.exemple.com) en adresses IP numériques, comme 192.0.2.1. Ce processus s'appelle « résolution DNS ». Un serveur de noms officiel résout un nom de domaine en une ou plusieurs adresses IP et fait passer l'adresse IP via la chaîne de résolveurs DNS vers le client (par exemple l'ordinateur d'un utilisateur demandant à afficher un site web). Le client utilise ensuite cette adresse IP pour se connecter au serveur sur lequel le site web est hébergé. Lorsque le DNS ne fonctionne pas correctement, les serveurs DNS ne peuvent pas résoudre les noms de domaines. Les serveurs DNS ne peuvent donc pas fournir aux clients l'adresse IP du serveur sur lequel le site web est hébergé. Cela signifie que ces sites web ne sont pas accessibles à partir d'Internet.

Pour plus d'informations, consultez Qu'est-ce que le DNS ?

Scénarios d'échec DNS partiel, temporaire ou intermittent

Dans certains cas, un client est victime d'échecs DNS pendant une courte période ou par intermittence. Les scénarios suivants peuvent entraîner un échec DNS partiel :

Scénario 1 : serveurs de noms mal configurés au niveau du bureau d'enregistrement

Il arrive qu'un ou plusieurs serveurs de noms soient mal configurés au niveau du bureau d'enregistrement. Une recherche « whois » fournit les serveurs de noms qui sont configurés au niveau 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 répondent avec 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 pour 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 autre cause d'échec DNS partiel est le fait que l'enregistrement NS d'un domaine est mal configuré dans la zone hébergée. 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.

Dans ce cas, certains clients peuvent être victimes d'échecs DNS partiels si le résolveur tente de résoudre le domaine en utilisant le serveur de noms incorrect.

Scénario 3 : le résolveur DNS du client ne peut 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, par exemple resolv.conf sous Linux. Si c'est le cas et que vous résolvez le domaine à partir d'une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un Amazon Virtual Private Cloud (Amazon VPC), l'instance EC2 utilise les serveurs de noms définis dans 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 DNS, les délais DNS expirent par intermittence. Vous pouvez activer la mise en cache au niveau de l'instance ou augmenter le délai de nouvelle tentative DNS sur l'application pour résoudre ce problème.

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 les problèmes d'échecs DNS sur les systèmes d'exploitation basés sur Linux

Utilisez la commande dig pour effectuer une recherche sur le serveur DNS client configuré dans le fichier /etc/resolv.conf 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 de réponse montre que 54.239.17.6 est l'adresse IP du serveur HTTP pour 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.co.uk.
  • ns-277.awsdns-34.com.

Chacun de ces quatre serveurs peut répondre de manière officielle aux questions concernant le nom d'hôte www.amazon.com. Utilisez 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 envoyé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 sur 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 montre que ns-576.awsdns-08.net est un serveur de nom 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 les problèmes d'échecs DNS sur les systèmes d'exploitation basés sur Windows

Utilisez 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 quels sont 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 ns-277.awsdns-34.com pour www.amazon.com répond correctement à la requête concernant 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

Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?