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

book
date_range
comment0 commentaire
remove_red_eye1858 vues

 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 !

Articles similaires

Commentaires

Aucun commentaire

Ajouter un commentaire

Vous ne disposez pas les autorisations nécessaires pour poster un commentaire.