Chukwuemeka vous explique
comment résoudre
les problèmes DNS partiels

Comment le DNS fonctionne-t-il et comment puis-je résoudre les problèmes DNS partiels ?

Les clients AWS utilisent des noms de domaine pour se connecter aux ressources AWS, qui sont résolues à l’aide du système de noms de domaine (DNS). Le DNS, apparu dans RFC 1034, est utilisé pour acheminer les utilisateurs vers les applications Internet en traduisant des noms faciles à se rappeler (par exemple, www.example.com) en adresses IP numériques telles que 192.0.2.1, dans un processus appelé « résolution DNS ». Un serveur de nom officiel résout un nom de domaine en adresse 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 alors cette adresse IP pour se connecter au serveur où le site web est hébergé, et le serveur fournit le site web au client. Lorsque le DNS ne fonctionne pas correctement, les serveurs DNS ne peuvent pas résoudre les noms de domaine, et 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 plus accessibles depuis Internet. AWS prend les précautions nécessaires pour s’assurer que les noms de domaine AWS sont résolvables à tout moment grâce à Amazon Route 53, ainsi qu’aux fournisseurs de services tiers.

Le DNS est une grande base de données hiérarchique distribuée, ce qui signifie que chaque domaine doit disposer d’un ensemble de serveurs de noms officiels répondant aux questions sur les enregistrements des ressources pour le domaine. Cet ensemble de serveurs de noms officiels est contrôlé par le propriétaire du domaine. Toutefois, la plupart des propriétaires de domaine délèguent à un proxy la fourniture du service DNS.

Lorsqu’un client doit résoudre l’adresse IP d’un nom de domaine, la machine client n’intervient plus dans le processus et le confie à un résolveur, qui recherche l’adresse IP et la renvoie au client. Ce processus fonctionne comme suit :

  1. Le résolveur, qui est préconfiguré avec une liste de serveurs de noms racines, sélectionne de manière aléatoire l’un de ces noms de serveurs racines et lui demande une liste de serveurs de noms officiels pour le domaine de premier niveau (TLD).
  2. Le serveur de noms racines répond en fournissant une liste de serveurs de noms officiels pour le TLD, ainsi que leurs adresses IP.
  3. Le résolveur sélectionne de manière aléatoire l’un des serveurs de noms renvoyés à l’étape 2 et lui demande une liste de serveurs de noms officiels pour le domaine.
  4. Le serveur TLD répond en fournissant une liste de serveurs de noms qui sont officiels pour le domaine.
  5. Le résolveur en sélectionne un de manière aléatoire, et demande l’adresse IP de l’enregistrement de la ressource depuis ce serveur de nom officiel.

Les fournisseurs DNS assurent leurs services depuis différentes régions géographiques, et s’appuient généralement sur des résultats mis en cache afin d’améliorer leur disponibilité. Ceci peut aider à améliorer les problèmes temporaires rencontrés avec des résolveurs de DNS, mais peut également prolonger la durée de restauration si de mauvais résultats sont mis en cache (par exemple, en raison d’une mise en cache négative). Nous nous assurons que les problèmes de DNS externes n’affectent pas la résolution DNS des noms de domaine AWS au sein d’une région EC2.

Il arrive qu’un ou plusieurs serveurs de noms officiels ne répondent plus, ce qui est l’un des problèmes de DNS les plus courants. Imaginez un domaine hypothétique avec la liste de serveurs de noms officiels suivante (également connue comme ensemble de délégations) :

  • ns-576.awsdns-08.net.
  • ns-1086.awsdns-07.org.
  • ns-1630.awsdns-11.co.uk.
  • ns-47.awsdns-05.com.
  • pdns1.ultradns.net.
  • pdns6.ultradns.co.uk.

Si un serveur de noms est indisponible, il ne peut pas répondre à une demande de DNS qui lui est adressée. Si le client ne reçoit pas de réponse, il peut essayer d’envoyer la demande avec un autre serveur de nom officiel. Si les serveurs de noms officiels ne répondent pas ou répondent en fournissant des informations inattendues, le résolveur local renvoie un message SERVFAIL.

Pour résoudre les problèmes de DNS à l’aide des systèmes d’exploitation de type Linux, utilisez la commande dig. dig effectue une recherche sur le serveur DNS client qui est configuré dans le fichier /etc/resolv.conf de votre 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, dig peut également effectuer une recherche récursive de l’enregistrement du DNS :

$ 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 créer une demande qui renvoie uniquement les serveurs de noms :

$ 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 cet exemple, www.amazon.com possède les 4 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.

N’importe lequel de ces serveurs devrait être en mesure de répondre officiellement à des questions sur le nom d’hôte www.amazon.com. La commande dig peut être utilisée pour cibler directement la vérification d’un serveur de nom spécifique afin de vérifier si chaque serveur de nom officiel pour un domaine donné répond correctement.

L’exemple qui suit est le résultat d’une demande pour www.amazon.com envoyée à l’un de ses serveurs de noms officiels (ns-1019.awsdns-63.net). Sa réponse nous 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 indique que le serveur de nom ns-1019.awsdns-63.net nous a donné une réponse officielle pour l’enregistrement de la ressource www.amazon.com.

Sous les systèmes d’exploitation basés sur Windows, utilisez l’utilitaire nslookup. nslookup renvoie l’adresse IP associée à un nom d’hôte, tel que 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 demande 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

Amazon Route 53, VPC, DNS


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 05/12/2016