Accélérer internet avec un cache DNS sous Linux

Utiliser un serveur DNS local pour mettre en cache les requêtes DNS et accélérer la navigation sur internet
  • Linux

 OpenDNS Configuration Caching 

Le but de ce tutorial est de vous montrer comment mettre en cache les différents nom de domaines visités pour améliorer votre vitesse de navigation sur internet.

Le principe est simple, quand vous faites une requête HTTP sur un nom de domaine (security-helpzone.com par exemple), des serveurs DNS sont interrogés pour récupérer l’adresse IP dudit site. Nous allons mettre en cache ces adresses IP pour ne plus avoir à requêter sur le DNS externe !

Installation de DNSMasq

Un paquet léger et très simple à configurer qui nous servira de serveur DNS local (pour le cache).

aptitude install dnsmasq

On va configurer le DNS pour qu’il écoute sur le pc (localhost).

nano /etc/dnsmasq.conf

Ajouter les lignes suivantes

listen-address=127.0.0.1
server=208.67.222.222
server=208.67.200.200

Et voilà, dnsmaq est configuré pour réagir comme serveur DNS local.

service dnsmasq restart

Changer la configuration DNS de la machine

La configuration DNS d’un ordinateur se trouve dans /etc/resolv.conf. Voici la mienne :

# DNS Caching
nameserver 127.0.0.1

# OpenDNS servers
nameserver 208.67.222.222
nameserver 208.67.220.220

Elle dit que mon serveur DNS primaire est toujours 127.0.0.1 (dnsmasq) et que si mon DNS ne connaît pas l’adresse, qu’il interroge OpenDNS. (Bien entendu, vous pouvez mettre ceux de n’importe quel fournisseurs !)

C’est exactement ce qu’il se passe lors d’un requête, la première fois il interrogera OpenDNS, la seconde il interrogera directement DNSMasq, beaucoup plus rapide !

Première requête DNS sur OpenDNS (on ne connaît pas encore le domaine)

root@debian:/home/sacha# dig ubuntu.com

; <<>> DiG 9.9.5-12.1-Debian <<>> ubuntu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53039
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ubuntu.com. IN A
;; ANSWER SECTION:
ubuntu.com. 102 IN A 91.189.94.40
;; Query time: 28 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Mar 17 08:15:56 CET 2016
;; MSG SIZE rcvd: 55

Seconde requête DNS (sur le DNS primaire)

root@debian:/home/sacha# dig ubuntu.com

; <<>> DiG 9.9.5-12.1-Debian <<>> ubuntu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41131
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;ubuntu.com. IN A
;; ANSWER SECTION:
ubuntu.com. 90 IN A 91.189.94.40
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Mar 17 08:16:08 CET 2016
;; MSG SIZE rcvd: 55

Cela peut paraître dérisoire, mais 28ms multiplié par le nombre de fichiers à charger ça fait gagner du temps, sur d’autant plus de domaines mis en cache. 

Network-Manager réécrit ma configuration DNS (resolv.conf)

Il se peut que votre gestionnaire de réseau réécrive votre configuration avec la sienne (ce qui lui permet par exemple, de switcher de DNS suivant la connexion utilisée). Pour désactiver ce paramètre, éditez le fichier suivant :

nano /etc/NetworkManager/NetworkManager.conf

Et sous [main], rajoutez : dns=none.

[main]
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

Installer resolvconf pour gérer le

On redémarre le démon du réseau (la connexion internet sera interrompue quelques secondes).

service network-manager restart

L’avantage de désactiver la gestion DNS de Network-Manager est que maintenant les paramètres appliqués sont globaux, et non propre à chaque configuration réseau.

Dîtes-moi en commentaire si ça a changé quelque chose pour vous niveau vitesse de navigation !

Article publié le

Dernière modification le

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.