Bonsoir tout le monde,
Je vous fait part de ma découverte ce soir : ayant un petit réseau local depuis quelques mois déjà, je me suis mis en tête d'installer un serveur DNS pour ne pas surcharger les serveur DNS de mon FAI, mais surtout pour gagner en rapidité de connexion quand on surfe sur le net.
En effet, une requête DNS chez le serveur DNS du FAI prend un temps de l'ordre de 0,1s. Avec un serveur DNS local avec un cache, ce temps diminue fortement jusqu'à 0,01s à condition que le nom cherché soit déjà dans le cache.
Jusqu'à là, rien de bien nouveau. Je vais dans l'arbre de portage (parce que n'étant pas bête, j'utilise naturellement la meilleure distribution du monde : Gentoo ;-)
Je ne connaissais de nom que bind que je savais méchamment lourd et donc du genre pas facile à configurer. J'avais aussi déjà entendu parlé de dbjdns... ou djbdns, je me souviens plus. Mais avec un nom aussi imprononçable, j'ai décidé d'installer un autre programme : dnsmasq.
Parce qu'en plus, ce petit programme sais aussi faire serveur dhcp !
Un petit emerge dnsmasq et le tar.gz qui fait moins de 150 Ko se charge. Puis viens l'étape de la compilation : c'est très rapide, il n'y a qu'une petite dizaine de fichiers à compiler. Et hop, installation. Pendant ce temps je lis le lien [2] : la configuration a l'air des plus simple !
Me voilà à éditer le fichier /etc/dnsmasq.conf. Moins de 5 minutes et un /etc/init.d/dnsmasq start plus tard, j'ai un cache DNS qui fonctionne bien !
Voilà, je suis content et je le dis.
Pour l'instant, rien à reprocher, même si un truc me tracasse un peu : dnsmasq écoute le port 53 en tcp et udp, c'est plutôt normal pour un serveur DNS.
Par contre, il écoute aussi en udp sur un port qui change de numéro quand on le relance (dnsmasq, pas le port !) : j'ai eu pour l'instant 1113 et 1116.
Je n'ai trouvé aucune information sur l'utilité de l'ouverture de ce port et je ne suis pas gourou en lecture de code source. Si vous avez des pistes, je serais content de les suivre :)
Liens :
[1] La page officielle de dnsmasq, en anglais :
http://thekelleys.org.uk/dnsmasq/doc.html(...)
[2] Un petit HOWTO, en français :
http://www.drazzib.com/docs-dnsmasq.html(...)
# Egalement serveur dhcp
Posté par symoon . Évalué à 3.
Pensez à décommenter cache-size dans votre /etc/dnsmasq.conf
# Set the cachesize here.
cache-size=256
Sinon, ça ne va pas cacher grand chose :-)
[^] # Re: Egalement serveur dhcp
Posté par M . Évalué à 2.
[^] # Re: Egalement serveur dhcp
Posté par symoon . Évalué à 2.
Un ethereal montrait bien la différence, les nombreuses requêtes dns vers google étaient répétées vers l'extérieur.
Ce n'était plus le cas après avoir décommenté cette ligne
[^] # Re: Egalement serveur dhcp
Posté par M . Évalué à 2.
$dig kernel.org | grep "Query time"
;; Query time: 50 msec
$dig kernel.org | grep "Query time"
;; Query time: 0 msec
et ethereal ne voit rien sur le reseau lors de la seconde requette ...
[^] # Re: Egalement serveur dhcp
Posté par Mjules (site web personnel) . Évalué à 2.
d'après le man, la valeur par défaut est à 150 entrée, donc effectivement décommenté permet d'avoir quelques entrée en plus :
dnsmasq 2.16
# Auto réponse (et flagellation)
Posté par kd . Évalué à 6.
# tres bien
Posté par Guillaume Knispel . Évalué à 4.
Ce qu'il y a de bien c'est qu'il est extrement simple a configuré et que les noms des machines dhcp sont envoyés dans le dns, ce qui est vraiment pratique.
# Question...
Posté par Sébastien . Évalué à 1.
Mon Modem ADSL est branché sur le port ethernet de mon pc est l'adresse IP de mon interface eth0 est attribué par DHCP.
Mon fichier /etc/resolv.conf est donc modifié automatiquement par DHCP. Mais dès que je modifie moi meme l'entrée "nameserver 192.168.0.1" (IP de mon modem) en " nameserver 127.0.0.1", la connection ne marche plus.
Alors est-ce qu'il suffit simplement de lancer dnsmasq sans se poser de question pour qu'il fonctionnne comme cache local ???
[^] # Re: Question...
Posté par chl (site web personnel) . Évalué à 2.
Non, il suffit de se poser les bonnes questions, et d'avoir les bons reflexes:
man dnsmasq :
In order to configure dnsmasq to act as cache for the host on which it is running, put "nameserver 127.0.0.1" in /etc/resolv.conf
and put the real nameservers in /etc/resolv.dnsmasq (or similar) then run dnsmasq with the -r /etc/resolv.dnsmasq option.
[^] # Re: Question...
Posté par Sébastien . Évalué à 1.
Effectivement, je reconnait ne pas avoir fait l'effort de lire la page man jusqu'au bout. PO BIEN ;)
Donc, j'ai procedé comme indiqué, et tout marche bien.
Cependant, il m'a fallut changer la configure du client dhcp et lui dire de ne pas mettre à jour la liste des serveurs de nom dans /etc/resolv.conf. Auquel cas, bien entendu, à chaque redémarage, dhcp m'aurai remis le paramètre par défaut, à savoir "nameserver 192.168.0.1", ce qui ne convient pas à mon cas.
Merci encore :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.