KB 2441: Performance DNS

Publié le 20 novembre 2023

Les problèmes de performances sont souvent liés au(x) DNS. Dans cet article, nous proposons quelques tests afin d’en vérifier le bon fonctionnement, de mesurer le temps de réponse, et de consulter les statistiques remontées par le proxy.

Contexte

Le mécanisme de résolution DNS compte pour une fraction importante dans le temps total s’écoulant entre la demande d’une URL par le navigateur et son affichage.

Étapes

  • Tester une requête DNSapt-get install host
  • Tester la résolution en IPv4 :host -4 www.nomdudomaine.com

    ou

    host -4 adresse_ip_du_serveur

  • Tester la résolution en IPv6 :host -6 www.nomdudomaine.com

    ou

    host -6 adresse_ip_du_serveur

  • La commande host permet de rechercher un nom d’hôte, mais aussi une adresse IP en effectuant une requête de serveur de noms. Essayer :

    host <nomdedomaineDNS>

    pour obtenir diverses adresses IP à partir d’un nom d’hôte. Réessayer host plusieurs fois. L’ordre de sortie des adresses peut changer de manière aléatoire. Ceci montre que la charge est distribuée sur divers serveurs DNS.

    Exemple :

root@olfeo:~# host tsa-serv.fr
tsa-serv.fr A 10.3.0.3
tsa-serv.fr A 10.3.0.1
root@olfeo:~# host tsa-serv.fr
tsa-serv.fr A 10.3.0.3
tsa-serv.fr A 10.3.0.1
  • Avec la commande time host il est possible de chonométrer la résolution du serveur DNS.

Exemple :

root@olfeo:~# time host www.olfeo.com
www.olfeo.com has address 176.31.255.59

real 0m0.011s
user 0m0.004s
sys 0m0.004s
  • real correspond au temps réel de la tâche.
  • user correspond au temps utilisateur, c’est à dire le temps CPU utilisé par le programme utilisateur.
  • sys définit le temps système, cela correspond au temps utilisé par le système pour gérer l’exécution de la tâche.

Test avec SquidClient

Le paquet squidclient est installé par défaut dans la version 5.95.

root@olfeo:/# squidclient -h localhost -p (n° port d'écoute Squid) mgr:idns
HTTP/1.0 200 OK
Server: squid/3.1.19
Mime-Version: 1.0
Date: Tue, 14 May 2013 13:58:25 GMT
Content-Type: text/plain
Expires: Tue, 14 May 2013 13:58:25 GMT
Last-Modified: Tue, 14 May 2013 13:58:25 GMT
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:8888
Via: 1.0 localhost (squid/3.1.19)
Connection: close
Proxy-Connection: close

Internal DNS Statistics:

The Queue:
DELAY SINCE
ID SIZE SENDS FIRST SEND LAST SEND
-- ---- ----- ---------- ---------

Nameservers:
IP ADDRESS # QUERIES # REPLIES
---------------------------------------------- --------- ---------
10.3.0.1 286541 286540
10.3.0.3 2264 2264

Rcode Matrix:
RCODE ATTEMPT1 ATTEMPT2 ATTEMPT3
0 1100841 2864 998
1 0 0 0
2 6178 4642 4085
3 17337 41 38
4 0 0 0
5 0 0 0

Search list:
tsa-serv.fr

Interprétation RCODE :

  • NOERROR = 0
  • FORMERR = 1
  • SERVFAIL = 2
  • NXDOMAIN = 3
  • NOTIMP = 4
  • REFUSED = 5
  • YXDOMAIN = 6
  • YXRRSET = 7
  • NXRRSET = 8
  • NOTAUTH = 9
  • NOTZONE = 10
  • BADVERS = 16

RCODE Code de réponse – ce champ de 4 bits est mis au titre des réponses. Les valeurs ont les interprétations suivantes :

  • 0 Pas de condition d’erreur.
  • 1 Erreur de format – Le serveur de noms n’a pas été capable d’interpréter l’interrogation.
  • 2 Défaillance du serveur – Le serveur de noms a été incapable de traiter cette interrogation à cause d’un problème en son sein propre.
  • 3 Erreur de nom – N’est significatif que pour les réponses provenant d’un serveur de noms d’autorité, ce code signifie que le nom de domaine référencé dans l’interrogation n’existe pas.
  • 4 Non mis en œuvre – Le serveur de noms ne prend pas en charge le type d’interrogation demandée.
  • 5 Refusé – Le serveur de noms refuse d’effectuer l’opération spécifiée pour des raisons de politique. Par exemple, un serveur de noms peut souhaiter ne pas fournir les informations à un demandeur particulier, ou un serveur de nom peut ne pas souhaiter effectuer une opération particulière (par exemple, un transfert de zone) pour des données particulières.