blob: dc2fdc024478bb53cbbfbfa9b1bf1ee884454a84 [file] [log] [blame]
Simon Kelley824af852008-02-12 20:43:05 +00001.TH DNSMASQ 8
2.SH NAME
3Dnsmasq \- Un serveur DHCP et cache DNS poids-plume.
4.SH SYNOPSIS
5.B dnsmasq
6.I [OPTION]...
7.SH "DESCRIPTION"
8.BR dnsmasq
Simon Kelley834f36f2013-04-17 13:52:49 +01009est un serveur à faible empreinte mémoire faisant DNS, TFTP, PXE, annonces de
10routeurs et DHCP. Il offre à la fois les services DNS et DHCP pour un réseau
11local (LAN).
Simon Kelley824af852008-02-12 20:43:05 +000012.PP
Olivier Gayotf361b392018-07-09 18:27:01 +020013Dnsmasq accepte les requêtes DNS et y répond soit en utilisant un petit cache
Simon Kelley824af852008-02-12 20:43:05 +000014local, soit en effectuant une requête à un serveur DNS récursif externe (par
15exemple celui de votre fournisseur d'accès internet). Il charge le contenu du
16fichier /etc/hosts afin que les noms locaux n'apparaissant pas dans les DNS
17globaux soient tout de même résolus, et assure également la résolution de nom
Simon Kelley834f36f2013-04-17 13:52:49 +010018pour les hôtes présents dans le service DHCP. Il peut aussi agir en temps que
19serveur DNS faisant autorité pour un ou plusieurs domaines, permettant à des
20noms locaux d'apparaitre dans le DNS global.
Simon Kelley824af852008-02-12 20:43:05 +000021.PP
Olivier Gayotf361b392018-07-09 18:27:01 +020022Le serveur DHCP de Dnsmasq supporte les définitions d'adresses statiques et les
Simon Kelley834f36f2013-04-17 13:52:49 +010023réseaux multiples. Il fournit par défaut un jeu raisonnable de paramètres DHCP,
24et peut être configuré pour fournir n'importe quelle option DHCP.
Simon Kelley824af852008-02-12 20:43:05 +000025Il inclut un serveur TFTP sécurisé en lecture seule permettant le démarrage via
Simon Kelley834f36f2013-04-17 13:52:49 +010026le réseau/PXE de clients DHCP et supporte également le protocole BOOTP. Le
27support PXE est complet, et comprend un mode proxy permettant de fournir des
Olivier Gayotf361b392018-07-09 18:27:01 +020028informations PXE aux clients alors que l'allocation d'adresse via DHCP est
29effectuée par un autre serveur.
Simon Kelley824af852008-02-12 20:43:05 +000030.PP
Olivier Gayotf361b392018-07-09 18:27:01 +020031Le serveur DHCPv6 de dnsmasq possède non seulement les mêmes fonctionnalités
Simon Kelley834f36f2013-04-17 13:52:49 +010032que le serveur DHCPv4, mais aussi le support des annonces de routeurs ainsi
Olivier Gayotf361b392018-07-09 18:27:01 +020033qu'une fonctionnalité permettant l'addition de ressources AAAA pour des
Simon Kelley834f36f2013-04-17 13:52:49 +010034clients utilisant DHCPv4 et la configuration IPv6 sans état (stateless
35autoconfiguration).
36Il inclut le support d'allocations d'adresses (à la fois en DHCPv6 et en
37annonces de routeurs - RA) pour des sous-réseaux dynamiquement délégués via
38une délégation de préfixe DHCPv6.
39.PP
Olivier Gayotf361b392018-07-09 18:27:01 +020040Dnsmasq est développé pour de petits systèmes embarqués. Il tend à avoir
Simon Kelley834f36f2013-04-17 13:52:49 +010041l'empreinte mémoire la plus faible possible pour les fonctions supportées,
42et permet d'exclure les fonctions inutiles du binaire compilé.
Simon Kelley824af852008-02-12 20:43:05 +000043.SH OPTIONS
44Notes : Il est possible d'utiliser des options sans leur donner de paramètre.
45Dans ce cas, la fonction correspondante sera désactivée. Par exemple
46.B --pid-file=
47(sans paramètre après le =) désactive l'écriture du fichier PID.
48Sur BSD, à moins que le logiciel ne soit compilé avec la bibliothèque GNU
Olivier Gayotf361b392018-07-09 18:27:01 +020049getopt, la forme longue des options ne fonctionne pas en ligne de commande; elle
Simon Kelley824af852008-02-12 20:43:05 +000050est toujours supportée dans le fichier de configuration.
51.TP
Simon Kelley7622fc02009-06-04 20:32:05 +010052.B --test
Olivier Gayotf361b392018-07-09 18:27:01 +020053Vérifie la syntaxe du ou des fichiers de configuration. Se termine avec le
Simon Kelley7622fc02009-06-04 20:32:05 +010054code de retour 0 si tout est OK, ou un code différent de 0 dans le cas
55contraire. Ne démarre pas Dnsmasq.
56.TP
Olivier Gayotab5ceaf2018-07-09 18:27:03 +020057.B \-w, --help
58Affiche toutes les options de ligne de commande.
59.B --help dhcp
60affiche les options de configuration connues pour DHCPv4, et
61.B --help dhcp6
62affiche les options de configuration connues pour DHCPv6.
63.TP
Simon Kelley824af852008-02-12 20:43:05 +000064.B \-h, --no-hosts
Olivier Gayotf361b392018-07-09 18:27:01 +020065Ne pas charger les noms d'hôtes du fichier /etc/hosts.
Simon Kelley824af852008-02-12 20:43:05 +000066.TP
67.B \-H, --addn-hosts=<fichier>
68Fichiers d'hôtes additionnels. Lire le fichier spécifié en plus de /etc/hosts.
69Si
70.B -h
71est spécifié, lire uniquement le fichier spécifié. Cette option peut être
Simon Kelley7622fc02009-06-04 20:32:05 +010072répétée afin d'ajouter d'autres fichiers. Si un répertoire est donné, lis les
73fichiers contenus dans ce répertoire.
Simon Kelley824af852008-02-12 20:43:05 +000074.TP
75.B \-E, --expand-hosts
76Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le
77nom) contenus dans le fichier /etc/hosts, de la même façon que pour le service
Olivier Gayotf361b392018-07-09 18:27:01 +020078DHCP. Notez que cela ne s'applique pas aux noms de domaine dans les CNAME, les
Simon Kelley1f15b812009-10-13 17:49:32 +010079enregistrements PTR, TXT, etc...
Simon Kelley824af852008-02-12 20:43:05 +000080.TP
81.B \-T, --local-ttl=<durée>
82Lorsque Dnsmasq répond avec une information provenant du fichier /etc/hosts ou
83avec un bail DHCP, il donne un temps de vie (time-to-live) positionné à zéro,
84afin d'indiquer à la machine faisant la requête que celle-ci ne doit pas être
85mise dans un cache. Ceci est le comportement correct dans presque toutes les
86situations.
87Cette option permet de spécifier la valeur de time-to-live à retourner (en
88secondes). Cela permet de réduire la charge sur le serveur, mais les clients
89risquent d'utiliser des données périmées dans certains cas.
90.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +010091.B --neg-ttl=<durée>
92Les réponses négatives provenant des serveurs amonts contiennent normalement
93une information de durée de vie (time-to-live) dans les enregistrements SOA,
94information dont dnsmasq se sert pour mettre la réponse en cache. Si la réponse
95du serveur amont omet cette information, dnsmasq ne cache pas la réponse. Cette
Olivier Gayotf361b392018-07-09 18:27:01 +020096option permet de donner une valeur de durée de vie par défaut (en secondes) que
Simon Kelley1a6bca82008-07-11 11:11:42 +010097dnsmasq utilise pour mettre les réponses négatives dans son cache, même en
98l'absence d'enregistrement SOA.
99.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100100.B --max-ttl=<durée>
101Définie la valeur de TTL maximum qui sera fournie aux clients. La valeur maximum
Simon Kelley834f36f2013-04-17 13:52:49 +0100102de TTL spécifiée sera fournie aux clients en remplacement de la vraie valeur de
103TTL si cette dernière est supérieure. La valeur réelle de TTL est cependant
104conservée dans le cache afin d'éviter de saturer les serveurs DNS en amont.
105.TP
106.B --max-cache-ttl=<durée>
107Définie la valeur de TTL maximum pour les entrées dans le cache
108.TP
109.B --auth-ttl=<durée>
110Définie la valeur de TTL retournée pour les réponses du serveur faisant
111autorité.
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100112.TP
Simon Kelley824af852008-02-12 20:43:05 +0000113.B \-k, --keep-in-foreground
114Ne pas aller en tâche de fond au lancement, mais en dehors de cela, fonctionner
115normalement. Ce mode est prévu pour les cas où Dnsmasq est lancé par daemontools
116ou launchd.
117.TP
118.B \-d, --no-daemon
119Mode debug (déverminage) : ne pas aller en tâche de fond, ne pas écrire de
120fichier pid, ne pas changer d'identifiant utilisateur, générer un état complet
121du cache lors de la réception d'un signal SIGUSR1, envoyer les logs sur la
122sortie standard d'erreur ("stderr") de même que dans le syslog, ne pas créer de
Simon Kelley834f36f2013-04-17 13:52:49 +0100123processus fils pour traiter les requêtes TCP. A noter que cette option est à
124user pour du déverminage seulement : pour empêcher dnsmasq se fonctionner en
125mode démon en production, utiliser
126.B -k.
Simon Kelley824af852008-02-12 20:43:05 +0000127.TP
128.B \-q, --log-queries
129Enregistrer les résultats des requêtes DNS traitées par Dnsmasq dans un fichier
130de traces ("logs"). Active la génération d'un état complet du cache lors de la
131réception d'un signal SIGUSR1.
132.TP
133.B \-8, --log-facility=<facility>
134Définit la "facility" dans laquelle Dnsmasq enverra ses entrées syslog, par
135défaut DAEMON ou LOCAL0 si le mode debug est activé. Si la "facility" contient
136au moins un caractère "/", alors Dnsmasq considère qu'il s'agit d'un fichier et
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100137enverra les logs dans le fichier correspondant à la place du syslog. Si la
138"facility" est '-', alors dnsmasq envoie les logs sur la sortie d'erreur
139standard stderr. (Les erreurs lors de la lecture de la configuration vont
140toujours vers le syslog, mais tous les messages postérieurs à un démarrage
141réussi seront exclusivement envoyés vers le fichier de logs).
142Lorsque Dnsmasq est configuré pour envoyer
Simon Kelley824af852008-02-12 20:43:05 +0000143ses traces vers un fichier, la réception d'un signal SIGUSR2 entraine la
144fermeture et réouverture du fichier. Cela permet la rotation de fichiers de
145traces sans nécessiter l'arrêt de Dnsmasq.
146.TP
147.B --log-async[=<lignes>]
148Permet l'envoi de traces de manière asynchrone, et de manière optionnelle, le
149nombre de lignes devant être mises dans la file d'attente par Dnsmasq lorsque
150l'écriture vers le syslog est lente.
151Dnsmasq peut envoyer ses logs de manière asynchrone : cela lui permet de
152continuer à fonctionner sans être bloqué par le syslog, et permet à syslog
153d'utiliser Dnsmasq pour les résolutions DNS sans risque d'interblocage.
154Si la file d'attente devient pleine, Dnsmasq loggera le dépassement de file et
155le nombre de messages perdus. La longueur par défaut de la file d'attente est de
1565 et une valeur saine sera comprise entre 5 et 25, avec une limite maximum
157imposée de 100.
158.TP
159.B \-x, --pid-file=<chemin>
160Spécifie un fichier dans lequel stocker le numéro de processus (pid). La valeur
161par défaut est /var/run/dnsmasq.pid.
162.TP
163.B \-u, --user=<nom d'utilisateur>
164Spécifie l'identité (nom d'utilisateur) prise par Dnsmasq après le démarrage.
165Dnsmasq doit normalement être démarré en temps que root ("super-utilisateur"),
166mais abandonne ses privilèges après le démarrage en changeant d'identité.
167Normalement cet utilisateur est l'utilisateur nobody ("personne"), mais il est
168possible d'en définir un autre par le biais de ce paramètre.
169.TP
170.B \-g, --group=<nom de groupe>
171Spécifie le groupe sous lequel Dnsmasq s'exécute. Par défaut, il s'agit du
172groupe "dip", afin de faciliter l'accès au fichier /etc/ppp/resolv.conf qui
173n'est en général pas en lecture par tout le monde.
174.TP
175.B \-v, --version
176Imprime le numéro de version.
177.TP
178.B \-p, --port=<port>
Simon Kelley1a6bca82008-07-11 11:11:42 +0100179Ecoute sur le port numéro <port> au lieu du port DNS standard (53). Paramétrer
180cette valeur à zéro désactive complètement la fonction DNS pour ne laisser actif
181que le DHCP ou le TFTP.
Simon Kelley824af852008-02-12 20:43:05 +0000182.TP
183.B \-P, --edns-packet-max=<taille>
184Spécifie la taille maximum de paquet UDP EDNS.0 supporté par le relai DNS. Le
Simon Kelley316e2732010-01-22 20:16:09 +0000185défaut est de 4096, qui est la valeur recommandée dans la RFC5625.
Simon Kelley824af852008-02-12 20:43:05 +0000186.TP
187.B \-Q, --query-port=<numéro de port>
188Envoie et écoute les requêtes DNS sortantes depuis le port UDP spécifié par
Simon Kelley1a6bca82008-07-11 11:11:42 +0100189<numéro de port>, et non sur un port aléatoire. NOTE : Cette option rends
190dnsmasq moins sûr contre les attaques par usurpation DNS ("DNS spoofing"), mais
191cela peut permettre d'utiliser moins de ressources et d'être plus rapide. Donner
192une valeur de zéro à cette option restaure le comportement par défaut présent dans
193les versions de dnsmasq inférieures à 2.43 qui consiste à n'allouer qu'un seul port
194alloué par le système d'exploitation.
195.TP
196.B --min-port=<port>
197Ne pas utiliser de port dont le numéro est inférieur à la valeur donnée en paramètre
198pour les requêtes DNS sortantes. Dnsmasq choisis un port source aléatoire pour les
199requêtes sortantes : lorsque cette option est fournie, les ports utilisés seront toujours
200au dessus de la valeur spécifiée. Utile pour des systèmes derrière des dispositifs
201garde-barrières ("firewalls").
Simon Kelley824af852008-02-12 20:43:05 +0000202.TP
203.B \-i, --interface=<nom d'interface>
Olivier Gayotf361b392018-07-09 18:27:01 +0200204N'écouter que sur l'interface réseau spécifiée. Dnsmasq ajoute automatiquement
Simon Kelley824af852008-02-12 20:43:05 +0000205l'interface locale ("loopback") à la liste des interfaces lorsque l'option
206.B --interface
207est utilisée.
208Si aucune option
209.B --interface
210ou
211.B --listen-address
212n'est donnée, Dnsmasq écoutera sur toutes les interfaces disponibles sauf
213celle(s) spécifiée(s) par l'option
214.B --except-interface.
Olivier Gayotf361b392018-07-09 18:27:01 +0200215Les alias d'interfaces IP (par exemple "eth1:0") ne peuvent être utilisés ni avec
Simon Kelley824af852008-02-12 20:43:05 +0000216.B --interface
217ni
218.B \--except-interface.
219Utiliser l'option
220.B --listen-address
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200221à la place. Un simple joker, consistant en un '*' final, peut être utilisé dans
Simon Kelley834f36f2013-04-17 13:52:49 +0100222les options
223.B \--interface
224et
225.B \--except-interface
Simon Kelley824af852008-02-12 20:43:05 +0000226.TP
227.B \-I, --except-interface=<interface name>
228Ne pas écouter sur l'interface spécifiée. Notez que l'ordre dans lesquelles les
229options
230.B \--listen-address
231,
232.B --interface
233et
234.B --except-interface
235sont fournies n'importe pas, et que l'option
236.B --except-interface
237l'emporte toujours sur les autres.
Simon Kelley834f36f2013-04-17 13:52:49 +0100238.TP
Olivier Gayotf361b392018-07-09 18:27:01 +0200239.B --auth-server=<domaine>,<interface>|<adresse IP>
Simon Kelley834f36f2013-04-17 13:52:49 +0100240Active le mode DNS faisant autorité pour les requêtes arrivant sur cette
241interface ou sur cette adresse. Noter que l'interface ou l'adresse n'ont
Olivier Gayotf361b392018-07-09 18:27:01 +0200242pas besoin d'être mentionnées ni dans
Simon Kelley834f36f2013-04-17 13:52:49 +0100243.B --interface
244ni dans
245.B --listen-address
246En effet,
247.B --auth-server
248va passer outre ceux-ci et fournir un service DNS différent sur l'interface
249spécifiée. La valeur de <domaine> est l'enregistrement de type "colle"
250("glue record"). Il doit correspondre dans le service DNS global avec un
251enregistrement de type A et/ou AAAA pointant sur l'adresse sur laquelle dnsmasq
252écoute pour le mode DNS faisant autorité.
Simon Kelley824af852008-02-12 20:43:05 +0000253.TP
254.B \-2, --no-dhcp-interface=<nom d'interface>
255Ne pas fournir de service DHCP sur l'interface spécifiée, mais fournir tout de
256même le service DNS.
257.TP
258.B \-a, --listen-address=<adresse IP>
259Ecouter sur la ou les adresse(s) IP spécifiée(s). Les options
260.B \--interface
261et
262.B \--listen-address
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200263peuvent être spécifiées simultanément, auquel cas un jeu d'interfaces et
Simon Kelley824af852008-02-12 20:43:05 +0000264d'adresses seront utilisées. Notez que si
265aucune option
266.B \--interface
267n'est donnée alors qu'une option
268.B \--listen-address
269l'est, Dnsmasq n'écoutera pas automatiquement sur l'interface locale
270("loopback"). Pour activer l'écoute sur l'interface locale, il est alors
271nécessaire de fournir explicitement son adresse IP, 127.0.0.1 via l'option
272.B \--listen-address.
273.TP
274.B \-z, --bind-interfaces
Olivier Gayotf361b392018-07-09 18:27:01 +0200275Sur les systèmes qui le supportent, Dnsmasq s'associe avec l'interface joker
Simon Kelley824af852008-02-12 20:43:05 +0000276("wildcard"), même lorsqu'il ne doit écouter que sur certaines interfaces. Par
277la suite, il rejette les requêtes auxquelles il ne doit pas répondre. Cette
278situation présente l'avantage de fonctionner même lorsque les interfaces vont
279et viennent ou changent d'adresses. L'option
280.B --bind-interfaces
281force Dnsmasq à ne réellement s'associer qu'avec les interfaces sur lesquelles
282il doit écouter. L'un des seuls cas où cette option est utile est celui où un
283autre serveur de nom (ou une autre instance de Dnsmasq) tourne sur la même
284machine. Utiliser cette option permet également d'avoir plusieurs instances de
285Dnsmasq fournissant un service DHCP sur la même machine.
286.TP
Simon Kelleyc4c04882012-08-06 20:09:15 +0100287.B --bind-dynamic
288Autorise un mode réseau intermédiaire entre
289.B --bind-interfaces
290et le mode par défaut. Dnsmasq s'associe à une seule interface, ce qui permet
291plusieurs instances de dnsmasq, mais si une interface ou adresse apparaissent,
292il se mettra automatiquement à écouter sur celles-ci (les règles de contrôle
293d'accès s'appliquent).
294De fait, les interfaces créées dynamiquement fonctionnent de la même façon que
295dans le comportement par défaut. Ce fonctionnement nécessite des APIs réseau
296non standard et n'est disponible que sous Linux. Sur les autres plateformes,
297le fonctionnement est celui du mode --bind-interfaces.
298.TP
Simon Kelley824af852008-02-12 20:43:05 +0000299.B \-y, --localise-queries
300Retourne des réponses aux requêtes DNS dépendantes de l'interface sur laquelle
301la requête a été reçue, à partir du fichier /etc/hosts. Si un nom dans
302/etc/hosts a plus d'une adresse associée avec lui, et qu'une des adresses au
303moins est dans le même sous-réseau que l'interface sur laquelle la requête a été
304reçue, alors ne retourne que la(les) adresse(s) du sous-réseau considéré. Cela
305permet d'avoir dans /etc/hosts un serveur avec de multiples adresses, une pour
306chacune de ses interfaces, et de fournir aux hôtes l'adresse correcte (basée sur
307le réseau auquel ils sont attachés). Cette possibilité est actuellement limitée
308à IPv4.
309.TP
310.B \-b, --bogus-priv
311Fausse résolution inverse pour les réseaux privés. Toutes les requêtes DNS
Olivier Gayotf361b392018-07-09 18:27:01 +0200312inverses pour des adresses IP privées (192.168.x.x, etc...) qui ne sont pas
Simon Kelley824af852008-02-12 20:43:05 +0000313trouvées dans /etc/hosts ou dans le fichier de baux DHCP se voient retournées
314une réponse "pas de tel domaine" ("no such domain") au lieu d'être transmises
315aux serveurs de nom amont ("upstream server").
316.TP
Simon Kelley73a08a22009-02-05 20:28:08 +0000317.B \-V, --alias=[<ancienne IP>]|[<IP de début>-<IP de fin>],<nouvelle IP>[,<masque>]
Simon Kelley824af852008-02-12 20:43:05 +0000318Modifie les adresses IPv4 retournées par les serveurs de nom amont;
319<ancienne IP> est remplacée par <nouvelle IP>. Si le <masque> optionnel est
320fourni, alors toute adresse correspondant à l'adresse <ancienne IP>/<masque>
321sera réécrite. Ainsi par exemple
322.B --alias=1.2.3.0,6.7.8.0,255.255.255.0
323modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67.
324Cette fonctionnalité correspond à ce que les routeurs Cisco PIX appellent
Simon Kelley73a08a22009-02-05 20:28:08 +0000325"bidouillage DNS" ("DNS doctoring"). Si l'ancienne IP est donnée sous la forme
326d'une gamme d'adresses, alors seules les adresses dans cette gamme seront
Olivier Gayotf361b392018-07-09 18:27:01 +0200327réécrites, et non le sous-réseau dans son ensemble. Ainsi,
Simon Kelley73a08a22009-02-05 20:28:08 +0000328.B --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
329fait correspondre 192.168.0.10->192.168.0.40 à 10.0.0.10->10.0.0.40
Simon Kelley824af852008-02-12 20:43:05 +0000330.TP
331.B \-B, --bogus-nxdomain=<adresse IP>
332Transforme les réponses contenant l'adresse IP fournie en réponses "pas de tel
333domaine" ("no such domain"). Ceci a pour but de neutraliser la modification
334sournoise mise en place par Verisign en septembre 2003, lorsqu'ils ont commencé
335à retourner l'adresse d'un serveur web publicitaire en réponse aux requêtes pour
336les noms de domaines non enregistrés, au lieu de la réponse correcte "NXDOMAIN".
337Cette option demande à Dnsmasq de retourner la réponse correcte lorsqu'il
338constate ce comportement. L'adresse retournée par Verisign en septembre 2003
339est 64.94.110.11.
340.TP
341.B \-f, --filterwin2k
342Les dernières versions de windows font des requêtes DNS périodiques auxquelles
343non seulement les serveurs DNS publics ne peuvent donner de réponse, mais qui,
344de surcroît, peuvent poser des problèmes en déclenchant des connexions
345intempestives pour des liens réseaux avec des connexions "à la demande". Fournir
346cette option active le filtrage des requêtes de ce type. Les requêtes bloquées
347sont les requêtes pour les entrées de type SOA ou SRV, ainsi que les requêtes de
348type ANY avec des noms possédant des caractères sous-lignés (requêtes pour des
349serveurs LDAP).
350.TP
351.B \-r, --resolv-file=<fichier>
352Lis les adresses des serveurs de nom amont dans le fichier de nom <fichier>,
353au lieu du fichier /etc/resolv.conf. Pour le format de ce fichier, voir dans le
354manuel pour
355.BR resolv.conf (5)
356les entrées correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire
357plusieurs fichiers de type resolv.conf, le premier fichier spécifié remplace le
358fichier par défaut, le contenu des suivants est rajouté dans la liste des
359fichiers à consulter. Seul le fichier ayant la dernière date de modification
360sera chargé en mémoire.
361.TP
362.B \-R, --no-resolv
363Ne pas lire le contenu du fichier /etc/resolv.conf. N'obtenir l'adresse des
364serveurs de nom amont que depuis la ligne de commande ou le fichier de
365configuration de Dnsmasq.
366.TP
Simon Kelley834f36f2013-04-17 13:52:49 +0100367.B \-1, --enable-dbus[=<nom de service>]
Simon Kelley824af852008-02-12 20:43:05 +0000368Autoriser la mise à jour de la configuration de Dnsmasq par le biais d'appel de
369méthodes DBus. Il est possible par ce biais de mettre à jour l'adresse de
370serveurs DNS amont (et les domaines correspondants) et de vider le cache. Cette
Simon Kelley834f36f2013-04-17 13:52:49 +0100371option nécessite que Dnsmasq soit compilé avec le support DBus. Si un nom de
372service est fourni, dnsmasq fourni un service à ce nom, plutôt qu'avec la
373valeur par défaut :
374.B uk.org.thekelleys.dnsmasq
Simon Kelley824af852008-02-12 20:43:05 +0000375.TP
376.B \-o, --strict-order
377Par défaut, Dnsmasq envoie les requêtes à n'importe lequel des serveurs amonts
378dont il a connaissance tout en essayant de favoriser les serveurs qu'il sait
379fonctionner. Cette option force Dnsmasq à essayer d'interroger, pour chaque
380requête, les serveurs DNS dans leur ordre d'apparition dans le fichier
381/etc/resolv.conf.
382.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +0100383.B --all-servers
384Par défaut, lorsque dnsmasq a plus d'un serveur amont disponible, il n'envoie
385les requêtes qu'à un seul serveur. Spécifier cette option force dnsmasq à
386effectuer ses requêtes à tous les serveurs disponibles. Le résultat renvoyé
387au client sera celui fournit par le premier serveur ayant répondu.
388.TP
389.B --stop-dns-rebind
Olivier Gayotf361b392018-07-09 18:27:01 +0200390Rejette (et enregistre dans le journal d'activité) les adresses dans la gamme
Simon Kelley1a6bca82008-07-11 11:11:42 +0100391d'adresses IP privée (au sens RFC1918) qui pourraient être renvoyées par les
392serveurs amonts suite à une résolution de nom. Cela bloque les attaques cherchant
393à détourner de leur usage les logiciels de navigation web ('browser') en s'en
394servant pour découvrir les machines situées sur le réseau local.
395.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100396.B --rebind-localhost-ok
397Exclue 127.0.0/8 des vérifications de réassociation DNS. Cette gamme d'adresses
398est retournée par les serveurs Realtime Blackhole (RBL, utilisés dans la
Olivier Gayotf361b392018-07-09 18:27:01 +0200399lutte contre le spam), la bloquer peut entraîner des dysfonctionnements de ces
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100400services.
401.TP
402.B --rebind-domain-ok=[<domaine>]|[[/<domaine>/[<domaine>/]
403Ne pas détecter ni bloquer les actions de type dns-rebind pour ces domaines.
404Cette option peut prendre comme valeur soit un nom de domaine soit plusieurs
Olivier Gayotf361b392018-07-09 18:27:01 +0200405noms de domaine entourés par des '/', selon une syntaxe similaire à l'option
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100406--server, c-à-d :
407.B --rebind-domain-ok=/domaine1/domaine2/domaine3/
408.TP
Simon Kelley824af852008-02-12 20:43:05 +0000409.B \-n, --no-poll
410Ne pas vérifier régulièrement si le fichier /etc/resolv.conf a été modifié.
411.TP
412.B --clear-on-reload
Gildas1f776a42013-10-25 10:05:22 +0100413Lorsque le fichier /etc/resolv.conf est relu, ou si les serveurs amonts sont
414configurés via DBus, vider le cache DNS.
Simon Kelley824af852008-02-12 20:43:05 +0000415Cela est utile si les nouveaux serveurs sont susceptibles d'avoir des données
416différentes de celles stockées dans le cache.
417.TP
418.B \-D, --domain-needed
Simon Kelley7de060b2011-08-26 17:24:52 +0100419Indique à Dnsmasq de ne jamais transmettre en amont de requêtes A ou AAAA pour
420des noms simples, c'est à dire ne comprenant ni points ni nom de domaine. Si un
421nom n'est pas dans /etc/hosts ou dans la liste des baux DHCP, alors une réponse
422de type "non trouvé" est renvoyée.
Simon Kelley824af852008-02-12 20:43:05 +0000423.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +0100424.B \-S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse IP>[#<port>][@<Adresse IP source>|<interface>[#<port>]]]
Simon Kelley824af852008-02-12 20:43:05 +0000425Spécifie directement l'adresse IP d'un serveur de nom amont. Cette option ne
426supprime pas la lecture du fichier /etc/resolv.conf : utiliser pour cela
427l'option
428.B -R .
429Si un ou plusieurs nom(s) de domaine(s) optionnel(s) sont fournis, ce
430serveur sera uniquement utilisé uniquement pour ce(s) domaine(s), et toute
431requête concernant ce(s) domaine(s) sera adressée uniquement à ce serveur.
432Cette option est destinée aux serveurs de nom privés : si vous avez un serveur
433de nom sur votre réseau ayant pour adresse IP 192.168.1.1 et effectuant la
434résolution des noms de la forme xxx.internal.thekelleys.org.uk, alors
435.B -S /internal.thekelleys.org.uk/192.168.1.1
436enverra toutes les requêtes pour les machines internes vers ce serveur de nom,
437alors que toutes les autres requêtes seront adressées aux serveurs indiqués dans
438le fichier /etc/resolv.conf. Une spécification de nom de domaine vide,
439.B //
440possède le sens particulier de "pour les noms non qualifiés uniquement",
441c'est-à-dire les noms ne possédant pas de points. Un port non standard peut être
442rajouté à la suite des adresses IP en utilisant le caractère #. Plus d'une
443option
444.B -S
445est autorisée, en répétant les domaines et adresses IP comme requis.
446
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100447Le domaine le plus spécifique l'emporte sur le domaine le moins spécifique,
448ainsi :
449.B --server=/google.com/1.2.3.4
450.B --server=/www.google.com/2.3.4.5
451enverra les requêtes pour *.google.com à 1.2.3.4, à l'exception des requêtes
452*www.google.com, qui seront envoyées à 2.3.4.5.
453
454L'adresse spéciale '#' signifie "utiliser les serveurs standards", ainsi
455.B --server=/google.com/1.2.3.4
456.B --server=/www.google.com/#
457enverra les requêtes pour *.google.com à 1.2.3.4, à l'exception des requêtes
458pour *www.google.com qui seront envoyées comme d'habitude (c-à-d aux serveurs
459définis par défaut).
460
Simon Kelley824af852008-02-12 20:43:05 +0000461Il est également permis de donner une option
462.B -S
463avec un nom de domaine mais sans
464adresse IP; Cela informe Dnsmasq que le domaine est local et qu'il doit répondre
465aux requêtes le concernant depuis les entrées contenues dans le fichier
466/etc/hosts ou les baux DHCP, et ne doit en aucun cas transmettre les requêtes
467aux serveurs amonts.
468.B local
469est synonyme de
470.B server
471("serveur") afin de rendre plus claire l'utilisation de cette option pour cet
472usage particulier.
473
Simon Kelley7de060b2011-08-26 17:24:52 +0100474Les adresses IPv6 peuvent inclure un identifiant de zone sous la forme
475%interface tel que par exemple
476fe80::202:a412:4512:7bbf%eth0.
477
Simon Kelley1a6bca82008-07-11 11:11:42 +0100478La chaîne de caractères optionnelle suivant le caractère @ permet de définir
479la source que Dnsmasq doit utiliser pour les réponses à ce
480serveur de nom. Il doit s'agir d'une des adresses IP appartenant à la machine sur
Simon Kelley824af852008-02-12 20:43:05 +0000481laquelle tourne Dnsmasq ou sinon la ligne sera ignorée et une erreur sera
Simon Kelley1a6bca82008-07-11 11:11:42 +0100482consignée dans le journal des événements, ou alors d'un nom d'interface. Si un nom
483d'interface est donné, alors les requêtes vers le serveur de nom seront envoyées
Olivier Gayotf361b392018-07-09 18:27:01 +0200484depuis cette interface; si une adresse IP est donnée, alors l'adresse source de
Simon Kelley1a6bca82008-07-11 11:11:42 +0100485la requête sera l'adresse en question. L'option query-port est ignorée pour tous
486les serveurs ayant une adresse source spécifiée, mais il est possible de la donner
487directement dans la spécification de l'adresse source. Forcer les requêtes à être
488émises depuis une interface spécifique n'est pas possible sur toutes les plateformes
489supportées par dnsmasq.
Simon Kelley824af852008-02-12 20:43:05 +0000490.TP
491.B \-A, --address=/<domaine>/[domaine/]<adresse IP>
492Spécifie une adresse IP à retourner pour toute requête pour les domaines fournis
493en option. Les requêtes pour ce(s) domaine(s) ne sont jamais transmises aux
494serveurs amonts et reçoivent comme réponse l'adresse IP spécifiée qui peut être
495une adresse IPv4 ou IPv6. Pour donner à la fois une adresse IPv4 et une adresse
496IPv6 pour un domaine, utiliser plusieurs options
497.B -A.
498Il faut noter que le
499contenu du fichier /etc/hosts et de celui des baux DHCP supplante ceci pour des
500noms individuels. Une utilisation courante de cette option est de rediriger la
501totalité du domaine doubleclick.net vers un serveur web local afin d'éviter les
502bannières publicitaires. La spécification de domaine fonctionne de la même façon
503que
504.B --server,
505avec la caractéristique supplémentaire que
506.B /#/
507coïncide avec tout domaine. Ainsi,
508.B --address=/#/1.2.3.4
509retournera 1.2.3.4 pour toute requête
510n'ayant de réponse ni dans /etc/hosts, ni dans les baux DHCP, et n'étant pas
511transmise à un serveur spécifique par le biais d'une directive
512.B --server.
513.TP
Simon Kelley834f36f2013-04-17 13:52:49 +0100514.B --ipset=/<domaine>/[domaine/]<ipset>[,<ipset>]
515Obtient les adresses IP des domaines spécifiés et les place dans les groupes
516d'IP netfilter (ipset) indiqués. Domaines et sous-domaines sont résolus de la
517même façon que pour --address. Ces groupes d'IP doivent déjà exister. Voir
518ipset(8) pour plus de détails.
519.TP
Olivier Gayotf361b392018-07-09 18:27:01 +0200520.B \-m, --mx-host=<nom de l'hôte>[[,<nom du MX>],<préférence>]
Simon Kelley824af852008-02-12 20:43:05 +0000521Spécifie un enregistrement de type MX pour <nom de l'hôte> retournant le nom
522donné dans <nom du MX> (s'il est présent), ou sinon le nom spécifié dans
523l'option
524.B --mx-target
525si elle est présente. Sinon retourne le nom de la machine
526sur laquelle Dnsmasq tourne. La valeur par défaut (spécifiée dans l'option
527.B --mx-target
528) est utile dans un réseau local pour rediriger les courriers
529électroniques vers un serveur central. La valeur de préférence est optionnelle
530et vaut par défaut 1 si elle n'est pas spécifiée. Plus d'une entrée MX peut être
531fournie pour un hôte donné.
532.TP
533.B \-t, --mx-target=<nom d'hôte>
534Spécifie la réponse par défaut fournie par Dnsmasq pour les requêtes sur des
535enregistrements de type MX. Voir
536.B --mx-host.
537Si
538.B --mx-target
539est donné mais pas de
540.B --mx-host,
541alors Dnsmasq retourne comme réponse un enregistrement MX
542contenant le nom d'hôte spécifié dans l'option
543.B --mx-target
544pour toute requête
545concernant le MX de la machine sur laquelle tourne Dnsmasq.
546.TP
547.B \-e, --selfmx
548Définit, pour toutes les machines locales, un MX correspondant à l'hôte
549considéré. Les machines locales sont celles définies dans le fichier /etc/hosts
550ou dans un bail DHCP.
551.TP
552.B \-L, --localmx
553Définit, pour toutes les machines locales, un enregistrement MX pointant sur
554l'hôte spécifié par mx-target (ou la machine sur laquelle Dnsmasq tourne). Les
555machines locales sont celles définies dans le fichier /etc/hosts ou dans un bail
556DHCP.
557.TP
558.B \-W --srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorité>[,<poids>]]]]
559Spécifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de
560détails. Si le champs <domaine> n'est pas fourni, prends par défaut la valeur
561fournie dans l'option
562.B --domain.
563La valeur par défaut pour le domaine est vide et le port par défaut est 1, alors
564que les poids et priorités par défaut sont 0. Attention lorsque vous transposez
565des valeurs issues d'une configuration BIND : les ports, poids et priorités sont
566dans un ordre différents. Pour un service/domaine donné, plus d'un
567enregistrement SRV est autorisé et tous les enregistrements qui coïncident sont
568retournés dans la réponse.
569.TP
Simon Kelleye46164e2012-04-16 16:39:38 +0100570.B --host-record=<nom>[,<nom>....][<adresse IPv4>],[<adresse IPv6>]
571Ajoute des enregistrements A, AAAA et PTR dans le DNS. Ceci permet d'ajouter
572un ou plusieurs noms dans le DNS et de les associer à des enregistrements IPv4
573(A) ou IPv6 (AAAA). Un nom peut apparaître dans plus d'une entrée
574.B host-record
575et de fait être associé à plus d'une adresse. Seule la première entrée créée
576l'enregistrement PTR associée au nom. Ceci correspond à la même règle que celle
577utilisée lors de la lecture du fichier hosts.
578Les options
579.B host-record
580sont considérées lues avant le fichier hosts, ainsi un nom apparaissant dans
581une option host-record et dans le fichier hosts n'aura pas d'enregistrement
582PTR associé à l'entrée dans le fichier hosts. A l'inverse du fichier hosts, les
583noms ne sont pas étendus, même lorsque l'option
584.B expand-hosts
585est activée. Les noms longs et les noms courts peuvent apparaitre dans la même
586entrée
587.B host-record,
588c-à-d
589.B --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100
590.TP
Simon Kelley824af852008-02-12 20:43:05 +0000591.B \-Y, --txt-record=<nom>[[,<texte>],<texte>]
592Définit un enregistrement DNS de type TXT. La valeur de l'enregistrement TXT est
593un ensemble de chaînes de caractères, donc un nombre variable de chaînes de
Simon Kelley28866e92011-02-14 20:19:14 +0000594caractères peuvent être spécifiées, séparées par des virgules. Utilisez des
595guillemets pour mettre une virgule dans une chaîne de caractères. Notez que la
596longueur maximale pour une chaîne est de 255 caractères, les chaînes plus
597longues étant découpées en morceaux de 255 caractères de longs.
Simon Kelley824af852008-02-12 20:43:05 +0000598.TP
599.B --ptr-record=<nom>[,<cible>]
600Définit un enregistrement DNS de type PTR.
601.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +0100602.B --naptr-record=<nom>,<ordre>,<préférence>,<drapeaux>,<service>,<expr. régulière>[,<remplacement>]
603Retourne un enregistrement de type NAPTR, tel que spécifié dans le RFC3403.
604.TP
Simon Kelley73a08a22009-02-05 20:28:08 +0000605.B --cname=<cname>,<cible>
606Retourne un enregistrement de type CNAME qui indique que <cname> est en
Gildas1f776a42013-10-25 10:05:22 +0100607réalité <cible>. Il existe des contraintes importantes sur la valeur
608cible; il doit s'agir d'un nom DNS qui est connu de dnsmasq via /etc/hosts
609(ou un fichier hôtes additionnel), via DHCP, via interface--name ou par un autre
Simon Kelleyc4c04882012-08-06 20:09:15 +0100610.B --cname.
611Si une cible ne satisfait pas ces critères, le CNAME est ignoré. Le CNAME
612doit être unique, mais il est autorisé d'avoir plus d'un CNAME pointant
613vers la même cible.
614.TP
615.B --dns-rr=<nom>,<numéro-RR>,[<données hexadécimales>]
616Retourne un enregistrement DNS arbitraire. Le numéro correspond au type
617d'enregistrement (qui est toujours de la classe C_IN). La valeur de
618l'enregistrement est donnée dans les données hexadécimales, qui peuvent
619être de la forme 01:23:45, 01 23 45,+012345 ou n'importe quelle combinaison.
Simon Kelley73a08a22009-02-05 20:28:08 +0000620.TP
Simon Kelley824af852008-02-12 20:43:05 +0000621.B --interface-name=<nom>,<interface>
Olivier Gayotf361b392018-07-09 18:27:01 +0200622Définit un enregistrement DNS associant le nom avec l'adresse primaire sur
Simon Kelley824af852008-02-12 20:43:05 +0000623l'interface donnée en argument. Cette option spécifie un enregistrement de type
624A pour le nom donné en argument de la même façon que s'il était défini par une
625ligne de /etc/hosts, sauf que l'adresse n'est pas constante mais dépendante de
626l'interface définie. Si l'interface est inactive, non existante ou non
627configurée, une réponse vide est fournie. Un enregistrement inverse (PTR) est
628également créé par cette option, associant l'adresse de l'interface avec le nom.
629Plus d'un nom peut être associé à une interface donnée en répétant cette option
630plusieurs fois; dans ce cas, l'enregistrement inverse pointe vers le nom fourni
631dans la première instance de cette option.
632.TP
Gildas1f776a42013-10-25 10:05:22 +0100633.B --synth-domain=<domaine>,<plage d'adresses>[,<préfixe>]
634Créé des enregistrements A/AAAA ou PTR pour une plage d'adresses. Les
635enregistrements utilisent l'adresse ainsi que les points (ou les deux points
636dans le cas d'IPv6) remplacés par des tirets.
637
638Un exemple devrait rendre cela plus clair :
639La configuration
640.B --synth-domain=thekelleys.org.uk,192.168.0.0/24,internal-
641permet de retourner internal-192-168-0-56.thekelleys.org.uk lors d'une requête
642sur l'adresse 192.168.0.56 et vice-versa pour la requête inverse. La même
643logique s'applique pour IPv6, avec la particularité suivante : les adresses
644IPv6 pouvant commencer par '::', mais les noms DNS ne pouvant pas commencer
645par '-', si aucun préfixe n'est donné, un zéro est ajouté en début de nom.
646Ainsi, ::1 devient 0--1.
647
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200648La plage d'adresses peut être de la forme
Gildas1f776a42013-10-25 10:05:22 +0100649<adresse IP>,<adresse IP> ou <adresse IP>/<masque réseau>
650.TP
Simon Kelley28866e92011-02-14 20:19:14 +0000651.B --add-mac
652Ajoute l'adresse MAC du requêteur aux requêtes DNS transmises aux serveurs
653amonts. Cela peut être utilisé dans un but de filtrage DNS par les serveurs
654amonts. L'adresse MAC peut uniquement être ajoutée si le requêteur est sur le
655même sous-réseau que le serveur dnsmasq. Veuillez noter que le mécanisme
656utilisé pour effectuer cela (une option EDNS0) n'est pas encore standardisée,
Olivier Gayotf361b392018-07-09 18:27:01 +0200657aussi cette fonctionnalité doit être considérée comme expérimentale. Notez
Simon Kelley28866e92011-02-14 20:19:14 +0000658également qu'exposer les adresses MAC de la sorte peut avoir des implications
Gildas1f776a42013-10-25 10:05:22 +0100659en termes de sécurité et de vie privée. L'avertissement donné pour --add-subnet
660s'applique également ici.
661.TP
662.B --add-subnet[[=<longueur de préfixe IPv4>],<longueur de préfixe IPv6>]
663Rajoute l'adresse de sous-réseau du requêteur aux requêtes DNS transmises
664aux serveurs amonts. La quantité d'adresses transmises dépend du paramètre
665longueur du préfixe : 32 (ou 128 dans le cas d'IPv6) transmet la totalité
666de l'adresse, 0 n'en transmet aucun mais marque néanmoins la requête ce qui
667fait qu'aucun serveur amont ne rajoutera d'adresse client. La valeur par
668défaut est zéro et pour IPv4 et pour IPv6. A noter que les serveurs amonts
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200669peuvent être configurés pour retourner des valeurs différentes en fonction
Gildas1f776a42013-10-25 10:05:22 +0100670de cette information mais que le cache de dnsmasq n'en tient pas compte.
Olivier Gayotf361b392018-07-09 18:27:01 +0200671Si une instance de dnsmasq est configurée de telle manière que des valeurs
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200672différentes pourraient être rencontrées, alors le cache devrait être désactivé.
Simon Kelley28866e92011-02-14 20:19:14 +0000673.TP
Simon Kelley824af852008-02-12 20:43:05 +0000674.B \-c, --cache-size=<taille>
675Définit la taille du cache de Dnsmasq. La valeur par défaut est de 150 noms.
Geert Stappers7dcca6c2018-06-02 18:54:04 +0100676Définir une valeur de zéro désactive le cache. Remarque: la taille importante
677du cache a un impact sur les performances.
Simon Kelley824af852008-02-12 20:43:05 +0000678.TP
679.B \-N, --no-negcache
680Désactive le "cache négatif". Le "cache négatif" permet à Dnsmasq de se souvenir
681des réponses de type "no such domain" fournies par les serveurs DNS en amont et
Olivier Gayotf361b392018-07-09 18:27:01 +0200682de fournir les réponses sans avoir à retransmettre les requêtes aux serveurs
Simon Kelley824af852008-02-12 20:43:05 +0000683amont.
684.TP
685.B \-0, --dns-forward-max=<nombre de requêtes>
686Définit le nombre maximum de requêtes DNS simultanées. La valeur par défaut est
687150, ce qui devrait être suffisant dans la majorité des configurations. La seule
688situation identifiée dans laquelle cette valeur nécessite d'être augmentée est
689lorsqu'un serveur web a la résolution de nom activée pour l'enregistrement de
690son journal des requêtes, ce qui peut générer un nombre important de requêtes
691simultanées.
692.TP
Simon Kelley28866e92011-02-14 20:19:14 +0000693.B --proxy-dnssec
Olivier Gayotf361b392018-07-09 18:27:01 +0200694Un résolveur sur une machine cliente peut effectuer la validation DNSSEC de
Simon Kelley28866e92011-02-14 20:19:14 +0000695deux façons : il peut effectuer lui-même les opérations de chiffrements sur
696la réponse reçue, ou il peut laisser le serveur récursif amont faire la
697validation et positionner un drapeau dans la réponse au cas où celle-ci est
698correcte. Dnsmasq n'est pas un validateur DNSSEC, aussi il ne peut effectuer
699la validation comme un serveur de nom récursif, cependant il peut retransmettre
700les résultats de validation de ses serveurs amonts. Cette option permet
Olivier Gayotf361b392018-07-09 18:27:01 +0200701l'activation de cette fonctionnalité. Vous ne devriez utiliser cela que si vous
Simon Kelley28866e92011-02-14 20:19:14 +0000702faites confiance aux serveurs amonts
703.I ainsi que le réseau entre vous et eux.
Olivier Gayotf361b392018-07-09 18:27:01 +0200704Si vous utilisez le premier mode DNSSEC, la validation par le résolveur des
Simon Kelley28866e92011-02-14 20:19:14 +0000705clients, cette option n'est pas requise. Dnsmasq retourne toujours toutes les
706données nécessaires par un client pour effectuer la validation lui-même.
707.TP
Gildas1f776a42013-10-25 10:05:22 +0100708
709.B --auth-zone=<domaine>[,<sous-réseau>[/<longueur de préfixe>][,<sous-réseau>[/<longueur de préfixe>].....]]
Simon Kelley834f36f2013-04-17 13:52:49 +0100710Définie une zone DNS pour laquelle dnsmasq agit en temps que serveur faisant
711autorité. Les enregistrements DNS définis localement et correspondant à ce
Gildas1f776a42013-10-25 10:05:22 +0100712domaine seront fournis. Les enregistrements A et AAAA doivent se situer dans
713l'un des sous-réseaux définis, ou dans un réseau correspondant à une plage DHCP
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200714(ce comportement peut être désactivé par
Gildas1f776a42013-10-25 10:05:22 +0100715.B constructor-noauth:
716). Le ou les sous-réseaux sont également utilisé(s) pour définir les domaines
Lutz Preßler1d7e0a32014-04-07 22:06:23 +0100717in-addr.arpa et ip6.arpa servant à l'interrogation DNS inverse. Si la longueur
Gildas1f776a42013-10-25 10:05:22 +0100718de préfixe n'est pas spécifiée, elle sera par défaut de 24 pour IPv4 et 64 pour
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200719IPv6. Dans le cas d'IPv4, la longueur du masque de réseau devrait être de 8, 16
Gildas1f776a42013-10-25 10:05:22 +0100720ou 24, sauf si en cas de mise en place d'une délégation de la zone in-addr.arpa
721conforme au RFC 2317.
Simon Kelley834f36f2013-04-17 13:52:49 +0100722.TP
723.B --auth-soa=<numéro de série>[,<mainteneur de zone (hostmaster)>[,<rafraichissement>[,<nombre de réessais>[,<expiration>]]]]
724Spécifie les champs de l'enregistrement de type SOA (Start Of Authority)
725associé à une zone pour laquelle le serveur fait autorité. A noter que cela est
726optionnel, les valeurs par défaut devant convenir à la majorité des cas.
727.TP
728.B --auth-sec-servers=<domaine>[,<domaine>[,<domaine>...]]
729Spécifie un ou plusieurs serveur de nom secondaires pour une zone pour
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200730laquelle dnsmasq fait autorité. Ces serveurs doivent être configurés pour
Simon Kelley834f36f2013-04-17 13:52:49 +0100731récupérer auprès de dnsmasq les informations liées à la zone au travers d'un
732transfert de zone, et répondre aux requêtes pour toutes les zones pour
733lesquelles dnsmasq fait autorité.
734.TP
735.B --auth-peer=<adresse IP>[,<adresse IP>[,<adresse IP>...]]
736Spécifie la ou les adresses de serveurs secondaires autorisés à initier des
737requêtes de transfert de zone (AXFR) pour les zones pour lesquelles
738dnsmasq fait autorité. Si cette option n'est pas fournie, les requêtes AXFR
739seront acceptées pour tous les serveurs secondaires.
740.TP
Simon Kelley7de060b2011-08-26 17:24:52 +0100741.B --conntrack
742Lis le marquage de suivi de connexion Linux associé aux requêtes DNS entrantes
743et positionne la même marque au trafic amont utilisé pour répondre à ces
Olivier Gayotf361b392018-07-09 18:27:01 +0200744requêtes. Cela permet au trafic généré par Dnsmasq d'être associé aux requêtes
Simon Kelley7de060b2011-08-26 17:24:52 +0100745l'ayant déclenché, ce qui est pratique pour la gestion de la bande passante
746(accounting) et le filtrage (firewall). Dnsmasq doit pour cela être compilé
747avec le support conntrack, le noyau doit également inclure conntrack et être
748configuré pour cela. Cette option ne peut pas être combinée avec
Simon Kelleye46164e2012-04-16 16:39:38 +0100749--query-port.
Simon Kelley7de060b2011-08-26 17:24:52 +0100750.TP
Simon Kelleyc4c04882012-08-06 20:09:15 +0100751.B \-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>]
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000752.TP
Olivier Gayotf361b392018-07-09 18:27:01 +0200753.B \-F, --dhcp-range=[tag:<label>[,tag:<label>],][set:<label>],]<adresse IPv6 de début>[,<adresse IPv6 de fin>|constructor:<interface>][,<mode>][,<longueur de préfixe>][,<durée de bail>]
Simon Kelley834f36f2013-04-17 13:52:49 +0100754
Simon Kelley824af852008-02-12 20:43:05 +0000755Active le serveur DHCP. Les adresses seront données dans la plage comprise entre
756<adresse de début> et <adresse de fin> et à partir des adresses définies
757statiquement dans l'option
758.B dhcp-host.
759Si une durée de bail est donnée, alors les baux seront donnés pour cette
760durée. La durée de bail est donnée en secondes, en minutes (exemple : 45m),
761en heures (exemple : 1h) ou être la chaine de caractère "infinite" pour une
Simon Kelley7622fc02009-06-04 20:32:05 +0100762durée indéterminée. Si aucune valeur n'est donnée, une durée de bail par défaut
763de une heure est appliquée. La valeur minimum pour un bail DHCP est de 2
764minutes.
Simon Kelleye46164e2012-04-16 16:39:38 +0100765
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200766Pour les plages IPv6, la durée de bail peut être égale au mot-clef "deprecated"
Simon Kelleye46164e2012-04-16 16:39:38 +0100767(obsolète); Cela positionne la durée de vie préférée envoyée dans les baux DHCP
768ou les annonces routeurs à zéro, ce qui incite les clients à utiliser d'autres
769adresses autant que possible, pour toute nouvelle connexion, en préalable à
770la renumérotation.
771
Simon Kelley1a6bca82008-07-11 11:11:42 +0100772Cette option peut être répétée, avec différentes adresses,
Simon Kelley824af852008-02-12 20:43:05 +0000773pour activer le service DHCP sur plus d'un réseau. Pour des réseaux directement
774connectés (c'est-à-dire des réseaux dans lesquels la machine sur laquelle tourne
Simon Kelley7de060b2011-08-26 17:24:52 +0100775Dnsmasq possède une interface), le masque de réseau est optionnel : Dnsmasq la
776déterminera à partir de la configuration des interfaces.
777
778Pour les réseaux pour lesquels le service DHCP se fait via un relais DHCP
779("relay agent"), Dnsmasq est incapable de déterminer le masque par lui-même,
780aussi il doit être spécifié, faute de quoi Dnsmasq essaiera de le deviner en
781fonction de la classe (A, B ou C) de l'adresse réseau. L'adresse de broadcast
782est toujours optionnelle.
Simon Kelley824af852008-02-12 20:43:05 +0000783
Simon Kelley7622fc02009-06-04 20:32:05 +0100784Il est toujours possible d'avoir plus d'une plage DHCP pour un même
785sous-réseau.
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000786
787Pour IPv6, les paramètres sont légèrement différents : au lieu d'un masque de
788réseau et d'une adresse de broadcast, il existe une longueur de préfixe
789optionnelle. Si elle est omise, la valeur par défaut est 64. À la différence
790d'IPv4, la longueur de préfixe n'est pas automatiquement déduite de la
791configuration de l'interface. La taille minimale pour la longueur de préfixe
792est 64.
793
Simon Kelley834f36f2013-04-17 13:52:49 +0100794Pour IPv6 (et IPv6 uniquement), il est possible de définir les plages d'une
795autre façon. Dans ce cas, l'adresse de départ et l'adresse de fin optionnelle
796contiennent uniquement la partie réseau (par exemple ::1) et sont suivies par
797.B constructor:<interface>.
798Cela forme un modèle décrivant comment construire la plage, à partir des
799adresses assignées à l'interface. Par exemple
800
801.B --dhcp-range=::1,::400,constructor:eth0
802
803provoque la recherche d'adresses de la forme <réseau>::1 sur eth0 et crée une
804plage allant de <réseau>::1 à <réseau>:400. Si une interface est assignée à
805plus d'un réseau, les plages correspondantes seront automatiquement créées,
Olivier Gayotf361b392018-07-09 18:27:01 +0200806rendues obsolètes puis supprimées lorsque l'adresse est rendue obsolète puis
Simon Kelley834f36f2013-04-17 13:52:49 +0100807supprimée. Le nom de l'interface peut être spécifié avec un caractère joker '*'
808final.
809
Gildas1f776a42013-10-25 10:05:22 +0100810provoque la recherche d'adresses sur eth0 et crée une plage allant de
811<réseau>::1 à <réseau>:400. Si l'interface est assignée à
812plus d'un réseau, les plages correspondantes seront respectivement
813automatiquement créées, rendues obsolètes et supprimées lorsque l'adresse
814est rendue obsolète et supprimée. Le nom de l'interface peut être spécifié avec
815un caractère joker '*' final. Les adresses autoconfigurées, privées ou
816obsolètes ne conviennent pas.
817
818Si une plage dhcp-range est uniquement utilisée pour du DHCP sans-état
819("stateless") ou de l'autoconfiguration sans état ("SLAAC"), alors l'adresse
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200820peut être indiquée sous la forme '::'
Gildas1f776a42013-10-25 10:05:22 +0100821
822.B --dhcp-range=::,constructor:eth0
823
824Il existe une variante de la syntaxe constructor: qui consiste en l'utilisation
825du mot-clef
826.B constructor-noauth.
827Voir
828.B --auth-zone
829pour des explications à ce sujet.
830
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100831L'identifiant de label optionnel
832.B set:<label>
833fournie une étiquette alphanumérique qui identifie ce réseau, afin de permettre
834la fourniture d'options DHCP spécifiques à chaque réseau.
835Lorsque préfixé par 'tag:', la signification change, et au lieu de définir un
Simon Kelley824af852008-02-12 20:43:05 +0000836label, il définit le label pour laquelle la règle s'applique. Un seul label peut-
837être défini mais plusieurs labels peuvent coïncider.
838
Simon Kelleye46164e2012-04-16 16:39:38 +0100839Le mot clef optionnel <mode> peut être égal à
Simon Kelley824af852008-02-12 20:43:05 +0000840.B static
Simon Kelleye46164e2012-04-16 16:39:38 +0100841("statique") ce qui indique à Dnsmasq d'activer le service DHCP pour le réseau
Simon Kelley7622fc02009-06-04 20:32:05 +0100842spécifié, mais de ne pas activer l'allocation dynamique d'adresses IP : Seuls
843les hôtes possédant des adresses IP statiques fournies via
Simon Kelley824af852008-02-12 20:43:05 +0000844.B dhcp-host
Simon Kelley834f36f2013-04-17 13:52:49 +0100845ou présentes dans le fichier /etc/ethers seront alors servis par le DHCP. Il est
846possible d'activer un mode "fourre-tout" en définissant un réseau statique
847comportant uniquement des zéros, c'est à dire :
848.B --dhcp=range=::,static
849Cela permet de retourner des réponses à tous les paquets de type
850Information-request (requête d'information) en mode DHCPv6 sans état sur le
851sous-réseau configuré.
Simon Kelley7622fc02009-06-04 20:32:05 +0100852
Simon Kelleye46164e2012-04-16 16:39:38 +0100853Pour IPv4, le <mode> peut est égal à
Simon Kelley7622fc02009-06-04 20:32:05 +0100854.B proxy
855, auquel cas Dnsmasq fournira un service de DHCP proxy pour le sous-réseau
856spécifié. (voir
857.B pxe-prompt
858et
859.B pxe-service
Simon Kelleye46164e2012-04-16 16:39:38 +0100860pour plus de détails).
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000861
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200862Pour IPv6, le mode peut être une combinaison des valeurs
Neil Jerram4918bd52015-06-10 22:23:20 +0100863.B ra-only, slaac, ra-names, ra-stateless, off-link.
Simon Kelleye46164e2012-04-16 16:39:38 +0100864
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000865.B ra-only
Simon Kelleye46164e2012-04-16 16:39:38 +0100866indique à dnsmasq de n'effectuer que des annonces de routeur (Router
867Advertisement, RA) sur ce sous-réseau, et de ne pas faire de DHCP.
868
869.B slaac
870indique à dnsmasq d'effectuer des annonces de routeur sur ce sous-réseau
871et de positionner dans celles-ci le bit A, afin que les clients utilisent
872des adresses SLAAC. Lorsqu'utilisé conjointement avec une plage DHCP ou des
873affectations statiques d'adresses DHCP, les clients disposeront à la fois
874d'adresses DHCP assignées et d'adresses SLAAC.
875
876.B ra-stateless
877indique à dnsmasq d'effectuer des annonces de routeur avec les bits 0 et A
878positionnés, et de fournir un service DHCP sans état ("stateless"). Les clients
879utiliseront des adresses SLAAC, et utiliseront DHCP pour toutes les autres
880informations de configuration.
881
882.B ra-names
883active un mode qui fourni des noms DNS aux hôtes fonctionnant en double pile
884("dual stack") et configurés pour faire du SLAAC en IPv6. Dnsmasq utilise le
885bail IPv4 de l'hôte afin de dériver le nom, le segment de réseau et l'adresse
886MAC et assume que l'hôte disposera d'une adresse IPv6 calculée via l'algorithme
887SLAAC, sur le même segment de réseau. Un ping est envoyé à l'adresse, et si une
888réponse est obtenue, un enregistrement AAAA est rajouté dans le DNS pour cette
889adresse IPv6. Veuillez-noter que cela n'arrive que pour les réseaux directement
890connectés (et non ceux pour lesquels DHCP se fait via relai), et ne
891fonctionnera pas si un hôte utilise les "extensions de vie privée"
892("privacy extensions").
893.B ra-names
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200894peut être combiné avec
Simon Kelleye46164e2012-04-16 16:39:38 +0100895.B ra-stateless
896et
897.B slaac.
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100898
Neil Jerram4918bd52015-06-10 22:23:20 +0100899.B off-link
900indique à dnsmasq d'annoncer le préfixe sans le bit L (sur lien).
901
Simon Kelley824af852008-02-12 20:43:05 +0000902.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100903.B \-G, --dhcp-host=[<adresse matérielle>][,id:<identifiant client>|*][,set:<label>][,<adresse IP>][,<nom d'hôte>][,<durée de bail>][,ignore]
Simon Kelley824af852008-02-12 20:43:05 +0000904Spécifie les paramètres DHCP relatifs à un hôte. Cela permet à une machine
905possédant une adresse matérielle spécifique de se voir toujours allouée les
906mêmes nom d'hôte, adresse IP et durée de bail. Un nom d'hôte spécifié comme
907ceci remplace le nom fourni par le client DHCP de la machine hôte. Il est
908également possible d'omettre l'adresse matérielle et d'inclure le nom d'hôte,
909auquel cas l'adresse IP et la durée de bail s'appliqueront à toute machine se
910réclamant de ce nom. Par exemple
911.B --dhcp-host=00:20:e0:3b:13:af,wap,infinite
912spécifie à Dnsmasq de fournir à la machine d'adresse matérielle
91300:20:e0:3b:13:af le nom, et un bail de durée indéterminée.
914
915.B --dhcp-host=lap,192.168.0.199
916spécifie à Dnsmasq d'allouer toujours à la machine portant le nom lap
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100917l'adresse IP 192.168.0.199.
918
919Les adresses allouées de la sorte ne sont pas contraintes à une plage d'adresse
920spécifiée par une option --dhcp-range, mais elles se trouver dans le même
921sous-réseau qu'une plage dhcp-range valide. Pour les sous-réseaux qui n'ont pas
922besoin d'adresses dynamiquement allouées, utiliser le mot-clef "static" dans la
923déclaration de plage d'adresses dhcp-range.
924
Olivier Gayotf361b392018-07-09 18:27:01 +0200925Il est possible d'utiliser des identifiants clients (appelés "DUID client" dans
Gildas1f776a42013-10-25 10:05:22 +0100926le monde IPv6) plutôt que des adresses matérielles pour identifier les hôtes,
927en préfixant ceux-ci par 'id:'. Ainsi,
Simon Kelley824af852008-02-12 20:43:05 +0000928.B --dhcp-host=id:01:02:03:04,.....
929réfère à l'hôte d'identifiant 01:02:03:04. Il est également possible de
930spécifier l'identifiant client sous la forme d'une chaîne de caractères, comme
931ceci :
932.B --dhcp-host=id:identifiantclientsousformedechaine,.....
Simon Kelley73a08a22009-02-05 20:28:08 +0000933
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000934Un seul
935.B dhcp-host
936peut contenir une adresse IPv4, une adresse IPv6, ou les deux en même temps.
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200937Les adresses IPv6 doivent être mises entre crochets comme suit :
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000938.B --dhcp-host=laptop,[1234::56]
Simon Kelley834f36f2013-04-17 13:52:49 +0100939Les adresses IPv6 peuvent ne contenir que la partie identifiant de client :
940.B --dhcp-host=laptop,[::56]
941Dans ce cas, lorsque des plages dhcp sont définies automatiquement par le biais
942de constructeurs, la partie réseau correspondante est rajoutée à l'adresse.
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000943
Gildas1f776a42013-10-25 10:05:22 +0100944A noter que pour le DHCP IPv6, l'adresse matérielle n'est pas toujours
945disponible, bien que ce soit toujours le cas pour des clients directement
946connectés (sur le même domaine de broadcast) ou pour des clients utilisant
947des relais DHCP qui supportent la RFC 6939.
948
949En DHCPv4, l'option spéciale id:* signifie : "ignorer tout identifiant client et n'utiliser
Simon Kelley824af852008-02-12 20:43:05 +0000950que l'adresse matérielle". Cela est utile lorsqu'un client présente un
951identifiant client mais pas les autres.
952
953Si un nom apparaît dans /etc/hosts, l'adresse associée peut être allouée à un
954bail DHCP mais seulement si une option
955.B --dhcp-host
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200956spécifiant le nom existe par ailleurs. Seul un nom d'hôte peut être donné dans
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100957une option
958.B dhcp-host
959, mais les alias sont possibles au travers de l'utilisation des CNAMEs. (Voir
960.B --cname
961).
962Le mot clef "ignore" ("ignorer") indique
Simon Kelley824af852008-02-12 20:43:05 +0000963à Dnsmasq de ne jamais fournir de bail DHCP à une machine. La machine peut être
964spécifiée par son adresse matérielle, son identifiant client ou son nom d'hôte.
965Par exemple
966.B --dhcp-host=00:20:e0:3b:13:af,ignore
967Cela est utile lorsqu'un autre serveur DHCP sur le réseau doit être utilisé par
Simon Kelley73a08a22009-02-05 20:28:08 +0000968certaines machines.
969
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100970Le paramètre set:<identifiant réseau> permet de définir un
Simon Kelley824af852008-02-12 20:43:05 +0000971identifiant de réseau lorsque l'option dhcp-host est utilisée. Cela peut servir
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100972à sélectionner des options DHCP juste pour cet hôte. Plus d'un label peut être
973fourni dans une directive dhcp-host (et dans cette seule directive). Lorsqu'une
974machine coïncide avec une directive dhcp-host (ou une impliquée par
975/etc/ethers), alors le label réservé "known" ("connu") est associé. Cela permet à
Simon Kelley824af852008-02-12 20:43:05 +0000976Dnsmasq d'être configuré pour ignorer les requêtes issus de machines inconnue
977 par le biais de
Simon Kelley8ef5ada2010-06-03 19:42:45 +0100978.B --dhcp-ignore=tag:!known.
Simon Kelley824af852008-02-12 20:43:05 +0000979
980Les adresses ethernet (mais pas les identifiants clients) peuvent être définies
981avec des octets joker, ainsi par exemple
982.B --dhcp-host=00:20:e0:3b:13:*,ignore
983demande à Dnsmasq d'ignorer une gamme d'adresses matérielles. Il est à noter
Olivier Gayot1f2f69d2018-07-09 18:27:02 +0200984que "*" doit être précédé d'un caractère d'échappement ou mis entre guillemets
Simon Kelley824af852008-02-12 20:43:05 +0000985lorsque spécifié en option de ligne de commande, mais pas dans le fichier de
Simon Kelley73a08a22009-02-05 20:28:08 +0000986configuration.
987
988Les adresses matérielles coïncident en principe avec n'importe
Simon Kelley824af852008-02-12 20:43:05 +0000989quel type de réseau (ARP), mais il est possible de les limiter à un seul type
990ARP en les précédant du type ARP (en Hexadécimal) et de "-". Ainsi
991.B --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4
992coïncidera uniquement avec des adresses matérielles Token-Ring, puisque le type
993ARP pour une adresse Token-Ring est 6.
Simon Kelley73a08a22009-02-05 20:28:08 +0000994
Simon Kelley71ee7ee2012-03-03 18:06:49 +0000995Un cas spécial, pour IPv4, correspond à l'inclusion d'une ou plusieurs adresses
Simon Kelley73a08a22009-02-05 20:28:08 +0000996matérielles, c-à-d :
997.B --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2.
998Cela permet à une adresse IP d'être associé à plusieurs adresses
999matérielles, et donne à dnsmasq la permission d'abandonner un bail DHCP
1000attribué à l'une de ces adresses lorsqu'une autre adresse dans la liste
1001demande un bail. Ceci est une opération dangereuse qui ne fonctionnera
1002de manière fiable que si une adresse matérielle est active à un moment
1003donné et dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile,
1004par exemple, pour allouer une adresse IP stable à un laptop qui
1005aurait à la fois une connexion filaire et sans-fil.
Simon Kelley824af852008-02-12 20:43:05 +00001006.TP
Simon Kelley28866e92011-02-14 20:19:14 +00001007.B --dhcp-hostsfile=<chemin>
1008Lis les informations d'hôtes DHCP dans le fichier spécifié. Si l'argument est
1009un chemin vers un répertoire, lis tous les fichiers de ce répertoire. Le
1010fichier contient des informations à raison d'un hôte par ligne. Le format
1011d'une ligne est la même que le texte fourni à la droite sur caractère "=" dans
1012l'option
Simon Kelley824af852008-02-12 20:43:05 +00001013.B --dhcp-host.
1014L'avantage de stocker les informations sur les hôtes DHCP dans ce fichier est
1015que celles-ci peuvent être modifiées sans recharger Dnsmasq; le fichier sera
1016relu lorsque Dnsmasq reçoit un signal SIGHUP.
Simon Kelley1a6bca82008-07-11 11:11:42 +01001017.TP
Simon Kelley28866e92011-02-14 20:19:14 +00001018.B --dhcp-optsfile=<chemin>
1019Lis les informations relatives aux options DHCP dans le fichier spécifié. Si
1020l'argument est un chemin vers un répertoire, lis tous les fichiers de ce
1021répertoire. L'intérêt d'utiliser cette option est le même que pour
1022 --dhcp-hostsfile : le fichier spécifié sera rechargé à la réception par
1023dnsmasq d'un signal SIGHUP. Notez qu'il est possible d'encoder l'information
1024via
Simon Kelley1f15b812009-10-13 17:49:32 +01001025.B --dhcp-boot
1026en utilisant les noms optionnels bootfile-name, server-ip-address et
1027tftp-server. Ceci permet d'inclure ces options dans un fichier "dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME
Simon Kelley1a6bca82008-07-11 11:11:42 +01001028.TP
Simon Kelley824af852008-02-12 20:43:05 +00001029.B \-Z, --read-ethers
1030Lis les informations d'hôtes DHCP dans le fichier /etc/ethers. Le format de
1031/etc/ethers est une adresse matérielle suivie, soit par un nom d'hôte, soit par
1032une adresse IP sous la forme de 4 chiffres séparés par des points. Lorsque lu
1033par Dnsmasq, ces lignes ont exactement le même effet que l'option
1034.B --dhcp-host
1035contenant les mêmes informations. /etc/ethers est relu à la réception d'un
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001036signal SIGHUP par Dnsmasq. Les adresses IPv6 ne sont PAS lues dans /etc/ethers.
Simon Kelley824af852008-02-12 20:43:05 +00001037.TP
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001038.B \-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>]]
Simon Kelley824af852008-02-12 20:43:05 +00001039Spécifie des options différentes ou supplémentaires pour des clients DHCP. Par
1040défaut, Dnsmasq envoie un ensemble standard d'options aux clients DHCP : le
1041masque de réseau et l'adresse de broadcast sont les mêmes que pour l'hôte
1042sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la route par défaut
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001043prennent comme valeur l'adresse de la machine sur laquelle tourne Dnsmasq.
1044(Des règles équivalentes s'appliquent en IPv6). Si une option de nom de domaine
1045a été définie, son contenu est transmis. Cette option de configuration permet
1046de changer toutes ces valeurs par défaut, ou de spécifier d'autres options.
1047L'option DHCP à transmettre peut être fournie sous forme d'un nombre décimal
1048ou sous la forme "option:<nom d'option>". Les nombres correspondants aux options
1049sont définis dans la RFC2132 et suivants. Les noms d'options connus par Dnsmasq
1050peuvent être obtenus via "Dnsmasq --help dhcp". Par exemple, pour définir la
1051route par défaut à 192.168.4.4, il est possible de faire
Simon Kelley824af852008-02-12 20:43:05 +00001052.B --dhcp-option=3,192.168.4.4
1053ou
1054.B --dhcp-option = option:router, 192.168.4.4
1055ou encore, pour positionner l'adresse du serveur de temps à 192.168.0.4, on peut
1056faire
1057.B --dhcp-option = 42,192.168.0.4
1058ou
1059.B --dhcp-option = option:ntp-server, 192.168.0.4
1060L'adresse 0.0.0.0 prends ici le sens "d'adresse de la machine sur laquelle
1061tourne Dnsmasq". Les types de données autorisées sont des adresses IP sous la
1062forme de 4 chiffres séparés par des points, un nombre décimal, une liste de
1063caractères hexadécimaux séparés par des 2 points, ou une chaîne de caractères.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001064Si des labels optionnels sont fournis, alors cette option n'est envoyée
1065qu'aux réseaux dont tous les labels coïncident avec ceux de la requête.
Simon Kelley824af852008-02-12 20:43:05 +00001066
1067Un traitement spécial est effectué sur les chaînes de caractères fournies pour
1068l'option 119, conformément à la RFC 3397. Les chaînes de caractères ou les
1069adresses IP sous forme de 4 chiffres séparés par des points donnés en arguments
Olivier Gayotf361b392018-07-09 18:27:01 +02001070de l'option 120 sont traités conformément à la RFC 3361. Les adresses IP sous
Simon Kelley824af852008-02-12 20:43:05 +00001071forme de 4 chiffres séparés par des points suivies par une barre montante "/",
Olivier Gayotf361b392018-07-09 18:27:01 +02001072puis une taille de masque sont encodés conformément à la RFC 3442.
Simon Kelley824af852008-02-12 20:43:05 +00001073
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001074Les options IPv6 sont fournies en utilisant le mot-clef
1075.B option6:
1076suivi par le numéro d'option ou le nom d'option. L'espace de nommage des options
Olivier Gayotf361b392018-07-09 18:27:01 +02001077IPv6 est disjoint de l'espace de nommage des options IPv4. Les adresses IPv6
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001078en option doivent être entourées de crochets, comme par exemple :
1079.B --dhcp-option=option6:ntp-server,[1234::56]
1080
Simon Kelley824af852008-02-12 20:43:05 +00001081Attention : aucun test n'étant fait pour vérifier que des données d'un type
1082adéquat sont envoyées pour un numéro d'option donné, il est tout à fait possible
1083de persuader Dnsmasq de générer des paquets DHCP illégaux par une utilisation
1084incorrecte de cette option. Lorsque la valeur est un nombre décimal, Dnsmasq
1085doit déterminer la taille des données. Cela est fait en examinant le numéro de
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001086l'option et/ou la valeur, mais peut être évité en rajoutant un suffixe d'une
Simon Kelley824af852008-02-12 20:43:05 +00001087lettre comme suit :
1088b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des
1089options encapsulées de classes de vendeurs (voir plus bas), pour lesquelles
1090Dnsmasq ne peut déterminer la taille de la valeur. Les données d'options
1091consistant uniquement de points et de décimaux sont interprétées par Dnsmasq
1092comme des adresses IP, et envoyées comme telles. Pour forcer l'envoi sous forme
1093de chaîne de caractère, il est nécessaire d'utiliser des guillemets doubles. Par
1094exemple, l'utilisation de l'option 66 pour fournir une adresse IP sous la forme
1095d'une chaîne de caractères comme nom de serveur TFTP, il est nécessaire de faire
1096comme suit :
1097.B --dhcp-option=66,"1.2.3.4"
1098
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001099Les options encapsulées de classes de vendeurs peuvent être aussi spécifiées
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001100(pour IPv4 seulement) en utilisant
Simon Kelley824af852008-02-12 20:43:05 +00001101.B --dhcp-option
1102: par exemple
1103.B --dhcp-option=vendor:PXEClient,1,0.0.0.0
1104envoie l'option encapsulée de classe de vendeur "mftp-address=0.0.0.0" à
1105n'importe quel client dont la classe de vendeur correspond à "PXEClient". La
1106correspondance pour les classes de vendeur s'effectue sur des sous-chaînes de
1107caractères (voir
1108.B --dhcp-vendorclass
1109pour plus de détails). Si une option de
1110classe de vendeur (numéro 60) est envoyée par Dnsmasq, alors cela est utilisé
1111pour sélectionner les options encapsulées, de préférence à toute option envoyée
1112par le client. Il est possible d'omettre complètement une classe de vendeur :
1113.B --dhcp-option=vendor:,1,0.0.0.0
1114Dans ce cas l'option encapsulée est toujours envoyée.
Simon Kelley73a08a22009-02-05 20:28:08 +00001115
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001116En IPv4, les options peuvent être encapsulées au sein d'autres options :
Simon Kelley73a08a22009-02-05 20:28:08 +00001117par exemple
1118.B --dhcp-option=encap:175, 190, "iscsi-client0"
1119enverra l'option 175, au sein de laquelle se trouve l'option 190.
1120Plusieurs options encapsulées avec le même numéro d'option seront correctement
1121combinées au sein d'une seule option encapsulée. Il n'est pas possible de
1122spécifier encap: et vendor: au sein d'une même option dhcp.
1123
Simon Kelley316e2732010-01-22 20:16:09 +00001124La dernière variante pour les options encapsulées est "l'option de Vendeur
1125identifiant le vendeur" ("Vendor-Identifying Vendor Options") telle que
1126décrite dans le RFC3925. Celles-ci sont spécifiées comme suit :
1127.B --dhcp-option=vi-encap:2, 10, "text"
1128Le numéro dans la section vi-encap: est le numéro IANA de l'entreprise servant
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001129à identifier cette option. Cette forme d'encapsulation est également supportée
1130en IPv6.
Simon Kelley316e2732010-01-22 20:16:09 +00001131
Simon Kelley824af852008-02-12 20:43:05 +00001132L'adresse 0.0.0.0 n'est pas traitée de manière particulière lorsque fournie dans
Simon Kelley73a08a22009-02-05 20:28:08 +00001133une option encapsulée.
Simon Kelley824af852008-02-12 20:43:05 +00001134.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001135.B --dhcp-option-force=[tag:<label>,[tag:<label>]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]]
Simon Kelley824af852008-02-12 20:43:05 +00001136Cela fonctionne exactement de la même façon que
1137.B --dhcp-option
1138sauf que cette option sera toujours envoyée, même si le client ne la demande pas
Olivier Gayotf361b392018-07-09 18:27:01 +02001139dans la liste de paramètres requis. Cela est parfois nécessaire, par exemple lors
Simon Kelley824af852008-02-12 20:43:05 +00001140de la fourniture d'options à PXELinux.
1141.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +01001142.B --dhcp-no-override
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001143(IPv4 seulement) Désactive la réutilisation des champs DHCP nom de serveur et
1144nom de fichier comme espace supplémentaire pour les options. Si cela est
Simon Kelley1a6bca82008-07-11 11:11:42 +01001145possible, dnsmasq déplace les informations sur le serveur de démarrage
1146et le nom de fichier (fournis par 'dhcp-boot') en dehors des champs
1147dédiés à cet usage dans les options DHCP. Cet espace supplémentaire est
1148alors disponible dans le paquet DHCP pour d'autres options, mais peut, dans
1149quelques rares cas, perturber des clients vieux ou défectueux. Cette
1150option force le comportement à l'utilisation des valeurs "simples et sûres"
1151afin d'éviter des problèmes dans de tels cas.
1152.TP
Gildas1f776a42013-10-25 10:05:22 +01001153.B --dhcp-relay=<adresse locale>,<adresse de serveur>[,<interface]
1154Configure dnsmasq en temps que relais DHCP. L'adresse locale est une
1155adresse allouée à l'une interface de la machine sur laquelle tourne dnsmasq.
1156Toutes les requêtes DHCP arrivant sur cette interface seront relayées au
1157serveur DHCP distant correspondant à l'adresse de serveur indiquée. Il est
1158possible de relayer depuis une unique adresse locale vers différents serveurs
1159distant en spécifiant plusieurs fois l'option dhcp-relay avec la même adresse
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001160locale et différentes adresses de serveur. L'adresse de serveur doit être
1161sous forme numérique. Dans le cas de DHCPv6, l'adresse de serveur peut être
Gildas1f776a42013-10-25 10:05:22 +01001162l'adresse de multicast ff05::1:3 correspondant à tous les serveurs DHCP. Dans
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001163ce cas, l'interface doit être spécifiée et ne peut comporter de caractère
Gildas1f776a42013-10-25 10:05:22 +01001164joker. Elle sera utilisée pour indiquer l'interface à partir de laquelle le
1165multicast pourra atteindre le serveur DHCP.
1166
1167Le contrôle d'accès pour les clients DHCP suivent les mêmes règles que pour
1168les serveurs DHCP : voir --interface, --except-interface, etc. Le nom
1169d'interface optionel dans l'option dhcp-relay comporte une autre fonction :
1170il contrôle l'interface sur laquelle la réponse du serveur sera acceptée. Cela
1171sert par exemple dans des configurations à 3 interfaces : une à partir de
1172laquelle les requêtes sont relayées, une seconde permettant de se connecter à
1173un serveur DHCP, et une troisième reliée à un réseau non-sécurisé tel
1174qu'internet. Cela permet d'éviter l'arrivée de requêtes usurpées via cette
1175troisième interface.
1176
1177Il est permis de configurer dnsmasq pour fonctionner comme serveur DHCP sur
1178certaines interfaces et en temps que relais sur d'autres. Cependant, même s'il
1179est possible de configurer dnsmasq de telle manière qu'il soit à la fois
1180serveur et relais pour une même interface, cela n'est pas supporté et la
1181fonction de relais prendra le dessus.
1182
1183Le relais DHCPv4 et le relais DHCPv6 sont tous les deux supportés, mais il
1184n'est pas possible de relayer des requêtes DHCPv4 à un serveur DHCPv6 et
1185vice-versa.
1186.TP
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001187.B \-U, --dhcp-vendorclass=set:<label>,[enterprise:<numéro IANA d'enterprise>,]<classe de vendeur>
1188
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001189Associe une chaîne de classe de vendeur à un label. La plupart
Simon Kelley824af852008-02-12 20:43:05 +00001190des clients DHCP fournissent une "classe de vendeur" ("vendor class") qui
1191représente, d'une certaine façon, le type d'hôte. Cette option associe des
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001192classes de vendeur à des labels, de telle sorte que des options DHCP peuvent être
Olivier Gayotf361b392018-07-09 18:27:01 +02001193fournies de manière sélective aux différentes classes d'hôtes. Par exemple,
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001194.B dhcp-vendorclass=set:printers,Hewlett-Packard JetDirect
1195ou
Simon Kelley824af852008-02-12 20:43:05 +00001196.B dhcp-vendorclass=printers,Hewlett-Packard JetDirect
1197permet de n'allouer des options qu'aux imprimantes HP de la manière suivante :
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001198.B --dhcp-option=tag:printers,3,192.168.4.4
Olivier Gayotf361b392018-07-09 18:27:01 +02001199La chaîne de caractères de la classe de vendeur fournie en argument est cherchée
Simon Kelley824af852008-02-12 20:43:05 +00001200en temps que sous-chaîne de caractères au sein de la classe de vendeur fournie
1201par le client, de façon à permettre la recherche d'un sous-ensemble de la chaîne
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001202de caractères ("fuzzy matching"). Le préfixe set: est optionnel mais autorisé
1203afin de conserver une certaine homogénéité.
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001204
1205Notez qu'en IPv6 (et seulement en IPv6), les noms de classes de vendeurs
1206sont dans un espace de nom associé au numéro attribué à l'entreprise par
1207l'IANA. Ce numéro est fourni par le biais du mot-clef enterprise: et seules
1208les classes de vendeurs associées au numéro spécifié seront cherchées.
Simon Kelley824af852008-02-12 20:43:05 +00001209.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001210.B \-j, --dhcp-userclass=set:<label>,<classe utilisateur>
1211Associe une chaîne de classe d'utilisateur à un label (effectue la
Simon Kelley824af852008-02-12 20:43:05 +00001212recherche sur des sous-chaînes, comme pour les classes de vendeur). La plupart
1213des clients permettent de configurer une "classe d'utilisateur". Cette option
1214associe une classe d'utilisateur à un label, de telle manière qu'il soit
1215possible de fournir des options DHCP spécifiques à différentes classes d'hôtes.
1216Il est possible, par exemple, d'utiliser ceci pour définir un serveur
1217d'impression différent pour les hôtes de la classe "comptes" et ceux de la
1218classe "ingénierie".
1219.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001220.B \-4, --dhcp-mac=set:<label>,<adresse MAC>
Gildas1f776a42013-10-25 10:05:22 +01001221Associe une adresse matérielle (MAC) à un label. L'adresse
Simon Kelley824af852008-02-12 20:43:05 +00001222matérielle peut inclure des jokers. Par exemple
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001223.B --dhcp-mac=set:3com,01:34:23:*:*:*
Simon Kelley824af852008-02-12 20:43:05 +00001224permet de définir le label "3com" pour n'importe quel hôte dont l'adresse
1225matérielle coïncide avec les critères définis.
1226.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001227.B --dhcp-circuitid=set:<label>,<identifiant de circuit>, --dhcp-remoteid=set:<label>,<identifiant distant>
1228Associe des options de relais DHCP issus de la RFC3046 à des labels.
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001229Cette information peut être fournie par des relais DHCP. L'identifiant
Simon Kelley824af852008-02-12 20:43:05 +00001230de circuit ou l'identifiant distant est normalement fourni sous la forme d'une
1231chaîne de valeurs hexadécimales séparées par des ":", mais il est également
1232possible qu'elle le soit sous la forme d'une simple chaîne de caractères. Si
1233l'identifiant de circuit ou d'agent correspond exactement à celui fourni par le
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001234relais DHCP, alors le label est apposé.
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001235.B dhcp-remoteid
1236est supporté en IPv6 (mais non dhcp-circuitid).
Simon Kelley824af852008-02-12 20:43:05 +00001237.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001238.B --dhcp-subscrid=set:<label>,<identifiant d'abonné>
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001239(IPv4 et IPv6) Associe des options de relais DHCP issues de la RFC3993 à des
1240labels.
Simon Kelley824af852008-02-12 20:43:05 +00001241.TP
Olivier Gayotf361b392018-07-09 18:27:01 +02001242.B --dhcp-proxy[=<adresse IP>]......
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001243(IPv4 seulement) Un agent relai DHCP normal est uniquement utilisé pour faire
1244suivre les éléments initiaux de l'interaction avec le serveur DHCP. Une fois
1245que le client est configuré, il communique directement avec le serveur. Cela
1246n'est pas souhaitable si le relais rajoute des informations supplémentaires
1247aux paquets DHCP, telles que celles utilisées dans
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001248.B dhcp-circuitid
1249et
1250.B dhcp-remoteid.
1251Une implémentation complète de relai peut utiliser l'option serverid-override
1252de la RFC 5107 afin de forcer le serveur DHCP à utiliser le relai en temps que
1253proxy complet, de sorte que tous les paquets passent par le relai. Cette option
1254permet d'obtenir le même résultat pour des relais ne supportant pas la RFC
12555107. Fournie seule, elle manipule la valeur de server-id pour toutes les
1256interactions via des relais. Si une liste d'adresses IP est donnée, seules les
1257interactions avec les relais dont l'adresse est dans la liste seront affectées.
1258.TP
1259.B --dhcp-match=set:<label>,<numéro d'option>|option:<nom d'option>|vi-encap:<entreprise>[,<valeur>]
1260Si aucune valeur n'est spécifiée, associe le label si le client
Simon Kelley73a08a22009-02-05 20:28:08 +00001261envoie une option DHCP avec le numéro ou le nom spécifié. Lorsqu'une valeur est
1262fournie, positionne le label seulement dans le cas où l'option est fournie et
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001263correspond à la valeur. La valeur peut être de la forme "01:ff:*:02", auquel
Simon Kelley73a08a22009-02-05 20:28:08 +00001264cas le début de l'option doit correspondre (en respectant les jokers). La
1265valeur peut aussi être de la même forme que dans
1266.B dhcp-option
1267, auquel cas l'option est traitée comme un tableau de valeur, et un des
1268éléments doit correspondre, ainsi
1269
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001270--dhcp-match=set:efi-ia32,option:client-arch,6
Simon Kelley73a08a22009-02-05 20:28:08 +00001271
1272spécifie le label "efi-ia32" si le numéro 6 apparaît dnas la liste
Olivier Gayotf361b392018-07-09 18:27:01 +02001273d'architectures envoyé par le client au sein de l'option 93. (se référer
Simon Kelley73a08a22009-02-05 20:28:08 +00001274au RFC 4578 pour plus de détails). Si la valeur est un chaine de caractères,
1275celle-ci est recherchée (correspondance en temps que sous-chaîne).
Simon Kelley316e2732010-01-22 20:16:09 +00001276
1277Pour la forme particulière vi-encap:<numéro d'entreprise>, la comparaison se
1278fait avec les classes de vendeur "identifiant de vendeur" ("vendor-identifying
1279vendor classes") pour l'entreprise dont le numéro est fourni en option.
Olivier Gayotf361b392018-07-09 18:27:01 +02001280Veuillez vous référer à la RFC 3925 pour plus de détails.
Simon Kelley1a6bca82008-07-11 11:11:42 +01001281.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001282.B --tag-if=set:<label>[,set:<label>[,tag:<label>[,tag:<label>]]]
1283Effectue une opération booléenne sur les labels. Si tous les labels
1284apparaissant dans la liste tag:<label> sont positionnés, alors tous les
1285la de la liste "set:<labels>" sont positionnés (ou supprimés, dans le cas
1286où "tag:!<label>" utilisé).
1287Si aucun tag:<label> n'est spécifié, alors tous les labels fournis par
1288set:<label> sont positionnés.
1289N'importe quel nombre de set: ou tag: peuvent être fournis, et l'ordre est sans
1290importance.
Olivier Gayotf361b392018-07-09 18:27:01 +02001291Les lignes tag-if sont exécutées dans l'ordre, ce qui fait que si un label dans
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001292tag:<label> est un label positionné par une rêgle
1293.B tag-if,
1294la ligne qui positionne le label doit précéder celle qui le teste.
Simon Kelley824af852008-02-12 20:43:05 +00001295.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001296.B \-J, --dhcp-ignore=tag:<label>[,tag:<label>]
1297Lorsque tous les labels fournis dans l'option sont présents, ignorer l'hôte et
1298ne pas donner de bail DHCP.
1299.TP
1300.B --dhcp-ignore-names[=tag:<label>[,tag:<label>]]
1301Lorsque tous les labels fournis dans l'option sont présents, ignorer le
Simon Kelley824af852008-02-12 20:43:05 +00001302nom de machine fourni par l'hôte. Il est à noter que, à la différence de
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001303l'option "dhcp-ignore", il est permis de ne pas fournir de label.
Simon Kelley824af852008-02-12 20:43:05 +00001304Dans ce cas, les noms d'hôtes fournis par les clients DHCP seront toujours
1305ignorés, et les noms d'hôtes seront ajoutés au DNS en utilisant uniquement la
1306configuration dhcp-host de Dnsmasq, ainsi que le contenu des fichiers /etc/hosts
1307et /etc/ethers.
1308.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001309.B --dhcp-generate-names=tag:<label>[,tag:<label>]
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001310(IPv4 seulement) Générer un nom pour les clients DHCP qui autrement n'en aurait
1311pas, en utilisant l'adresse MAC sous sa forme hexadécimale, séparée par des
1312tirets.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001313Noter que si un hôte fourni un nom, celui-ci sera utilisé de préférence au nom
1314autogénéré, à moins que
1315.B --dhcp-ignore-names
1316ne soit positionné.
1317.TP
1318.B --dhcp-broadcast=[tag:<label>[,tag:<label>]]
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001319(IPv4 seulement) Lorsque tous les labels fournis dans l'option sont présents,
1320toujours utiliser le broadcast pour communiquer avec l'hôte lorsque celui-ci
1321n'est pas configuré. Il est possible de ne spécifier aucun label, auquel cas
1322cette option s'applique inconditionnellement. La plupart des clients DHCP
1323nécessitant une réponse par le biais d'un broadcast activent une option dans
1324leur requête, ce qui fait que cela se fait automatiquement, mais ce n'est pas
1325le cas de certains vieux clients BOOTP.
Simon Kelley1a6bca82008-07-11 11:11:42 +01001326.TP
Simon Kelley7de060b2011-08-26 17:24:52 +01001327.B \-M, --dhcp-boot=[tag:<label>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>|<nom du serveur tftp>]]
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001328(IPv4 seulement) Spécifie les options BOOTP devant être retournées par le
1329serveur DHCP. Le nom de serveur ainsi que l'adresse sont optionnels : s'ils
1330ne sont pas fournis, le nom est laissé vide et l'adresse fournie est celle de
Olivier Gayotf361b392018-07-09 18:27:01 +02001331la machine sur laquelle s'exécute Dnsmasq. Si Dnsmasq fournit un service TFTP (voir
Simon Kelley824af852008-02-12 20:43:05 +00001332.B --enable-tftp
1333), alors seul un nom de fichier est requis ici pour permettre un démarrage par
1334le réseau.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001335Si d'éventuels labels sont fournis, ils doivent coïncider avec
Olivier Gayotf361b392018-07-09 18:27:01 +02001336ceux du client pour que cet élément de configuration lui soit envoyé.
Simon Kelley7de060b2011-08-26 17:24:52 +01001337Une adresse de serveur TFTP peut être spécifiée à la place de l'adresse IP,
1338sous la forme d'un nom de domaine qui sera cherché dans le fichier /etc/hosts.
1339Ce nom peut être associé dans /etc/hosts avec plusieurs adresses IP, auquel cas
1340celles-ci seront utilisées tour à tour (algorithme round-robin).
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001341Cela peut être utilisé pour équilibrer la charge tftp sur plusieurs serveurs.
Simon Kelley7de060b2011-08-26 17:24:52 +01001342.TP
1343.B --dhcp-sequential-ip
1344Dnsmasq est conçu pour choisir l'adresse IP des clients DHCP en utilisant
1345un hachage de l'adresse MAC du client. Cela permet en général à l'adresse
1346IP du client de rester stable au fil du temps, même lorsque le client laisse
1347expirer son bail DHCP de temps en temps. Dans ce mode de fonctionnement par
1348défaut, les adresses IP sont distribuées de façon pseudo-aléatoire dans la
1349totalité de la plage d'adresses utilisable. Il existe des circonstances (par
1350exemples pour du déploiement de serveur) où il est plus pratique d'allouer les
1351adresses IP de manière séquentielle, en commençant par la plus petite adresse
1352disponible, et c'est ce mode de fonctionnement qui est permis par cette option.
1353Veuillez noter que dans ce mode séquentiel, les clients qui laissent expirer
1354leur bail ont beaucoup plus de chance de voir leur adresse IP changer, aussi
1355cette option ne devrait pas être utilisée dans un cas général.
Simon Kelley7622fc02009-06-04 20:32:05 +01001356.TP
Florent Fourcot13a58f92019-06-20 10:26:40 +02001357.B --dhcp-ignore-clid
1358Dnsmasq lit l'option 'client identifier' (RFC 2131) envoyée par les clients
1359(si disponible) afin d'identifier les clients. Cela permet de distribuer la
1360même adresse IP à un client utilisant plusieurs interfaces. Activer cette option
1361désactive la lecture du 'client identifier', afin de toujours identifier un client
1362en utilisant l'adresse MAC.
1363.TP
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001364.B --pxe-service=[tag:<label>,]<CSA>,<entrée de menu>[,<nom de fichier>|<type de service de démarrage>][,<adresse de serveur>|<nom de serveur>]
Simon Kelley7622fc02009-06-04 20:32:05 +01001365La plupart des ROMS de démarrage PXE ne permettent au système PXE que la simple
1366obtention d'une adresse IP, le téléchargement du fichier spécifié dans
1367.B dhcp-boot
1368et son exécution. Cependant, le système PXE est capable de fonctions bien plus
1369complexes pour peu que le serveur DHCP soit adapté.
1370
1371Ceci spécifie l'option de démarrage qui apparaitra dans un menu de démarrage
1372PXE. <CSA> est le type du système client. Seuls des types de services valides
1373apparaitront dans un menu. Les types connus sont x86PC, PC98, IA64_EFI, Alpha,
1374Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI et X86-64_EFI;
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001375D'autres types peuvent être spécifiés sous la forme d'une valeur entière. Le
Simon Kelley7622fc02009-06-04 20:32:05 +01001376paramètre après le texte correspondant à l'entrée dans le menu peut être un nom
1377de fichier, auquel cas Dnsmasq agit comme un serveur de démarrage et indique au
1378client PXE qu'il faut télécharger ce fichier via TFTP, soit depuis ce serveur
1379(l'option
1380.B enable-tftp
1381doit être spécifiée pour que cela marche), soit depuis un autre serveur TFTP
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001382si une adresse ou un nom de serveur est fournie.
Simon Kelley7622fc02009-06-04 20:32:05 +01001383Veuillez noter que le suffixe de "couche" (en principe ".0") est fourni par PXE
1384et ne doit pas être rajouté au nom de fichier. Si une valeur numérique entière
1385est fournir pour le type de démarrage, en remplacement du nom de fichier, le
1386client PXE devra chercher un service de démarrage de ce type sur le réseau.
Simon Kelley316e2732010-01-22 20:16:09 +00001387Cette recherche peut être faite via broadcast ou directement auprès d'un
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001388serveur si son adresse IP ou son nom sont fournis dans l'option.
Simon Kelley316e2732010-01-22 20:16:09 +00001389Si aucun nom de fichier n'est donné ni aucune valeur de type de service de
1390démarrage n'est fournie (ou qu'une valeur de 0 est donnée pour le type de
1391service), alors l'entrée de menu provoque l'interruption du démarrage par
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001392le réseau et la poursuite du démarrage sur un média local. L'adresse de serveur
1393peut être donnée sous la forme de nom de domaine qui est recherché dans
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001394/etc/hosts. Ce nom peut être associé à plusieurs adresses IP, qui dans ce cas
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001395sont utilisées à tour de rôle (en "round-robin").
Simon Kelley7622fc02009-06-04 20:32:05 +01001396.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001397.B --pxe-prompt=[tag:<label>,]<invite>[,<délai>]
Simon Kelley7622fc02009-06-04 20:32:05 +01001398Cette option permet d'afficher une invite à la suite du démarrage PXE. Si un
1399délai est fourni, alors la première entrée du menu de démarrage sera
1400automatiquement exécutée après ce délai. Si le délai vaut 0, alors la première
1401entrée disponible sera exécutée immédiatement. Si
1402.B pxe-prompt
1403est omis, le système attendra un choix de l'utilisateur s'il existe plusieurs
1404entrées dans le menu, ou démarrera immédiatement dans le cas où il n'y a qu'une
1405seule entrée. Voir
1406.B pxe-service
1407pour plus de détails sur les entrées de menu.
1408
1409Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas où un autre serveur DHCP
1410sur le réseau est responsable de l'allocation des adresses IP, auquel cas
1411Dnsmasq se contente de fournir les informations données dans les options
1412.B pxe-prompt
1413et
1414.B pxe-service
1415pour permettre le démarrage par le réseau. Ce mode est activé en utilisant le
1416mot-clef
1417.B proxy
1418dans
1419.B dhcp-range.
1420.TP
Simon Kelley824af852008-02-12 20:43:05 +00001421.B \-X, --dhcp-lease-max=<nombre>
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001422Limite Dnsmasq à un maximum de <nombre> baux DHCP. Le défaut est de 1000. Cette
Simon Kelley824af852008-02-12 20:43:05 +00001423limite permet d'éviter des attaques de déni de service ("DoS") par des hôtes
1424créant des milliers de baux et utilisant beaucoup de mémoire dans le processus
1425Dnsmasq.
1426.TP
1427.B \-K, --dhcp-authoritative
Simon Kelley834f36f2013-04-17 13:52:49 +01001428Doit être spécifié lorsque dnsmasq est réellement le seul serveur DHCP
1429sur le réseau. Pour DHCPv4, cela change le comportement par défaut qui est
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001430celui d'un strict respect des RFC, afin que les requêtes DHCP pour des baux
1431inconnus par des hôtes inconnus ne soient pas ignorées. Cela permet à de
1432nouveaux hôtes d'obtenir des baux sans tenir compte de fastidieuses
1433temporisations ("timeout"). Cela permet également à Dnsmasq de reconstruire
1434sa base de données contenant les baux sans que les clients n'aient besoin de
1435redemander un bail, si celle-ci est perdue.
Simon Kelley834f36f2013-04-17 13:52:49 +01001436Dans le cas de DHCPv6, cela positionne la priorité des réponses à 255 (le
1437maximum) au lieu de 0 (le minimum).
Simon Kelley824af852008-02-12 20:43:05 +00001438.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +01001439.B --dhcp-alternate-port[=<port serveur>[,<port client>]]
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001440(IPv4 seulement) Change les ports utilisés par défaut pour le DHCP. Si cette
1441option est donnée seule sans argument, alors change les ports utilisés pour le
1442DHCP de 67 et 68 respectivement à 1067 et 1068. Si un seul argument est donné, ce
Simon Kelley1a6bca82008-07-11 11:11:42 +01001443numéro est utilisé pour le port serveur et ce numéro plus 1 est utilisé pour le
1444port client. Enfin, en fournissant deux numéros de ports, il est possible de
1445spécifier arbitrairement 2 ports à la fois pour le serveur et pour le client DHCP.
1446.TP
Simon Kelley73a08a22009-02-05 20:28:08 +00001447.B \-3, --bootp-dynamic[=<identifiant de réseau>[,<identifiant de réseau>]]
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001448(IPv4 seulement) Permet l'allocation dynamique d'adresses IP à des clients BOOTP.
1449Utiliser cette option avec précaution, une adresse allouée à un client BOOTP
1450étant perpétuelle, et de fait n'est plus disponibles pour d'autres hôtes. Si
1451aucun argument n'est donné, alors cette option permet une allocation dynamique
1452dans tous les cas. Si des arguments sont spécifiés, alors l'allocation ne se
Olivier Gayotf361b392018-07-09 18:27:01 +02001453fait que lorsque tous les identifiants coïncident. Il est possible de répéter
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001454cette option avec plusieurs jeux d'arguments.
Simon Kelley824af852008-02-12 20:43:05 +00001455.TP
1456.B \-5, --no-ping
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001457(IPv4 seulement) Par défaut, le serveur DHCP tente de s'assurer qu'une adresse
1458n'est pas utilisée avant de l'allouer à un hôte. Cela est fait en envoyant une
1459requête ICMP de type "echo request" (aussi connue sous le nom de "ping") à
1460l'adresse en question. Si le serveur obtient une réponse, alors l'adresse doit
1461déjà être utilisée et une autre est essayée. Cette option permet de supprimer
1462cette vérification. A utiliser avec précaution.
Simon Kelley824af852008-02-12 20:43:05 +00001463.TP
1464.B --log-dhcp
1465Traces additionnelles pour le service DHCP : enregistre toutes les options
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001466envoyées aux clients DHCP et les labels utilisés pour la
Simon Kelley824af852008-02-12 20:43:05 +00001467détermination de celles-ci.
1468.TP
Gildas1f776a42013-10-25 10:05:22 +01001469.B --quiet-dhcp, --quiet-dhcp6, --quiet-ra
1470Supprime les logs des opérations de routine des protocoles concernés. Les
1471erreurs et les problèmes seront toujours enregistrés. L'option --log-dhcp
1472prends le pas sur --quiet-dhcp et quiet-dhcp6.
1473.TP
Simon Kelley824af852008-02-12 20:43:05 +00001474.B \-l, --dhcp-leasefile=<chemin de fichier>
1475Utilise le fichier dont le chemin est fourni pour stocker les informations de
Simon Kelley73a08a22009-02-05 20:28:08 +00001476baux DHCP.
Simon Kelleye46164e2012-04-16 16:39:38 +01001477.TP
1478.B --dhcp-duid=<ID d'entreprise>,<uid>
1479(IPv6 seulement) Spécifie le numéro d'UID de serveur persistant que le serveur
1480DHCPv6 doit utiliser. Cette option n'est normalement pas requise, Dnsmasq
1481créant un DUID automatiquement lorsque cela est nécessaire. Lorsque cette
1482option est positionnée, elle fournit à Dnsmasq les données nécessaires à la
1483création d'un DUID de type DUID-EN. Veuillez noter qu'une fois créé, le DUID
1484est stocké dans la base des baux, aussi changer entre un DUID créé
1485automatiquement et un DUID-EN et vice-versa impose de réinitialiser la base de
1486baux. Le numéro d'ID d'entreprise est assigné par l'IANA, et l'uid est une
1487chaine hexadécimale unique à chaque serveur.
1488.TP
Simon Kelley824af852008-02-12 20:43:05 +00001489.B \-6 --dhcp-script=<chemin de fichier>
Simon Kelleye46164e2012-04-16 16:39:38 +01001490Lorsqu'un bail DHCP est créé, qu'un ancien est supprimé, ou qu'un transfert
1491TFTP est terminé, le fichier dont le
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001492chemin est spécifié est exécuté. Le <chemin de fichier> doit être un chemin
1493absolu, aucune recherche n'est effectuée via la variable d'environnement PATH.
1494Les arguments fournis à celui-ci sont soit
Simon Kelley824af852008-02-12 20:43:05 +00001495"add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de l'adresse
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001496MAC de l'hôte (ou le DUID pour IPv6) puis l'adresse IP et le nom d'hôte si
1497celui-ci est connu."add" signifie qu'un bail a été créé, "del" signifie qu'il a
1498été supprimé, "old" notifie que le bail existait au lancement de Dnsmasq, ou un
1499changement d'adresse MAC ou de nom d'hôte pour un bail existant (ou, dans le cas
1500où leasefile-ro est spécifié, un changement de durée de bail ou d'identifiant
Simon Kelley73a08a22009-02-05 20:28:08 +00001501d'hôte). Si l'adresse Mac est d'un type de réseau autre qu'ethernet, il est
1502nécessaire de la préceder du type de réseau, par exemple "06-01:23:45:67:89:ab"
1503pour du token ring. Le processus est exécuté en temps que super-utilisateur
1504(si Dnsmasq a été lancé en temps que "root"), même si Dnsmasq est configuré
1505pour changer son UID pour celle d'un utilisateur non-privilégié.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001506
1507L'environnement est hérité de celui de l'invocation du processus Dnsmasq,
1508auquel se rajoute quelques unes ou toutes les variables décrites ci-dessous :
1509
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001510Pour IPv4 et IPv6 :
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001511
1512DNSMASQ_DOMAIN si le nom de domaine pleinement qualifié de l'hôte est connu, la
Simon Kelley28866e92011-02-14 20:19:14 +00001513part relative au domaine y est stockée. (Notez que le nom d'hôte transmis comme
1514argument au script n'est jamais pleinement qualifié).
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001515
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001516Si le client fournit un nom d'hôte, DNSMASQ_SUPPLIED_HOSTNAME.
1517
1518Si le client fournit des classes d'utilisateur, DNSMASQ_USER_CLASS0 à
1519DNSMASQ_USER_CLASSn.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001520
1521Si Dnsmasq a été compilé avec l'option HAVE_BROKEN_RTC ("horloge RTC
1522défectueuse"), alors la durée du bail (en secondes) est stockée dans la
1523variable DNSMASQ_LEASE_LENGTH, sinon la date d'expiration du bail est toujours
1524stocké dans la variable d'environnement DNSMASQ_LEASE_EXPIRES. Le nombre de
1525secondes avant expiration est toujours stocké dans DNSMASQ_TIME_REMAINING.
1526
1527Si un bail était associé à un nom d'hôte et
Simon Kelley1f15b812009-10-13 17:49:32 +01001528que celui-ci est supprimé, un évênement de type "old" est généré avec le
1529nouveau statut du bail, c-à-d sans nom d'hôte, et le nom initial est fourni
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001530dans la variable d'environnement DNSMASQ_OLD_HOSTNAME.
1531
1532La variable DNSMASQ_INTERFACE contient le nom de l'interface sur laquelle la
1533requête est arrivée; ceci n'est pas renseigné dans le cas des actions "old"
1534ayant lieu après un redémarrage de dnsmasq.
1535
1536La variable DNSMASQ_RELAY_ADDRESS est renseignée si le client a utilisé un
1537relai DHCP pour contacter Dnsmasq, si l'adresse IP du relai est connue.
1538
1539DNSMASQ_TAGS contient tous les labels fournis pendant la transaction DHCP,
1540séparés par des espaces.
1541
Simon Kelleye46164e2012-04-16 16:39:38 +01001542DNSMASQ_LOG_DHCP est positionné si
1543.B --log-dhcp
1544est activé.
1545
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001546Pour IPv4 seulement :
1547
1548DNSMASQ_CLIENT_ID, si l'hôte a fourni un identifiant de client.
1549
Simon Kelley834f36f2013-04-17 13:52:49 +01001550DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID, DNSMASQ_REMOTE_ID si un relai DHCP a
1551rajouté l'une de ces options.
1552
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001553Si le client fournit une information de classe de vendeur, DNSMASQ_VENDOR_CLASS.
1554
1555Pour IPv6 seulement :
1556
1557Si le client fournit une classe de vendeur (vendor-class), positionne
1558DNSMASQ_VENDOR_CLASS_ID avec comme contenu le numéro IANA de l'entreprise pour
1559la classe, et DNSMASQ_VENDOR_CLASS0..DNSMASQ_VENDOR_CLASSn pour les données.
1560
1561DNSMASQ_SERVER_DUID contient le DUID du serveur : cette valeur est la même
1562pour chaque appel au script.
1563
1564DNSMASQ_IAID contenant l'IAID pour le bail. Si le bail est une allocation
1565temporaire, cela est préfixé par le caractère 'T'.
1566
Gildas1f776a42013-10-25 10:05:22 +01001567DNSMASQ_MAC contient l'adresse MAC du client, si celle-ci est connue.
1568
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001569A noter que le nom d'hôte fourni, la classe de vendeur ou les données de classe
1570d'utilisateur sont uniquement fournies pour les actions "add" ou l'action "old"
1571lorsqu'un hôte reprend un bail existant, puisque ces informations ne sont pas
1572conservées dans la base de baux de dnsmasq.
1573
Simon Kelley824af852008-02-12 20:43:05 +00001574Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et stderr qui
1575sont ouverts sur /dev/null (sauf en mode déverminage).
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001576
1577Le script n'est pas lancé de manière concurrente : au plus une instance du
Olivier Gayotf361b392018-07-09 18:27:01 +02001578script est exécutée à la fois (dnsmasq attend qu'une instance de script se
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001579termine avant de lancer la suivante). Les changements dans la base des baux
1580nécessitant le lancement du script sont placé en attente dans une queue jusqu'à
1581terminaison d'une instance du script en cours. Si cette mise en queue fait que
1582plusieurs changements d'états apparaissent pour un bail donné avant que le
1583script puisse être lancé, alors les états les plus anciens sont supprimés et
1584lorsque le script sera finalement lancé, ce sera avec l'état courant du bail.
1585
Simon Kelley824af852008-02-12 20:43:05 +00001586Au démarrage de Dnsmasq, le script sera invoqué pour chacun des baux existants
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001587dans le fichier des baux. Le script sera lancé avec l'action "del" pour les
1588baux expirés, et "old" pour les autres. Lorsque Dnsmasq reçoit un signal HUP,
1589le script sera invoqué avec une action "old" pour tous les baux existants.
Simon Kelleye46164e2012-04-16 16:39:38 +01001590
1591Il existe deux autres actions pouvant apparaître comme argument au script :
1592"init" et "tftp". D'autres sont susceptibles d'être rajoutées dans le futur,
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001593aussi les scripts devraient être écrits de sorte à ignorer les actions
Simon Kelleye46164e2012-04-16 16:39:38 +01001594inconnues. "init" est décrite ci-dessous dans
1595.B --leasefile-ro.
1596L'action "tftp" est invoquée lorsqu'un transfert de fichier TFTP s'est
1597terminé. Ses arguments sont la taille du fichier en octets, l'adresse à
1598laquelle le fichier a été envoyé, ainsi que le chemin complet du fichier.
1599
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001600.TP
1601.B --dhcp-luascript=<chemin>
1602Spécifie un script écrit en Lua, devant être exécuté lorsque des baux sont
1603créés, détruits ou modifiés. Pour utiliser cette option, dnsmasq doit être
1604compilé avec avec le support de Lua. L'interpréteur Lua est initialisé une
1605seule fois, lorsque dnsmasq démarre, ce qui fait que les variables globales
Olivier Gayotf361b392018-07-09 18:27:01 +02001606persistent entre les événements liés aux baux. Le code Lua doit définir une
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001607fonction
1608.B lease
1609et peut fournir des fonctions
1610.B init
1611et
1612.B shutdown
1613qui sont appellées, sans arguments, lorsque dnsmasq démarre ou s'arrête.
Simon Kelleye46164e2012-04-16 16:39:38 +01001614Il peut également fournir une fonction
1615.B tftp.
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001616
Simon Kelleye46164e2012-04-16 16:39:38 +01001617La fonction
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001618.B lease
1619reçoit les informations détaillées dans
1620.B --dhcp-script.
1621Il reçoit deux arguments. Le premier spécifie l'action, qui est une chaîne de
1622caractères contenant les valeurs "add" (ajout), "old" (réactivation d'un bail
1623existant) ou "del" (suppression). Le deuxième est une table contenant des
1624paires de valeurs de labels. Les labels correspondent pour l'essentiel aux
1625valeurs d'environnement détaillées ci-dessus, ainsi le label "domain" (domaine)
1626contient les mêmes données que la variable d'environnement DNSMASQ_DOMAIN. Il
1627existe quelques labels supplémentaires contenant les données fournies comme
1628arguments à
1629.B --dhcp-script.
1630Ces labels sont
1631.B mac_address, ip_address
1632(pour respectivement l'adresse MAC et l'adresse IP)
1633et
1634.B hostname
1635(le nom d'hôte) dans le cas d'IPv4, et
1636.B client_duid, ip_address
1637(valeur DUID du client et adresse IP respectivement)
1638ainsi que
1639.B hostname
1640(le nom d'hôte) dans le cas d'IPv6.
Simon Kelleye46164e2012-04-16 16:39:38 +01001641
1642La fonction
1643.B tftp
1644est appelée de la même façon que la fonction "lease", et la table contient les
1645labels
1646.B destination_address,
1647.B file_name
1648et
1649.B file_size
1650(respectivement "adresse de destination", "nom de fichier" et "taille de fichier").
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001651.TP
Simon Kelley1a6bca82008-07-11 11:11:42 +01001652.B --dhcp-scriptuser
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001653Spécifie l'utilisateur sous lequel le script shell lease-change ou le script
1654doivent être exécutés. La valeur par défaut correspond à l'utilisateur root
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001655mais peut être changée par le biais de cette option.
Simon Kelley1a6bca82008-07-11 11:11:42 +01001656.TP
Simon Kelley824af852008-02-12 20:43:05 +00001657.B \-9, --leasefile-ro
1658Supprimer complètement l'usage du fichier servant de base de donnée pour les
1659baux DHCP. Le fichier ne sera ni créé, ni lu, ni écrit. Change la façon dont le
1660script de changement d'état de bail est lancé (si celui-ci est fourni par le
1661biais de l'option
1662.B --dhcp-script
1663), de sorte que la base de données de baux puisse
1664être complètement gérée par le script sur un stockage externe. En addition aux
1665actions décrites dans
1666.B --dhcp-script,
Olivier Gayotf361b392018-07-09 18:27:01 +02001667le script de changement d'état de bail est appelé une fois, au lancement de
1668Dnsmasq, avec pour seul argument "init". Lorsqu'appelé de la sorte, le script
Simon Kelley824af852008-02-12 20:43:05 +00001669doit fournir l'état de la base de baux, dans le format de fichier de baux de
1670Dnsmasq, sur sa sortie standard (stdout) et retourner un code de retour de 0.
1671Positionner cette option provoque également une invocation du script de
1672changement d'état de bail à chaque changement de l'identifiant de client, de
1673longueur de bail ou de date d'expiration.
1674.TP
1675.B --bridge-interface=<interface>,<alias>[,<alias>]
Neil Jerram4918bd52015-06-10 22:23:20 +01001676Traiter les requêtes DHCP (v4 et v6) et IPv6 Router Solicit arrivant
1677sur n'importe laquelle des interfaces <alias> comme si elles
1678arrivaient de l'interface <interface>. Cette option permet à dnsmasq
1679de fournir les service DHCP et RA sur les interfaces ethernet non
1680adressés et non pontés; par exemple sur un hôte de calcul d'OpenStack
1681où chaque telle interface est une interface TAP à une machine
1682virtuelle, ou lors de l'utilisation de pont ethernet "ancien mode" sur
1683plate-forme BSD. Chaque <alias> peut finir avec un simple '*' joker.
Simon Kelley824af852008-02-12 20:43:05 +00001684.TP
Simon Kelley28866e92011-02-14 20:19:14 +00001685.B \-s, --domain=<domaine>[,<gamme d'adresses>[,local]]
Simon Kelley73a08a22009-02-05 20:28:08 +00001686Spécifie le domaine du serveur DHCP. Le domaine peut être donné de manière
1687inconditionnelle (sans spécifier de gamme d'adresses IP) ou pour des gammes
1688d'adresses IP limitées. Cela a deux effets; tout d'abord, le
Simon Kelley824af852008-02-12 20:43:05 +00001689serveur DHCP retourne le domaine à tous les hôtes le demandant, deuxièmement,
1690cela spécifie le domaine valide pour les hôtes DHCP configurés. Le but de cela
1691est de contraindre les noms d'hôte afin qu'aucun hôte sur le LAN ne puisse
1692fournir via DHCP un nom tel que par exemple "microsoft.com" et capturer du
1693trafic de manière illégitime. Si aucun nom de domaine n'est spécifié, alors
1694les noms d'hôtes avec un nom de domaine (c-à-d un point dans le nom) seront
1695interdits et enregistrés dans le journal (logs). Si un suffixe est fourni, alors
1696les noms d'hôtes possédant un domaine sont autorisés, pour peu que le nom de
1697domaine coïncide avec le nom fourni. De plus, si un suffixe est fourni, alors
1698les noms d'hôtes ne possédant pas de nom de domain se voient rajouter le
1699suffixe fourni dans l'option
1700.B --domain.
1701Ainsi, sur mon réseau, je peux configurer
1702.B --domain=thekelleys.org.uk
1703et avoir une machine dont le nom DHCP serait "laptop". L'adresse IP de cette
1704machine sera disponible à la fois pour "laptop" et "laptop.thekelleys.org.uk".
1705Si la valeur fournie pour <domaine> est "#", alors le nom de domaine est
1706positionné à la première valeur de la directive "search" du fichier
Simon Kelley28866e92011-02-14 20:19:14 +00001707/etc/resolv.conf (ou équivalent).
1708
1709La gamme d'adresses peut être de la forme
Olivier Gayotf361b392018-07-09 18:27:01 +02001710<adresse IP>,<adresse IP> ou <adresse IP>/<masque de réseau> voire une simple
1711<adresse IP>. Voir
Simon Kelley73a08a22009-02-05 20:28:08 +00001712.B --dhcp-fqdn
1713qui peut changer le comportement de dnsmasq relatif aux domaines.
Simon Kelley28866e92011-02-14 20:19:14 +00001714
1715Si la gamme d'adresse est fournie sous la forme
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001716<adresse IP>/<taille de réseau>, alors le drapeau "local" peut être rajouté
Olivier Gayotf361b392018-07-09 18:27:01 +02001717qui a pour effet d'ajouter --local-declarations aux requêtes DNS directes et
Simon Kelley28866e92011-02-14 20:19:14 +00001718inverses. C-à-d
1719.B --domain=thekelleys.org.uk,192.168.0.0/24,local
Simon Kelleye46164e2012-04-16 16:39:38 +01001720est identique à
Simon Kelley28866e92011-02-14 20:19:14 +00001721.B --domain=thekelleys.org.uk,192.168.0.0/24
1722--local=/thekelleys.org.uk/ --local=/0.168.192.in-addr.arpa/
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001723La taille de réseau doit être de 8, 16 ou 24 pour être valide.
Simon Kelley73a08a22009-02-05 20:28:08 +00001724.TP
1725.B --dhcp-fqdn
1726Dans le mode par défaut, dnsmasq insère les noms non-qualifiés des clients
1727DHCP dans le DNS. Pour cette raison, les noms doivent être uniques, même si
1728deux clients ayant le même nom sont dans deux domaines différents. Si un
1729deuxième client DHCP apparaît ayant le même nom qu'un client déjà existant,
1730ce nom est transféré au nouveau client. Si
1731.B --dhcp-fqdn
1732est spécifié, ce comportement change : les noms non qualifiés ne sont plus
1733rajoutés dans le DNS, seuls les noms qualifiés le sont. Deux clients DHCP
1734avec le même nom peuvent tous les deux garder le nom, pour peu que la partie
Olivier Gayotf361b392018-07-09 18:27:01 +02001735relative au domaine soit différente (c-à-d que les noms pleinement qualifiés
1736diffèrent). Pour s'assurer que tous les noms ont une partie domaine, il doit y
Simon Kelley73a08a22009-02-05 20:28:08 +00001737avoir au moins un
1738.B --domain
1739sans gamme d'adresses de spécifié lorsque l'option
1740.B --dhcp-fqdn
1741est configurée.
Simon Kelley824af852008-02-12 20:43:05 +00001742.TP
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001743.B --dhcp-client-update
1744Normalement, lorsque dnsmasq fournit un bail DHCP, il positionne un label
1745dans l'option FQDN pour indiquer au client qu'il ne doit pas tenter de faire
1746une mise à jour DDNS avec son nom et son adresse IP. Ceci parce que la paire
1747Nom-IP est rajoutée automatiquement dans la partie DNS de dnsmasq. Cette option
1748inhibe ce comportement ce qui est utile, par exemple, pour permettre aux clients
1749Windows de la mise à jour de serveurs Active Directory. Voir la RFC 4702 pour
1750plus de détails.
1751.TP
1752.B --enable-ra
Olivier Gayotf361b392018-07-09 18:27:01 +02001753Active la fonctionnalité d'annonces routeurs IPv6 ("IPv6 Router Advertisement").
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001754DHCPv6 ne gère pas la configuration complète du réseau de la même façon que
1755DHCPv4. La découverte de routeurs et la découverte (éventuelle) de préfixes pour
1756la création autonome d'adresse sont gérées par un protocole différent.
1757Lorsque DHCP est utilisé, seul un sous-ensemble de tout ceci est nécessaire et
1758dnsmasq est à même de le gérer, en utilisant la configuration DHCP présente pour
1759fournir la majorité des données. Lorsque les annonces routeurs (RA pour "Router
1760Advertisement") sont activées, dnsmasq va annoncer un préfixe pour chaque
1761dhcp-range et, par défaut, fournir comme valeur de routeur et de DNS récursif
1762la valeur d'adresse link-local appropriée parmi celles de la machine sur
1763laquelle tourne dnsmasq.
Simon Kelleye46164e2012-04-16 16:39:38 +01001764Par défaut, les bits "managed address" sont positionnés, et le bit "use SLAAC"
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001765("utiliser SLAAC") est réinitialisé. Cela peut être changé pour des
Simon Kelleye46164e2012-04-16 16:39:38 +01001766sous-réseaux donnés par le biais du mot clef de mode décris dans
1767.B --dhcp-range.
1768Les paramètres DNS du RFC6106 sont inclus dans les annonces. Par défaut,
1769l'adresse link-local appropriée parmi celles de la machine sur laquelle tourne
1770dnsmasq est spécifiée comme DNS récursif. Si elles sont fournies, les
1771options dns-server et domain-search sont utilisées respectivement pour RDNSS et
1772DNSSL.
Simon Kelley71ee7ee2012-03-03 18:06:49 +00001773.TP
Vladislav Grishenko6ec5f5c2017-04-24 22:34:45 +01001774.B --ra-param=<interface>,[mtu:<valeur>|<interface>|off,][high,|low,]<intervalle d'annonce routeur>[,<durée de vie route>]
Gildas1f776a42013-10-25 10:05:22 +01001775Configure pour une interface donnée des valeurs pour les annonces routeurs
1776différentes des valeurs par défaut. La valeur par défaut du champ priorité
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001777pour le routeur peut être changée de "medium" (moyen) à "high" (haute) ou
Gildas1f776a42013-10-25 10:05:22 +01001778"low" (basse). Par exemple :
David Flamand005c46d2017-04-11 11:49:54 +01001779.B --ra-param=eth0,high,0.
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001780Un intervalle (en secondes) entre les annonces routeur peut être fourni par :
Gildas1f776a42013-10-25 10:05:22 +01001781.B --ra-param=eth0,60.
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001782La durée de vie de la route peut être changée ou mise à zéro, auquel cas
Gildas1f776a42013-10-25 10:05:22 +01001783le routeur peut annoncer les préfixes mais pas de route :
Christian Weiske2daca522019-01-03 20:10:14 +00001784.B --ra-param=eth0,0,0
Gildas1f776a42013-10-25 10:05:22 +01001785(une valeur de zéro pour l'intervalle signifie qu'il garde la valeur par défaut).
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001786Ces quatre paramètres peuvent être configurés en une fois :
David Flamand005c46d2017-04-11 11:49:54 +01001787.B --ra-param=eth0,mtu:1280,low,60,1200
Gildas1f776a42013-10-25 10:05:22 +01001788La valeur pour l'interface peut inclure un caractère joker.
1789.TP
1790.B --enable-tftp[=<interface>[,<interface>]]
Simon Kelley824af852008-02-12 20:43:05 +00001791Active la fonction serveur TFTP. Celui-ci est de manière délibérée limité aux
Simon Kelley1a6bca82008-07-11 11:11:42 +01001792fonctions nécessaires au démarrage par le réseau ("net-boot") d'un client. Seul
1793un accès en lecture est possible; les extensions tsize et blksize sont supportées
Olivier Gayotf361b392018-07-09 18:27:01 +02001794(tsize est seulement supportée en mode octet). Sans argument optionnel, le service
Gildas1f776a42013-10-25 10:05:22 +01001795TFTP est fourni sur les mêmes interfaces que le service DHCP. Si une liste
1796d'interfaces est fournie, cela définit les interfaces sur lesquelles le
1797service TFTP sera activé.
Simon Kelley824af852008-02-12 20:43:05 +00001798.TP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001799.B --tftp-root=<répertoire>[,<interface>]
Simon Kelley824af852008-02-12 20:43:05 +00001800Les fichiers à fournir dans les transferts TFTP seront cherchés en prenant le
1801répertoire fourni comme racine. Lorsque cela est fourni, les chemins TFTP
1802incluant ".." sont rejetés, afin d'éviter que les clients ne puissent sortir de
1803la racine spécifiée. Les chemins absolus (commençant par "/") sont autorisés,
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001804mais ils doivent être à la racine TFTP fournie. Si l'option interface est
1805spécifiée, le répertoire n'est utilisé que pour les requêtes TFTP reçues sur
1806cette interface.
Simon Kelley824af852008-02-12 20:43:05 +00001807.TP
1808.B --tftp-unique-root
1809Ajouter l'adresse IP du client TFTP en temps qu'élément de chemin, à la suite
1810de la racine tftp (adresse sous forme de 4 chiffres séparés par des points).
1811Uniquement valable si une racine TFTP est spécifiée et si le répertoire
1812correspond existe. Ainsi, si la valeur pour tftp-root est "/tftp" et que le
1813client d'adresse IP 1.2.3.4 requiert le fichier "monfichier", alors le chemin
1814effective résultant sera "/tftp/1.2.3.4/monfichier" si /tftp/1.2.3.4 existe, ou
1815"/tftp/monfichier" dans le cas contraire.
1816.TP
1817.B --tftp-secure
1818Active le mode TFTP sécurisé : sans cela, tout fichier lisible
1819par Dnsmasq est disponible via TFTP (les règles de contrôle d'accès unix
1820habituelles s'appliquent). Lorsque l'option
1821.B --tftp-secure
1822est spécifiée, seuls les fichiers possédés par l'utilisateur sous lequel tourne
1823le processus Dnsmasq sont accessibles. Si Dnsmasq est exécuté en temps que
1824super-utilisateur ("root"), des règles différentes s'appliquent :
1825.B --tftp-secure
1826n'a aucun effet, mais seuls les fichiers ayant un droit de lecture pour tout le
1827monde sont accessibles. Il n'est pas recommandé d'exécuter Dnsmasq sous
1828l'utilisateur "root" lorsque le service TFTP est activé, et il est formellement
1829déconseillé de le faire sans fournir l'option
1830.B --tftp-root.
1831Sans cela, en effet, l'accès de tous les fichiers du serveur pour lequel le
1832droit de lecture pour tout le monde est positionné ("world-readable") devient
1833possible par n'importe quel hôte sur le réseau.
1834.TP
Simon Kelleyc4c04882012-08-06 20:09:15 +01001835.B --tftp-lowercase
1836Converti les noms de fichiers des requêtes TFTP en minuscules. Cela est utile
1837pour les requêtes effectuées depuis les machines Windows, dont les systèmes
1838de fichiers sont insensibles à la casse et pour lesquels la détermination
1839de la casse est parfois un peu aléatoire. A noter que le serveur tftp de
1840dnsmasq converti systématiquement les "\\" en "/" dans les noms de fichiers.
1841.TP
Simon Kelley824af852008-02-12 20:43:05 +00001842.B --tftp-max=<connexions>
1843Définit le nombre maximum de connexions TFTP simultanées autorisées. La valeur
1844par défaut est de 50. Lorsqu'un grand nombre de connexions TFTP est spécifié,
1845il se peut que la limite de nombre de descripteurs de fichiers par processus
1846soit atteinte. Dnsmasq nécessite quelques descripteurs de fichiers, ainsi qu'un
1847descripteur de fichier pour chaque connexion TFTP simultanée et pour chacun des
1848fichiers devant être fournis. De fait, servir le même fichier à n clients ne
1849nécessitera qu'environ n + 10 descripteurs de fichiers, alors que fournir des
1850fichiers tous différents à n clients utilisera environ (2*n) + 10 descripteurs.
Simon Kelley1a6bca82008-07-11 11:11:42 +01001851Si elle est donnée, l'option
1852.B --tftp-port-range
1853peut affecter le nombre maximum de connexions concurrentes.
Simon Kelley824af852008-02-12 20:43:05 +00001854.TP
1855.B --tftp-no-blocksize
1856Empêche le serveur TFTP de négocier l'option "blocksize" (taille de bloc) avec
1857les clients. Certains clients buggés spécifient cette option mais se comportent
1858ensuite de manière incorrecte si celle-ci est accordée.
1859.TP
1860.B --tftp-port-range=<début>,<fin>
Simon Kelley1a6bca82008-07-11 11:11:42 +01001861Un serveur TFTP écoute sur le port prédéfini 69 ("well-known port") pour
1862l'initiation de la connexion, mais utilise également un port dynamiquement
1863alloué pour chaque connexion. Normalement, ces ports sont alloués par
1864le système d'exploitation, mais cette option permet de spécifier une gamme
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001865de ports à utiliser pour les transferts TFTP. Cela peut être utile si
Simon Kelley1a6bca82008-07-11 11:11:42 +01001866TFTP doit traverser un dispositif garde-barrière ("firewall"). La valeur
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001867de début pour la plage de port ne peut être inférieure à 1025 sauf si
Simon Kelley1a6bca82008-07-11 11:11:42 +01001868dnsmasq tourne en temps que super-utilisateur ("root"). Le nombre de
1869connexions TFTP concurrentes est limitée par la taille de la gamme de
1870ports ainsi spécifiée.
1871.TP
1872.B --tftp-port-range=<début>,<fin>
Simon Kelley824af852008-02-12 20:43:05 +00001873Un serveur TFTP écoute sur un numéro de port bien connu (69) pour l'initiation
1874de la connexion, et alloue dynamiquement un port pour chaque connexion. Ces
1875numéros de ports sont en principe alloués par le système d'exploitation, mais
1876cette option permet de spécifier une gamme de ports à utiliser pour les
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02001877transferts TFTP. Cela peut être utile lorsque ceux-ci doivent traverser un
1878dispositif garde-barrière ("firewall"). Le début de la plage ne peut être
Simon Kelley824af852008-02-12 20:43:05 +00001879inférieur à 1024 à moins que Dnsmasq ne fonctionne en temps que
1880super-utilisateur ("root"). Le nombre maximal de connexions TFTP concurrentes
1881est limitée par la taille de la plage de ports ainsi définie.
1882.TP
1883.B \-C, --conf-file=<fichier>
1884Spécifie un fichier de configuration différent. L'option "conf-file" est
1885également autorisée dans des fichiers de configuration, ce qui permet
Simon Kelley28866e92011-02-14 20:19:14 +00001886l'inclusion de multiples fichiers de configuration. L'utilisation de "-" comme
1887nom de fichier permet la lecture par dnsmasq de sa configuration sur l'entrée standard
1888stdin.
Simon Kelley824af852008-02-12 20:43:05 +00001889.TP
Simon Kelley1f15b812009-10-13 17:49:32 +01001890.B \-7, --conf-dir=<répertoire>[,<extension de fichier>...]
Simon Kelley824af852008-02-12 20:43:05 +00001891Lis tous les fichiers du répertoire spécifié et les traite comme des fichiers de
Simon Kelley1f15b812009-10-13 17:49:32 +01001892configuration. Si des extensions sont données, tout fichier finissant par ces
1893extensions seront ignorés. Tout fichier dont le nom se termine en ~ ou commence
1894par ., ainsi que ceux commençant ou se terminant par # seront systématiquement
1895ignorés.
Simon Kelley824af852008-02-12 20:43:05 +00001896Cette option peut être donnée en ligne de commande ou dans un fichier de
1897configuration.
1898.SH FICHIER DE CONFIGURATION
1899Au démarrage, Dnsmasq lis
1900.I /etc/dnsmasq.conf,
1901si ce fichier existe. (Sur FreeBSD, ce fichier est
1902.I /usr/local/etc/dnsmasq.conf
1903) (voir cependant les options
1904.B \-C
1905et
1906.B \-7
1907). Le format de ce fichier consiste en une option par ligne, exactement comme
1908les options longues détaillées dans la section OPTIONS, mais sans être précédées
1909par "--". Les lignes commençant par # sont des commentaires et sont ignorées.
1910Pour les options qui ne peuvent-être spécifiées qu'une seule fois, celle du
1911fichier de configuration prends le pas sur celle fournie en ligne de commande.
1912Il est possible d'utiliser des guillemets afin d'éviter que les ",",":","." et
Olivier Gayotf361b392018-07-09 18:27:01 +02001913"#" ne soient interprétés, et il est possible d'utiliser les séquences
Simon Kelley1a6bca82008-07-11 11:11:42 +01001914d'échappement suivantes : \\\\ \\" \\t \\e \\b \\r et \\n. Elles correspondent
Simon Kelley824af852008-02-12 20:43:05 +00001915respectivement à la barre oblique descendante ("anti-slash"), guillemets doubles,
Simon Kelley1a6bca82008-07-11 11:11:42 +01001916tabulation, caractère d'échappement ("escape"), suppression ("backspace"), retour ("return") et
Simon Kelley824af852008-02-12 20:43:05 +00001917nouvelle ligne ("newline").
1918.SH NOTES
1919A la réception d'un signal SIGHUP,
1920.B Dnsmasq
1921vide son cache et recharge les fichiers
1922.I /etc/hosts
1923et
1924.I /etc/ethers
1925ainsi que tout autre fichier spécifié par les options
1926.B --dhcp-hostsfile
1927,
1928.B --dhcp-optsfile
1929ou
1930.B --addn-hosts.
1931Le script de changement de bail est appellé pour chaque bail DHCP existant. Si
1932l'option
1933.B --no-poll
1934est positionnée, alors le fichier
1935.I /etc/resolv.conf
1936est également rechargé.
1937SIGHUP ne provoque PAS de rechargement du fichier de configuration.
1938.PP
1939A la réception d'un signal SIGUSR1,
1940.B Dnsmasq
1941écrit des statistiques dans les traces système. Les informations fournies sont :
1942la taille du cache, le nombre de noms ayant été supprimés du cache avant
1943expiration afin de faire de la place pour les nouveaux noms, ainsi que le nombre
Simon Kelley1a6bca82008-07-11 11:11:42 +01001944total d'entrées ayant été insérées dans le cache. Pour chaque serveur amont, il fournit
1945le nomnbre de requêtes transmises ainsi que le nombre de requêtes ayant résulté par une
1946erreur. Lorsque Dnsmasq a été lancé via
Simon Kelley824af852008-02-12 20:43:05 +00001947.B --no-daemon
1948ou lorsque la traçabilité maximale a été activée (
1949.B -q
1950), la totalité du contenu du
1951cache est de surcroît fournie.
1952.PP
1953A la réception d'un signal SIGUSR2 et lorsqu'il enregistre directement ses
1954traces dans un fichier (voir
1955.B --log-facility
1956), alors
1957.B Dnsmasq
Olivier Gayotf361b392018-07-09 18:27:01 +02001958ferme et rouvre le fichier de traces. Il faut noter que pendant cette
1959opération Dnsmasq ne s'exécute pas en tant que "root". Lorsqu'il créé un
Simon Kelley824af852008-02-12 20:43:05 +00001960fichier de traces pour la première fois, Dnsmasq change le propriétaire du
1961fichier afin de le faire appartenir à l'utilisateur non "root" sous lequel
1962Dnsmasq s'exécute. Le logiciel de rotation de fichiers de trace logrotate doit
1963être configuré pour créer un nouveau fichier avec un propriétaire identique au
1964fichier existant avant d'envoyer le signal SIGUSR2. Si une requête DNS TCP est
1965en cours, l'ancien fichier de traces reste ouvert dans le processus fils qui
1966traite la requête TCP et il peut y être écrit. Il existe cependant une limite
1967de 150 secondes après laquelle tous les processus traitant des requêtes TCP
1968expirent : pour cette raison, il est préférable de ne pas configurer la
1969compression des fichiers de traces venant juste de faire l'objet d'une rotation.
1970Dans le cas de l'utilisation du logiciel logrotate, les options requises sont
1971.B create
1972et
1973.B delaycompress.
Simon Kelley824af852008-02-12 20:43:05 +00001974
1975.PP
1976Dnsmasq est un logiciel de transmission de requêtes DNS : il n'est pas capable
1977d'effectuer une résolution de nom récursive en partant des serveurs DNS racine,
1978mais transmet de telles requêtes à un serveur DNS amont capable de telles
1979recherches récursives, ce qui est typiquement le cas d'un serveur DNS de FAI.
1980Par défaut, Dnsmasq lis
1981.I /etc/resolv.conf
1982pour découvrir les adresses IP des serveurs DNS amonts à utiliser, puisque cette
1983information est en général stockée à cet endroit. A moins que l'option
1984.B --no-poll
1985ne soit utilisée,
1986.B Dnsmasq
1987vérifie la date de modification du fichier
1988.I /etc/resolv.conf
1989(ou l'équivalent si
1990.B \--resolv-file
1991est utilisé), et le relis lorsqu'il change. Cela permet de définir les serveurs
1992DNS amont de manière dynamique lorsque PPP ou DHCP sont utilisés, puisque ces
1993protocoles fournissent cette information.
1994L'absence du fichier
1995.I /etc/resolv.conf
1996ne conduit pas à une erreur, puisqu'il peut très bien ne pas être créé avant
1997qu'une connexion PPP ne soit établie. Dans ce cas, Dnsmasq vérifie régulièrement
1998pour voir si un fichier
1999.I /etc/resolv.conf
2000est créé. Dnsmasq peut être configuré pour lire plus d'un fichier resolv.conf.
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002001Cela est utile sur un ordinateur portable où PPP et DHCP peuvent être utilisés :
Simon Kelley824af852008-02-12 20:43:05 +00002002Dnsmasq peut alors être configuré pour lire à la fois
2003.I /etc/ppp/resolv.conf
2004et
2005.I /etc/dhcpc/resolv.conf
2006et utilisera le contenu du fichier ayant changé en dernier, ce qui permet de
2007passer automatiquement de serveurs DNS à d'autres.
2008.PP
2009Les serveurs amonts peuvent aussi être spécifiés sur la ligne de commande ou
2010dans un fichier de configuration. Ces spécifications de serveurs peuvent
2011éventuellement se voir adjoindre d'un nom de domaine qui précise à Dnsmasq quel
2012serveur utiliser pour trouver les noms d'un domaine donné.
2013.PP
2014Pour configurer Dnsmasq afin qu'il se comporte comme un cache pour la machine
2015sur laquelle il tourne, mettre "nameserver 127.0.0.1" dans le fichier
2016.I /etc/resolv.conf
2017afin de forcer les processus locaux à envoyer leurs requêtes à Dnsmasq. Ensuite,
2018spécifier les serveurs DNS amont soit en les fournissant directement à Dnsmasq
2019via l'option
2020.B \--server
2021ou alors en mettant leurs adresses dans un autre fichier, par exemple
2022.I /etc/resolv.dnsmasq
2023et en lançant Dnsmasq avec l'option
2024.B \-r /etc/resolv.dnsmasq.
Olivier Gayotf361b392018-07-09 18:27:01 +02002025Cette deuxième technique permet la mise-à-jour dynamique des adresses de
Simon Kelley824af852008-02-12 20:43:05 +00002026serveurs DNS amont par le biais de PPP ou DHCP.
2027.PP
2028Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le
2029serveur DNS amont, ainsi "macompagnie.com 1.2.3.4" dans /etc/hosts assure que
2030les requêtes pour "macompagnie.com" retourneront toujours 1.2.3.4, même si une
2031requête au serveur DNS amont retournerait une adresse différente. Il y a une
2032exception à ceci : si le DNS amont contient un CNAME qui pointe vers un nom
2033présent dans /etc/hosts, alors la recherche du CNAME via Dnsmasq fournira
2034l'adresse DNS amont. Pour contourner cela, il suffit de mettre l'entrée
2035correspondant au CNAME dans /etc/hosts.
Simon Kelley824af852008-02-12 20:43:05 +00002036.PP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002037le système de label fonctionne comme suit : pour chaque requête DHCP, dnsmasq
2038associe un ensemble de labels obtenus à partir des lignes de la configuration
2039incluant set:<label>, y compris un pour la plage d'adresse (
Simon Kelley824af852008-02-12 20:43:05 +00002040.B dhcp-range
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002041) utilisée pour allouer l'adresse, un pour chaque entrée
Simon Kelley824af852008-02-12 20:43:05 +00002042.B dhcp-host
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002043associée (auquel est rajouté le mot-clef "known" si une entrée dhcp-host
2044coïncide).
2045
2046Le label "bootp" est associé aux requêtes BOOTP, un label dont le nom est le
2047nom de l'interface sur laquelle la requête est arrivée.
2048
2049Pour les lignes de configuration comportant des éléments tag:<label>,
2050seules seront valides celles pour lesquels tous les labels correspondants
2051seront présents. C'est typiquement le cas des lignes dhcp-options.
2052Un
Simon Kelley824af852008-02-12 20:43:05 +00002053.B dhcp-option
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002054possédant des labels sera utilisé de préférence à un
2055.B dhcp-option
2056sans label, pour peu que _tous_ les labels positionnés correspondent à l'ensemble
2057de labels décrit plus haut.
2058Le préfixe '!' sur un label est un indicateur de négation, ainsi
2059.B --dhcp=option=tag:!purple,3,1.2.3.4
2060n'envoie l'option que lorsque le label "purple" n'est pas dans la liste de
2061labels définis pour l'hôte considéré. (dans le cas de l'utilisation dans une
2062ligne de commande au lieu d'un fichier de configuration, ne pas oublier
2063d'échapper le caractère !, qui est un méta-caractère d'interpréteur de commande
2064shell).
Simon Kelley7de060b2011-08-26 17:24:52 +01002065
Simon Kelley7de060b2011-08-26 17:24:52 +01002066Lors de la sélection d'une option, une étiquette spécifiée par dhcp-range
2067passe après les autres étiquettes, ce qui permet de facilement remplacer des
2068option génériques pour des hôtes spécifiques, ainsi :
2069.B dhcp-range=set:interface1,......
2070.B dhcp-host=set:monhote,.....
2071.B dhcp-option=tag:interface1,option:nis-domain,"domaine1"
2072.B dhcp-option=tag:monhote,option:nis-domain,"domaine2"
2073va positionner l'option NIS-domain à domaine1 pour les hôtes dans la plage
2074d'adresse, sauf pour monhote pour lequel cette valeur sera domaine2.
2075
Simon Kelley824af852008-02-12 20:43:05 +00002076.PP
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002077Veuillez noter que pour
2078.B dhcp-range
2079, les éléments tag:<label> et set:<label> sont tous les deux autorisés
2080pour sélectionner la plage à utiliser selon, par exemple, le dhcp-host,
2081et pour affecter l'option envoyée, sur la base de la plage sélectionnée.
2082
2083Ce système a évolué d'un système plus ancien et aux possibilités plus limitées,
2084et pour des raisons de compatibilité "net:" peut être utilisé à la place de
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002085"tag:" et "set:" peut être omis (à l'exception de
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002086.B dhcp-host,
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002087où "net:" peut être utilisé à la place de "set:"). Pour les mêmes raisons, '#'
2088peut être utilisé à la place de '!' pour indiquer la négation.
Simon Kelley824af852008-02-12 20:43:05 +00002089.PP
2090Le serveur DHCP intégré dans Dnsmasq fonctionne également en temps que serveur
2091BOOTP, pour peu que l'adresse MAC et l'adresse IP des clients soient fournies,
2092que ce soit par le biais de l'option
2093.B dhcp-host
2094ou dans le fichier
2095.I /etc/ethers
2096, et que l'option
2097.B dhcp-range
2098soit présente afin d'activer le serveur DHCP pour un réseau donné (L'option
2099.B --bootp-dynamic
2100supprime la nécessité des associations statiques). Le paramètre
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002101"filename" (nom de fichier) de la requête BOOTP est utilisé comme label, ainsi
2102que le label "bootp", permettant un certain contrôle sur les options retournées
Simon Kelley824af852008-02-12 20:43:05 +00002103aux différentes classes d'hôtes.
2104
Simon Kelley834f36f2013-04-17 13:52:49 +01002105
2106.SH CONFIGURATION EN TEMPS QUE SERVEUR FAISANT AUTORITÉ
2107.PP
2108Configurer dnsmasq pour agir en temps que serveur DNS faisant autorité est
2109compliqué par le fait que cela implique la configuration de serveurs DNS
2110externes pour mettre en place la délégation. Seront présentés ci-dessous trois
2111scénarios de complexité croissante. Le pré-requis pour chacun de ces scénarios
2112est l'existence d'une adresse IP globalement disponible, d'un enregistrement de
2113type A ou AAAA pointant vers cette adresse, ainsi que d'un serveur DNS externe
2114capable d'effectuer la délégation de la zone en question. Pour la première
Olivier Gayotf361b392018-07-09 18:27:01 +02002115partie de ces explications, nous allons appeler serveur.exemple.com
Simon Kelley834f36f2013-04-17 13:52:49 +01002116l'enregistrement A (ou AAAA) de l'adresse globalement accessible, et
2117notre.zone.com la zone pour laquelle dnsmasq fait autorité.
2118
2119La configuration la plus simple consiste en deux lignes de configuration,
2120sous la forme :
2121.nf
2122.B auth-server=serveur.exemple.com,eth0
2123.B auth-zone=notre.zone.com,1.2.3.0/24
2124.fi
2125
2126ainsi que deux enregistrements dans le DNS externe :
2127
2128.nf
2129serveur.exemple.com A 192.0.43.10
2130notre.zone.com NS serveur.exemple.com
2131.fi
2132
2133eth0 est l'interface réseau externe sur laquelle dnsmasq écoute, dont l'adresse
2134IP (globalement accessible) est 192.0.43.10.
2135
2136A noter que l'adresse IP externe peut parfaitement être dynamique (par exemple
2137attribuée par un FAI via DHCP ou PPP). Dans ce cas, l'enregistrement de type A
2138doit être lié à cet enregistrement dynamique par l'une ou l'autre des techniques
2139habituelles de système DNS dynamique.
2140
2141Un exemple plus complexe mais en pratique plus utile correspond au cas où
2142l'adresse IP globalement accessible se trouve dans la zone pour laquelle
2143dnsmasq fait autorité, le plus souvent à la racine. Dans ce cas nous avons :
2144
2145.nf
2146.B auth-server=notre.zone.com,eth0
2147.B auth-zone=notre.zone.com,1.2.3.0/24
2148.fi
2149
2150.nf
2151notre.zone.com A 1.2.3.4
2152notre.zone.com NS our.zone.com
2153.fi
2154
2155L'enregistrement A pour notre.zone.com est dorénavant un enregistrement "colle"
Olivier Gayotf361b392018-07-09 18:27:01 +02002156qui résout le problème de poule et d'oeuf consistant à trouver l'adresse IP
Simon Kelley834f36f2013-04-17 13:52:49 +01002157du serveur de nom pour notre.zone.com lorsque l'enregistrement se trouve dans
2158la zone en question. Il s'agit du seul rôle de cet enregistrement : comme dnsmasq
2159fait désormais autorité pour notre.zone.com, il doit également fournir cet
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002160enregistrement. Si l'adresse externe est statique, cela peut être réalisé par
Simon Kelley834f36f2013-04-17 13:52:49 +01002161le biais d'une entrée dans
2162.B /etc/hosts
2163ou via un
2164.B --host-record.
2165
2166.nf
2167.B auth-server=notre.zone.com,eth0
2168.B host-record=notre.zone.com,1.2.3.4
2169.B auth-zone=notre.zone.com,1.2.3.0/24
2170.fi
2171
2172Si l'adresse externe est dynamique, l'adresse associée à notre.zone.com doit
2173être dérivée de l'interface correspondante. Cela peut être fait en utilisant
2174.B interface-name
2175Sous la forme :
2176
2177.nf
2178.B auth-server=notre.zone.com,eth0
2179.B interface-name=notre.zone.com,eth0
2180.B auth-zone=notre.zone.com,1.2.3.0/24
2181.fi
2182
2183La configuration finale rajoute à cette base un serveur DNS secondaire. Il
2184s'agit d'un autre serveur DNS qui apprend les données DNS de la zone en
2185effectuant un transfert de zone, et qui joue le rôle de serveur de secours
2186au cas où le serveur principal devenait inaccessible. La configuration
2187de ce serveur secondaire sort du cadre de cette page de manuel. Les éléments
2188de configuration à rajouter dans dnsmasq sont les simples :
2189
2190.nf
2191.B auth-sec-servers=secondaire.monfai.com
2192.fi
2193
2194et
2195
2196.nf
2197notre.zone.com NS secondaire.monfai.com
2198.fi
2199
2200L'addition d'une option auth-sec-servers active les transferts de zone dans
2201dnsmasq, ce qui permet au serveur secondaire de venir collecter les données
2202DNS. Si vous souhaitez restreindre l'accès à ces données à des hôtes
2203spécifiques, vous pouvez le faire via :
2204
2205.nf
2206.B auth-peer=<adresse IP du serveur secondaire>
2207.fi
2208
2209Dnsmasq joue le rôle de serveur faisant autorité pour les domaines in-addr.arpa
Lutz Preßler1d7e0a32014-04-07 22:06:23 +01002210et ip6.arpa associés aux sous-réseaux définis dans la déclaration de zone
Simon Kelley834f36f2013-04-17 13:52:49 +01002211auth-zone, ce qui fait que les requêtes DNS inversées (de l'adresse vers
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002212le nom) peuvent simplement être configurées avec un enregistrement NS
Simon Kelley834f36f2013-04-17 13:52:49 +01002213adéquat. Par exemple, comme nous définissons plus haut les adresses
22141.2.3.0/24 :
2215.nf
2216 3.2.1.in-addr.arpa NS notre.zone.com
2217.fi
2218
2219Veuillez noter que pour l'instant, les zones inverses ne sont pas
2220disponibles dans les transferts de zone, donc il est inutile de configurer
2221de serveur secondaire pour la résolution inverse.
2222
2223.PP
2224Lorsque dnsmasq est configuré en temps que serveur faisant autorité,
2225les données suivantes sont utilisées pour peupler la zone considérée :
2226.PP
2227.B --mx-host, --srv-host, --dns-rr, --txt-record, --naptr-record
2228, pour autant que les noms des enregistrements se trouvent dans la zone en
2229question.
2230.PP
2231.B --cname
2232pour peu que le nom soit dans le domaine. Si la cible du CNAME n'est
2233pas pleinement qualifiée, alors elle est qualifiée avec le nom de la
2234zone pour laquelle le serveur fait autorité.
2235.PP
2236Les adresses IPv4 et IPv6 extraites de /etc/hosts (et
2237.B --addn-hosts
2238) ainsi que les options
2239.B --host-record
2240fournissant des adresses situées dans l'un des sous-réseaux spécifiés dans
2241.B --auth-zone.
2242.PP
2243Adresses spécifiées par
2244.B --interface-name.
2245Dans ce cas, l'adresse n'est pas limitée à l'un des sous-réseaux donné dans
2246.B --auth-zone.
2247
2248.PP
2249Les adresses de baux DHCP, si l'adresse est située dans l'un des sous-réseaux de
2250.B --auth-zone
2251OU dans une plage DHCP construite. Dans le mode par défaut, où le bail
2252DHCP a un nom non qualifié, et éventuellement pour un nom qualifié construit
2253via
2254.B --domain
2255, alors le nom dans la zone faisant autorité est construit à partir du nom
2256non qualifié et du nom de domaine de la zone. Cela peut on non être égal
2257celui fourni par
2258.B --domain.
2259Si l'option
2260.B --dhcp-fqdn
Olivier Gayotf361b392018-07-09 18:27:01 +02002261est fournie, alors les noms pleinement qualifiés associés aux baux DHCP
Simon Kelley834f36f2013-04-17 13:52:49 +01002262sont utilisés, dès lors qu'ils correspondent au nom de domaine associé
2263à la zone.
2264
2265
Simon Kelley824af852008-02-12 20:43:05 +00002266.SH CODES DE SORTIE
2267.PP
22680 - Dnsmasq s'est correctement lancé en tâche de fond, ou alors s'est
2269correctement terminé si le lancement en tâche de fond n'a pas été activé.
2270.PP
22711 - Un problème de configuration a été détecté.
2272.PP
22732 - Un problème est survenu avec un accès réseau (adresse déjà utilisée,
2274tentative d'utiliser un port privilégié sans les permissions nécessaires).
2275.PP
22763 - Un problème est survenu avec une opération sur un système de fichier
2277(fichier ou répertoire manquant, permissions).
2278.PP
22794 - Impossibilité d'allouer de la mémoire.
2280.PP
22815 - Autre problème.
2282.PP
228311 ou plus - un code de retour différent de 0 a été reçu lors de l'appel au
2284processus "init" du script des bails. Le code de retour de Dnsmasq correspond
2285au code de retour du script plus 10.
2286
2287.SH LIMITES
2288Les valeurs par défaut pour les limites de ressources de Dnsmasq sont en général
2289conservatrices et appropriées pour des utilisations embarquées sur des machines
2290de type routeur ayant des processeurs lents et une mémoire limitée. Sur du
2291matériel plus performant, il est possible d'augmenter les limites et de gérer
2292plus de clients. Les remarques suivantes s'appliquent à Dnsmasq version 2.37 et
2293ultérieur : les versions précédentes ne montaient pas en charge aussi bien.
2294
2295.PP
2296Dnsmasq est capable de gérer le DNS et DHCP pour au moins un millier de clients.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01002297Pour cela, la durée des bail ne doit pas être très courte (moins d'une heure).
2298La valeur de
Simon Kelley824af852008-02-12 20:43:05 +00002299.B --dns-forward-max
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002300peut être augmentée : commencer par la rendre égale au nombre de clients et
Simon Kelley824af852008-02-12 20:43:05 +00002301l'augmenter si le DNS semble lent. Noter que la performance du DNS dépends
2302également de la performance des serveurs amonts. La taille du cache DNS peut-
2303être augmentée : la limite en dur est de 10000 entrées et la valeur par défaut
2304(150) est très basse. Envoyer un signal SIGUSR1 à Dnsmasq le fait émettre des
2305informations utiles pour paramétrer la taille de cache. Voir la section
2306.B NOTES
2307pour plus de détails.
2308.PP
2309Le serveur TFTP intégré est capable de plusieurs transferts de fichiers
2310simultanés : La limite absolue est liée au nombre maximal de descripteurs de
2311fichiers alloué à un processus et à la capacité de l'appel système select() à
2312gérer un grand nombre de HANDLE de fichier. Si la limite est fixée trop haut par
2313le biais de
2314.B --tftp-max
2315elle sera réduite et la limite actuelle sera enregistrée au démarrage. Il faut
2316noter que plus de transferts sont possible lorsque le même fichier est transmis
2317au lieu d'avoir un fichier différent pour chaque transfert.
2318
2319.PP
2320Il est possible d'utiliser Dnsmasq pour bloquer la publicité sur la toile
2321en associant des serveurs de publicité bien connus à l'adresse 127.0.0.1 ou
23220.0.0.0 par le biais du fichier
2323.B /etc/hosts
Olivier Gayot1f2f69d2018-07-09 18:27:02 +02002324ou d'un fichier d'hôte additionnel. Cette liste peut être très longue, Dnsmasq
Simon Kelley824af852008-02-12 20:43:05 +00002325ayant été testé avec succès avec un million de noms. Cette taille de fichier
2326nécessite un processeur à 1 Ghz et environ 60 Mo de RAM.
2327
Simon Kelley316e2732010-01-22 20:16:09 +00002328.SH INTERNATIONALISATION
2329Dnsmasq peut être compilé pour supporter l'internationalisation. Pour cela,
2330les cibles "all-i18n" et "install-i18n" doivent être données à make, en lieu
2331et place des cibles standards "all" et "install". Lorsque compilé avec le
2332support de l'internationalisation, dnsmasq supporte les noms de domaines
2333internationalisés ("internationalised domain names" ou IDN), et les messages de
2334traces ("logs") sont écrits dans la langue locale. Les noms de domaines dans
2335/etc/hosts, /etc/ethers et /etc/dnsmasq.conf contenant des caractères
2336non-ASCII seront transformés selon la représentation punycode interne
2337aux DNS. Veuillez noter que dnsmasq détermine la langue pour les messages
2338ainsi que le jeu de caractères susceptible d'être utilisé dans les fichiers
2339de configuration à partir de la variable d'environnement LANG. Ceci devrait
2340être configuré à la valeur par défaut du système par les scripts démarrant
2341dnsmasq. Lorsque les fichiers de configuration sont édités, veuillez faire
2342attention à le faire en utilisant la valeur de locale par défaut du système
2343et non une valeur spécifique à l'utilisateur, puisque dnsmasq n'a aucun
2344moyen de déterminer directement la valeur de jeu de caractère utilisé,
2345et assume de ce fait qu'il s'agit de la valeur par défaut du système.
2346
Simon Kelley824af852008-02-12 20:43:05 +00002347.SH FICHIERS
2348.IR /etc/dnsmasq.conf
2349
2350.IR /usr/local/etc/dnsmasq.conf
Simon Kelley28866e92011-02-14 20:19:14 +00002351.IR /var/run/dnsmasq/resolv.conf
2352.IR /etc/ppp/resolv.conf
2353.IR /etc/dhcpc/resolv.conf
Simon Kelley824af852008-02-12 20:43:05 +00002354
2355.IR /etc/resolv.conf
2356
2357.IR /etc/hosts
2358
2359.IR /etc/ethers
2360
2361.IR /var/lib/misc/dnsmasq.leases
2362
2363.IR /var/db/dnsmasq.leases
2364
2365.IR /var/run/dnsmasq.pid
2366.SH VOIR AUSSI
2367.BR hosts (5),
2368.BR resolver (5)
2369.SH AUTEUR
2370Cette page de manuel a été écrite par Simon Kelley <simon@thekelleys.org.uk>.
2371
2372La traduction dans un français bancal a été commise par Gildas Le Nadan
2373<3ntr0p13@gmail.com> : Toute révision/correction permettant de corriger
2374orthographe ou grammaire mais surtout les éventuelles fautes de sens sera la
2375bienvenue!