Provided by: dnsmasq-base-lua_2.79-1ubuntu0.7_amd64 

NAME
Dnsmasq - Un serveur DHCP et cache DNS poids-plume.
SYNOPSIS
dnsmasq [OPTION]...
DESCRIPTION
dnsmasq est un serveur à faible empreinte mémoire faisant DNS, TFTP, PXE, annonces de routeurs et DHCP.
Il offre à la fois les services DNS et DHCP pour un réseau local (LAN).
Dnsmasq accepte les requêtes DNS et y réponds soit en utilisant un petit cache local, soit en effectuant
une requête à un serveur DNS récursif externe (par exemple celui de votre fournisseur d'accès internet).
Il charge le contenu du fichier /etc/hosts afin que les noms locaux n'apparaissant pas dans les DNS
globaux soient tout de même résolus, et assure également la résolution de nom pour les hôtes présents
dans le service DHCP. Il peut aussi agir en temps que serveur DNS faisant autorité pour un ou plusieurs
domaines, permettant à des noms locaux d'apparaitre dans le DNS global.
Le serveur DHCP Dnsmasq DHCP supporte les définitions d'adresses statiques et les réseaux multiples. Il
fournit par défaut un jeu raisonnable de paramètres DHCP, et peut être configuré pour fournir n'importe
quelle option DHCP. Il inclut un serveur TFTP sécurisé en lecture seule permettant le démarrage via le
réseau/PXE de clients DHCP et supporte également le protocole BOOTP. Le support PXE est complet, et
comprend un mode proxy permettant de fournir des informations PXE aux clients alors que l'allocation DHCP
est effectuée par un autre serveur.
Le serveur DHCPv6 de dnsmasq possède non seulement les mêmes fonctionalités que le serveur DHCPv4, mais
aussi le support des annonces de routeurs ainsi qu'une fonctionalité permettant l'addition de ressources
AAAA pour des clients utilisant DHCPv4 et la configuration IPv6 sans état (stateless autoconfiguration).
Il inclut le support d'allocations d'adresses (à la fois en DHCPv6 et en annonces de routeurs - RA) pour
des sous-réseaux dynamiquement délégués via une délégation de préfixe DHCPv6.
Dnsmasq est developpé pour de petits systèmes embarqués. It tends à avoir l'empreinte mémoire la plus
faible possible pour les fonctions supportées, et permet d'exclure les fonctions inutiles du binaire
compilé.
OPTIONS
Notes : Il est possible d'utiliser des options sans leur donner de paramètre. Dans ce cas, la fonction
correspondante sera désactivée. Par exemple --pid-file= (sans paramètre après le =) désactive l'écriture
du fichier PID. Sur BSD, à moins que le logiciel ne soit compilé avec la bibliothèque GNU getopt, la
forme longue des options ne fonctionne pas en ligne de commande; Elle est toujours supportée dans le
fichier de configuration.
--test Vérifie la syntaxe du ou des fichiers de configurations. Se termine avec le code de retour 0 si
tout est OK, ou un code différent de 0 dans le cas contraire. Ne démarre pas Dnsmasq.
-h, --no-hosts
Ne pas charger les noms du fichier /etc/hosts.
-H, --addn-hosts=<fichier>
Fichiers d'hôtes additionnels. Lire le fichier spécifié en plus de /etc/hosts. Si -h est spécifié,
lire uniquement le fichier spécifié. Cette option peut être répétée afin d'ajouter d'autres
fichiers. Si un répertoire est donné, lis les fichiers contenus dans ce répertoire.
-E, --expand-hosts
Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le nom) contenus dans le
fichier /etc/hosts, de la même façon que pour le service DHCP. Notez que cela ne s'applique pas au
nom de domaine dans les CNAME, les enregistrements PTR, TXT, etc...
-T, --local-ttl=<durée>
Lorsque Dnsmasq répond avec une information provenant du fichier /etc/hosts ou avec un bail DHCP,
il donne un temps de vie (time-to-live) positionné à zéro, afin d'indiquer à la machine faisant la
requête que celle-ci ne doit pas être mise dans un cache. Ceci est le comportement correct dans
presque toutes les situations. Cette option permet de spécifier la valeur de time-to-live à
retourner (en secondes). Cela permet de réduire la charge sur le serveur, mais les clients
risquent d'utiliser des données périmées dans certains cas.
--neg-ttl=<durée>
Les réponses négatives provenant des serveurs amonts contiennent normalement une information de
durée de vie (time-to-live) dans les enregistrements SOA, information dont dnsmasq se sert pour
mettre la réponse en cache. Si la réponse du serveur amont omet cette information, dnsmasq ne
cache pas la réponse. Cette option permet de doner une valeur de durée de vie par défaut (en
secondes) que dnsmasq utilise pour mettre les réponses négatives dans son cache, même en l'absence
d'enregistrement SOA.
--max-ttl=<durée>
Définie la valeur de TTL maximum qui sera fournie aux clients. La valeur maximum de TTL spécifiée
sera fournie aux clients en remplacement de la vraie valeur de TTL si cette dernière est
supérieure. La valeur réelle de TTL est cependant conservée dans le cache afin d'éviter de saturer
les serveurs DNS en amont.
--max-cache-ttl=<durée>
Définie la valeur de TTL maximum pour les entrées dans le cache
--auth-ttl=<durée>
Définie la valeur de TTL retournée pour les réponses du serveur faisant autorité.
-k, --keep-in-foreground
Ne pas aller en tâche de fond au lancement, mais en dehors de cela, fonctionner normalement. Ce
mode est prévu pour les cas où Dnsmasq est lancé par daemontools ou launchd.
-d, --no-daemon
Mode debug (déverminage) : ne pas aller en tâche de fond, ne pas écrire de fichier pid, ne pas
changer d'identifiant utilisateur, générer un état complet du cache lors de la réception d'un
signal SIGUSR1, envoyer les logs sur la sortie standard d'erreur ("stderr") de même que dans le
syslog, ne pas créer de processus fils pour traiter les requêtes TCP. A noter que cette option est
à user pour du déverminage seulement : pour empêcher dnsmasq se fonctionner en mode démon en
production, utiliser -k.
-q, --log-queries
Enregistrer les résultats des requêtes DNS traitées par Dnsmasq dans un fichier de traces
("logs"). Active la génération d'un état complet du cache lors de la réception d'un signal
SIGUSR1.
-8, --log-facility=<facility>
Définit la "facility" dans laquelle Dnsmasq enverra ses entrées syslog, par défaut DAEMON ou
LOCAL0 si le mode debug est activé. Si la "facility" contient au moins un caractère "/", alors
Dnsmasq considère qu'il s'agit d'un fichier et enverra les logs dans le fichier correspondant à la
place du syslog. Si la "facility" est '-', alors dnsmasq envoie les logs sur la sortie d'erreur
standard stderr. (Les erreurs lors de la lecture de la configuration vont toujours vers le syslog,
mais tous les messages postérieurs à un démarrage réussi seront exclusivement envoyés vers le
fichier de logs). Lorsque Dnsmasq est configuré pour envoyer ses traces vers un fichier, la
réception d'un signal SIGUSR2 entraine la fermeture et réouverture du fichier. Cela permet la
rotation de fichiers de traces sans nécessiter l'arrêt de Dnsmasq.
--log-async[=<lignes>]
Permet l'envoi de traces de manière asynchrone, et de manière optionnelle, le nombre de lignes
devant être mises dans la file d'attente par Dnsmasq lorsque l'écriture vers le syslog est lente.
Dnsmasq peut envoyer ses logs de manière asynchrone : cela lui permet de continuer à fonctionner
sans être bloqué par le syslog, et permet à syslog d'utiliser Dnsmasq pour les résolutions DNS
sans risque d'interblocage. Si la file d'attente devient pleine, Dnsmasq loggera le dépassement de
file et le nombre de messages perdus. La longueur par défaut de la file d'attente est de 5 et une
valeur saine sera comprise entre 5 et 25, avec une limite maximum imposée de 100.
-x, --pid-file=<chemin>
Spécifie un fichier dans lequel stocker le numéro de processus (pid). La valeur par défaut est
/var/run/dnsmasq.pid.
-u, --user=<nom d'utilisateur>
Spécifie l'identité (nom d'utilisateur) prise par Dnsmasq après le démarrage. Dnsmasq doit
normalement être démarré en temps que root ("super-utilisateur"), mais abandonne ses privilèges
après le démarrage en changeant d'identité. Normalement cet utilisateur est l'utilisateur nobody
("personne"), mais il est possible d'en définir un autre par le biais de ce paramètre.
-g, --group=<nom de groupe>
Spécifie le groupe sous lequel Dnsmasq s'exécute. Par défaut, il s'agit du groupe "dip", afin de
faciliter l'accès au fichier /etc/ppp/resolv.conf qui n'est en général pas en lecture par tout le
monde.
-v, --version
Imprime le numéro de version.
-p, --port=<port>
Ecoute sur le port numéro <port> au lieu du port DNS standard (53). Paramétrer cette valeur à zéro
désactive complètement la fonction DNS pour ne laisser actif que le DHCP ou le TFTP.
-P, --edns-packet-max=<taille>
Spécifie la taille maximum de paquet UDP EDNS.0 supporté par le relai DNS. Le défaut est de 4096,
qui est la valeur recommandée dans la RFC5625.
-Q, --query-port=<numéro de port>
Envoie et écoute les requêtes DNS sortantes depuis le port UDP spécifié par <numéro de port>, et
non sur un port aléatoire. NOTE : Cette option rends dnsmasq moins sûr contre les attaques par
usurpation DNS ("DNS spoofing"), mais cela peut permettre d'utiliser moins de ressources et d'être
plus rapide. Donner une valeur de zéro à cette option restaure le comportement par défaut présent
dans les versions de dnsmasq inférieures à 2.43 qui consiste à n'allouer qu'un seul port alloué
par le système d'exploitation.
--min-port=<port>
Ne pas utiliser de port dont le numéro est inférieur à la valeur donnée en paramètre pour les
requêtes DNS sortantes. Dnsmasq choisis un port source aléatoire pour les requêtes sortantes :
lorsque cette option est fournie, les ports utilisés seront toujours au dessus de la valeur
spécifiée. Utile pour des systèmes derrière des dispositifs garde-barrières ("firewalls").
-i, --interface=<nom d'interface>
N'écouter que sur l'interface réseau spécifiée. Dnsmasq aujoute automatiquement l'interface locale
("loopback") à la liste des interfaces lorsque l'option --interface est utilisée. Si aucune option
--interface ou --listen-address n'est donnée, Dnsmasq écoutera sur toutes les interfaces
disponibles sauf celle(s) spécifiée(s) par l'option --except-interface. Les alias d'interfaces IP
(e-g "eth1:0") ne peuvent être utilisés ni avec --interface ni --except-interface. Utiliser
l'option --listen-address à la place. Un simple joker, consistant d'un '*' final, peut-être
utilisé dans les options --interface et --except-interface
-I, --except-interface=<interface name>
Ne pas écouter sur l'interface spécifiée. Notez que l'ordre dans lesquelles les options --listen-
address , --interface et --except-interface sont fournies n'importe pas, et que l'option --except-
interface l'emporte toujours sur les autres.
--auth-server=<domaine>,<interface>|<addresse IP>
Active le mode DNS faisant autorité pour les requêtes arrivant sur cette interface ou sur cette
adresse. Noter que l'interface ou l'adresse n'ont pas besoin d'être mentionées ni dans --interface
ni dans --listen-address En effet, --auth-server va passer outre ceux-ci et fournir un service DNS
différent sur l'interface spécifiée. La valeur de <domaine> est l'enregistrement de type "colle"
("glue record"). Il doit correspondre dans le service DNS global avec un enregistrement de type A
et/ou AAAA pointant sur l'adresse sur laquelle dnsmasq écoute pour le mode DNS faisant autorité.
-2, --no-dhcp-interface=<nom d'interface>
Ne pas fournir de service DHCP sur l'interface spécifiée, mais fournir tout de même le service
DNS.
-a, --listen-address=<adresse IP>
Ecouter sur la ou les adresse(s) IP spécifiée(s). Les options --interface et --listen-address
peuvent-être spécifiées simultanément, auquel cas un jeu d'interfaces et d'adresses seront
utilisées. Notez que si aucune option --interface n'est donnée alors qu'une option --listen-
address l'est, Dnsmasq n'écoutera pas automatiquement sur l'interface locale ("loopback"). Pour
activer l'écoute sur l'interface locale, il est alors nécessaire de fournir explicitement son
adresse IP, 127.0.0.1 via l'option --listen-address.
-z, --bind-interfaces
Sur les systèmes qui le supporte, Dnsmasq s'associe avec l'interface joker ("wildcard"), même
lorsqu'il ne doit écouter que sur certaines interfaces. Par la suite, il rejette les requêtes
auxquelles il ne doit pas répondre. Cette situation présente l'avantage de fonctionner même
lorsque les interfaces vont et viennent ou changent d'adresses. L'option --bind-interfaces force
Dnsmasq à ne réellement s'associer qu'avec les interfaces sur lesquelles il doit écouter. L'un des
seuls cas où cette option est utile est celui où un autre serveur de nom (ou une autre instance de
Dnsmasq) tourne sur la même machine. Utiliser cette option permet également d'avoir plusieurs
instances de Dnsmasq fournissant un service DHCP sur la même machine.
--bind-dynamic
Autorise un mode réseau intermédiaire entre --bind-interfaces et le mode par défaut. Dnsmasq
s'associe à une seule interface, ce qui permet plusieurs instances de dnsmasq, mais si une
interface ou adresse apparaissent, il se mettra automatiquement à écouter sur celles-ci (les
règles de contrôle d'accès s'appliquent). De fait, les interfaces créées dynamiquement
fonctionnent de la même façon que dans le comportement par défaut. Ce fonctionnement nécessite des
APIs réseau non standard et n'est disponible que sous Linux. Sur les autres plateformes, le
fonctionnement est celui du mode --bind-interfaces.
-y, --localise-queries
Retourne des réponses aux requêtes DNS dépendantes de l'interface sur laquelle la requête a été
reçue, à partir du fichier /etc/hosts. Si un nom dans /etc/hosts a plus d'une adresse associée
avec lui, et qu'une des adresses au moins est dans le même sous-réseau que l'interface sur
laquelle la requête a été reçue, alors ne retourne que la(les) adresse(s) du sous-réseau
considéré. Cela permet d'avoir dans /etc/hosts un serveur avec de multiples adresses, une pour
chacune de ses interfaces, et de fournir aux hôtes l'adresse correcte (basée sur le réseau auquel
ils sont attachés). Cette possibilité est actuellement limitée à IPv4.
-b, --bogus-priv
Fausse résolution inverse pour les réseaux privés. Toutes les requêtes DNS inverses pour des
adresses IP privées (ie 192.168.x.x, etc...) qui ne sont pas trouvées dans /etc/hosts ou dans le
fichier de baux DHCP se voient retournées une réponse "pas de tel domaine" ("no such domain") au
lieu d'être transmises aux serveurs de nom amont ("upstream server").
-V, --alias=[<ancienne IP>]|[<IP de début>-<IP de fin>],<nouvelle IP>[,<masque>]
Modifie les adresses IPv4 retournées par les serveurs de nom amont; <ancienne IP> est remplacée
par <nouvelle IP>. Si le <masque> optionnel est fourni, alors toute adresse correspondant à
l'adresse <ancienne IP>/<masque> sera réécrite. Ainsi par exemple
--alias=1.2.3.0,6.7.8.0,255.255.255.0 modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67.
Cette fonctionnalité correspond à ce que les routeurs Cisco PIX appellent "bidouillage DNS" ("DNS
doctoring"). Si l'ancienne IP est donnée sous la forme d'une gamme d'adresses, alors seules les
adresses dans cette gamme seront réecrites, et non le sous-réseau dans son ensemble. Ainsi,
--alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 fait correspondre
192.168.0.10->192.168.0.40 à 10.0.0.10->10.0.0.40
-B, --bogus-nxdomain=<adresse IP>
Transforme les réponses contenant l'adresse IP fournie en réponses "pas de tel domaine" ("no such
domain"). Ceci a pour but de neutraliser la modification sournoise mise en place par Verisign en
septembre 2003, lorsqu'ils ont commencé à retourner l'adresse d'un serveur web publicitaire en
réponse aux requêtes pour les noms de domaines non enregistrés, au lieu de la réponse correcte
"NXDOMAIN". Cette option demande à Dnsmasq de retourner la réponse correcte lorsqu'il constate ce
comportement. L'adresse retournée par Verisign en septembre 2003 est 64.94.110.11.
-f, --filterwin2k
Les dernières versions de windows font des requêtes DNS périodiques auxquelles non seulement les
serveurs DNS publics ne peuvent donner de réponse, mais qui, de surcroît, peuvent poser des
problèmes en déclenchant des connexions intempestives pour des liens réseaux avec des connexions
"à la demande". Fournir cette option active le filtrage des requêtes de ce type. Les requêtes
bloquées sont les requêtes pour les entrées de type SOA ou SRV, ainsi que les requêtes de type ANY
avec des noms possédant des caractères sous-lignés (requêtes pour des serveurs LDAP).
-r, --resolv-file=<fichier>
Lis les adresses des serveurs de nom amont dans le fichier de nom <fichier>, au lieu du fichier
/etc/resolv.conf. Pour le format de ce fichier, voir dans le manuel pour resolv.conf(5) les
entrées correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire plusieurs fichiers de
type resolv.conf, le premier fichier spécifié remplace le fichier par défaut, le contenu des
suivants est rajouté dans la liste des fichiers à consulter. Seul le fichier ayant la dernière
date de modification sera chargé en mémoire.
-R, --no-resolv
Ne pas lire le contenu du fichier /etc/resolv.conf. N'obtenir l'adresse des serveurs de nom amont
que depuis la ligne de commande ou le fichier de configuration de Dnsmasq.
-1, --enable-dbus[=<nom de service>]
Autoriser la mise à jour de la configuration de Dnsmasq par le biais d'appel de méthodes DBus. Il
est possible par ce biais de mettre à jour l'adresse de serveurs DNS amont (et les domaines
correspondants) et de vider le cache. Cette option nécessite que Dnsmasq soit compilé avec le
support DBus. Si un nom de service est fourni, dnsmasq fourni un service à ce nom, plutôt qu'avec
la valeur par défaut : uk.org.thekelleys.dnsmasq
-o, --strict-order
Par défaut, Dnsmasq envoie les requêtes à n'importe lequel des serveurs amonts dont il a
connaissance tout en essayant de favoriser les serveurs qu'il sait fonctionner. Cette option force
Dnsmasq à essayer d'interroger, pour chaque requête, les serveurs DNS dans leur ordre d'apparition
dans le fichier /etc/resolv.conf.
--all-servers
Par défaut, lorsque dnsmasq a plus d'un serveur amont disponible, il n'envoie les requêtes qu'à un
seul serveur. Spécifier cette option force dnsmasq à effectuer ses requêtes à tous les serveurs
disponibles. Le résultat renvoyé au client sera celui fournit par le premier serveur ayant
répondu.
--stop-dns-rebind
Rejete (et enregistre dans le journal d'activité) les adresses dans la gamme d'adresses IP privée
(au sens RFC1918) qui pourraient être renvoyées par les serveurs amonts suite à une résolution de
nom. Cela bloque les attaques cherchant à détourner de leur usage les logiciels de navigation web
('browser') en s'en servant pour découvrir les machines situées sur le réseau local.
--rebind-localhost-ok
Exclue 127.0.0/8 des vérifications de réassociation DNS. Cette gamme d'adresses est retournée par
les serveurs Realtime Blackhole (RBL, utilisés dans la lutte contre le spam), la bloquer peut
entraîner des disfonctionnements de ces services.
--rebind-domain-ok=[<domaine>]|[[/<domaine>/[<domaine>/]
Ne pas détecter ni bloquer les actions de type dns-rebind pour ces domaines. Cette option peut
prendre comme valeur soit un nom de domaine soit plusieurs noms de domains entourés par des '/',
selon une syntaxe similaire à l'option --server, c-à-d : --rebind-domain-
ok=/domaine1/domaine2/domaine3/
-n, --no-poll
Ne pas vérifier régulièrement si le fichier /etc/resolv.conf a été modifié.
--clear-on-reload
Lorsque le fichier /etc/resolv.conf est relu, ou si les serveurs amonts sont configurés via DBus,
vider le cache DNS. Cela est utile si les nouveaux serveurs sont susceptibles d'avoir des données
différentes de celles stockées dans le cache.
-D, --domain-needed
Indique à Dnsmasq de ne jamais transmettre en amont de requêtes A ou AAAA pour des noms simples,
c'est à dire ne comprenant ni points ni nom de domaine. Si un nom n'est pas dans /etc/hosts ou
dans la liste des baux DHCP, alors une réponse de type "non trouvé" est renvoyée.
-S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse IP>[#<port>][@<Adresse IP
source>|<interface>[#<port>]]]
Spécifie directement l'adresse IP d'un serveur de nom amont. Cette option ne supprime pas la
lecture du fichier /etc/resolv.conf : utiliser pour cela l'option -R . Si un ou plusieurs nom(s)
de domaine(s) optionnel(s) sont fournis, ce serveur sera uniquement utilisé uniquement pour ce(s)
domaine(s), et toute requête concernant ce(s) domaine(s) sera adressée uniquement à ce serveur.
Cette option est destinée aux serveurs de nom privés : si vous avez un serveur de nom sur votre
réseau ayant pour adresse IP 192.168.1.1 et effectuant la résolution des noms de la forme
xxx.internal.thekelleys.org.uk, alors -S /internal.thekelleys.org.uk/192.168.1.1 enverra toutes
les requêtes pour les machines internes vers ce serveur de nom, alors que toutes les autres
requêtes seront adressées aux serveurs indiqués dans le fichier /etc/resolv.conf. Une
spécification de nom de domaine vide, // possède le sens particulier de "pour les noms non
qualifiés uniquement", c'est-à-dire les noms ne possédant pas de points. Un port non standard peut
être rajouté à la suite des adresses IP en utilisant le caractère #. Plus d'une option -S est
autorisée, en répétant les domaines et adresses IP comme requis.
Le domaine le plus spécifique l'emporte sur le domaine le moins spécifique, ainsi :
--server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 enverra les requêtes pour
*.google.com à 1.2.3.4, à l'exception des requêtes *www.google.com, qui seront envoyées à 2.3.4.5.
L'adresse spéciale '#' signifie "utiliser les serveurs standards", ainsi
--server=/google.com/1.2.3.4 --server=/www.google.com/# enverra les requêtes pour *.google.com à
1.2.3.4, à l'exception des requêtes pour *www.google.com qui seront envoyées comme d'habitude (c-
à-d aux serveurs définis par défaut).
Il est également permis de donner une option -S avec un nom de domaine mais sans adresse IP; Cela
informe Dnsmasq que le domaine est local et qu'il doit répondre aux requêtes le concernant depuis
les entrées contenues dans le fichier /etc/hosts ou les baux DHCP, et ne doit en aucun cas
transmettre les requêtes aux serveurs amonts. local est synonyme de server ("serveur") afin de
rendre plus claire l'utilisation de cette option pour cet usage particulier.
Les adresses IPv6 peuvent inclure un identifiant de zone sous la forme %interface tel que par
exemple fe80::202:a412:4512:7bbf%eth0.
La chaîne de caractères optionnelle suivant le caractère @ permet de définir la source que Dnsmasq
doit utiliser pour les réponses à ce serveur de nom. Il doit s'agir d'une des adresses IP
appartenant à la machine sur laquelle tourne Dnsmasq ou sinon la ligne sera ignorée et une erreur
sera consignée dans le journal des événements, ou alors d'un nom d'interface. Si un nom
d'interface est donné, alors les requêtes vers le serveur de nom seront envoyées depuis cette
interface; si une adresse ip est donnée, alors l'adresse source de la requête sera l'adresse en
question. L'option query-port est ignorée pour tous les serveurs ayant une adresse source
spécifiée, mais il est possible de la donner directement dans la spécification de l'adresse
source. Forcer les requêtes à être émises depuis une interface spécifique n'est pas possible sur
toutes les plateformes supportées par dnsmasq.
-A, --address=/<domaine>/[domaine/]<adresse IP>
Spécifie une adresse IP à retourner pour toute requête pour les domaines fournis en option. Les
requêtes pour ce(s) domaine(s) ne sont jamais transmises aux serveurs amonts et reçoivent comme
réponse l'adresse IP spécifiée qui peut être une adresse IPv4 ou IPv6. Pour donner à la fois une
adresse IPv4 et une adresse IPv6 pour un domaine, utiliser plusieurs options -A. Il faut noter que
le contenu du fichier /etc/hosts et de celui des baux DHCP supplante ceci pour des noms
individuels. Une utilisation courante de cette option est de rediriger la totalité du domaine
doubleclick.net vers un serveur web local afin d'éviter les bannières publicitaires. La
spécification de domaine fonctionne de la même façon que --server, avec la caractéristique
supplémentaire que /#/ coïncide avec tout domaine. Ainsi, --address=/#/1.2.3.4 retournera 1.2.3.4
pour toute requête n'ayant de réponse ni dans /etc/hosts, ni dans les baux DHCP, et n'étant pas
transmise à un serveur spécifique par le biais d'une directive --server.
--ipset=/<domaine>/[domaine/]<ipset>[,<ipset>]
Obtient les adresses IP des domaines spécifiés et les place dans les groupes d'IP netfilter
(ipset) indiqués. Domaines et sous-domaines sont résolus de la même façon que pour --address. Ces
groupes d'IP doivent déjà exister. Voir ipset(8) pour plus de détails.
-m, --mx-host=<nom de l'hôte>[[,<nom du MX>],<préference>]
Spécifie un enregistrement de type MX pour <nom de l'hôte> retournant le nom donné dans <nom du
MX> (s'il est présent), ou sinon le nom spécifié dans l'option --mx-target si elle est présente.
Sinon retourne le nom de la machine sur laquelle Dnsmasq tourne. La valeur par défaut (spécifiée
dans l'option --mx-target ) est utile dans un réseau local pour rediriger les courriers
électroniques vers un serveur central. La valeur de préférence est optionnelle et vaut par défaut
1 si elle n'est pas spécifiée. Plus d'une entrée MX peut être fournie pour un hôte donné.
-t, --mx-target=<nom d'hôte>
Spécifie la réponse par défaut fournie par Dnsmasq pour les requêtes sur des enregistrements de
type MX. Voir --mx-host. Si --mx-target est donné mais pas de --mx-host, alors Dnsmasq retourne
comme réponse un enregistrement MX contenant le nom d'hôte spécifié dans l'option --mx-target pour
toute requête concernant le MX de la machine sur laquelle tourne Dnsmasq.
-e, --selfmx
Définit, pour toutes les machines locales, un MX correspondant à l'hôte considéré. Les machines
locales sont celles définies dans le fichier /etc/hosts ou dans un bail DHCP.
-L, --localmx
Définit, pour toutes les machines locales, un enregistrement MX pointant sur l'hôte spécifié par
mx-target (ou la machine sur laquelle Dnsmasq tourne). Les machines locales sont celles définies
dans le fichier /etc/hosts ou dans un bail DHCP.
-W --srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorité>[,<poids>]]]]
Spécifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de détails. Si le champs
<domaine> n'est pas fourni, prends par défaut la valeur fournie dans l'option --domain. La valeur
par défaut pour le domaine est vide et le port par défaut est 1, alors que les poids et priorités
par défaut sont 0. Attention lorsque vous transposez des valeurs issues d'une configuration BIND :
les ports, poids et priorités sont dans un ordre différents. Pour un service/domaine donné, plus
d'un enregistrement SRV est autorisé et tous les enregistrements qui coïncident sont retournés
dans la réponse.
--host-record=<nom>[,<nom>....][<adresse IPv4>],[<adresse IPv6>]
Ajoute des enregistrements A, AAAA et PTR dans le DNS. Ceci permet d'ajouter un ou plusieurs noms
dans le DNS et de les associer à des enregistrements IPv4 (A) ou IPv6 (AAAA). Un nom peut
apparaître dans plus d'une entrée host-record et de fait être associé à plus d'une adresse. Seule
la première entrée créée l'enregistrement PTR associée au nom. Ceci correspond à la même règle que
celle utilisée lors de la lecture du fichier hosts. Les options host-record sont considérées lues
avant le fichier hosts, ainsi un nom apparaissant dans une option host-record et dans le fichier
hosts n'aura pas d'enregistrement PTR associé à l'entrée dans le fichier hosts. A l'inverse du
fichier hosts, les noms ne sont pas étendus, même lorsque l'option expand-hosts est activée. Les
noms longs et les noms courts peuvent apparaitre dans la même entrée host-record, c-à-d --host-
record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100
-Y, --txt-record=<nom>[[,<texte>],<texte>]
Définit un enregistrement DNS de type TXT. La valeur de l'enregistrement TXT est un ensemble de
chaînes de caractères, donc un nombre variable de chaînes de caractères peuvent être spécifiées,
séparées par des virgules. Utilisez des guillemets pour mettre une virgule dans une chaîne de
caractères. Notez que la longueur maximale pour une chaîne est de 255 caractères, les chaînes plus
longues étant découpées en morceaux de 255 caractères de longs.
--ptr-record=<nom>[,<cible>]
Définit un enregistrement DNS de type PTR.
--naptr-record=<nom>,<ordre>,<préférence>,<drapeaux>,<service>,<expr. régulière>[,<remplacement>]
Retourne un enregistrement de type NAPTR, tel que spécifié dans le RFC3403.
--cname=<cname>,<cible>
Retourne un enregistrement de type CNAME qui indique que <cname> est en réalité <cible>. Il existe
des contraintes importantes sur la valeur cible; il doit s'agir d'un nom DNS qui est connu de
dnsmasq via /etc/hosts (ou un fichier hôtes additionnel), via DHCP, via interface--name ou par un
autre --cname. Si une cible ne satisfait pas ces critères, le CNAME est ignoré. Le CNAME doit être
unique, mais il est autorisé d'avoir plus d'un CNAME pointant vers la même cible.
--dns-rr=<nom>,<numéro-RR>,[<données hexadécimales>]
Retourne un enregistrement DNS arbitraire. Le numéro correspond au type d'enregistrement (qui est
toujours de la classe C_IN). La valeur de l'enregistrement est donnée dans les données
hexadécimales, qui peuvent être de la forme 01:23:45, 01 23 45,+012345 ou n'importe quelle
combinaison.
--interface-name=<nom>,<interface>
Définit un entregistrement DNS associant le nom avec l'adresse primaire sur l'interface donnée en
argument. Cette option spécifie un enregistrement de type A pour le nom donné en argument de la
même façon que s'il était défini par une ligne de /etc/hosts, sauf que l'adresse n'est pas
constante mais dépendante de l'interface définie. Si l'interface est inactive, non existante ou
non configurée, une réponse vide est fournie. Un enregistrement inverse (PTR) est également créé
par cette option, associant l'adresse de l'interface avec le nom. Plus d'un nom peut être associé
à une interface donnée en répétant cette option plusieurs fois; dans ce cas, l'enregistrement
inverse pointe vers le nom fourni dans la première instance de cette option.
--synth-domain=<domaine>,<plage d'adresses>[,<préfixe>]
Créé des enregistrements A/AAAA ou PTR pour une plage d'adresses. Les enregistrements utilisent
l'adresse ainsi que les points (ou les deux points dans le cas d'IPv6) remplacés par des tirets.
Un exemple devrait rendre cela plus clair : La configuration --synth-
domain=thekelleys.org.uk,192.168.0.0/24,internal- permet de retourner
internal-192-168-0-56.thekelleys.org.uk lors d'une requête sur l'adresse 192.168.0.56 et vice-
versa pour la requête inverse. La même logique s'applique pour IPv6, avec la particularité
suivante : les adresses IPv6 pouvant commencer par '::', mais les noms DNS ne pouvant pas
commencer par '-', si aucun préfixe n'est donné, un zéro est ajouté en début de nom. Ainsi, ::1
devient 0--1.
La plage d'adresses peut-être de la forme <adresse IP>,<adresse IP> ou <adresse IP>/<masque
réseau>
--add-mac
Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises aux serveurs amonts. Cela peut être
utilisé dans un but de filtrage DNS par les serveurs amonts. L'adresse MAC peut uniquement être
ajoutée si le requêteur est sur le même sous-réseau que le serveur dnsmasq. Veuillez noter que le
mécanisme utilisé pour effectuer cela (une option EDNS0) n'est pas encore standardisée, aussi
cette fonctionalité doit être considérée comme expérimentale. Notez également qu'exposer les
adresses MAC de la sorte peut avoir des implications en termes de sécurité et de vie privée.
L'avertissement donné pour --add-subnet s'applique également ici.
--add-subnet[[=<longueur de préfixe IPv4>],<longueur de préfixe IPv6>]
Rajoute l'adresse de sous-réseau du requêteur aux requêtes DNS transmises aux serveurs amonts. La
quantité d'adresses transmises dépend du paramètre longueur du préfixe : 32 (ou 128 dans le cas
d'IPv6) transmet la totalité de l'adresse, 0 n'en transmet aucun mais marque néanmoins la requête
ce qui fait qu'aucun serveur amont ne rajoutera d'adresse client. La valeur par défaut est zéro et
pour IPv4 et pour IPv6. A noter que les serveurs amonts peuvent-être configurés pour retourner des
valeurs différentes en fonction de cette information mais que le cache de dnsmasq n'en tient pas
compte. Si une instance de dnsmasq est configurée de telle maniêre que des valeurs différentes
pourraient-être rencontrés, alors le cache devrait être désactivé.
-c, --cache-size=<taille>
Définit la taille du cache de Dnsmasq. La valeur par défaut est de 150 noms. Définir une valeur de
zéro désactive le cache.
-N, --no-negcache
Désactive le "cache négatif". Le "cache négatif" permet à Dnsmasq de se souvenir des réponses de
type "no such domain" fournies par les serveurs DNS en amont et de fournir les réponses sans avoir
à re-transmettre les requêtes aux serveurs amont.
-0, --dns-forward-max=<nombre de requêtes>
Définit le nombre maximum de requêtes DNS simultanées. La valeur par défaut est 150, ce qui
devrait être suffisant dans la majorité des configurations. La seule situation identifiée dans
laquelle cette valeur nécessite d'être augmentée est lorsqu'un serveur web a la résolution de nom
activée pour l'enregistrement de son journal des requêtes, ce qui peut générer un nombre important
de requêtes simultanées.
--proxy-dnssec
Un resolveur sur une machine cliente peut effectuer la validation DNSSEC de deux façons : il peut
effectuer lui-même les opérations de chiffrements sur la réponse reçue, ou il peut laisser le
serveur récursif amont faire la validation et positionner un drapeau dans la réponse au cas où
celle-ci est correcte. Dnsmasq n'est pas un validateur DNSSEC, aussi il ne peut effectuer la
validation comme un serveur de nom récursif, cependant il peut retransmettre les résultats de
validation de ses serveurs amonts. Cette option permet l'activation de cette fonctionalité. Vous
ne devriez utiliser cela que si vous faites confiance aux serveurs amonts ainsi que le réseau
entre vous et eux. Si vous utilisez le premier mode DNSSEC, la validation par le resolveur des
clients, cette option n'est pas requise. Dnsmasq retourne toujours toutes les données nécessaires
par un client pour effectuer la validation lui-même.
--auth-zone=<domaine>[,<sous-réseau>[/<longueur de préfixe>][,<sous-réseau>[/<longueur de
préfixe>].....]]
Définie une zone DNS pour laquelle dnsmasq agit en temps que serveur faisant autorité. Les
enregistrements DNS définis localement et correspondant à ce domaine seront fournis. Les
enregistrements A et AAAA doivent se situer dans l'un des sous-réseaux définis, ou dans un réseau
correspondant à une plage DHCP (ce comportement peut-être désactivé par constructor-noauth: ). Le
ou les sous-réseaux sont également utilisé(s) pour définir les domaines in-addr.arpa et ip6.arpa
servant à l'interrogation DNS inverse. Si la longueur de préfixe n'est pas spécifiée, elle sera
par défaut de 24 pour IPv4 et 64 pour IPv6. Dans le cas d'IPv4, la longueur du masque de réseau
devrait-être de 8, 16 ou 24, sauf si en cas de mise en place d'une délégation de la zone in-
addr.arpa conforme au RFC 2317.
--auth-soa=<numéro de série>[,<mainteneur de zone (hostmaster)>[,<rafraichissement>[,<nombre de
réessais>[,<expiration>]]]]
Spécifie les champs de l'enregistrement de type SOA (Start Of Authority) associé à une zone pour
laquelle le serveur fait autorité. A noter que cela est optionnel, les valeurs par défaut devant
convenir à la majorité des cas.
--auth-sec-servers=<domaine>[,<domaine>[,<domaine>...]]
Spécifie un ou plusieurs serveur de nom secondaires pour une zone pour laquelle dnsmasq fait
autorité. Ces serveurs doivent-être configurés pour récupérer auprès de dnsmasq les informations
liées à la zone au travers d'un transfert de zone, et répondre aux requêtes pour toutes les zones
pour lesquelles dnsmasq fait autorité.
--auth-peer=<adresse IP>[,<adresse IP>[,<adresse IP>...]]
Spécifie la ou les adresses de serveurs secondaires autorisés à initier des requêtes de transfert
de zone (AXFR) pour les zones pour lesquelles dnsmasq fait autorité. Si cette option n'est pas
fournie, les requêtes AXFR seront acceptées pour tous les serveurs secondaires.
--conntrack
Lis le marquage de suivi de connexion Linux associé aux requêtes DNS entrantes et positionne la
même marque au trafic amont utilisé pour répondre à ces requétes. Cela permet au trafic généré par
Dnsmasq d'étre associé aux requêtes l'ayant déclenché, ce qui est pratique pour la gestion de la
bande passante (accounting) et le filtrage (firewall). Dnsmasq doit pour cela être compilé avec le
support conntrack, le noyau doit également inclure conntrack et être configuré pour cela. Cette
option ne peut pas être combinée avec --query-port.
-F, --dhcp-range=[tag:<label>[,tag:<label>],][set:<label>],]<adresse de début>[,<adresse de
fin>][,<mode>][,<masque de réseau>[,<broadcast>]][,<durée de bail>]
-F, --dhcp-range=[tag:<label>[,tag:<label>],][set:<label>],]<addresse IPv6 de début>[,<adresse IPv6 de
fin>|constructor:<interface>][,<mode>][,<longueur de préfixe>][,<durée de bail>]
Active le serveur DHCP. Les adresses seront données dans la plage comprise entre <adresse de
début> et <adresse de fin> et à partir des adresses définies statiquement dans l'option dhcp-host.
Si une durée de bail est donnée, alors les baux seront donnés pour cette durée. La durée de bail
est donnée en secondes, en minutes (exemple : 45m), en heures (exemple : 1h) ou être la chaine de
caractère "infinite" pour une durée indéterminée. Si aucune valeur n'est donnée, une durée de bail
par défaut de une heure est appliquée. La valeur minimum pour un bail DHCP est de 2 minutes.
Pour les plages IPv6, la durée de bail peut-être égale au mot-clef "deprecated" (obsolète); Cela
positionne la durée de vie préférée envoyée dans les baux DHCP ou les annonces routeurs à zéro, ce
qui incite les clients à utiliser d'autres adresses autant que possible, pour toute nouvelle
connexion, en préalable à la renumérotation.
Cette option peut être répétée, avec différentes adresses, pour activer le service DHCP sur plus
d'un réseau. Pour des réseaux directement connectés (c'est-à-dire des réseaux dans lesquels la
machine sur laquelle tourne Dnsmasq possède une interface), le masque de réseau est optionnel :
Dnsmasq la déterminera à partir de la configuration des interfaces.
Pour les réseaux pour lesquels le service DHCP se fait via un relais DHCP ("relay agent"), Dnsmasq
est incapable de déterminer le masque par lui-même, aussi il doit être spécifié, faute de quoi
Dnsmasq essaiera de le deviner en fonction de la classe (A, B ou C) de l'adresse réseau. L'adresse
de broadcast est toujours optionnelle.
Il est toujours possible d'avoir plus d'une plage DHCP pour un même sous-réseau.
Pour IPv6, les paramètres sont légèrement différents : au lieu d'un masque de réseau et d'une
adresse de broadcast, il existe une longueur de préfixe optionnelle. Si elle est omise, la valeur
par défaut est 64. À la différence d'IPv4, la longueur de préfixe n'est pas automatiquement
déduite de la configuration de l'interface. La taille minimale pour la longueur de préfixe est 64.
Pour IPv6 (et IPv6 uniquement), il est possible de définir les plages d'une autre façon. Dans ce
cas, l'adresse de départ et l'adresse de fin optionnelle contiennent uniquement la partie réseau
(par exemple ::1) et sont suivies par constructor:<interface>. Cela forme un modèle décrivant
comment construire la plage, à partir des adresses assignées à l'interface. Par exemple
--dhcp-range=::1,::400,constructor:eth0
provoque la recherche d'adresses de la forme <réseau>::1 sur eth0 et crée une plage allant de
<réseau>::1 à <réseau>:400. Si une interface est assignée à plus d'un réseau, les plages
correspondantes seront automatiquement créées, rendues obsolètes puis supprimées lorsque l'adress
est rendue obsolète puis supprimée. Le nom de l'interface peut être spécifié avec un caractère
joker '*' final.
provoque la recherche d'adresses sur eth0 et crée une plage allant de <réseau>::1 à <réseau>:400.
Si l'interface est assignée à plus d'un réseau, les plages correspondantes seront respectivement
automatiquement créées, rendues obsolètes et supprimées lorsque l'adresse est rendue obsolète et
supprimée. Le nom de l'interface peut être spécifié avec un caractère joker '*' final. Les
adresses autoconfigurées, privées ou obsolètes ne conviennent pas.
Si une plage dhcp-range est uniquement utilisée pour du DHCP sans-état ("stateless") ou de
l'autoconfiguration sans état ("SLAAC"), alors l'adresse peut-être indiquée sous la forme '::'
--dhcp-range=::,constructor:eth0
Il existe une variante de la syntaxe constructor: qui consiste en l'utilisation du mot-clef
constructor-noauth. Voir --auth-zone pour des explications à ce sujet.
L'identifiant de label optionnel set:<label> fournie une étiquette alphanumérique qui identifie ce
réseau, afin de permettre la fourniture d'options DHCP spécifiques à chaque réseau. Lorsque
préfixé par 'tag:', la signification change, et au lieu de définir un label, il définit le label
pour laquelle la règle s'applique. Un seul label peut- être défini mais plusieurs labels peuvent
coïncider.
Le mot clef optionnel <mode> peut être égal à static ("statique") ce qui indique à Dnsmasq
d'activer le service DHCP pour le réseau spécifié, mais de ne pas activer l'allocation dynamique
d'adresses IP : Seuls les hôtes possédant des adresses IP statiques fournies via dhcp-host ou
présentes dans le fichier /etc/ethers seront alors servis par le DHCP. Il est possible d'activer
un mode "fourre-tout" en définissant un réseau statique comportant uniquement des zéros, c'est à
dire : --dhcp=range=::,static Cela permet de retourner des réponses à tous les paquets de type
Information-request (requête d'information) en mode DHCPv6 sans état sur le sous-réseau configuré.
Pour IPv4, le <mode> peut est égal à proxy , auquel cas Dnsmasq fournira un service de DHCP proxy
pour le sous-réseau spécifié. (voir pxe-prompt et pxe-service pour plus de détails).
Pour IPv6, le mode peut-être une combinaison des valeurs ra-only, slaac, ra-names, ra-stateless,
off-link.
ra-only indique à dnsmasq de n'effectuer que des annonces de routeur (Router Advertisement, RA)
sur ce sous-réseau, et de ne pas faire de DHCP.
slaac indique à dnsmasq d'effectuer des annonces de routeur sur ce sous-réseau et de positionner
dans celles-ci le bit A, afin que les clients utilisent des adresses SLAAC. Lorsqu'utilisé
conjointement avec une plage DHCP ou des affectations statiques d'adresses DHCP, les clients
disposeront à la fois d'adresses DHCP assignées et d'adresses SLAAC.
ra-stateless indique à dnsmasq d'effectuer des annonces de routeur avec les bits 0 et A
positionnés, et de fournir un service DHCP sans état ("stateless"). Les clients utiliseront des
adresses SLAAC, et utiliseront DHCP pour toutes les autres informations de configuration.
ra-names active un mode qui fourni des noms DNS aux hôtes fonctionnant en double pile ("dual
stack") et configurés pour faire du SLAAC en IPv6. Dnsmasq utilise le bail IPv4 de l'hôte afin de
dériver le nom, le segment de réseau et l'adresse MAC et assume que l'hôte disposera d'une adresse
IPv6 calculée via l'algorithme SLAAC, sur le même segment de réseau. Un ping est envoyé à
l'adresse, et si une réponse est obtenue, un enregistrement AAAA est rajouté dans le DNS pour
cette adresse IPv6. Veuillez-noter que cela n'arrive que pour les réseaux directement connectés
(et non ceux pour lesquels DHCP se fait via relai), et ne fonctionnera pas si un hôte utilise les
"extensions de vie privée" ("privacy extensions"). ra-names peut-être combiné avec ra-stateless et
slaac.
off-link indique à dnsmasq d'annoncer le préfixe sans le bit L (sur lien).
-G, --dhcp-host=[<adresse matérielle>][,id:<identifiant client>|*][,set:<label>][,<adresse IP>][,<nom
d'hôte>][,<durée de bail>][,ignore]
Spécifie les paramètres DHCP relatifs à un hôte. Cela permet à une machine possédant une adresse
matérielle spécifique de se voir toujours allouée les mêmes nom d'hôte, adresse IP et durée de
bail. Un nom d'hôte spécifié comme ceci remplace le nom fourni par le client DHCP de la machine
hôte. Il est également possible d'omettre l'adresse matérielle et d'inclure le nom d'hôte, auquel
cas l'adresse IP et la durée de bail s'appliqueront à toute machine se réclamant de ce nom. Par
exemple --dhcp-host=00:20:e0:3b:13:af,wap,infinite spécifie à Dnsmasq de fournir à la machine
d'adresse matérielle 00:20:e0:3b:13:af le nom, et un bail de durée indéterminée.
--dhcp-host=lap,192.168.0.199 spécifie à Dnsmasq d'allouer toujours à la machine portant le nom
lap l'adresse IP 192.168.0.199.
Les adresses allouées de la sorte ne sont pas contraintes à une plage d'adresse spécifiée par une
option --dhcp-range, mais elles se trouver dans le même sous-réseau qu'une plage dhcp-range
valide. Pour les sous-réseaux qui n'ont pas besoin d'adresses dynamiquement allouées, utiliser le
mot-clef "static" dans la déclaration de plage d'adresses dhcp-range.
Il est possible d'utiliser des identifiants clients (appellé "DUID client" dans le monde IPv6)
plutôt que des adresses matérielles pour identifier les hôtes, en préfixant ceux-ci par 'id:'.
Ainsi, --dhcp-host=id:01:02:03:04,..... réfère à l'hôte d'identifiant 01:02:03:04. Il est
également possible de spécifier l'identifiant client sous la forme d'une chaîne de caractères,
comme ceci : --dhcp-host=id:identifiantclientsousformedechaine,.....
Un seul dhcp-host peut contenir une adresse IPv4, une adresse IPv6, ou les deux en même temps. Les
adresses IPv6 doivent-être mises entre crochets comme suit : --dhcp-host=laptop,[1234::56] Les
adresses IPv6 peuvent ne contenir que la partie identifiant de client : --dhcp-host=laptop,[::56]
Dans ce cas, lorsque des plages dhcp sont définies automatiquement par le biais de constructeurs,
la partie réseau correspondante est rajoutée à l'adresse.
A noter que pour le DHCP IPv6, l'adresse matérielle n'est pas toujours disponible, bien que ce
soit toujours le cas pour des clients directement connectés (sur le même domaine de broadcast) ou
pour des clients utilisant des relais DHCP qui supportent la RFC 6939.
En DHCPv4, l'option spéciale id:* signifie : "ignorer tout identifiant client et n'utiliser que
l'adresse matérielle". Cela est utile lorsqu'un client présente un identifiant client mais pas les
autres.
Si un nom apparaît dans /etc/hosts, l'adresse associée peut être allouée à un bail DHCP mais
seulement si une option --dhcp-host spécifiant le nom existe par ailleurs. Seul un nom d'hôte
peut-être donné dans une option dhcp-host , mais les alias sont possibles au travers de
l'utilisation des CNAMEs. (Voir --cname ). Le mot clef "ignore" ("ignorer") indique à Dnsmasq de
ne jamais fournir de bail DHCP à une machine. La machine peut être spécifiée par son adresse
matérielle, son identifiant client ou son nom d'hôte. Par exemple --dhcp-
host=00:20:e0:3b:13:af,ignore Cela est utile lorsqu'un autre serveur DHCP sur le réseau doit être
utilisé par certaines machines.
Le paramètre set:<identifiant réseau> permet de définir un identifiant de réseau lorsque l'option
dhcp-host est utilisée. Cela peut servir à sélectionner des options DHCP juste pour cet hôte. Plus
d'un label peut être fourni dans une directive dhcp-host (et dans cette seule directive).
Lorsqu'une machine coïncide avec une directive dhcp-host (ou une impliquée par /etc/ethers), alors
le label réservé "known" ("connu") est associé. Cela permet à Dnsmasq d'être configuré pour
ignorer les requêtes issus de machines inconnue
par le biais de --dhcp-ignore=tag:!known.
Les adresses ethernet (mais pas les identifiants clients) peuvent être définies avec des octets
joker, ainsi par exemple --dhcp-host=00:20:e0:3b:13:*,ignore demande à Dnsmasq d'ignorer une gamme
d'adresses matérielles. Il est à noter que "*" doit-être précédé d'un caractère d'échappement ou
mis entre guillemets lorsque spécifié en option de ligne de commande, mais pas dans le fichier de
configuration.
Les adresses matérielles coïncident en principe avec n'importe quel type de réseau (ARP), mais il
est possible de les limiter à un seul type ARP en les précédant du type ARP (en Hexadécimal) et de
"-". Ainsi --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 coïncidera uniquement avec des adresses
matérielles Token-Ring, puisque le type ARP pour une adresse Token-Ring est 6.
Un cas spécial, pour IPv4, correspond à l'inclusion d'une ou plusieurs adresses matérielles, c-à-d
: --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2. Cela permet à une adresse IP d'être
associé à plusieurs adresses matérielles, et donne à dnsmasq la permission d'abandonner un bail
DHCP attribué à l'une de ces adresses lorsqu'une autre adresse dans la liste demande un bail. Ceci
est une opération dangereuse qui ne fonctionnera de manière fiable que si une adresse matérielle
est active à un moment donné et dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile, par
exemple, pour allouer une adresse IP stable à un laptop qui aurait à la fois une connexion filaire
et sans-fil.
--dhcp-hostsfile=<chemin>
Lis les informations d'hôtes DHCP dans le fichier spécifié. Si l'argument est un chemin vers un
répertoire, lis tous les fichiers de ce répertoire. Le fichier contient des informations à raison
d'un hôte par ligne. Le format d'une ligne est la même que le texte fourni à la droite sur
caractère "=" dans l'option --dhcp-host. L'avantage de stocker les informations sur les hôtes DHCP
dans ce fichier est que celles-ci peuvent être modifiées sans recharger Dnsmasq; le fichier sera
relu lorsque Dnsmasq reçoit un signal SIGHUP.
--dhcp-optsfile=<chemin>
Lis les informations relatives aux options DHCP dans le fichier spécifié. Si l'argument est un
chemin vers un répertoire, lis tous les fichiers de ce répertoire. L'intérêt d'utiliser cette
option est le même que pour
--dhcp-hostsfile : le fichier spécifié sera rechargé à la réception par dnsmasq d'un signal
SIGHUP. Notez qu'il est possible d'encoder l'information via --dhcp-boot en utilisant les noms
optionnels bootfile-name, server-ip-address et tftp-server. Ceci permet d'inclure ces options dans
un fichier "dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME
-Z, --read-ethers
Lis les informations d'hôtes DHCP dans le fichier /etc/ethers. Le format de /etc/ethers est une
adresse matérielle suivie, soit par un nom d'hôte, soit par une adresse IP sous la forme de 4
chiffres séparés par des points. Lorsque lu par Dnsmasq, ces lignes ont exactement le même effet
que l'option --dhcp-host contenant les mêmes informations. /etc/ethers est relu à la réception
d'un signal SIGHUP par Dnsmasq. Les adresses IPv6 ne sont PAS lues dans /etc/ethers.
-O, --dhcp-option=[tag:<label>,[tag:<label>]][encap:<option>,][vi-
encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom
d'option>|option6:<option>|option6:<nom d'option>],[<valeur>[,<valeur>]]
Spécifie des options différentes ou supplémentaires pour des clients DHCP. Par défaut, Dnsmasq
envoie un ensemble standard d'options aux clients DHCP : le masque de réseau et l'adresse de
broadcast sont les mêmes que pour l'hôte sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la
route par défaut prennent comme valeur l'adresse de la machine sur laquelle tourne Dnsmasq. (Des
règles équivalentes s'appliquent en IPv6). Si une option de nom de domaine a été définie, son
contenu est transmis. Cette option de configuration permet de changer toutes ces valeurs par
défaut, ou de spécifier d'autres options. L'option DHCP à transmettre peut être fournie sous forme
d'un nombre décimal ou sous la forme "option:<nom d'option>". Les nombres correspondants aux
options sont définis dans la RFC2132 et suivants. Les noms d'options connus par Dnsmasq peuvent
être obtenus via "Dnsmasq --help dhcp". Par exemple, pour définir la route par défaut à
192.168.4.4, il est possible de faire --dhcp-option=3,192.168.4.4 ou --dhcp-option =
option:router, 192.168.4.4 ou encore, pour positionner l'adresse du serveur de temps à
192.168.0.4, on peut faire --dhcp-option = 42,192.168.0.4 ou --dhcp-option = option:ntp-server,
192.168.0.4 L'adresse 0.0.0.0 prends ici le sens "d'adresse de la machine sur laquelle tourne
Dnsmasq". Les types de données autorisées sont des adresses IP sous la forme de 4 chiffres séparés
par des points, un nombre décimal, une liste de caractères hexadécimaux séparés par des 2 points,
ou une chaîne de caractères. Si des labels optionnels sont fournis, alors cette option n'est
envoyée qu'aux réseaux dont tous les labels coïncident avec ceux de la requête.
Un traitement spécial est effectué sur les chaînes de caractères fournies pour l'option 119,
conformément à la RFC 3397. Les chaînes de caractères ou les adresses IP sous forme de 4 chiffres
séparés par des points donnés en arguments de l'option 120 sont traités conforméments à la RFC
3361. Les adresses IP sous forme de 4 chiffres séparés par des points suivies par une barre
montante "/", puis une taille de masque sont encodés conforméments à la RFC 3442.
Les options IPv6 sont fournies en utilisant le mot-clef option6: suivi par le numéro d'option ou
le nom d'option. L'espace de nommage des options IPv6 est disjint de l'espace de nommage des
options IPv4. Les adresses IPv6 en option doivent être entourées de crochets, comme par exemple :
--dhcp-option=option6:ntp-server,[1234::56]
Attention : aucun test n'étant fait pour vérifier que des données d'un type adéquat sont envoyées
pour un numéro d'option donné, il est tout à fait possible de persuader Dnsmasq de générer des
paquets DHCP illégaux par une utilisation incorrecte de cette option. Lorsque la valeur est un
nombre décimal, Dnsmasq doit déterminer la taille des données. Cela est fait en examinant le
numéro de l'option et/ou la valeur, mais peut-être évité en rajoutant un suffixe d'une lettre
comme suit : b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des options
encapsulées de classes de vendeurs (voir plus bas), pour lesquelles Dnsmasq ne peut déterminer la
taille de la valeur. Les données d'options consistant uniquement de points et de décimaux sont
interprétées par Dnsmasq comme des adresses IP, et envoyées comme telles. Pour forcer l'envoi sous
forme de chaîne de caractère, il est nécessaire d'utiliser des guillemets doubles. Par exemple,
l'utilisation de l'option 66 pour fournir une adresse IP sous la forme d'une chaîne de caractères
comme nom de serveur TFTP, il est nécessaire de faire comme suit : --dhcp-option=66,"1.2.3.4"
Les options encapsulées de classes de vendeurs peuvent-être aussi spécifiées (pour IPv4 seulement)
en utilisant --dhcp-option : par exemple --dhcp-option=vendor:PXEClient,1,0.0.0.0 envoie l'option
encapsulée de classe de vendeur "mftp-address=0.0.0.0" à n'importe quel client dont la classe de
vendeur correspond à "PXEClient". La correspondance pour les classes de vendeur s'effectue sur des
sous-chaînes de caractères (voir --dhcp-vendorclass pour plus de détails). Si une option de classe
de vendeur (numéro 60) est envoyée par Dnsmasq, alors cela est utilisé pour sélectionner les
options encapsulées, de préférence à toute option envoyée par le client. Il est possible d'omettre
complètement une classe de vendeur : --dhcp-option=vendor:,1,0.0.0.0 Dans ce cas l'option
encapsulée est toujours envoyée.
En IPv4, les options peuvent-être encapsulées au sein d'autres options : par exemple --dhcp-
option=encap:175, 190, iscsi-client0 enverra l'option 175, au sein de laquelle se trouve l'option
190. Plusieurs options encapsulées avec le même numéro d'option seront correctement combinées au
sein d'une seule option encapsulée. Il n'est pas possible de spécifier encap: et vendor: au sein
d'une même option dhcp.
La dernière variante pour les options encapsulées est "l'option de Vendeur identifiant le vendeur"
("Vendor-Identifying Vendor Options") telle que décrite dans le RFC3925. Celles-ci sont spécifiées
comme suit : --dhcp-option=vi-encap:2, 10, text Le numéro dans la section vi-encap: est le numéro
IANA de l'entreprise servant à identifier cette option. Cette forme d'encapsulation est également
supportée en IPv6.
L'adresse 0.0.0.0 n'est pas traitée de manière particulière lorsque fournie dans une option
encapsulée.
--dhcp-option-force=[tag:<label>,[tag:<label>]][encap:<option>,][vi-
encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
Cela fonctionne exactement de la même façon que --dhcp-option sauf que cette option sera toujours
envoyée, même si le client ne la demande pas dans la liste de paramêtres requis. Cela est parfois
nécessaire, par exemple lors de la fourniture d'options à PXELinux.
--dhcp-no-override
(IPv4 seulement) Désactive la réutilisation des champs DHCP nom de serveur et nom de fichier comme
espace supplémentaire pour les options. Si cela est possible, dnsmasq déplace les informations sur
le serveur de démarrage et le nom de fichier (fournis par 'dhcp-boot') en dehors des champs dédiés
à cet usage dans les options DHCP. Cet espace supplémentaire est alors disponible dans le paquet
DHCP pour d'autres options, mais peut, dans quelques rares cas, perturber des clients vieux ou
défectueux. Cette option force le comportement à l'utilisation des valeurs "simples et sûres" afin
d'éviter des problèmes dans de tels cas.
--dhcp-relay=<adresse locale>,<adresse de serveur>[,<interface]
Configure dnsmasq en temps que relais DHCP. L'adresse locale est une adresse allouée à l'une
interface de la machine sur laquelle tourne dnsmasq. Toutes les requêtes DHCP arrivant sur cette
interface seront relayées au serveur DHCP distant correspondant à l'adresse de serveur indiquée.
Il est possible de relayer depuis une unique adresse locale vers différents serveurs distant en
spécifiant plusieurs fois l'option dhcp-relay avec la même adresse locale et différentes adresses
de serveur. L'adresse de serveur doit-être sous forme numérique. Dans le cas de DHCPv6, l'adresse
de serveur peut-être l'adresse de multicast ff05::1:3 correspondant à tous les serveurs DHCP. Dans
ce cas, l'interface doit-étre spécifiée et ne peut comporter de caractère joker. Elle sera
utilisée pour indiquer l'interface à partir de laquelle le multicast pourra atteindre le serveur
DHCP.
Le contrôle d'accès pour les clients DHCP suivent les mêmes règles que pour les serveurs DHCP :
voir --interface, --except-interface, etc. Le nom d'interface optionel dans l'option dhcp-relay
comporte une autre fonction : il contrôle l'interface sur laquelle la réponse du serveur sera
acceptée. Cela sert par exemple dans des configurations à 3 interfaces : une à partir de laquelle
les requêtes sont relayées, une seconde permettant de se connecter à un serveur DHCP, et une
troisième reliée à un réseau non-sécurisé tel qu'internet. Cela permet d'éviter l'arrivée de
requêtes usurpées via cette troisième interface.
Il est permis de configurer dnsmasq pour fonctionner comme serveur DHCP sur certaines interfaces
et en temps que relais sur d'autres. Cependant, même s'il est possible de configurer dnsmasq de
telle manière qu'il soit à la fois serveur et relais pour une même interface, cela n'est pas
supporté et la fonction de relais prendra le dessus.
Le relais DHCPv4 et le relais DHCPv6 sont tous les deux supportés, mais il n'est pas possible de
relayer des requêtes DHCPv4 à un serveur DHCPv6 et vice-versa.
-U, --dhcp-vendorclass=set:<label>,[enterprise:<numéro IANA d'enterprise>,]<classe de vendeur>
Associe une chaîne de classe de vendeur à un label. La plupart des clients DHCP fournissent une
"classe de vendeur" ("vendor class") qui représente, d'une certaine façon, le type d'hôte. Cette
option associe des classes de vendeur à des labels, de telle sorte que des options DHCP peuvent-
être fournie de manière sélective aux différentes classes d'hôtes. Par exemple, dhcp-
vendorclass=set:printers,Hewlett-Packard JetDirect ou dhcp-vendorclass=printers,Hewlett-Packard
JetDirect permet de n'allouer des options qu'aux imprimantes HP de la manière suivante : --dhcp-
option=tag:printers,3,192.168.4.4 La chaîne de caractères de la classe de vendeur founie en
argument est cherchée en temps que sous-chaîne de caractères au sein de la classe de vendeur
fournie par le client, de façon à permettre la recherche d'un sous-ensemble de la chaîne de
caractères ("fuzzy matching"). Le préfixe set: est optionnel mais autorisé afin de conserver une
certaine homogénéité.
Notez qu'en IPv6 (et seulement en IPv6), les noms de classes de vendeurs sont dans un espace de
nom associé au numéro attribué à l'entreprise par l'IANA. Ce numéro est fourni par le biais du
mot-clef enterprise: et seules les classes de vendeurs associées au numéro spécifié seront
cherchées.
-j, --dhcp-userclass=set:<label>,<classe utilisateur>
Associe une chaîne de classe d'utilisateur à un label (effectue la recherche sur des sous-chaînes,
comme pour les classes de vendeur). La plupart des clients permettent de configurer une "classe
d'utilisateur". Cette option associe une classe d'utilisateur à un label, de telle manière qu'il
soit possible de fournir des options DHCP spécifiques à différentes classes d'hôtes. Il est
possible, par exemple, d'utiliser ceci pour définir un serveur d'impression différent pour les
hôtes de la classe "comptes" et ceux de la classe "ingénierie".
-4, --dhcp-mac=set:<label>,<adresse MAC>
Associe une adresse matérielle (MAC) à un label. L'adresse matérielle peut inclure des jokers. Par
exemple --dhcp-mac=set:3com,01:34:23:*:*:* permet de définir le label "3com" pour n'importe quel
hôte dont l'adresse matérielle coïncide avec les critères définis.
--dhcp-circuitid=set:<label>,<identifiant de circuit>, --dhcp-remoteid=set:<label>,<identifiant distant>
Associe des options de relais DHCP issus de la RFC3046 à des labels. Cette information peut-être
fournie par des relais DHCP. L'identifiant de circuit ou l'identifiant distant est normalement
fourni sous la forme d'une chaîne de valeurs hexadécimales séparées par des ":", mais il est
également possible qu'elle le soit sous la forme d'une simple chaîne de caractères. Si
l'identifiant de circuit ou d'agent correspond exactement à celui fourni par le relais DHCP, alors
le label est apposé. dhcp-remoteid est supporté en IPv6 (mais non dhcp-circuitid).
--dhcp-subscrid=set:<label>,<identifiant d'abonné>
(IPv4 et IPv6) Associe des options de relais DHCP issues de la RFC3993 à des labels.
--dhcp-proxy[=<adresse ip>]......
(IPv4 seulement) Un agent relai DHCP normal est uniquement utilisé pour faire suivre les éléments
initiaux de l'interaction avec le serveur DHCP. Une fois que le client est configuré, il
communique directement avec le serveur. Cela n'est pas souhaitable si le relais rajoute des
informations supplémentaires aux paquets DHCP, telles que celles utilisées dans dhcp-circuitid et
dhcp-remoteid. Une implémentation complète de relai peut utiliser l'option serverid-override de la
RFC 5107 afin de forcer le serveur DHCP à utiliser le relai en temps que proxy complet, de sorte
que tous les paquets passent par le relai. Cette option permet d'obtenir le même résultat pour des
relais ne supportant pas la RFC 5107. Fournie seule, elle manipule la valeur de server-id pour
toutes les interactions via des relais. Si une liste d'adresses IP est donnée, seules les
interactions avec les relais dont l'adresse est dans la liste seront affectées.
--dhcp-match=set:<label>,<numéro d'option>|option:<nom d'option>|vi-encap:<entreprise>[,<valeur>]
Si aucune valeur n'est spécifiée, associe le label si le client envoie une option DHCP avec le
numéro ou le nom spécifié. Lorsqu'une valeur est fournie, positionne le label seulement dans le
cas où l'option est fournie et correspond à la valeur. La valeur peut-être de la forme
"01:ff:*:02", auquel cas le début de l'option doit correspondre (en respectant les jokers). La
valeur peut aussi être de la même forme que dans dhcp-option , auquel cas l'option est traitée
comme un tableau de valeur, et un des éléments doit correspondre, ainsi
--dhcp-match=set:efi-ia32,option:client-arch,6
spécifie le label "efi-ia32" si le numéro 6 apparaît dnas la liste d'architectures envoyé par le
client au sein de l'option 93. (se réferer au RFC 4578 pour plus de détails). Si la valeur est un
chaine de caractères, celle-ci est recherchée (correspondance en temps que sous-chaîne).
Pour la forme particulière vi-encap:<numéro d'entreprise>, la comparaison se fait avec les classes
de vendeur "identifiant de vendeur" ("vendor-identifying vendor classes") pour l'entreprise dont
le numéro est fourni en option. Veuillez vous réferer à la RFC 3925 pour plus de détail.
--tag-if=set:<label>[,set:<label>[,tag:<label>[,tag:<label>]]]
Effectue une opération booléenne sur les labels. Si tous les labels apparaissant dans la liste
tag:<label> sont positionnés, alors tous les la de la liste "set:<labels>" sont positionnés (ou
supprimés, dans le cas où "tag:!<label>" utilisé). Si aucun tag:<label> n'est spécifié, alors tous
les labels fournis par set:<label> sont positionnés. N'importe quel nombre de set: ou tag: peuvent
être fournis, et l'ordre est sans importance. Les lignes tag-if sont executées dans l'ordre, ce
qui fait que si un label dans tag:<label> est un label positionné par une rêgle tag-if, la ligne
qui positionne le label doit précéder celle qui le teste.
-J, --dhcp-ignore=tag:<label>[,tag:<label>]
Lorsque tous les labels fournis dans l'option sont présents, ignorer l'hôte et ne pas donner de
bail DHCP.
--dhcp-ignore-names[=tag:<label>[,tag:<label>]]
Lorsque tous les labels fournis dans l'option sont présents, ignorer le nom de machine fourni par
l'hôte. Il est à noter que, à la différence de l'option "dhcp-ignore", il est permis de ne pas
fournir de label. Dans ce cas, les noms d'hôtes fournis par les clients DHCP seront toujours
ignorés, et les noms d'hôtes seront ajoutés au DNS en utilisant uniquement la configuration dhcp-
host de Dnsmasq, ainsi que le contenu des fichiers /etc/hosts et /etc/ethers.
--dhcp-generate-names=tag:<label>[,tag:<label>]
(IPv4 seulement) Générer un nom pour les clients DHCP qui autrement n'en aurait pas, en utilisant
l'adresse MAC sous sa forme hexadécimale, séparée par des tirets. Noter que si un hôte fourni un
nom, celui-ci sera utilisé de préférence au nom autogénéré, à moins que --dhcp-ignore-names ne
soit positionné.
--dhcp-broadcast=[tag:<label>[,tag:<label>]]
(IPv4 seulement) Lorsque tous les labels fournis dans l'option sont présents, toujours utiliser le
broadcast pour communiquer avec l'hôte lorsque celui-ci n'est pas configuré. Il est possible de ne
spécifier aucun label, auquel cas cette option s'applique inconditionnellement. La plupart des
clients DHCP nécessitant une réponse par le biais d'un broadcast activent une option dans leur
requête, ce qui fait que cela se fait automatiquement, mais ce n'est pas le cas de certains vieux
clients BOOTP.
-M, --dhcp-boot=[tag:<label>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>|<nom du serveur
tftp>]]
(IPv4 seulement) Spécifie les options BOOTP devant être retournées par le serveur DHCP. Le nom de
serveur ainsi que l'adresse sont optionnels : s'ils ne sont pas fournis, le nom est laissé vide et
l'adresse fournie est celle de la machine sur laquelle s'exécute Dnsmasq. Si Dnsmasq founit un
service TFTP (voir --enable-tftp ), alors seul un nom de fichier est requis ici pour permettre un
démarrage par le réseau. Si d'éventuels labels sont fournis, ils doivent coïncider avec ceux du
client pour que cet élement de configuration lui soit envoyé. Une adresse de serveur TFTP peut
être spécifiée à la place de l'adresse IP, sous la forme d'un nom de domaine qui sera cherché dans
le fichier /etc/hosts. Ce nom peut être associé dans /etc/hosts avec plusieurs adresses IP, auquel
cas celles-ci seront utilisées tour à tour (algorithme round-robin). Cela peut-être utiliser pour
équilibrer la charge tftp sur plusieurs serveurs.
--dhcp-sequential-ip
Dnsmasq est conçu pour choisir l'adresse IP des clients DHCP en utilisant un hachage de l'adresse
MAC du client. Cela permet en général à l'adresse IP du client de rester stable au fil du temps,
même lorsque le client laisse expirer son bail DHCP de temps en temps. Dans ce mode de
fonctionnement par défaut, les adresses IP sont distribuées de façon pseudo-aléatoire dans la
totalité de la plage d'adresses utilisable. Il existe des circonstances (par exemples pour du
déploiement de serveur) où il est plus pratique d'allouer les adresses IP de manière séquentielle,
en commençant par la plus petite adresse disponible, et c'est ce mode de fonctionnement qui est
permis par cette option. Veuillez noter que dans ce mode séquentiel, les clients qui laissent
expirer leur bail ont beaucoup plus de chance de voir leur adresse IP changer, aussi cette option
ne devrait pas être utilisée dans un cas général.
--pxe-service=[tag:<label>,]<CSA>,<entrée de menu>[,<nom de fichier>|<type de service de
démarrage>][,<adresse de serveur>|<nom de serveur>]
La plupart des ROMS de démarrage PXE ne permettent au système PXE que la simple obtention d'une
adresse IP, le téléchargement du fichier spécifié dans dhcp-boot et son exécution. Cependant, le
système PXE est capable de fonctions bien plus complexes pour peu que le serveur DHCP soit adapté.
Ceci spécifie l'option de démarrage qui apparaitra dans un menu de démarrage PXE. <CSA> est le
type du système client. Seuls des types de services valides apparaitront dans un menu. Les types
connus sont x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI
et X86-64_EFI; D'autres types peuvent-être spécifiés sous la forme d'une valeur entière. Le
paramètre après le texte correspondant à l'entrée dans le menu peut être un nom de fichier, auquel
cas Dnsmasq agit comme un serveur de démarrage et indique au client PXE qu'il faut télécharger ce
fichier via TFTP, soit depuis ce serveur (l'option enable-tftp doit être spécifiée pour que cela
marche), soit depuis un autre serveur TFTP si une adresse ou un nom de serveur est fournie.
Veuillez noter que le suffixe de "couche" (en principe ".0") est fourni par PXE et ne doit pas
être rajouté au nom de fichier. Si une valeur numérique entière est fournir pour le type de
démarrage, en remplacement du nom de fichier, le client PXE devra chercher un service de démarrage
de ce type sur le réseau. Cette recherche peut être faite via broadcast ou directement auprès d'un
serveur si son adresse IP ou son nom sont fournis dans l'option. Si aucun nom de fichier n'est
donné ni aucune valeur de type de service de démarrage n'est fournie (ou qu'une valeur de 0 est
donnée pour le type de service), alors l'entrée de menu provoque l'interruption du démarrage par
le réseau et la poursuite du démarrage sur un média local. L'adresse de serveur peut être donnée
sous la forme de nom de domaine qui est recherché dans /etc/hosts. Ce nom peut-être associé à
plusieurs adresses IP, qui dans ce cas sont utilisées à tour de rôle (en "round-robin").
--pxe-prompt=[tag:<label>,]<invite>[,<délai>]
Cette option permet d'afficher une invite à la suite du démarrage PXE. Si un délai est fourni,
alors la première entrée du menu de démarrage sera automatiquement exécutée après ce délai. Si le
délai vaut 0, alors la première entrée disponible sera exécutée immédiatement. Si pxe-prompt est
omis, le système attendra un choix de l'utilisateur s'il existe plusieurs entrées dans le menu, ou
démarrera immédiatement dans le cas où il n'y a qu'une seule entrée. Voir pxe-service pour plus de
détails sur les entrées de menu.
Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas où un autre serveur DHCP sur le réseau est
responsable de l'allocation des adresses IP, auquel cas Dnsmasq se contente de fournir les
informations données dans les options pxe-prompt et pxe-service pour permettre le démarrage par le
réseau. Ce mode est activé en utilisant le mot-clef proxy dans dhcp-range.
-X, --dhcp-lease-max=<nombre>
Limite Dnsmasq à un maximum de <nombre> baux DHCP. Le défaut est de 1000. Cette limite permet
d'éviter des attaques de déni de service ("DoS") par des hôtes créant des milliers de baux et
utilisant beaucoup de mémoire dans le processus Dnsmasq.
-K, --dhcp-authoritative
Doit être spécifié lorsque dnsmasq est réellement le seul serveur DHCP sur le réseau. Pour DHCPv4,
cela change le comportement par défaut qui est celui d'un strict respect des RFC, afin que les
requêtes DHCP pour des baux inconnus par des hôtes inconnus ne soient pas ignorées. Cela permet à
de nouveaux hôtes d'obtenir des baux sans tenir compte de fastidieuses temporisations ("timeout").
Cela permet également à Dnsmasq de reconstruire sa base de données contenant les baux sans que les
clients n'aient besoin de redemander un bail, si celle-ci est perdue. Dans le cas de DHCPv6, cela
positionne la priorité des réponses à 255 (le maximum) au lieu de 0 (le minimum).
--dhcp-alternate-port[=<port serveur>[,<port client>]]
(IPv4 seulement) Change les ports utilisés par défaut pour le DHCP. Si cette option est donnée
seule sans argument, alors change les ports utilisés pour le DHCP de 67 et 68 respectivement à
1067 et 1068. Si un seul argument est donné, ce numéro est utilisé pour le port serveur et ce
numéro plus 1 est utilisé pour le port client. Enfin, en fournissant deux numéros de ports, il est
possible de spécifier arbitrairement 2 ports à la fois pour le serveur et pour le client DHCP.
-3, --bootp-dynamic[=<identifiant de réseau>[,<identifiant de réseau>]]
(IPv4 seulement) Permet l'allocation dynamique d'adresses IP à des clients BOOTP. Utiliser cette
option avec précaution, une adresse allouée à un client BOOTP étant perpétuelle, et de fait n'est
plus disponibles pour d'autres hôtes. Si aucun argument n'est donné, alors cette option permet une
allocation dynamique dans tous les cas. Si des arguments sont spécifiés, alors l'allocation ne se
fait que lorsque tous les identifiants coïncident. Il est possible de répeter cette option avec
plusieurs jeux d'arguments.
-5, --no-ping
(IPv4 seulement) Par défaut, le serveur DHCP tente de s'assurer qu'une adresse n'est pas utilisée
avant de l'allouer à un hôte. Cela est fait en envoyant une requête ICMP de type "echo request"
(aussi connue sous le nom de "ping") à l'adresse en question. Si le serveur obtient une réponse,
alors l'adresse doit déjà être utilisée et une autre est essayée. Cette option permet de supprimer
cette vérification. A utiliser avec précaution.
--log-dhcp
Traces additionnelles pour le service DHCP : enregistre toutes les options envoyées aux clients
DHCP et les labels utilisés pour la détermination de celles-ci.
--quiet-dhcp, --quiet-dhcp6, --quiet-ra
Supprime les logs des opérations de routine des protocoles concernés. Les erreurs et les problèmes
seront toujours enregistrés. L'option --log-dhcp prends le pas sur --quiet-dhcp et quiet-dhcp6.
-l, --dhcp-leasefile=<chemin de fichier>
Utilise le fichier dont le chemin est fourni pour stocker les informations de baux DHCP.
--dhcp-duid=<ID d'entreprise>,<uid>
(IPv6 seulement) Spécifie le numéro d'UID de serveur persistant que le serveur DHCPv6 doit
utiliser. Cette option n'est normalement pas requise, Dnsmasq créant un DUID automatiquement
lorsque cela est nécessaire. Lorsque cette option est positionnée, elle fournit à Dnsmasq les
données nécessaires à la création d'un DUID de type DUID-EN. Veuillez noter qu'une fois créé, le
DUID est stocké dans la base des baux, aussi changer entre un DUID créé automatiquement et un
DUID-EN et vice-versa impose de réinitialiser la base de baux. Le numéro d'ID d'entreprise est
assigné par l'IANA, et l'uid est une chaine hexadécimale unique à chaque serveur.
-6 --dhcp-script=<chemin de fichier>
Lorsqu'un bail DHCP est créé, qu'un ancien est supprimé, ou qu'un transfert TFTP est terminé, le
fichier dont le chemin est spécifié est exécuté. Le <chemin de fichier> doit être un chemin
absolu, aucune recherche n'est effectuée via la variable d'environnement PATH. Les arguments
fournis à celui-ci sont soit "add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de
l'adresse MAC de l'hôte (ou le DUID pour IPv6) puis l'adresse IP et le nom d'hôte si celui-ci est
connu."add" signifie qu'un bail a été créé, "del" signifie qu'il a été supprimé, "old" notifie que
le bail existait au lancement de Dnsmasq, ou un changement d'adresse MAC ou de nom d'hôte pour un
bail existant (ou, dans le cas où leasefile-ro est spécifié, un changement de durée de bail ou
d'identifiant d'hôte). Si l'adresse Mac est d'un type de réseau autre qu'ethernet, il est
nécessaire de la préceder du type de réseau, par exemple "06-01:23:45:67:89:ab" pour du token
ring. Le processus est exécuté en temps que super-utilisateur (si Dnsmasq a été lancé en temps que
"root"), même si Dnsmasq est configuré pour changer son UID pour celle d'un utilisateur non-
privilégié.
L'environnement est hérité de celui de l'invocation du processus Dnsmasq, auquel se rajoute
quelques unes ou toutes les variables décrites ci-dessous :
Pour IPv4 et IPv6 :
DNSMASQ_DOMAIN si le nom de domaine pleinement qualifié de l'hôte est connu, la part relative au
domaine y est stockée. (Notez que le nom d'hôte transmis comme argument au script n'est jamais
pleinement qualifié).
Si le client fournit un nom d'hôte, DNSMASQ_SUPPLIED_HOSTNAME.
Si le client fournit des classes d'utilisateur, DNSMASQ_USER_CLASS0 à DNSMASQ_USER_CLASSn.
Si Dnsmasq a été compilé avec l'option HAVE_BROKEN_RTC ("horloge RTC défectueuse"), alors la durée
du bail (en secondes) est stockée dans la variable DNSMASQ_LEASE_LENGTH, sinon la date
d'expiration du bail est toujours stocké dans la variable d'environnement DNSMASQ_LEASE_EXPIRES.
Le nombre de secondes avant expiration est toujours stocké dans DNSMASQ_TIME_REMAINING.
Si un bail était associé à un nom d'hôte et que celui-ci est supprimé, un évênement de type "old"
est généré avec le nouveau statut du bail, c-à-d sans nom d'hôte, et le nom initial est fourni
dans la variable d'environnement DNSMASQ_OLD_HOSTNAME.
La variable DNSMASQ_INTERFACE contient le nom de l'interface sur laquelle la requête est arrivée;
ceci n'est pas renseigné dans le cas des actions "old" ayant lieu après un redémarrage de dnsmasq.
La variable DNSMASQ_RELAY_ADDRESS est renseignée si le client a utilisé un relai DHCP pour
contacter Dnsmasq, si l'adresse IP du relai est connue.
DNSMASQ_TAGS contient tous les labels fournis pendant la transaction DHCP, séparés par des
espaces.
DNSMASQ_LOG_DHCP est positionné si --log-dhcp est activé.
Pour IPv4 seulement :
DNSMASQ_CLIENT_ID, si l'hôte a fourni un identifiant de client.
DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID, DNSMASQ_REMOTE_ID si un relai DHCP a rajouté l'une de
ces options.
Si le client fournit une information de classe de vendeur, DNSMASQ_VENDOR_CLASS.
Pour IPv6 seulement :
Si le client fournit une classe de vendeur (vendor-class), positionne DNSMASQ_VENDOR_CLASS_ID avec
comme contenu le numéro IANA de l'entreprise pour la classe, et
DNSMASQ_VENDOR_CLASS0..DNSMASQ_VENDOR_CLASSn pour les données.
DNSMASQ_SERVER_DUID contient le DUID du serveur : cette valeur est la même pour chaque appel au
script.
DNSMASQ_IAID contenant l'IAID pour le bail. Si le bail est une allocation temporaire, cela est
préfixé par le caractère 'T'.
DNSMASQ_MAC contient l'adresse MAC du client, si celle-ci est connue.
A noter que le nom d'hôte fourni, la classe de vendeur ou les données de classe d'utilisateur sont
uniquement fournies pour les actions "add" ou l'action "old" lorsqu'un hôte reprend un bail
existant, puisque ces informations ne sont pas conservées dans la base de baux de dnsmasq.
Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et stderr qui sont ouverts sur
/dev/null (sauf en mode déverminage).
Le script n'est pas lancé de manière concurrente : au plus une instance du script est executée à
la fois (dnsmasq attends qu'une instance de script se termine avant de lancer la suivante). Les
changements dans la base des baux nécessitant le lancement du script sont placé en attente dans
une queue jusqu'à terminaison d'une instance du script en cours. Si cette mise en queue fait que
plusieurs changements d'états apparaissent pour un bail donné avant que le script puisse être
lancé, alors les états les plus anciens sont supprimés et lorsque le script sera finalement lancé,
ce sera avec l'état courant du bail.
Au démarrage de Dnsmasq, le script sera invoqué pour chacun des baux existants dans le fichier des
baux. Le script sera lancé avec l'action "del" pour les baux expirés, et "old" pour les autres.
Lorsque Dnsmasq reçoit un signal HUP, le script sera invoqué avec une action "old" pour tous les
baux existants.
Il existe deux autres actions pouvant apparaître comme argument au script : "init" et "tftp".
D'autres sont susceptibles d'être rajoutées dans le futur, aussi les scripts devraient-être écrits
de sorte à ignorer les actions inconnues. "init" est décrite ci-dessous dans --leasefile-ro.
L'action "tftp" est invoquée lorsqu'un transfert de fichier TFTP s'est terminé. Ses arguments sont
la taille du fichier en octets, l'adresse à laquelle le fichier a été envoyé, ainsi que le chemin
complet du fichier.
--dhcp-luascript=<chemin>
Spécifie un script écrit en Lua, devant être exécuté lorsque des baux sont créés, détruits ou
modifiés. Pour utiliser cette option, dnsmasq doit être compilé avec avec le support de Lua.
L'interpréteur Lua est initialisé une seule fois, lorsque dnsmasq démarre, ce qui fait que les
variables globales persistent entre les évênements liés aux baux. Le code Lua doit définir une
fonction lease et peut fournir des fonctions init et shutdown qui sont appellées, sans arguments,
lorsque dnsmasq démarre ou s'arrête. Il peut également fournir une fonction tftp.
La fonction lease reçoit les informations détaillées dans --dhcp-script. Il reçoit deux arguments.
Le premier spécifie l'action, qui est une chaîne de caractères contenant les valeurs "add"
(ajout), "old" (réactivation d'un bail existant) ou "del" (suppression). Le deuxième est une table
contenant des paires de valeurs de labels. Les labels correspondent pour l'essentiel aux valeurs
d'environnement détaillées ci-dessus, ainsi le label "domain" (domaine) contient les mêmes données
que la variable d'environnement DNSMASQ_DOMAIN. Il existe quelques labels supplémentaires
contenant les données fournies comme arguments à --dhcp-script. Ces labels sont mac_address,
ip_address (pour respectivement l'adresse MAC et l'adresse IP) et hostname (le nom d'hôte) dans le
cas d'IPv4, et client_duid, ip_address (valeur DUID du client et adresse IP respectivement) ainsi
que hostname (le nom d'hôte) dans le cas d'IPv6.
La fonction tftp est appelée de la même façon que la fonction "lease", et la table contient les
labels destination_address, file_name et file_size (respectivement "adresse de destination", "nom
de fichier" et "taille de fichier").
--dhcp-scriptuser
Spécifie l'utilisateur sous lequel le script shell lease-change ou le script doivent être
exécutés. La valeur par défaut correspond à l'utilisateur root mais peut-être changée par le biais
de cette option.
-9, --leasefile-ro
Supprimer complètement l'usage du fichier servant de base de donnée pour les baux DHCP. Le fichier
ne sera ni créé, ni lu, ni écrit. Change la façon dont le script de changement d'état de bail est
lancé (si celui-ci est fourni par le biais de l'option --dhcp-script ), de sorte que la base de
données de baux puisse être complètement gérée par le script sur un stockage externe. En addition
aux actions décrites dans --dhcp-script, le script de changement d'état de bail est appellé une
fois, au lancement de Dnsmasq, avec pour seul argument "init". Lorsqu'appellé de la sorte, le
script doit fournir l'état de la base de baux, dans le format de fichier de baux de Dnsmasq, sur
sa sortie standard (stdout) et retourner un code de retour de 0. Positionner cette option provoque
également une invocation du script de changement d'état de bail à chaque changement de
l'identifiant de client, de longueur de bail ou de date d'expiration.
--bridge-interface=<interface>,<alias>[,<alias>]
Traiter les requêtes DHCP (v4 et v6) et IPv6 Router Solicit arrivant sur n'importe laquelle des
interfaces <alias> comme si elles arrivaient de l'interface <interface>. Cette option permet à
dnsmasq de fournir les service DHCP et RA sur les interfaces ethernet non adressés et non pontés;
par exemple sur un hôte de calcul d'OpenStack où chaque telle interface est une interface TAP à
une machine virtuelle, ou lors de l'utilisation de pont ethernet "ancien mode" sur plate-forme
BSD. Chaque <alias> peut finir avec un simple '*' joker.
-s, --domain=<domaine>[,<gamme d'adresses>[,local]]
Spécifie le domaine du serveur DHCP. Le domaine peut être donné de manière inconditionnelle (sans
spécifier de gamme d'adresses IP) ou pour des gammes d'adresses IP limitées. Cela a deux effets;
tout d'abord, le serveur DHCP retourne le domaine à tous les hôtes le demandant, deuxièmement,
cela spécifie le domaine valide pour les hôtes DHCP configurés. Le but de cela est de contraindre
les noms d'hôte afin qu'aucun hôte sur le LAN ne puisse fournir via DHCP un nom tel que par
exemple "microsoft.com" et capturer du trafic de manière illégitime. Si aucun nom de domaine n'est
spécifié, alors les noms d'hôtes avec un nom de domaine (c-à-d un point dans le nom) seront
interdits et enregistrés dans le journal (logs). Si un suffixe est fourni, alors les noms d'hôtes
possédant un domaine sont autorisés, pour peu que le nom de domaine coïncide avec le nom fourni.
De plus, si un suffixe est fourni, alors les noms d'hôtes ne possédant pas de nom de domain se
voient rajouter le suffixe fourni dans l'option --domain. Ainsi, sur mon réseau, je peux
configurer --domain=thekelleys.org.uk et avoir une machine dont le nom DHCP serait "laptop".
L'adresse IP de cette machine sera disponible à la fois pour "laptop" et
"laptop.thekelleys.org.uk". Si la valeur fournie pour <domaine> est "#", alors le nom de domaine
est positionné à la première valeur de la directive "search" du fichier /etc/resolv.conf (ou
équivalent).
La gamme d'adresses peut être de la forme <adresse ip>,<adresse ip> ou <adresse ip>/<masque de
réseau> voire une simple <adresse ip>. Voir --dhcp-fqdn qui peut changer le comportement de
dnsmasq relatif aux domaines.
Si la gamme d'adresse est fournie sous la forme <adresse ip>/<taille de réseau>, alors le drapeau
"local" peut-être rajouté qui a pour effect d'ajouter --local-declarations aux requêtes DNS
directes et inverses. C-à-d --domain=thekelleys.org.uk,192.168.0.0/24,local est identique à
--domain=thekelleys.org.uk,192.168.0.0/24 --local=/thekelleys.org.uk/ --local=/0.168.192.in-
addr.arpa/ La taille de réseau doit-être de 8, 16 ou 24 pour être valide.
--dhcp-fqdn
Dans le mode par défaut, dnsmasq insère les noms non-qualifiés des clients DHCP dans le DNS. Pour
cette raison, les noms doivent être uniques, même si deux clients ayant le même nom sont dans deux
domaines différents. Si un deuxième client DHCP apparaît ayant le même nom qu'un client déjà
existant, ce nom est transféré au nouveau client. Si --dhcp-fqdn est spécifié, ce comportement
change : les noms non qualifiés ne sont plus rajoutés dans le DNS, seuls les noms qualifiés le
sont. Deux clients DHCP avec le même nom peuvent tous les deux garder le nom, pour peu que la
partie relative au domaine soit différente (c-à-d que les noms pleinements qualifiés diffèrent).
Pour d'assurer que tous les noms ont une partie domaine, il doit-y avoir au moins un --domain sans
gamme d'adresses de spécifié lorsque l'option --dhcp-fqdn est configurée.
--dhcp-client-update
Normalement, lorsque dnsmasq fournit un bail DHCP, il positionne un label dans l'option FQDN pour
indiquer au client qu'il ne doit pas tenter de faire une mise à jour DDNS avec son nom et son
adresse IP. Ceci parce que la paire Nom-IP est rajoutée automatiquement dans la partie DNS de
dnsmasq. Cette option inhibe ce comportement ce qui est utile, par exemple, pour permettre aux
clients Windows de la mise à jour de serveurs Active Directory. Voir la RFC 4702 pour plus de
détails.
--enable-ra
Active la fonctionalité d'annonces routeurs IPv6 ("IPv6 Router Advertisement"). DHCPv6 ne gère pas
la configuration complète du réseau de la même façon que DHCPv4. La découverte de routeurs et la
découverte (éventuelle) de préfixes pour la création autonome d'adresse sont gérées par un
protocole différent. Lorsque DHCP est utilisé, seul un sous-ensemble de tout ceci est nécessaire
et dnsmasq est à même de le gérer, en utilisant la configuration DHCP présente pour fournir la
majorité des données. Lorsque les annonces routeurs (RA pour "Router Advertisement") sont
activées, dnsmasq va annoncer un préfixe pour chaque dhcp-range et, par défaut, fournir comme
valeur de routeur et de DNS récursif la valeur d'adresse link-local appropriée parmi celles de la
machine sur laquelle tourne dnsmasq. Par défaut, les bits "managed address" sont positionnés, et
le bit "use SLAAC" ("utiliser SLAAC") est réinitialisé. Cela peut-être changé pour des sous-
réseaux donnés par le biais du mot clef de mode décris dans --dhcp-range. Les paramètres DNS du
RFC6106 sont inclus dans les annonces. Par défaut, l'adresse link-local appropriée parmi celles de
la machine sur laquelle tourne dnsmasq est spécifiée comme DNS récursif. Si elles sont fournies,
les options dns-server et domain-search sont utilisées respectivement pour RDNSS et DNSSL.
--ra-param=<interface>,[mtu:<valeur>|<interface>|off,][high,|low,]<intervalle d'annonce routeur>[,<durée
de vie route>]
Configure pour une interface donnée des valeurs pour les annonces routeurs différentes des valeurs
par défaut. La valeur par défaut du champ priorité pour le routeur peut-être changée de "medium"
(moyen) à "high" (haute) ou "low" (basse). Par exemple : --ra-param=eth0,high,0. Un intervalle (en
secondes) entre les annonces routeur peut-être fourni par : --ra-param=eth0,60. La durée de vie de
la route peut-être changée ou mise à zéro, auquel cas le routeur peut annoncer les préfixes mais
pas de route : --ra-parm=eth0,0,0 (une valeur de zéro pour l'intervalle signifie qu'il garde la
valeur par défaut). Ces quatre paramètres peuvent-être configurés en une fois : --ra-
param=eth0,mtu:1280,low,60,1200 La valeur pour l'interface peut inclure un caractère joker.
--enable-tftp[=<interface>[,<interface>]]
Active la fonction serveur TFTP. Celui-ci est de manière délibérée limité aux fonctions
nécessaires au démarrage par le réseau ("net-boot") d'un client. Seul un accès en lecture est
possible; les extensions tsize et blksize sont supportées (tsize est seulement supporté en mode
octet). Sans argument optionel, le service TFTP est fourni sur les mêmes interfaces que le service
DHCP. Si une liste d'interfaces est fournie, cela définit les interfaces sur lesquelles le service
TFTP sera activé.
--tftp-root=<répertoire>[,<interface>]
Les fichiers à fournir dans les transferts TFTP seront cherchés en prenant le répertoire fourni
comme racine. Lorsque cela est fourni, les chemins TFTP incluant ".." sont rejetés, afin d'éviter
que les clients ne puissent sortir de la racine spécifiée. Les chemins absolus (commençant par
"/") sont autorisés, mais ils doivent être à la racine TFTP fournie. Si l'option interface est
spécifiée, le répertoire n'est utilisé que pour les requêtes TFTP reçues sur cette interface.
--tftp-unique-root
Ajouter l'adresse IP du client TFTP en temps qu'élément de chemin, à la suite de la racine tftp
(adresse sous forme de 4 chiffres séparés par des points). Uniquement valable si une racine TFTP
est spécifiée et si le répertoire correspond existe. Ainsi, si la valeur pour tftp-root est
"/tftp" et que le client d'adresse IP 1.2.3.4 requiert le fichier "monfichier", alors le chemin
effective résultant sera "/tftp/1.2.3.4/monfichier" si /tftp/1.2.3.4 existe, ou "/tftp/monfichier"
dans le cas contraire.
--tftp-secure
Active le mode TFTP sécurisé : sans cela, tout fichier lisible par Dnsmasq est disponible via TFTP
(les règles de contrôle d'accès unix habituelles s'appliquent). Lorsque l'option --tftp-secure est
spécifiée, seuls les fichiers possédés par l'utilisateur sous lequel tourne le processus Dnsmasq
sont accessibles. Si Dnsmasq est exécuté en temps que super-utilisateur ("root"), des règles
différentes s'appliquent : --tftp-secure n'a aucun effet, mais seuls les fichiers ayant un droit
de lecture pour tout le monde sont accessibles. Il n'est pas recommandé d'exécuter Dnsmasq sous
l'utilisateur "root" lorsque le service TFTP est activé, et il est formellement déconseillé de le
faire sans fournir l'option --tftp-root. Sans cela, en effet, l'accès de tous les fichiers du
serveur pour lequel le droit de lecture pour tout le monde est positionné ("world-readable")
devient possible par n'importe quel hôte sur le réseau.
--tftp-lowercase
Converti les noms de fichiers des requêtes TFTP en minuscules. Cela est utile pour les requêtes
effectuées depuis les machines Windows, dont les systèmes de fichiers sont insensibles à la casse
et pour lesquels la détermination de la casse est parfois un peu aléatoire. A noter que le serveur
tftp de dnsmasq converti systématiquement les "\" en "/" dans les noms de fichiers.
--tftp-max=<connexions>
Définit le nombre maximum de connexions TFTP simultanées autorisées. La valeur par défaut est de
50. Lorsqu'un grand nombre de connexions TFTP est spécifié, il se peut que la limite de nombre de
descripteurs de fichiers par processus soit atteinte. Dnsmasq nécessite quelques descripteurs de
fichiers, ainsi qu'un descripteur de fichier pour chaque connexion TFTP simultanée et pour chacun
des fichiers devant être fournis. De fait, servir le même fichier à n clients ne nécessitera
qu'environ n + 10 descripteurs de fichiers, alors que fournir des fichiers tous différents à n
clients utilisera environ (2*n) + 10 descripteurs. Si elle est donnée, l'option --tftp-port-range
peut affecter le nombre maximum de connexions concurrentes.
--tftp-no-blocksize
Empêche le serveur TFTP de négocier l'option "blocksize" (taille de bloc) avec les clients.
Certains clients buggés spécifient cette option mais se comportent ensuite de manière incorrecte
si celle-ci est accordée.
--tftp-port-range=<début>,<fin>
Un serveur TFTP écoute sur le port prédéfini 69 ("well-known port") pour l'initiation de la
connexion, mais utilise également un port dynamiquement alloué pour chaque connexion. Normalement,
ces ports sont alloués par le système d'exploitation, mais cette option permet de spécifier une
gamme de ports à utiliser pour les transferts TFTP. Cela peut-être utile si TFTP doit traverser un
dispositif garde-barrière ("firewall"). La valeur de début pour la plage de port ne peut-être
inférieure à 1025 sauf si dnsmasq tourne en temps que super-utilisateur ("root"). Le nombre de
connexions TFTP concurrentes est limitée par la taille de la gamme de ports ainsi spécifiée.
--tftp-port-range=<début>,<fin>
Un serveur TFTP écoute sur un numéro de port bien connu (69) pour l'initiation de la connexion, et
alloue dynamiquement un port pour chaque connexion. Ces numéros de ports sont en principe alloués
par le système d'exploitation, mais cette option permet de spécifier une gamme de ports à utiliser
pour les transferts TFTP. Cela peut-être utile lorsque ceux-ci doivent traverser un dispositif
garde-barrière ("firewall"). Le début de la plage ne peut-être inférieur à 1024 à moins que
Dnsmasq ne fonctionne en temps que super-utilisateur ("root"). Le nombre maximal de connexions
TFTP concurrentes est limitée par la taille de la plage de ports ainsi définie.
-C, --conf-file=<fichier>
Spécifie un fichier de configuration différent. L'option "conf-file" est également autorisée dans
des fichiers de configuration, ce qui permet l'inclusion de multiples fichiers de configuration.
L'utilisation de "-" comme nom de fichier permet la lecture par dnsmasq de sa configuration sur
l'entrée standard stdin.
-7, --conf-dir=<répertoire>[,<extension de fichier>...]
Lis tous les fichiers du répertoire spécifié et les traite comme des fichiers de configuration. Si
des extensions sont données, tout fichier finissant par ces extensions seront ignorés. Tout
fichier dont le nom se termine en ~ ou commence par ., ainsi que ceux commençant ou se terminant
par # seront systématiquement ignorés. Cette option peut être donnée en ligne de commande ou dans
un fichier de configuration.
FICHIER DE CONFIGURATION
Au démarrage, Dnsmasq lis /etc/dnsmasq.conf, si ce fichier existe. (Sur FreeBSD, ce fichier est
/usr/local/etc/dnsmasq.conf ) (voir cependant les options -C et -7 ). Le format de ce fichier consiste en
une option par ligne, exactement comme les options longues détaillées dans la section OPTIONS, mais sans
être précédées par "--". Les lignes commençant par # sont des commentaires et sont ignorées. Pour les
options qui ne peuvent-être spécifiées qu'une seule fois, celle du fichier de configuration prends le pas
sur celle fournie en ligne de commande. Il est possible d'utiliser des guillemets afin d'éviter que les
",",":","." et "#" ne soit interprêtés, et il est possible d'utiliser les séquences d'échappement
suivantes : \\ \" \t \e \b \r et \n. Elles correspondent respectivement à la barre oblique descendante
("anti-slash"), guillemets doubles, tabulation, caractère d'échappement ("escape"), suppression
("backspace"), retour ("return") et nouvelle ligne ("newline").
NOTES
A la réception d'un signal SIGHUP, Dnsmasq vide son cache et recharge les fichiers /etc/hosts et
/etc/ethers ainsi que tout autre fichier spécifié par les options --dhcp-hostsfile , --dhcp-optsfile ou
--addn-hosts. Le script de changement de bail est appellé pour chaque bail DHCP existant. Si l'option
--no-poll est positionnée, alors le fichier /etc/resolv.conf est également rechargé. SIGHUP ne provoque
PAS de rechargement du fichier de configuration.
A la réception d'un signal SIGUSR1, Dnsmasq écrit des statistiques dans les traces système. Les
informations fournies sont : la taille du cache, le nombre de noms ayant été supprimés du cache avant
expiration afin de faire de la place pour les nouveaux noms, ainsi que le nombre total d'entrées ayant
été insérées dans le cache. Pour chaque serveur amont, il fournit le nomnbre de requêtes transmises ainsi
que le nombre de requêtes ayant résulté par une erreur. Lorsque Dnsmasq a été lancé via --no-daemon ou
lorsque la traçabilité maximale a été activée ( -q ), la totalité du contenu du cache est de surcroît
fournie.
A la réception d'un signal SIGUSR2 et lorsqu'il enregistre directement ses traces dans un fichier (voir
--log-facility ), alors Dnsmasq ferme et re-rouvre le fichier de traces. Il faut noter que pendant cette
opération Dnsmasq ne s'exécute pas en temps que "root". Lorsqu'il créé un fichier de traces pour la
première fois, Dnsmasq change le propriétaire du fichier afin de le faire appartenir à l'utilisateur non
"root" sous lequel Dnsmasq s'exécute. Le logiciel de rotation de fichiers de trace logrotate doit être
configuré pour créer un nouveau fichier avec un propriétaire identique au fichier existant avant
d'envoyer le signal SIGUSR2. Si une requête DNS TCP est en cours, l'ancien fichier de traces reste ouvert
dans le processus fils qui traite la requête TCP et il peut y être écrit. Il existe cependant une limite
de 150 secondes après laquelle tous les processus traitant des requêtes TCP expirent : pour cette raison,
il est préférable de ne pas configurer la compression des fichiers de traces venant juste de faire
l'objet d'une rotation. Dans le cas de l'utilisation du logiciel logrotate, les options requises sont
create et delaycompress.
Dnsmasq est un logiciel de transmission de requêtes DNS : il n'est pas capable d'effectuer une résolution
de nom récursive en partant des serveurs DNS racine, mais transmet de telles requêtes à un serveur DNS
amont capable de telles recherches récursives, ce qui est typiquement le cas d'un serveur DNS de FAI. Par
défaut, Dnsmasq lis /etc/resolv.conf pour découvrir les adresses IP des serveurs DNS amonts à utiliser,
puisque cette information est en général stockée à cet endroit. A moins que l'option --no-poll ne soit
utilisée, Dnsmasq vérifie la date de modification du fichier /etc/resolv.conf (ou l'équivalent si
--resolv-file est utilisé), et le relis lorsqu'il change. Cela permet de définir les serveurs DNS amont
de manière dynamique lorsque PPP ou DHCP sont utilisés, puisque ces protocoles fournissent cette
information. L'absence du fichier /etc/resolv.conf ne conduit pas à une erreur, puisqu'il peut très bien
ne pas être créé avant qu'une connexion PPP ne soit établie. Dans ce cas, Dnsmasq vérifie régulièrement
pour voir si un fichier /etc/resolv.conf est créé. Dnsmasq peut être configuré pour lire plus d'un
fichier resolv.conf. Cela est utile sur un ordinateur portable où PPP et DHCP peuvent-être utilisés :
Dnsmasq peut alors être configuré pour lire à la fois /etc/ppp/resolv.conf et /etc/dhcpc/resolv.conf et
utilisera le contenu du fichier ayant changé en dernier, ce qui permet de passer automatiquement de
serveurs DNS à d'autres.
Les serveurs amonts peuvent aussi être spécifiés sur la ligne de commande ou dans un fichier de
configuration. Ces spécifications de serveurs peuvent éventuellement se voir adjoindre d'un nom de
domaine qui précise à Dnsmasq quel serveur utiliser pour trouver les noms d'un domaine donné.
Pour configurer Dnsmasq afin qu'il se comporte comme un cache pour la machine sur laquelle il tourne,
mettre "nameserver 127.0.0.1" dans le fichier /etc/resolv.conf afin de forcer les processus locaux à
envoyer leurs requêtes à Dnsmasq. Ensuite, spécifier les serveurs DNS amont soit en les fournissant
directement à Dnsmasq via l'option --server ou alors en mettant leurs adresses dans un autre fichier, par
exemple /etc/resolv.dnsmasq et en lançant Dnsmasq avec l'option -r /etc/resolv.dnsmasq. Cette deuxième
technique permet la mise-à-jour dynamique des addresses de serveurs DNS amont par le biais de PPP ou
DHCP.
Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le serveur DNS amont, ainsi
"macompagnie.com 1.2.3.4" dans /etc/hosts assure que les requêtes pour "macompagnie.com" retourneront
toujours 1.2.3.4, même si une requête au serveur DNS amont retournerait une adresse différente. Il y a
une exception à ceci : si le DNS amont contient un CNAME qui pointe vers un nom présent dans /etc/hosts,
alors la recherche du CNAME via Dnsmasq fournira l'adresse DNS amont. Pour contourner cela, il suffit de
mettre l'entrée correspondant au CNAME dans /etc/hosts.
le système de label fonctionne comme suit : pour chaque requête DHCP, dnsmasq associe un ensemble de
labels obtenus à partir des lignes de la configuration incluant set:<label>, y compris un pour la plage
d'adresse ( dhcp-range ) utilisée pour allouer l'adresse, un pour chaque entrée dhcp-host associée
(auquel est rajouté le mot-clef "known" si une entrée dhcp-host coïncide).
Le label "bootp" est associé aux requêtes BOOTP, un label dont le nom est le nom de l'interface sur
laquelle la requête est arrivée.
Pour les lignes de configuration comportant des éléments tag:<label>, seules seront valides celles pour
lesquels tous les labels correspondants seront présents. C'est typiquement le cas des lignes dhcp-
options. Un dhcp-option possédant des labels sera utilisé de préférence à un dhcp-option sans label, pour
peu que _tous_ les labels positionnés correspondent à l'ensemble de labels décrit plus haut. Le préfixe
'!' sur un label est un indicateur de négation, ainsi --dhcp=option=tag:!purple,3,1.2.3.4 n'envoie
l'option que lorsque le label "purple" n'est pas dans la liste de labels définis pour l'hôte considéré.
(dans le cas de l'utilisation dans une ligne de commande au lieu d'un fichier de configuration, ne pas
oublier d'échapper le caractère !, qui est un méta-caractère d'interpréteur de commande shell).
Lors de la sélection d'une option, une étiquette spécifiée par dhcp-range passe après les autres
étiquettes, ce qui permet de facilement remplacer des option génériques pour des hôtes spécifiques, ainsi
: dhcp-range=set:interface1,...... dhcp-host=set:monhote,..... dhcp-option=tag:interface1,option:nis-
domain,"domaine1" dhcp-option=tag:monhote,option:nis-domain,"domaine2" va positionner l'option NIS-domain
à domaine1 pour les hôtes dans la plage d'adresse, sauf pour monhote pour lequel cette valeur sera
domaine2.
Veuillez noter que pour dhcp-range , les éléments tag:<label> et set:<label> sont tous les deux autorisés
pour sélectionner la plage à utiliser selon, par exemple, le dhcp-host, et pour affecter l'option
envoyée, sur la base de la plage sélectionnée.
Ce système a évolué d'un système plus ancien et aux possibilités plus limitées, et pour des raisons de
compatibilité "net:" peut être utilisé à la place de "tag:" et "set:" peut-être omis (à l'exception de
dhcp-host, où "net:" peut-être utilisé à la place de "set:"). Pour les mêmes raisons, '#' peut-être
utilisé à la place de '!' pour indiquer la négation.
Le serveur DHCP intégré dans Dnsmasq fonctionne également en temps que serveur BOOTP, pour peu que
l'adresse MAC et l'adresse IP des clients soient fournies, que ce soit par le biais de l'option dhcp-host
ou dans le fichier /etc/ethers , et que l'option dhcp-range soit présente afin d'activer le serveur DHCP
pour un réseau donné (L'option --bootp-dynamic supprime la nécessité des associations statiques). Le
paramètre "filename" (nom de fichier) de la requête BOOTP est utilisé comme label, ainsi que le label
"bootp", permettant un certain contrôle sur les options retournées aux différentes classes d'hôtes.
CONFIGURATION EN TEMPS QUE SERVEUR FAISANT AUTORITÉ
Configurer dnsmasq pour agir en temps que serveur DNS faisant autorité est compliqué par le fait que cela
implique la configuration de serveurs DNS externes pour mettre en place la délégation. Seront présentés
ci-dessous trois scénarios de complexité croissante. Le pré-requis pour chacun de ces scénarios est
l'existence d'une adresse IP globalement disponible, d'un enregistrement de type A ou AAAA pointant vers
cette adresse, ainsi que d'un serveur DNS externe capable d'effectuer la délégation de la zone en
question. Pour la première partie de ces explications, nous allons appeller serveur.exemple.com
l'enregistrement A (ou AAAA) de l'adresse globalement accessible, et notre.zone.com la zone pour laquelle
dnsmasq fait autorité.
La configuration la plus simple consiste en deux lignes de configuration, sous la forme :
auth-server=serveur.exemple.com,eth0
auth-zone=notre.zone.com,1.2.3.0/24
ainsi que deux enregistrements dans le DNS externe :
serveur.exemple.com A 192.0.43.10
notre.zone.com NS serveur.exemple.com
eth0 est l'interface réseau externe sur laquelle dnsmasq écoute, dont l'adresse IP (globalement
accessible) est 192.0.43.10.
A noter que l'adresse IP externe peut parfaitement être dynamique (par exemple attribuée par un FAI via
DHCP ou PPP). Dans ce cas, l'enregistrement de type A doit être lié à cet enregistrement dynamique par
l'une ou l'autre des techniques habituelles de système DNS dynamique.
Un exemple plus complexe mais en pratique plus utile correspond au cas où l'adresse IP globalement
accessible se trouve dans la zone pour laquelle dnsmasq fait autorité, le plus souvent à la racine. Dans
ce cas nous avons :
auth-server=notre.zone.com,eth0
auth-zone=notre.zone.com,1.2.3.0/24
notre.zone.com A 1.2.3.4
notre.zone.com NS our.zone.com
L'enregistrement A pour notre.zone.com est dorénavant un enregistrement "colle" qui résoud le problème de
poule et d'oeuf consistant à trouver l'adresse IP du serveur de nom pour notre.zone.com lorsque
l'enregistrement se trouve dans la zone en question. Il s'agit du seul rôle de cet enregistrement : comme
dnsmasq fait désormais autorité pour notre.zone.com, il doit également fournir cet enregistrement. Si
l'adresse externe est statique, cela peut-être réalisé par le biais d'une entrée dans /etc/hosts ou via
un --host-record.
auth-server=notre.zone.com,eth0
host-record=notre.zone.com,1.2.3.4
auth-zone=notre.zone.com,1.2.3.0/24
Si l'adresse externe est dynamique, l'adresse associée à notre.zone.com doit être dérivée de l'interface
correspondante. Cela peut être fait en utilisant interface-name Sous la forme :
auth-server=notre.zone.com,eth0
interface-name=notre.zone.com,eth0
auth-zone=notre.zone.com,1.2.3.0/24
La configuration finale rajoute à cette base un serveur DNS secondaire. Il s'agit d'un autre serveur DNS
qui apprend les données DNS de la zone en effectuant un transfert de zone, et qui joue le rôle de serveur
de secours au cas où le serveur principal devenait inaccessible. La configuration de ce serveur
secondaire sort du cadre de cette page de manuel. Les éléments de configuration à rajouter dans dnsmasq
sont les simples :
auth-sec-servers=secondaire.monfai.com
et
notre.zone.com NS secondaire.monfai.com
L'addition d'une option auth-sec-servers active les transferts de zone dans dnsmasq, ce qui permet au
serveur secondaire de venir collecter les données DNS. Si vous souhaitez restreindre l'accès à ces
données à des hôtes spécifiques, vous pouvez le faire via :
auth-peer=<adresse IP du serveur secondaire>
Dnsmasq joue le rôle de serveur faisant autorité pour les domaines in-addr.arpa et ip6.arpa associés aux
sous-réseaux définis dans la déclaration de zone auth-zone, ce qui fait que les requêtes DNS inversées
(de l'adresse vers le nom) peuvent-simplement être configurées avec un enregistrement NS adéquat. Par
exemple, comme nous définissons plus haut les adresses 1.2.3.0/24 :
3.2.1.in-addr.arpa NS notre.zone.com
Veuillez noter que pour l'instant, les zones inverses ne sont pas disponibles dans les transferts de
zone, donc il est inutile de configurer de serveur secondaire pour la résolution inverse.
Lorsque dnsmasq est configuré en temps que serveur faisant autorité, les données suivantes sont utilisées
pour peupler la zone considérée :
--mx-host, --srv-host, --dns-rr, --txt-record, --naptr-record , pour autant que les noms des
enregistrements se trouvent dans la zone en question.
--cname pour peu que le nom soit dans le domaine. Si la cible du CNAME n'est pas pleinement qualifiée,
alors elle est qualifiée avec le nom de la zone pour laquelle le serveur fait autorité.
Les adresses IPv4 et IPv6 extraites de /etc/hosts (et --addn-hosts ) ainsi que les options --host-record
fournissant des adresses situées dans l'un des sous-réseaux spécifiés dans --auth-zone.
Adresses spécifiées par --interface-name. Dans ce cas, l'adresse n'est pas limitée à l'un des sous-
réseaux donné dans --auth-zone.
Les adresses de baux DHCP, si l'adresse est située dans l'un des sous-réseaux de --auth-zone OU dans une
plage DHCP construite. Dans le mode par défaut, où le bail DHCP a un nom non qualifié, et éventuellement
pour un nom qualifié construit via --domain , alors le nom dans la zone faisant autorité est construit à
partir du nom non qualifié et du nom de domaine de la zone. Cela peut on non être égal celui fourni par
--domain. Si l'option --dhcp-fqdn est fournie, alors les noms pleinemenet qualifiés associés aux baux
DHCP sont utilisés, dès lors qu'ils correspondent au nom de domaine associé à la zone.
CODES DE SORTIE
0 - Dnsmasq s'est correctement lancé en tâche de fond, ou alors s'est correctement terminé si le
lancement en tâche de fond n'a pas été activé.
1 - Un problème de configuration a été détecté.
2 - Un problème est survenu avec un accès réseau (adresse déjà utilisée, tentative d'utiliser un port
privilégié sans les permissions nécessaires).
3 - Un problème est survenu avec une opération sur un système de fichier (fichier ou répertoire manquant,
permissions).
4 - Impossibilité d'allouer de la mémoire.
5 - Autre problème.
11 ou plus - un code de retour différent de 0 a été reçu lors de l'appel au processus "init" du script
des bails. Le code de retour de Dnsmasq correspond au code de retour du script plus 10.
LIMITES
Les valeurs par défaut pour les limites de ressources de Dnsmasq sont en général conservatrices et
appropriées pour des utilisations embarquées sur des machines de type routeur ayant des processeurs lents
et une mémoire limitée. Sur du matériel plus performant, il est possible d'augmenter les limites et de
gérer plus de clients. Les remarques suivantes s'appliquent à Dnsmasq version 2.37 et ultérieur : les
versions précédentes ne montaient pas en charge aussi bien.
Dnsmasq est capable de gérer le DNS et DHCP pour au moins un millier de clients. Pour cela, la durée des
bail ne doit pas être très courte (moins d'une heure). La valeur de --dns-forward-max peut-être augmentée
: commencer par la rendre égale au nombre de clients et l'augmenter si le DNS semble lent. Noter que la
performance du DNS dépends également de la performance des serveurs amonts. La taille du cache DNS peut-
être augmentée : la limite en dur est de 10000 entrées et la valeur par défaut (150) est très basse.
Envoyer un signal SIGUSR1 à Dnsmasq le fait émettre des informations utiles pour paramétrer la taille de
cache. Voir la section NOTES pour plus de détails.
Le serveur TFTP intégré est capable de plusieurs transferts de fichiers simultanés : La limite absolue
est liée au nombre maximal de descripteurs de fichiers alloué à un processus et à la capacité de l'appel
système select() à gérer un grand nombre de HANDLE de fichier. Si la limite est fixée trop haut par le
biais de --tftp-max elle sera réduite et la limite actuelle sera enregistrée au démarrage. Il faut noter
que plus de transferts sont possible lorsque le même fichier est transmis au lieu d'avoir un fichier
différent pour chaque transfert.
Il est possible d'utiliser Dnsmasq pour bloquer la publicité sur la toile en associant des serveurs de
publicité bien connus à l'adresse 127.0.0.1 ou 0.0.0.0 par le biais du fichier /etc/hosts ou d'un fichier
d'hôte additionnel. Cette liste peut-être très longue, Dnsmasq ayant été testé avec succès avec un
million de noms. Cette taille de fichier nécessite un processeur à 1 Ghz et environ 60 Mo de RAM.
INTERNATIONALISATION
Dnsmasq peut être compilé pour supporter l'internationalisation. Pour cela, les cibles "all-i18n" et
"install-i18n" doivent être données à make, en lieu et place des cibles standards "all" et "install".
Lorsque compilé avec le support de l'internationalisation, dnsmasq supporte les noms de domaines
internationalisés ("internationalised domain names" ou IDN), et les messages de traces ("logs") sont
écrits dans la langue locale. Les noms de domaines dans /etc/hosts, /etc/ethers et /etc/dnsmasq.conf
contenant des caractères non-ASCII seront transformés selon la représentation punycode interne aux DNS.
Veuillez noter que dnsmasq détermine la langue pour les messages ainsi que le jeu de caractères
susceptible d'être utilisé dans les fichiers de configuration à partir de la variable d'environnement
LANG. Ceci devrait être configuré à la valeur par défaut du système par les scripts démarrant dnsmasq.
Lorsque les fichiers de configuration sont édités, veuillez faire attention à le faire en utilisant la
valeur de locale par défaut du système et non une valeur spécifique à l'utilisateur, puisque dnsmasq n'a
aucun moyen de déterminer directement la valeur de jeu de caractère utilisé, et assume de ce fait qu'il
s'agit de la valeur par défaut du système.
FICHIERS
/etc/dnsmasq.conf
/usr/local/etc/dnsmasq.conf /var/run/dnsmasq/resolv.conf /etc/ppp/resolv.conf /etc/dhcpc/resolv.conf
/etc/resolv.conf
/etc/hosts
/etc/ethers
/var/lib/misc/dnsmasq.leases
/var/db/dnsmasq.leases
/var/run/dnsmasq.pid
VOIR AUSSI
hosts(5), resolver(5)
AUTEUR
Cette page de manuel a été écrite par Simon Kelley <simon@thekelleys.org.uk>.
La traduction dans un français bancal a été commise par Gildas Le Nadan <3ntr0p13@gmail.com> : Toute
révision/correction permettant de corriger orthographe ou grammaire mais surtout les éventuelles fautes
de sens sera la bienvenue!
DNSMASQ(8)