Edit: Revu le 06/08/15
Interrêts:
[ul]Accélérer quelque peu votre “trafic” sur internet.
Reduire les requêtes dns sur internet afin de diminuer l’empreinte que vous laissez sur internet.
[/ul]
Inconvénient: (Une solution à ce problème sera proposé à la fin)
[ul]Une ip associée à un nom de domaine, dans la cache local, peut ne plus être d’actualité et empêcher la connection à un site internet.[/ul]
La configuration ci-dessous, est utilisable pour une machine de bureau standard, avec une connexion internet de type box adsl.
Le test a été réalisé sous une Debian Jessie.
0)------
Ouvrez le terminal et tapez:
Le fichier /home/“MON_USER”/dns_en_cours devrait contenir les adresses ip que vous utilisez, pour la résolution des noms de domaine (on s’en reservira plus tard).
1)------
Choisir l’option: Use root servers
A noter, que l’option “-R” n’installe pas les paquets recommandés ("-r" le contaire), ici “resolvconf”.
Si vous souhaitez installer “resolvconf”, passez l’étape 2, et modifiez le fichier “/etc/resolvconf/resolv.conf.d/head” en ajoutant a la fin:
[ul]nameserver 127.0.0.1;[/ul]
2)------
Décommenter la ligne suivante du fichier:
[ul]prepend domain-name-servers 127.0.0.1;[/ul]
Avant d’interroger le dns de votre FAI ou autre, “pdnsd” sera interrogé.
3)------
Modifier la ligne suivante comme ci-dessous:
[ul]START_DAEMON=yes[/ul]
Commenter la ligne suivante:
[ul]#AUTO_MODE=recurse[/ul]
4)------
Modifier les lignes suivantes comme ci-dessous:
[ul]root_server = on;[/ul]
Reportez les adresses ip de “~/dns_en_cours” (ici deux adresses dans l’exemple), et commentez les suivantes avec /* et /:
[ul]ip = 192.168.0.1
, 192.168.1.201
/
, 192.33.4.12
, 128.8.10.90
, 192.203.230.10
, 192.5.5.241
, 192.112.36.4
, 128.63.2.53
*/
;[/ul]
Si vous avez installer “resolvconf”, modifiez la ligne suivante:
[ul]label = “resolvconf”;[/ul]
Je vous suggère de modifier les valeurs “min_ttl” et “max_ttl” (temps de vie minimal et maximal d’une résolution dns).
Ces valeurs influent sur la durée de validité des dns stockés dans la cache (1m: 1 minute , 1d: 1 jour, 1w: 1 semaine):
Par defaut:
[ul]min_ttl = 15m;
max_ttl = 1w;[/ul]
D’après man pdnsd.conf:
[ul]min_ttl = 120;
max_ttl = 1w;[/ul]
En test:
[ul]min_ttl = 1w;
max_ttl = 4w;[/ul]
A noter, si le ttl fourni par le serveur dns, est en dehors des limites fixées par “min_ttl” et “max_ttl”, alors il prendra pour valeur une des ces deux limites.
A noter, plus la valeur de “min_ttl” choisie est élevée, plus l’on risque de se confronter à l’inconvénient mentionné au tout début. Il n’est d’ailleur pas conseillé d’après un man pdnsd.conf, de trop élever cette valeur.
A noter, que l’option “perm_cache” est en kB, à vous de lui donner la taille que vous souhaitez, par defaut 2048 soit 2 Mo.
Voici mon fichier pdnsd.conf:
[code]/* /etc/pdnsd.conf /
/ Debian specific configuration to work as a recursive resolver */
global {
perm_cache = 2048;
cache_dir = “/var/cache/pdnsd”;
run_as = “pdnsd”;
server_ip = 127.0.0.1; // Use eth0 here if you want to allow other
// machines on your network to query pdnsd.
status_ctl = on;
paranoid = on;
min_ttl = 4w; // Retain cached entries at least 15 minutes.
max_ttl = 52w; // One week.
timeout = 10; // Global timeout option (10 seconds).
/* delegation_only = “com”,“net”; */
}
server {
label = “freebox”;
root_server = on;
randomize_servers = on;
ip = 192.168.1.254
/*
, 192.228.79.201
, 192.33.4.12
, 128.8.10.90
, 192.203.230.10
, 192.5.5.241
, 192.112.36.4
, 128.63.2.53
, 192.36.148.17
, 192.58.128.30
, 193.0.14.129
, 198.32.64.12
, 202.12.27.33
*/
;
timeout = 5;
uptest = query;
query_test_name=".";
interval = 30m; // Test every half hour.
ping_timeout = 300; // 30 seconds.
purge_cache = off;
exclude = .localdomain;
policy = included;
preset = off;
}
source {
owner = localhost;
file = “/etc/hosts”;
}
rr {
name = localhost;
reverse = on;
a = 127.0.0.1;
owner = localhost;
soa = localhost,root.localhost,42,86400,900,86400,86400;
}
/* vim:set ft=c: */[/code]
5)------
On redémarre quelques services:
[code]# /etc/init.d/pdnsd restart
ifdown eth0
ifup eth0[/code]
6)------
Testons maintenant:
[code]# aptitude install dnsutils
dig yahoo.fr | grep “Query time”
dig yahoo.fr | grep “Query time”
[/code]
Normalement le second “Query time” doit être moins important que le premier.
Au prochain redémarrage de la machine, un nouveau “dig yahoo.fr | grep “Query time””, doit retourner aproximativement la même valeur.
7)------
Pour obtenir des informations sur la configuration de pdnsd:
Pour visualiser la cache de pdnsd:
Pour plus d’info:
$ man pdnsd.conf
$ man pdnsd
$ man pdnsd-ctl
8 )------
Solution proposé à l’inconvénient cité au debut.
A noter, que pdnsd propose peut être, une solution “native” à ce problème, autre que celle de choisir un min_ttl pas trop élévé.
Nous alons écrire un petit script pour:
[ul]- Modifier facilement “min_ttl” et “max_ttl” de /etc/pdnsd.conf
- Redémarrer pdnsd[/ul]
Voila le script:
[code]#!/bin/bash
Configuration
(1m: 1 minute , 1d: 1 jour, 1w: 1 semaine)
Temps min_ttl en fonctionnemnt normal
T1=‘1w’
Temps max_ttl en fonctionnemnt normal
T2=‘4w’
Fin configuration
problem() {
sed -i ‘s/min_ttl.;/min_ttl = 5;/’ /etc/pdnsd.conf
sed -i 's/max_ttl.;/max_ttl = 6;/’ /etc/pdnsd.conf
/etc/init.d/pdnsd restart
}
normal() {
sed -i ‘s/min_ttl.;/min_ttl = ‘$T1’;/’ /etc/pdnsd.conf
sed -i 's/max_ttl.;/max_ttl = ‘$T2’;/’ /etc/pdnsd.conf
/etc/init.d/pdnsd restart
}
case “$1” in
problem)
problem
;;
normal)
normal
;;
*)
echo "Usage: $0 { problem | normal }"
exit 1
;;
esac
exit 0[/code]
Utilisation du script:
En cas de problème de résolution sur un site, ouvrez un termial root, et tapez:
Fermer puis réouvrir son navigateur internet.
Attention à la cache dns des navigateurs internet, qui peut également poser problème à ce niveau là.
Un petit nettoyage de la cache du navigateur peut s’avérer utile, sans pour autant la désactiver.
http://www.commentcamarche.net/faq/13384-desactiver-le-cache-dns-de-mozilla-firefox
Je l’ai configurer pour se vider quand je quitte iceweasel, donc je n’ai pas ce problème.
Edition -> Préférences -> Vie privée -> Règles de conservation -> Utiliser les paramètres personnalisés pour l’historique
Cocher: Vider l’historique lors de la fermeture d’iceweasel, et aller dans paramètre juste à coté.
Réessayez de vous connecter sur le site.
Normalement la résolution dns devrai pouvoir se faire.
Une fois la résolution faite, tapez: