Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DNS; bind9 en serveur de cache : lenteur des réponses...

2 réponses
Avatar
Francois Lafont
Bonjour à tous,

J'ai voulu tenter l'installation d'un serveur DNS de cache récursif
en suivant quelques tutoriels ici où là. Et je suis surpris d'avoir
des réponses plutôt lentes (quand la réponse n'est pas encore inscrite
dans le cache du serveur bien sûr). Voici exactement ce que j'ai fait.

Soit une Debian Wheezy à jour.

apt-get update && apt-get install bind9

Ensuite, je me suis contenté d'éditer le fichier /etc/bind/named.conf.options
ainsi :

-----------------------------------------------
acl reliableclients {
localhost;
localnets;
};

options {
directory "/var/cache/bind";
dnssec-validation auto;

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };

max-cache-size 100m;
recursion yes;
allow-query { reliableclients; };
};
-----------------------------------------------

Et enfin j'ai redémarré le service :

service bind9 restart

C'est tout.

À partir de là, je constate des temps de réponses assez lents. Mais je
ne suis vraiment pas un expert en DNS alors après tout peut-être que c'est
normal... J'aimerais bien avoir votre avis. Par exemple avec :

rndc flush # Je vide le cache du serveur DNS
dig @192.168.0.115 www.lequipe.fr A # 192.168.0.115 est l'IP du serveur

la réponse m'indique :

;; Query time: 2193 msec

Personnellement, ça me semble vraiment long. Ai-je raison de penser cela ?
Si oui, y a-t-il quelque chose que j'ai oublié de configurer ? Évidemment,
si je refais une deuxième fois la requête la réponse est instantanée (2 msec)
ce qui veut dire que le cache joue bien son rôle (fort heureusement) mais
la toute première requête me semble anormalement lente.

Merci pour votre aide.

PS : je me place vraiment dans le cas où le serveur est un serveur DNS
récursif qui interroge les DNS racines. Je ne veux pas de forwarding par
exemple. Je souhaite mettre en place un tel serveur DNS de cache sur
un « réseau » où les DNS du FAI se sont plantés à plusieurs reprises.

--
François Lafont

2 réponses

Avatar
Bruno Ducrot
On 2014-11-09, Francois Lafont wrote:
Bonjour à tous,

dnssec-validation auto;




Cette option peut prendre des plombes...

Si vraiment tu la veux, il faudrait mettre en slave
les zones . et arpa :

zone "." {
type slave;
file "/etc/namedb/slave/root.slave";
masters {
192.0.32.132;
};
notify no;
};
zone "arpa" {
type slave;
file "/etc/namedb/slave/arpa.slave";
masters {
192.0.32.132;
};
notify no;
};

L'IP est obtenu via http://www.dns.icann.org/services/axfr/

A plus,

--
Bruno Ducrot

A quoi ca sert que Ducrot hisse des carcasses ?
Avatar
Francois Lafont
Bonsoir,

Le 10/11/2014 16:13, Bruno Ducrot a écrit :

dnssec-validation auto;




Cette option peut prendre des plombes...



Ah... j'avoue que je n'y connais vraiment pas grand chose en DNS
et en vérité je ne sais pas trop ce que signifie "dnssec-validation"
qui était présent dans la configuration par défaut du package bind9.
Mais effectivement je constate empiriquement (voir plus bas) que ça
prend du temps.

En tout cas, ce que je comprends déjà, c'est que la lenteur que j'ai
constatée lors d'une primo-résolution (allant de 500 ms à 1000 voire
2000 ms) n'est pas forcément anormale et n'est pas le symptôme d'un
éventuel problème quelque part (hypothèse que je n'avais pas écartée
à la base).

Si vraiment tu la veux,



Ben, je ne connais pas trop sa signification. Faut que je me documente.
D'emblée, tu te dis que, comme ça concerne la sécurité, c'est important. ;)

il faudrait mettre en slave
les zones . et arpa :

zone "." {
type slave;
file "/etc/namedb/slave/root.slave";


^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Précision : dans mon cas (ie sous Debian Wheezy), c'est le répertoire
/etc/bind/slave, répertoire que j'ai dû créer :

mkdir /etc/bind/slave
chown bind: /etc/bind/slave

masters {
192.0.32.132;
};
notify no;
};
zone "arpa" {
type slave;
file "/etc/namedb/slave/arpa.slave";


^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Même remarque ici.

masters {
192.0.32.132;
};
notify no;
};



Alors j'ai fait des tests rapides (ça vaut ce que ça vaut mais bon...) en
testant cette résolution :

rndc flush # purge du cache
dig @localhost www.lequipe.fr A

20 fois de suite et j'ai calculé le temps de réponse moyen.
Voici ce que j'obtiens :

| dnssec-validation no;| dnssec-validation yes;| dnssec-validation auto;
| dnssec-enable no; | dnssec-enable yes; |
-------------------+----------------------+-----------------------+-------------------------
Sans les zones "." | | |
et "arpa" en slave | 1228 ms | 934 ms | 2134 ms
-------------------+----------------------+-----------------------+-------------------------
Avec les zones "." | | |
et "arpa" en slave | 622 ms | 648 ms | 1718 ms

Ce qui me laisse l'impression qu'effectivement mettre les zones "."
et "arpa" en slave permet un gain de temps (ce qui me paraît logique
mais j'ignorais qu'on pouvait configurer un DNS comme slave de la zone
"."). En revanche, que dnssec-* soient sur no ou yes ne semble pas
changer grand chose. Mais un dnssec-validation sur "auto" semble
augmenter assez nettement le temps de résolution. Ceci étant dit,
faudrait que je me documente sur ces options dnssec-* car
en vérité, je ne sais pas vraiment ce que ça signifie tout ça. J'ai
juste compris qu'on pouvait signer des enregistrement DNS (via
la page wikipédia) mais ça s'arrête là. :)

L'IP est obtenu via http://www.dns.icann.org/services/axfr/



Ben, j'ai pas trop compris où tu as pu piocher l'ip 192.0.32.132
sur cette page.

Quoi qu'il en soit merci de ton aide.

--
François Lafont