7

Comment accélérer le temps de chargement des pages web sous GNU/Linux?

Désireux d’avoir un temps de chargement rapide des pages internet, nous allons installer un serveur DNS cache sous GNU/Linux.

Pourquoi un serveur DNS? car au lieu d’interroger un serveur distant(temps de latence) nous allons interroger directement notre serveur en local donc gros gain de temps en perspective!

Le principe de fonctionnement: notre serveur va effectuer les requêtes DNS et inscrire les réponses en mémoire cache pour les requêtes à venir.

Vu que c’est pour un petit LAN(réseau privé à la maison), nous n’allons pas utiliser le célèbre serveur DNS Bind9, qui serait un bazooka pour tué une mouche, mais Unbound

Unbound est un serveur DNS très simple de configuration et amplement suffisant pour notre petit réseau.

Exemple d’instalation et de configuration sous Ubuntu :

  1. Installation
  2. $sudo apt-get install unbound
    
  3. Configuration
  4. $sudo nano /etc/unbound/unbound.conf
    

    Voici un exemple de configuration commenté pour plus de compréhension:

    server:
    verbosity: 1
     num-threads: 2                                         #cas cpu 2 coeurs
    interface: 0.0.0.0
     do-ip4: yes
     do-udp: yes
     do-tcp: yes
     access-control: 192.168.0.0/24 allow                   # j'autorise toutes les machines de mon LAN a interroger le dns
     chroot: ""                                             #pas de chroot par défaut
     logfile: "/var/log/unbound.log"                        #ici un fichier est dédié aux logs
     use-syslog: no                                         #log par défaut dans syslog
     hide-identity: yes                                     #pas besoin d être verbeux ici
     hide-version: yes                                      #pas besoin d être verbeux ici
     harden-glue: yes
     harden-dnssec-stripped: yes
     use-caps-for-id: yes                                   # on résout gOogLe.cOm et google.com de la même manière
     private-domain: "monlan"                               #a partir d'ici on définit son propre suffix dns de réseau local
     local-zone: "monlan." static
     local-data: "freebox.monlan. IN A 192.168.0.254"       #résolution sens nom vers adresse
     local-data: "freeboxplayer.monlan. IN A 192.168.0.10"
     local-data-ptr: "192.168.0.10 freeboxplayer.monlan"    #résolution inverse : adresse vers nom
     local-data-ptr: "192.168.0.254 freebox.monlan"
    python:
    remote-control:
    forward-zone:
         name: "."
        forward-addr:208.67.222.222                         #serveur DNS d'OpenDNS
        forward-addr: 208.67.220.220                         #serveur DNS d'OpenDNS
                                  
    

    ensuite on édite /etc/resolv.conf

    $sudo nano /etc/resolv.conf
    

    et on modifié l’IP du serveur DNS comme suit:

    nameserver 127.0.0.1
    
  5. Test
  6. Alors en premier, on ouvre son navigateur favori et on test avec ses sites favoris voir ce que ça donne, ensuite pour aller plus loin on test avec namebench vue dans l’article précédent et on compare avec les résultats obtenus:
    namebench dns
    et voici le résultat:
    dns test

    donc je pense que ça vaut le coup d’avoir son DNS cache local, non? :-)

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

7 commentaires

  1. Salut Fred

    Très bon travail.Grace a tes conseils mes pages s’ouvre 40% plus vite.

    Merci de faciliter la vie de ceux qui comme moi n’ont pas la science !!!!

    @+

  2. Merci pour ce tuto que m’a fait connaitre Unbound mais aussi Namebench.
    Je vois au contenu de ton fichier de conf de Unbound que tu as une
    Freebox. En possédant une moi-même j’ai mis dans nameservers de
    namebench « 127.0.0.1 192.168.0.254 » afin de comparer unbound en local mais aussi la Freebox au reste du monde. La différence de temps de réponse entre unbound et la Freebox est minime probablement car cette dernière doit posséder son propre serveur de nom. Je ne sais pas ce qu’il pour les autres box mais cette solution ne semble pas très intéressante avec une Freebox.
    De plus il faudrait peut-être rajouter la méthode pour ajouter ce nouveau serveur de nom lorsque l’on utilise l’applet network-manager. En effet dans le cas contraire tes lecteurs vont installer et tester cette solution mais croiront l’utiliser sans jamais le faire.

    Cordialement,

  3. Bonsoir Biord,
    merci pour tes remarques,
    l’adresse 192.168.0.254 n’est pas une adresse de serveur DNS mais l’adresse de la passerelle de ton réseau local.
    Le temps de réponse entre ton serveur DNS local sera forcément plus rapide que n’importe quel autres serveurs DNS.
    Par contre tu as raison de signaler un problème avec network-manager, car à chaque démarrage de la machine, les paramètres réseaux seront donnés par la freebox.
    Au moment de la rédaction du billet, je ne n’utilise pas network-manager vu que j’écris en dur mes paramètres réseaux dans /etc/network/interfaces, donc j’ai oublié d’en parler. Bien vu! ;-)

  4. Merci beaucoup pour cet article mais je ne sais pas quoi penser de mon installation.

    Lorsque j’essaie de la benchmarker avec namebench mon serveur DNS (192.168.1.111) n’est pas prs en compte, namebench me renvoi :
    « Unable to get uncached results for: xxx »

    De plus si je veux pinger ma freebox avec ping freebox.monlan je n’ai pas de réponse….

    A chaque démarrage de unbound j’ai le message :
    warning: increased limit(open files) from 1024 to 4140

    Enfin pour finir aucune log de généré dans mon /var/log

    Bref je penses que j’ai foiré mon install qq part….

  5. le serveur DNS a pour adresse 127.0.0.1 et non 192.168.1.111

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.