Différences entre versions de « Dnsmasq »
imported>XavierBéguin m (Ajout de la directive domain) |
imported>XavierBéguin (Ajout des directives expand-hosts et cname dans le fichier de configuration) |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 37 : | Ligne 37 : | ||
domain=mondomaine.local | domain=mondomaine.local | ||
+ | # Cette directive permet d'ajouter le domaine défini ci-dessus aux noms simples figurant dans /etc/hosts | ||
+ | expand-hosts | ||
+ | |||
# Fichier à lire pour les serveurs DNS par défaut (au lieu de /etc/resolv.conf, utilisé par défaut) | # Fichier à lire pour les serveurs DNS par défaut (au lieu de /etc/resolv.conf, utilisé par défaut) | ||
− | resolv-file=/etc/resolv | + | resolv-file=/etc/resolv.dnsmasq |
# On peut forcer la transmission des requêtes relatives à un domaine particulier | # On peut forcer la transmission des requêtes relatives à un domaine particulier | ||
Ligne 67 : | Ligne 70 : | ||
dhcp-host=00:21:B7:30:53:44,lexmark,192.168.1.6,12h | dhcp-host=00:21:B7:30:53:44,lexmark,192.168.1.6,12h | ||
dhcp-host=00:1B:38:32:EA:31,frodo,192.168.1.11,12h | dhcp-host=00:1B:38:32:EA:31,frodo,192.168.1.11,12h | ||
+ | |||
+ | # On peut définir des alias pour les noms de machines définies par le DHCP | ||
+ | # Exemple: pour pouvoir utiliser le nom « frodon » tout comme « frodo », utilisez cette ligne: | ||
+ | #cname=frodon,frodo | ||
# Désactiver cette directive uniquement si votre serveur est le serveurs DHCP officiel du réseau | # Désactiver cette directive uniquement si votre serveur est le serveurs DHCP officiel du réseau |
Version actuelle datée du 30 juin 2011 à 12:47
Dnsmasq est un serveur DHCP et DNS cache léger, facile à configurer. Il est prévu pour fournir des services de DHCP et DNS à un petit réseau. Il peut, entre autres fonctionnalités:
- distribuer des adresses IP dynamiquement ou de façon statique,
- ajouter des noms des machines dans son DNS, qui sont configurées soient dans son fichier de configuration, soit sur les machines elles-mêmes,
- rediriger les requêtes DNS de certains domaines vers un serveur précis (ce qui est pratique lorsqu'on utilise une zone DNS locale),
- faire office de serveur TFTP en lecture seule pour permettre les démarrages en PXE, et supporte également le protocole BOOTP (ces aspects ne sont pas traités dans cette page),
- bien d'autres choses encore (reportez-vous au page de manuel de dnsmasq (8) pour toutes les autres fonctionnalités)
Dnsmasq peut remplacer avantageusement (en terme de facilité de maintenance) un ensemble serveur DHCP d'ISC et serveur DNS comme bind qu'on utilise souvent pour ces services puisque tout sera ici regroupé dans un fichier central fournissant une configuration simple.
Cette page décrit un exemple simple de configuration de dnsmasq pour un petit réseau sur lequel il fournit le DHCP et le DNS de base.
Installation de dnsmasq
Sous Debian GNU/Linux, l'installation de dnsmasq est simplement réalisée par l'installation du paquet dnsmasq:
aptitude install dnsmasq
Configuration de dnsmasq
Par défaut, le fichier de configuration de dnsmasq est /etc/dnsmasq.conf. Sous debian, la configuration par défaut fournie dans le fichier /etc/default/dnsmasq permet également de fragmenter la configuration dans des fichiers du répertoire /etc/dnsmasq.d.
Le fichier de configuration
Par défaut, toutes les directives du fichier /etc/dnsmasq.conf sont désactivées (c'est à dire mises en commentaire), et agrémentées de commentaires descriptifs assez détaillés. Par souci de clarté et pour faciliter les mises à jours, je conseillerais plutôt de ne pas toucher à ce fichier, et d'utiliser un fichier dédié à votre configuration, par exemple '/etc/dnsmasq.d/local dans lequel vous n'ajouterez que les directives nécessaires à votre configuration.
Voici un exemple de fichier de configuration dans lequel on configure un ensemble d'adresse dynamique fournies par le DHCP, ainsi que quelques machines en DHCP statiques, avec un nom qui sera servi par le DNS. Référez-vous aux commentaires pour une petite description des différentes directives:
# # Configuration pour notre réseau local # Voir /etc/dnsmasq.conf pour les options disponibles et leurs explications. # # On évite de faire sortir les requêtes de domaines locaux domain-needed bogus-priv # Déterminer le domaine local qui sera ajouté aux noms DNS des machines assignées par le DHCP, # et fourni en nom de domaine local aux clients DHCP domain=mondomaine.local # Cette directive permet d'ajouter le domaine défini ci-dessus aux noms simples figurant dans /etc/hosts expand-hosts
# Fichier à lire pour les serveurs DNS par défaut (au lieu de /etc/resolv.conf, utilisé par défaut) resolv-file=/etc/resolv.dnsmasq # On peut forcer la transmission des requêtes relatives à un domaine particulier # vers un serveur précis, ici 192.168.1.1 : server=/mondomaine.local/192.168.1.1 server=/1.168.192.in-addr.arpa/192.168.1.1 # Le daemon doit fonctionner sous l'utilisateur dnsmasq et sur l'interface eth0 user=dnsmasq group=nogroup interface=eth0 # La plage d'adresses dynamiques fournies par le serveur DHCP # C'est ici de 192.168.1.100 à 192.168.1.199 avec des leases de 12h dhcp-range=eth0,192.168.1.100,192.168.1.199,12h # La passerelle du réseau à fournir aux clients DHCP dhcp-option=option:router,192.168.1.1 # Exemple pour assigner l'IP 192.168.0.60 à la MAC 11:22:33:44:55:66 # La seconde forme assigne également le nom « fred », pour 45 minutes #dhcp-host=11:22:33:44:55:66,192.168.0.60 #dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m # Nos adresses DHCP statiques # Les noms précisés seront servis par le service DNS de dnsmasq dhcp-host=00:50:7F:E9:A7:45,passerelle,192.168.1.1,12h dhcp-host=00:21:B7:30:53:44,lexmark,192.168.1.6,12h dhcp-host=00:1B:38:32:EA:31,frodo,192.168.1.11,12h # On peut définir des alias pour les noms de machines définies par le DHCP # Exemple: pour pouvoir utiliser le nom « frodon » tout comme « frodo », utilisez cette ligne: #cname=frodon,frodo # Désactiver cette directive uniquement si votre serveur est le serveurs DHCP officiel du réseau #dhcp-authoritative # Pour logger les requêtes DNS (dans syslog) log-queries # Pour des logs plus complets des requêtes DHCP (dans syslog) log-dhcp
Les serveurs de noms utilisées par dnsmasq
Une fois les directives ci-dessus placées dans un fichier du répertoire /etc/dnsmasq.d (par exemple dans /etc/dnsmasq.d/local), créez le fichier /etc/resolv.conf.dnsmasq, référencé dans la configuration. Ce fichier désignera les serveurs de noms que dnsmasq va interroger au lieu d'utiliser ceux précisés dans /etc/resolv.conf (si vous préférez le comportement par défaut, commentez simplement la directive resolv-file). On pourra ainsi préciser le serveur local 127.0.1 dans /etc/resolv.conf, permettant au serveur lui-même d'utiliser les informations délivrées par dnsmasq.
Le fichier /etc/resolv.conf.dnsmasq peut ressembler à ça (à corriger pour utiliser les serveurs DNS de votre FAI, et le nom de votre domaine si vous en avez un):
nameserver 80.10.246.1 nameserver 81.253.149.10 search mondomaine.local
Sous Debian, pour signaler à dnsmasq de ne plus rechercher les serveurs de noms à interroger dans /etc/resolv.conf, il est nécessaire (mais pas suffisant) d'assigner yes à la variable IGNORE_RESOLVCONF dans le fichier /etc/default/dnsmasq:
echo "IGNORE_RESOLVCONF=yes" >>/etc/default/dnsmasq
Recharger la configuration de dnsmasq
Après création ou modification de la configuration de dnsmasq, pensez à le redémarer avec la commande suivante:
/etc/init.d/dnsmasq restart
En savoir plus
Pour en savoir plus, consultez
- le fichier /etc/dnsmasq.conf installé sous Debian avec le paquet dnsmasq
- la page de manuel de dnsmasq (8), qui préciser les nombreuses fonctionnalités non présentées dans cette page.
- le howto (en anglais) du wiki du projet Debian.
- le site officiel de dnsmasq (en anglais)