mardi 14 juin 2016

Installation simplifiée de DNSmasq, un serveur local de DNS


ATTENTION! DANS UBUNTU 16.04, il y a un conflit entre DNSMASQ et UFW, le gestionnaire de Firewall*
C'est-à-dire que Dnsmasq va bien fonctionner juste après installation mais il ne marchera plus après un redémarrage. De plus, UFW, le gestionnaire de parefeu (firewall) ne se lancera plus, lui non plus. À bon entendeur... 
Je laisse cet article uniquement pour information.



DNSmasq est un serveur de DNS local bien connu sous Ubuntu et dérivés puisqu'il y est parfois déjà à moitié installé "out of the box".

Il permet d'accélérer sensiblement la navigation Internet et surtout de ne pas utiliser les DNS de nos mal-aimés Fournisseurs d'Accès (il y a cependant d'autres solutions pour y parvenir).

Encore un tuto sur DNSmasq? Oui, car même s'il y en a beaucoup sur le Web, un certain nombre sont confus, obsolètes voire erronés. Donc, ne vous étonnez pas si ça ne marche pas!

Ici, il s'agit d'une installation et paramétrage de base. Ça fonctionne bien comme ça chez moi, mais j'ai déjà fait des petites améliorations. À vous d'améliorer avec https://doc.ubuntu-fr.org/dns

  • Installer DNSmasq (s'il ne l'est pas déjà)

sudo apt install dnsmasq 

(j'utilise maintenant systématiquement "apt" au lieu de "apt-get" qui est en fin de vie. À bon entendeur...)


  • Configuration simple:

sudo gedit /etc/dnsmasq.conf 

Le fichier est assez fourni.

  • Recherchez #listen-address=
  • Sélectionnez-le et collez à la place:

listen-address=127.0.0.1
server=8.8.8.8
server=8.8.4.4

  • Vérifiez bien que le dièse # est effacé
  • Enregistrez


Dnsmasq écoute en priorité 127.0.0.1 (localhost). S'il n'arrive pas à résoudre un nom de domaine, il va le chercher sur les serveurs DNS de Google.

Oui, je sais... Google, bla-bla-bla... mais je préfère avant tout l'efficacité et la stabilité. À vous de les remplacer par d'autres DNS si vous le voulez.


  • Configurer les DNS de votre réseau

C'est là ou le bât blesse dans certains "tutos". En effet, depuis déjà pas mal de temps (depuis Ubuntu 12.04, il me semble), cela ne sert plus à rien de modifier le fichier /etc/resolv.conf qui sera de toutes façon automatiquement réinitialisé par /etc/network/interfaces au reboot de l'ordinateur. C'est assez pitoyable de voir des blogueurs continuer à conseiller cette méthode. À croire qu'ils n'ont pas testé leur tuto... (je parle de tutos récents bien-sûr...)
Passons.
Donc, c'est /etc/network/interfaces que nous allons modifier.

sudo gedit /etc/network/interfaces


C'est la dernière ligne qui est à modifier. On remarquera que les DNS sont seulement séparés par un espace.

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
dns-nameservers 127.0.0.1 8.8.8.8 8.8.4.4

Enregistrez

Maintenant, on relance la connexion réseau

sudo service networking restart


Bon, maintenant, on démarre Dnsmasq:

sudo service dnsmasq restart


Pour vérifier que ça fonctionne:

~$ dig google.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32541
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;google.com.   IN A

;; ANSWER SECTION:
google.com.  33 IN A 216.58.192.78

;; Query time: 112 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 14 17:50:43 AST 2016
;; MSG SIZE  rcvd: 55

C'est ce qui est en rouge qui nous intéresse...

À la deuxième requête, vous devriez obtenir ça:

~$ dig google.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53261
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;google.com.   IN A

;; ANSWER SECTION:
google.com.  275 IN A 216.58.192.78

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 14 17:54:54 AST 2016
;; MSG SIZE  rcvd: 55

0 msec au lieu de 112, ce n'est pas grand-chose à première vue, mais quand il y a des centaines d'URLs à résoudre dans une seule et même page, ça commence à compter! Chez moi, ça rend mon navigateur (Chrome) plus nerveux. Mais les pages ne se chargerons pas vraiment plus vite (ce n'est pas un serveur cache). Je n'ai pas encore testé avec d'autres browsers.

Voir aussi https://doc.ubuntu-fr.org/dns
et aussi: http://tuxnotes.blogspot.com/2014/05/accelerez-votre-navigation-avec-pdnsd.html

INFO: DNS Benchmark, application Windows fonctionne très bien via Wine

*Gestionnaire de Firewall (ou interface). Faut-il le répéter encore- UFW, GUFW ou même IPTABLES ne sont pas des Firewall mais seulement des interfaces permettant de les paramétrer. Le seul véritable Firewall dans Ubuntu (ou dérivés) est NETFILTER! C'est une erreur typique chez certains soi-disants connaisseurs...

Aucun commentaire:

Enregistrer un commentaire

Ajoutez un commentaire mais en bon Français ou éventuellement en bon Anglais. Les commentaires en langage SMS seront supprimés.