Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

dnsmasq(8)


DNSMASQ

DNSMASQ

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
FICHIER DE CONFIGURATION
NOTES
CODES DE SORTIE
LIMITES
INTERNATIONALISATION
FICHIERS
VOIR AUSSI
AUTEUR

NAME

Dnsmasq − Un serveur DHCP et cache DNS poids-plume.

SYNOPSIS

dnsmasq [OPTION]...

DESCRIPTION

dnsmasq est un serveur DHCP et DNS à faible empreinte mémoire. Il offre à la fois les services DNS et DHCP pour un réseau local (LAN).

Dnsmasq accepte les requêtes DNS et y réponds soit en utilisant un petit cache local, soit en effectuant une requête à un serveur DNS récursif externe (par exemple celui de votre fournisseur d’accès internet). Il charge le contenu du fichier /etc/hosts afin que les noms locaux n’apparaissant pas dans les DNS globaux soient tout de même résolus, et assure également la résolution de nom pour les hôtes présents dans le service DHCP.

Le serveur DHCP Dnsmasq DHCP supporte les définitions d’adresses statiques et les réseaux multiples. Il envoie par défaut un jeu raisonnable de paramètres DHCP, et peut être configuré pour envoyer n’importe quel option DHCP. Il inclut un serveur TFTP sécurisé en lecture seule permettant le démarrage via le réseau/PXE de clients DHCP et supporte également le protocole BOOTP.

Dnsmasq supporte IPv6 pour le DNS mais pas pour le DHCP.

OPTIONS

Notes : Il est possible d’utiliser des options sans leur donner de paramètre. Dans ce cas, la fonction correspondante sera désactivée. Par exemple --pid-file= (sans paramètre après le =) désactive l’écriture du fichier PID. Sur BSD, à moins que le logiciel ne soit compilé avec la bibliothèque GNU getopt, la forme longue des options ne fonctionne pas en ligne de commande; Elle est toujours supportée dans le fichier de configuration.

--test

Vérifie la syntaxe du ou des fichiers de configurations. Se termine avec le code de retour 0 si tout est OK, ou un code différent de 0 dans le cas contraire. Ne démarre pas Dnsmasq.

−h, --no-hosts

Ne pas charger les noms du fichier /etc/hosts.

−H, --addn-hosts=<fichier>

Fichiers d’h&ocirc;tes additionnels. Lire le fichier sp&eacute;cifi&eacute; en plus de /etc/hosts. Si -h est sp&eacute;cifi&eacute;, lire uniquement le fichier sp&eacute;cifi&eacute;. Cette option peut &ecirc;tre r&eacute;p&eacute;t&eacute;e afin d’ajouter d’autres fichiers. Si un r&eacute;pertoire est donn&eacute;, lis les fichiers contenus dans ce r&eacute;pertoire.

−E, --expand-hosts

Ajoute le nom de domaine aux noms simples (ne contenant pas de point dans le nom) contenus dans le fichier /etc/hosts, de la m&ecirc;me fa&ccedil;on que pour le service DHCP. Notez que cela ne s’applique pas au nom de domaine dans les CNAME, les enregistrements PTR, TXT, etc...

−T, --local-ttl=<dur&eacute;e>

Lorsque Dnsmasq r&eacute;pond avec une information provenant du fichier /etc/hosts ou avec un bail DHCP, il donne un temps de vie (time-to-live) positionn&eacute; &agrave; z&eacute;ro, afin d’indiquer &agrave; la machine faisant la requ&ecirc;te que celle-ci ne doit pas &ecirc;tre mise dans un cache. Ceci est le comportement correct dans presque toutes les situations. Cette option permet de sp&eacute;cifier la valeur de time-to-live &agrave; retourner (en secondes). Cela permet de r&eacute;duire la charge sur le serveur, mais les clients risquent d’utiliser des donn&eacute;es p&eacute;rim&eacute;es dans certains cas.

--neg-ttl=<dur&eacute;e>

Les r&eacute;ponses n&eacute;gatives provenant des serveurs amonts contiennent normalement une information de dur&eacute;e de vie (time-to-live) dans les enregistrements SOA, information dont dnsmasq se sert pour mettre la r&eacute;ponse en cache. Si la r&eacute;ponse du serveur amont omet cette information, dnsmasq ne cache pas la r&eacute;ponse. Cette option permet de doner une valeur de dur&eacute;e de vie par d&eacute;faut (en secondes) que dnsmasq utilise pour mettre les r&eacute;ponses n&eacute;gatives dans son cache, m&ecirc;me en l’absence d’enregistrement SOA.

--max-ttl=<dur&eacute;e>

D&eacute;finie la valeur de TTL maximum qui sera fournie aux clients. La valeur maximum de TTL sp&eacute;cifi&eacute;e sera fournie aux clients en remplacement de la vraie valeur de TTL si cette derni&egrave;re est sup&eacute;rieure. La valeur r&eacute;elle de TTL est cependant conserv&eacute;e dans le cache afin d’&eacute;viter de saturer les serveurs DNS en amont.

−k, --keep-in-foreground

Ne pas aller en t&acirc;che de fond au lancement, mais en dehors de cela, fonctionner normalement. Ce mode est pr&eacute;vu pour les cas o&ugrave; Dnsmasq est lanc&eacute; par daemontools ou launchd.

−d, --no-daemon

Mode debug (d&eacute;verminage) : ne pas aller en t&acirc;che de fond, ne pas &eacute;crire de fichier pid, ne pas changer d’identifiant utilisateur, g&eacute;n&eacute;rer un &eacute;tat complet du cache lors de la r&eacute;ception d’un signal SIGUSR1, envoyer les logs sur la sortie standard d’erreur ("stderr") de m&ecirc;me que dans le syslog, ne pas cr&eacute;er de processus fils pour traiter les requ&ecirc;tes TCP.

−q, --log-queries

Enregistrer les r&eacute;sultats des requ&ecirc;tes DNS trait&eacute;es par Dnsmasq dans un fichier de traces ("logs"). Active la g&eacute;n&eacute;ration d’un &eacute;tat complet du cache lors de la r&eacute;ception d’un signal SIGUSR1.

−8, --log-facility=<facility>

D&eacute;finit la "facility" dans laquelle Dnsmasq enverra ses entr&eacute;es syslog, par d&eacute;faut DAEMON ou LOCAL0 si le mode debug est activ&eacute;. Si la "facility" contient au moins un caract&egrave;re "/", alors Dnsmasq consid&egrave;re qu’il s’agit d’un fichier et enverra les logs dans le fichier correspondant &agrave; la place du syslog. Si la "facility" est ’-’, alors dnsmasq envoie les logs sur la sortie d’erreur standard stderr. (Les erreurs lors de la lecture de la configuration vont toujours vers le syslog, mais tous les messages post&eacute;rieurs &agrave; un d&eacute;marrage r&eacute;ussi seront exclusivement envoy&eacute;s vers le fichier de logs). Lorsque Dnsmasq est configur&eacute; pour envoyer ses traces vers un fichier, la r&eacute;ception d’un signal SIGUSR2 entraine la fermeture et r&eacute;ouverture du fichier. Cela permet la rotation de fichiers de traces sans n&eacute;cessiter l’arr&ecirc;t de Dnsmasq.

--log-async[=<lignes>]

Permet l’envoi de traces de mani&egrave;re asynchrone, et de mani&egrave;re optionnelle, le nombre de lignes devant &ecirc;tre mises dans la file d’attente par Dnsmasq lorsque l’&eacute;criture vers le syslog est lente. Dnsmasq peut envoyer ses logs de mani&egrave;re asynchrone : cela lui permet de continuer &agrave; fonctionner sans &ecirc;tre bloqu&eacute; par le syslog, et permet &agrave; syslog d’utiliser Dnsmasq pour les r&eacute;solutions DNS sans risque d’interblocage. Si la file d’attente devient pleine, Dnsmasq loggera le d&eacute;passement de file et le nombre de messages perdus. La longueur par d&eacute;faut de la file d’attente est de 5 et une valeur saine sera comprise entre 5 et 25, avec une limite maximum impos&eacute;e de 100.

−x, --pid-file=<chemin>

Sp&eacute;cifie un fichier dans lequel stocker le num&eacute;ro de processus (pid). La valeur par d&eacute;faut est /var/run/dnsmasq.pid.

−u, --user=<nom d’utilisateur>

Sp&eacute;cifie l’identit&eacute; (nom d’utilisateur) prise par Dnsmasq apr&egrave;s le d&eacute;marrage. Dnsmasq doit normalement &ecirc;tre d&eacute;marr&eacute; en temps que root ("super-utilisateur"), mais abandonne ses privil&egrave;ges apr&egrave;s le d&eacute;marrage en changeant d’identit&eacute;. Normalement cet utilisateur est l’utilisateur nobody ("personne"), mais il est possible d’en d&eacute;finir un autre par le biais de ce param&egrave;tre.

−g, --group=<nom de groupe>

Sp&eacute;cifie le groupe sous lequel Dnsmasq s’ex&eacute;cute. Par d&eacute;faut, il s’agit du groupe "dip", afin de faciliter l’acc&egrave;s au fichier /etc/ppp/resolv.conf qui n’est en g&eacute;n&eacute;ral pas en lecture par tout le monde.

−v, --version

Imprime le num&eacute;ro de version.

−p, --port=<port>

Ecoute sur le port num&eacute;ro <port> au lieu du port DNS standard (53). Param&eacute;trer cette valeur &agrave; z&eacute;ro d&eacute;sactive compl&egrave;tement la fonction DNS pour ne laisser actif que le DHCP ou le TFTP.

−P, --edns-packet-max=<taille>

Sp&eacute;cifie la taille maximum de paquet UDP EDNS.0 support&eacute; par le relai DNS. Le d&eacute;faut est de 4096, qui est la valeur recommand&eacute;e dans la RFC5625.

−Q, --query-port=<num&eacute;ro de port>

Envoie et &eacute;coute les requ&ecirc;tes DNS sortantes depuis le port UDP sp&eacute;cifi&eacute; par <num&eacute;ro de port>, et non sur un port al&eacute;atoire. NOTE : Cette option rends dnsmasq moins s&uuml;r contre les attaques par usurpation DNS ("DNS spoofing"), mais cela peut permettre d’utiliser moins de ressources et d’&ecirc;tre plus rapide. Donner une valeur de z&eacute;ro &agrave; cette option restaure le comportement par d&eacute;faut pr&eacute;sent dans les versions de dnsmasq inf&eacute;rieures &agrave; 2.43 qui consiste &agrave; n’allouer qu’un seul port allou&eacute; par le syst&egrave;me d’exploitation.

--min-port=<port>

Ne pas utiliser de port dont le num&eacute;ro est inf&eacute;rieur &agrave; la valeur donn&eacute;e en param&egrave;tre pour les requ&ecirc;tes DNS sortantes. Dnsmasq choisis un port source al&eacute;atoire pour les requ&ecirc;tes sortantes : lorsque cette option est fournie, les ports utilis&eacute;s seront toujours au dessus de la valeur sp&eacute;cifi&eacute;e. Utile pour des syst&egrave;mes derri&egrave;re des dispositifs garde-barri&egrave;res ("firewalls").

−i, --interface=<nom d’interface>

N’&eacute;couter que sur l’interface r&eacute;seau sp&eacute;cifi&eacute;e. Dnsmasq aujoute automatiquement l’interface locale ("loopback") &agrave; la liste des interfaces lorsque l’option --interface est utilis&eacute;e. Si aucune option --interface ou --listen-address n’est donn&eacute;e, Dnsmasq &eacute;coutera sur toutes les interfaces disponibles sauf celle(s) sp&eacute;cifi&eacute;e(s) par l’option --except-interface. Les alias d’interfaces IP (e-g "eth1:0") ne peuvent &ecirc;tre utilis&eacute;s ni avec --interface ni −-except-interface. Utiliser l’option --listen-address &agrave; la place.

−I, --except-interface=<interface name>

Ne pas &eacute;couter sur l’interface sp&eacute;cifi&eacute;e. Notez que l’ordre dans lesquelles les options −-listen-address , --interface et --except-interface sont fournies n’importe pas, et que l’option --except-interface l’emporte toujours sur les autres.

−2, --no-dhcp-interface=<nom d’interface>

Ne pas fournir de service DHCP sur l’interface sp&eacute;cifi&eacute;e, mais fournir tout de m&ecirc;me le service DNS.

−a, --listen-address=<adresse IP>

Ecouter sur la ou les adresse(s) IP sp&eacute;cifi&eacute;e(s). Les options −-interface et −-listen-address peuvent-&ecirc;tre sp&eacute;cifi&eacute;es simultan&eacute;ment, auquel cas un jeu d’interfaces et d’adresses seront utilis&eacute;es. Notez que si aucune option −-interface n’est donn&eacute;e alors qu’une option −-listen-address l’est, Dnsmasq n’&eacute;coutera pas automatiquement sur l’interface locale ("loopback"). Pour activer l’&eacute;coute sur l’interface locale, il est alors n&eacute;cessaire de fournir explicitement son adresse IP, 127.0.0.1 via l’option −-listen-address.

−z, --bind-interfaces

Sur les syst&egrave;mes qui le supporte, Dnsmasq s’associe avec l’interface joker ("wildcard"), m&ecirc;me lorsqu’il ne doit &eacute;couter que sur certaines interfaces. Par la suite, il rejette les requ&ecirc;tes auxquelles il ne doit pas r&eacute;pondre. Cette situation pr&eacute;sente l’avantage de fonctionner m&ecirc;me lorsque les interfaces vont et viennent ou changent d’adresses. L’option --bind-interfaces force Dnsmasq &agrave; ne r&eacute;ellement s’associer qu’avec les interfaces sur lesquelles il doit &eacute;couter. L’un des seuls cas o&ugrave; cette option est utile est celui o&ugrave; un autre serveur de nom (ou une autre instance de Dnsmasq) tourne sur la m&ecirc;me machine. Utiliser cette option permet &eacute;galement d’avoir plusieurs instances de Dnsmasq fournissant un service DHCP sur la m&ecirc;me machine.

−y, --localise-queries

Retourne des r&eacute;ponses aux requ&ecirc;tes DNS d&eacute;pendantes de l’interface sur laquelle la requ&ecirc;te a &eacute;t&eacute; re&ccedil;ue, &agrave; partir du fichier /etc/hosts. Si un nom dans /etc/hosts a plus d’une adresse associ&eacute;e avec lui, et qu’une des adresses au moins est dans le m&ecirc;me sous-r&eacute;seau que l’interface sur laquelle la requ&ecirc;te a &eacute;t&eacute; re&ccedil;ue, alors ne retourne que la(les) adresse(s) du sous-r&eacute;seau consid&eacute;r&eacute;. Cela permet d’avoir dans /etc/hosts un serveur avec de multiples adresses, une pour chacune de ses interfaces, et de fournir aux h&ocirc;tes l’adresse correcte (bas&eacute;e sur le r&eacute;seau auquel ils sont attach&eacute;s). Cette possibilit&eacute; est actuellement limit&eacute;e &agrave; IPv4.

−b, --bogus-priv

Fausse r&eacute;solution inverse pour les r&eacute;seaux priv&eacute;s. Toutes les requ&ecirc;tes DNS inverses pour des adresses IP priv&eacute;es (ie 192.168.x.x, etc...) qui ne sont pas trouv&eacute;es dans /etc/hosts ou dans le fichier de baux DHCP se voient retourn&eacute;es une r&eacute;ponse "pas de tel domaine" ("no such domain") au lieu d’&ecirc;tre transmises aux serveurs de nom amont ("upstream server").

−V, --alias=[<ancienne IP>]|[<IP de d&eacute;but>-<IP de
fin>],<nouvelle IP>[,<masque>]

Modifie les adresses IPv4 retourn&eacute;es par les serveurs de nom amont; <ancienne IP> est remplac&eacute;e par <nouvelle IP>. Si le <masque> optionnel est fourni, alors toute adresse correspondant &agrave; l’adresse <ancienne IP>/<masque> sera r&eacute;&eacute;crite. Ainsi par exemple --alias=1.2.3.0,6.7.8.0,255.255.255.0 modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67. Cette fonctionnalit&eacute; correspond &agrave; ce que les routeurs Cisco PIX appellent "bidouillage DNS" ("DNS doctoring"). Si l’ancienne IP est donn&eacute;e sous la forme d’une gamme d’adresses, alors seules les adresses dans cette gamme seront r&eacute;ecrites, et non le sous-r&eacute;seau dans son ensemble. Ainsi, --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 fait correspondre 192.168.0.10->192.168.0.40 &agrave; 10.0.0.10->10.0.0.40

−B, --bogus-nxdomain=<adresse IP>

Transforme les r&eacute;ponses contenant l’adresse IP fournie en r&eacute;ponses "pas de tel domaine" ("no such domain"). Ceci a pour but de neutraliser la modification sournoise mise en place par Verisign en septembre 2003, lorsqu’ils ont commenc&eacute; &agrave; retourner l’adresse d’un serveur web publicitaire en r&eacute;ponse aux requ&ecirc;tes pour les noms de domaines non enregistr&eacute;s, au lieu de la r&eacute;ponse correcte "NXDOMAIN". Cette option demande &agrave; Dnsmasq de retourner la r&eacute;ponse correcte lorsqu’il constate ce comportement. L’adresse retourn&eacute;e par Verisign en septembre 2003 est 64.94.110.11.

−f, --filterwin2k

Les derni&egrave;res versions de windows font des requ&ecirc;tes DNS p&eacute;riodiques auxquelles non seulement les serveurs DNS publics ne peuvent donner de r&eacute;ponse, mais qui, de surcro&icirc;t, peuvent poser des probl&egrave;mes en d&eacute;clenchant des connexions intempestives pour des liens r&eacute;seaux avec des connexions "&agrave; la demande". Fournir cette option active le filtrage des requ&ecirc;tes de ce type. Les requ&ecirc;tes bloqu&eacute;es sont les requ&ecirc;tes pour les entr&eacute;es de type SOA ou SRV, ainsi que les requ&ecirc;tes de type ANY avec des noms poss&eacute;dant des caract&egrave;res sous-lign&eacute;s (requ&ecirc;tes pour des serveurs LDAP).

−r, --resolv-file=<fichier>

Lis les adresses des serveurs de nom amont dans le fichier de nom <fichier>, au lieu du fichier /etc/resolv.conf. Pour le format de ce fichier, voir dans le manuel pour resolv.conf(5) les entr&eacute;es correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire plusieurs fichiers de type resolv.conf, le premier fichier sp&eacute;cifi&eacute; remplace le fichier par d&eacute;faut, le contenu des suivants est rajout&eacute; dans la liste des fichiers &agrave; consulter. Seul le fichier ayant la derni&egrave;re date de modification sera charg&eacute; en m&eacute;moire.

−R, --no-resolv

Ne pas lire le contenu du fichier /etc/resolv.conf. N’obtenir l’adresse des serveurs de nom amont que depuis la ligne de commande ou le fichier de configuration de Dnsmasq.

−1, --enable-dbus

Autoriser la mise &agrave; jour de la configuration de Dnsmasq par le biais d’appel de m&eacute;thodes DBus. Il est possible par ce biais de mettre &agrave; jour l’adresse de serveurs DNS amont (et les domaines correspondants) et de vider le cache. Cette option n&eacute;cessite que Dnsmasq soit compil&eacute; avec le support DBus.

−o, --strict-order

Par d&eacute;faut, Dnsmasq envoie les requ&ecirc;tes &agrave; n’importe lequel des serveurs amonts dont il a connaissance tout en essayant de favoriser les serveurs qu’il sait fonctionner. Cette option force Dnsmasq &agrave; essayer d’interroger, pour chaque requ&ecirc;te, les serveurs DNS dans leur ordre d’apparition dans le fichier /etc/resolv.conf.

--all-servers

Par d&eacute;faut, lorsque dnsmasq a plus d’un serveur amont disponible, il n’envoie les requ&ecirc;tes qu’&agrave; un seul serveur. Sp&eacute;cifier cette option force dnsmasq &agrave; effectuer ses requ&ecirc;tes &agrave; tous les serveurs disponibles. Le r&eacute;sultat renvoy&eacute; au client sera celui fournit par le premier serveur ayant r&eacute;pondu.

--stop-dns-rebind

Rejete (et enregistre dans le journal d’activit&eacute;) les adresses dans la gamme d’adresses IP priv&eacute;e (au sens RFC1918) qui pourraient &ecirc;tre renvoy&eacute;es par les serveurs amonts suite &agrave; une r&eacute;solution de nom. Cela bloque les attaques cherchant &agrave; d&eacute;tourner de leur usage les logiciels de navigation web (’browser’) en s’en servant pour d&eacute;couvrir les machines situ&eacute;es sur le r&eacute;seau local.

--rebind-localhost-ok

Exclue 127.0.0/8 des v&eacute;rifications de r&eacute;association DNS. Cette gamme d’adresses est retourn&eacute;e par les serveurs Realtime Blackhole (RBL, utilis&eacute;s dans la lutte contre le spam), la bloquer peut entra&icirc;ner des disfonctionnements de ces services.

--rebind-domain-ok=[<domaine>]|[[/<domaine>/[<domaine>/]

Ne pas d&eacute;tecter ni bloquer les actions de type dns-rebind pour ces domaines. Cette option peut prendre comme valeur soit un nom de domaine soit plusieurs noms de domains entour&eacute;s par des ’/’, selon une syntaxe similaire &agrave; l’option --server, c-&agrave;-d : --rebind-domain-ok=/domaine1/domaine2/domaine3/

−n, --no-poll

Ne pas v&eacute;rifier r&eacute;guli&egrave;rement si le fichier /etc/resolv.conf a &eacute;t&eacute; modifi&eacute;.

--clear-on-reload

Lorsque le fichier /etc/resolv.conf est relu, vider le cache DNS. Cela est utile si les nouveaux serveurs sont susceptibles d’avoir des donn&eacute;es diff&eacute;rentes de celles stock&eacute;es dans le cache.

−D, --domain-needed

Indique &agrave; Dnsmasq de ne jamais transmettre en amont de requ&ecirc;tes pour des noms simples, ne comprenant donc ni points ni nom de domaine. Si un nom n’est pas dans /etc/hosts ou dans la liste des baux DHCP, alors une r&eacute;ponse de type "non trouv&eacute;" est renvoy&eacute;e.

−S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse
IP>[#<port>][@<Adresse IP source>|<interface>[#<port>]]]

Sp&eacute;cifie directement l’adresse IP d’un serveur de nom amont. Cette option ne supprime pas la lecture du fichier /etc/resolv.conf : utiliser pour cela l’option -R . Si un ou plusieurs nom(s) de domaine(s) optionnel(s) sont fournis, ce serveur sera uniquement utilis&eacute; uniquement pour ce(s) domaine(s), et toute requ&ecirc;te concernant ce(s) domaine(s) sera adress&eacute;e uniquement &agrave; ce serveur. Cette option est destin&eacute;e aux serveurs de nom priv&eacute;s : si vous avez un serveur de nom sur votre r&eacute;seau ayant pour adresse IP 192.168.1.1 et effectuant la r&eacute;solution des noms de la forme xxx.internal.thekelleys.org.uk, alors -S /internal.thekelleys.org.uk/192.168.1.1 enverra toutes les requ&ecirc;tes pour les machines internes vers ce serveur de nom, alors que toutes les autres requ&ecirc;tes seront adress&eacute;es aux serveurs indiqu&eacute;s dans le fichier /etc/resolv.conf. Une sp&eacute;cification de nom de domaine vide, // poss&egrave;de le sens particulier de "pour les noms non qualifi&eacute;s uniquement", c’est-&agrave;-dire les noms ne poss&eacute;dant pas de points. Un port non standard peut &ecirc;tre rajout&eacute; &agrave; la suite des adresses IP en utilisant le caract&egrave;re #. Plus d’une option -S est autoris&eacute;e, en r&eacute;p&eacute;tant les domaines et adresses IP comme requis.

Le domaine le plus sp&eacute;cifique l’emporte sur le domaine le moins sp&eacute;cifique, ainsi : --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 enverra les requ&ecirc;tes pour *.google.com &agrave; 1.2.3.4, &agrave; l’exception des requ&ecirc;tes *www.google.com, qui seront envoy&eacute;es &agrave; 2.3.4.5.

L’adresse sp&eacute;ciale ’#’ signifie "utiliser les serveurs standards", ainsi --server=/google.com/1.2.3.4 --server=/www.google.com/# enverra les requ&ecirc;tes pour *.google.com &agrave; 1.2.3.4, &agrave; l’exception des requ&ecirc;tes pour *www.google.com qui seront envoy&eacute;es comme d’habitude (c-&agrave;-d aux serveurs d&eacute;finis par d&eacute;faut).

Il est &eacute;galement permis de donner une option -S avec un nom de domaine mais sans adresse IP; Cela informe Dnsmasq que le domaine est local et qu’il doit r&eacute;pondre aux requ&ecirc;tes le concernant depuis les entr&eacute;es contenues dans le fichier /etc/hosts ou les baux DHCP, et ne doit en aucun cas transmettre les requ&ecirc;tes aux serveurs amonts. local est synonyme de server ("serveur") afin de rendre plus claire l’utilisation de cette option pour cet usage particulier.

La cha&icirc;ne de caract&egrave;res optionnelle suivant le caract&egrave;re @ permet de d&eacute;finir la source que Dnsmasq doit utiliser pour les r&eacute;ponses &agrave; ce serveur de nom. Il doit s’agir d’une des adresses IP appartenant &agrave; la machine sur laquelle tourne Dnsmasq ou sinon la ligne sera ignor&eacute;e et une erreur sera consign&eacute;e dans le journal des &eacute;v&eacute;nements, ou alors d’un nom d’interface. Si un nom d’interface est donn&eacute;, alors les requ&ecirc;tes vers le serveur de nom seront envoy&eacute;es depuis cette interface; si une adresse ip est donn&eacute;e, alors l’adresse source de la requ&ecirc;te sera l’adresse en question. L’option query-port est ignor&eacute;e pour tous les serveurs ayant une adresse source sp&eacute;cifi&eacute;e, mais il est possible de la donner directement dans la sp&eacute;cification de l’adresse source. Forcer les requ&ecirc;tes &agrave; &ecirc;tre &eacute;mises depuis une interface sp&eacute;cifique n’est pas possible sur toutes les plateformes support&eacute;es par dnsmasq.

−A, --address=/<domaine>/[domaine/]<adresse IP>

Sp&eacute;cifie une adresse IP &agrave; retourner pour toute requ&ecirc;te pour les domaines fournis en option. Les requ&ecirc;tes pour ce(s) domaine(s) ne sont jamais transmises aux serveurs amonts et re&ccedil;oivent comme r&eacute;ponse l’adresse IP sp&eacute;cifi&eacute;e qui peut &ecirc;tre une adresse IPv4 ou IPv6. Pour donner &agrave; la fois une adresse IPv4 et une adresse IPv6 pour un domaine, utiliser plusieurs options -A. Il faut noter que le contenu du fichier /etc/hosts et de celui des baux DHCP supplante ceci pour des noms individuels. Une utilisation courante de cette option est de rediriger la totalit&eacute; du domaine doubleclick.net vers un serveur web local afin d’&eacute;viter les banni&egrave;res publicitaires. La sp&eacute;cification de domaine fonctionne de la m&ecirc;me fa&ccedil;on que --server, avec la caract&eacute;ristique suppl&eacute;mentaire que /#/ co&iuml;ncide avec tout domaine. Ainsi, --address=/#/1.2.3.4 retournera 1.2.3.4 pour toute requ&ecirc;te n’ayant de r&eacute;ponse ni dans /etc/hosts, ni dans les baux DHCP, et n’&eacute;tant pas transmise &agrave; un serveur sp&eacute;cifique par le biais d’une directive --server.

−m, --mx-host=<nom de l’h&ocirc;te>[[,<nom du MX>],<pr&eacute;ference>]

Sp&eacute;cifie un enregistrement de type MX pour <nom de l’h&ocirc;te> retournant le nom donn&eacute; dans <nom du MX> (s’il est pr&eacute;sent), ou sinon le nom sp&eacute;cifi&eacute; dans l’option --mx-target si elle est pr&eacute;sente. Sinon retourne le nom de la machine sur laquelle Dnsmasq tourne. La valeur par d&eacute;faut (sp&eacute;cifi&eacute;e dans l’option --mx-target ) est utile dans un r&eacute;seau local pour rediriger les courriers &eacute;lectroniques vers un serveur central. La valeur de pr&eacute;f&eacute;rence est optionnelle et vaut par d&eacute;faut 1 si elle n’est pas sp&eacute;cifi&eacute;e. Plus d’une entr&eacute;e MX peut &ecirc;tre fournie pour un h&ocirc;te donn&eacute;.

−t, --mx-target=<nom d’h&ocirc;te>

Sp&eacute;cifie la r&eacute;ponse par d&eacute;faut fournie par Dnsmasq pour les requ&ecirc;tes sur des enregistrements de type MX. Voir --mx-host. Si --mx-target est donn&eacute; mais pas de --mx-host, alors Dnsmasq retourne comme r&eacute;ponse un enregistrement MX contenant le nom d’h&ocirc;te sp&eacute;cifi&eacute; dans l’option --mx-target pour toute requ&ecirc;te concernant le MX de la machine sur laquelle tourne Dnsmasq.

−e, --selfmx

D&eacute;finit, pour toutes les machines locales, un MX correspondant &agrave; l’h&ocirc;te consid&eacute;r&eacute;. Les machines locales sont celles d&eacute;finies dans le fichier /etc/hosts ou dans un bail DHCP.

−L, --localmx

D&eacute;finit, pour toutes les machines locales, un enregistrement MX pointant sur l’h&ocirc;te sp&eacute;cifi&eacute; par mx-target (ou la machine sur laquelle Dnsmasq tourne). Les machines locales sont celles d&eacute;finies dans le fichier /etc/hosts ou dans un bail DHCP.

−W
--srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorit&eacute;>[,<poids>]]]]

Sp&eacute;cifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de d&eacute;tails. Si le champs <domaine> n’est pas fourni, prends par d&eacute;faut la valeur fournie dans l’option --domain. La valeur par d&eacute;faut pour le domaine est vide et le port par d&eacute;faut est 1, alors que les poids et priorit&eacute;s par d&eacute;faut sont 0. Attention lorsque vous transposez des valeurs issues d’une configuration BIND : les ports, poids et priorit&eacute;s sont dans un ordre diff&eacute;rents. Pour un service/domaine donn&eacute;, plus d’un enregistrement SRV est autoris&eacute; et tous les enregistrements qui co&iuml;ncident sont retourn&eacute;s dans la r&eacute;ponse.

−Y, --txt-record=<nom>[[,<texte>],<texte>]

D&eacute;finit un enregistrement DNS de type TXT. La valeur de l’enregistrement TXT est un ensemble de cha&icirc;nes de caract&egrave;res, donc un nombre variable de cha&icirc;nes de caract&egrave;res peuvent &ecirc;tre sp&eacute;cifi&eacute;es, s&eacute;par&eacute;es par des virgules.

--ptr-record=<nom>[,<cible>]

D&eacute;finit un enregistrement DNS de type PTR.

--naptr-record=<nom>,<ordre>,<pr&eacute;f&eacute;rence>,<drapeaux>,<service>,<expr.
r&eacute;guli&egrave;re>[,<remplacement>]

Retourne un enregistrement de type NAPTR, tel que sp&eacute;cifi&eacute; dans le RFC3403.

--cname=<cname>,<cible>

Retourne un enregistrement de type CNAME qui indique que <cname> est en r&eacute;alit&eacute; <cible>. Il existe des contraintes significatives sur la valeur de cible; il doit s’agir d’un nom DNS qui est connu de dnsmasq via /etc/hosts (ou un fichier h&ocirc;tes additionnel) ou via DHCP. Si une cible ne satisfait pas ces crit&egrave;res, le CNAME est ignor&eacute;. Le CNAME doit &ecirc;tre unique, mais il est autoris&eacute; d’avoir plus d’un CNAME pointant vers la m&ecirc;me cible.

--interface-name=<nom>,<interface>

D&eacute;finit un entregistrement DNS associant le nom avec l’adresse primaire sur l’interface donn&eacute;e en argument. Cette option sp&eacute;cifie un enregistrement de type A pour le nom donn&eacute; en argument de la m&ecirc;me fa&ccedil;on que s’il &eacute;tait d&eacute;fini par une ligne de /etc/hosts, sauf que l’adresse n’est pas constante mais d&eacute;pendante de l’interface d&eacute;finie. Si l’interface est inactive, non existante ou non configur&eacute;e, une r&eacute;ponse vide est fournie. Un enregistrement inverse (PTR) est &eacute;galement cr&eacute;&eacute; par cette option, associant l’adresse de l’interface avec le nom. Plus d’un nom peut &ecirc;tre associ&eacute; &agrave; une interface donn&eacute;e en r&eacute;p&eacute;tant cette option plusieurs fois; dans ce cas, l’enregistrement inverse pointe vers le nom fourni dans la premi&egrave;re instance de cette option.

−c, --cache-size=<taille>

D&eacute;finit la taille du cache de Dnsmasq. La valeur par d&eacute;faut est de 150 noms. D&eacute;finir une valeur de z&eacute;ro d&eacute;sactive le cache.

−N, --no-negcache

D&eacute;sactive le "cache n&eacute;gatif". Le "cache n&eacute;gatif" permet &agrave; Dnsmasq de se souvenir des r&eacute;ponses de type "no such domain" fournies par les serveurs DNS en amont et de fournir les r&eacute;ponses sans avoir &agrave; re-transmettre les requ&ecirc;tes aux serveurs amont.

−0, --dns-forward-max=<nombre de requ&ecirc;tes>

D&eacute;finit le nombre maximum de requ&ecirc;tes DNS simultan&eacute;es. La valeur par d&eacute;faut est 150, ce qui devrait &ecirc;tre suffisant dans la majorit&eacute; des configurations. La seule situation identifi&eacute;e dans laquelle cette valeur n&eacute;cessite d’&ecirc;tre augment&eacute;e est lorsqu’un serveur web a la r&eacute;solution de nom activ&eacute;e pour l’enregistrement de son journal des requ&ecirc;tes, ce qui peut g&eacute;n&eacute;rer un nombre important de requ&ecirc;tes simultan&eacute;es.

−F,
--dhcp-range=[interface:<interface>,][tag:<label>[,tag:<label>],][set:<label],]<adresse
de d&eacute;but>,<adresse de fin>[,<masque de
r&eacute;seau>[,<broadcast>]][,<dur&eacute;e de bail>]

Active le serveur DHCP. Les adresses seront donn&eacute;es dans la plage comprise entre <adresse de d&eacute;but> et <adresse de fin> et &agrave; partir des adresses d&eacute;finies statiquement dans l’option dhcp-host. Si une dur&eacute;e de bail est donn&eacute;e, alors les baux seront donn&eacute;s pour cette dur&eacute;e. La dur&eacute;e de bail est donn&eacute;e en secondes, en minutes (exemple : 45m), en heures (exemple : 1h) ou &ecirc;tre la chaine de caract&egrave;re "infinite" pour une dur&eacute;e ind&eacute;termin&eacute;e. Si aucune valeur n’est donn&eacute;e, une dur&eacute;e de bail par d&eacute;faut de une heure est appliqu&eacute;e. La valeur minimum pour un bail DHCP est de 2 minutes. Cette option peut &ecirc;tre r&eacute;p&eacute;t&eacute;e, avec diff&eacute;rentes adresses, pour activer le service DHCP sur plus d’un r&eacute;seau. Pour des r&eacute;seaux directement connect&eacute;s (c’est-&agrave;-dire des r&eacute;seaux dans lesquels la machine sur laquelle tourne Dnsmasq poss&egrave;de une interface), le masque de r&eacute;seau est optionnel. Il est par contre requis pour les r&eacute;seaux pour lesquels le service DHCP se fait via un relais DHCP ("relay agent"). L’adresse de broadcast est toujours optionnelle.

Il est toujours possible d’avoir plus d’une plage DHCP pour un m&ecirc;me sous-r&eacute;seau. L’identifiant de label optionnel set:<label> fournie une &eacute;tiquette alphanum&eacute;rique qui identifie ce r&eacute;seau, afin de permettre la fourniture d’options DHCP sp&eacute;cifiques &agrave; chaque r&eacute;seau. Lorsque pr&eacute;fix&eacute; par ’tag:’, la signification change, et au lieu de d&eacute;finir un label, il d&eacute;finit le label pour laquelle la r&egrave;gle s’applique. Un seul label peut- &ecirc;tre d&eacute;fini mais plusieurs labels peuvent co&iuml;ncider.

L’adresse de fin peut &ecirc;tre remplac&eacute;e par le mot-clef static ("statique") qui indique &agrave; Dnsmasq d’activer le service DHCP pour le r&eacute;seau sp&eacute;cifi&eacute;, mais de ne pas activer l’allocation dynamique d’adresses IP : Seuls les h&ocirc;tes poss&eacute;dant des adresses IP statiques fournies via dhcp-host ou pr&eacute;sentes dans le fichier /etc/ethers seront alors servis par le DHCP.

L’adresse de fin peut-&ecirc;tre remplac&eacute;e par le mot-clef proxy , auquel cas Dnsmasq fournira un service de DHCP proxy pour le sous-r&eacute;seau sp&eacute;cifi&eacute;. (voir pxe-prompt et pxe-service pour plus de d&eacute;tails).

La section interface:<nom d’interface> n’est normalement pas utilis&eacute;e. Se r&eacute;f&eacute;rer aux indications de la section NOTES pour plus de d&eacute;tail &agrave; ce sujet.

−G, --dhcp-host=[<adresse mat&eacute;rielle>][,id:<identifiant
client>|*][,set:<label>][,<adresse IP>][,<nom
d’h&ocirc;te>][,<dur&eacute;e de bail>][,ignore]

Sp&eacute;cifie les param&egrave;tres DHCP relatifs &agrave; un h&ocirc;te. Cela permet &agrave; une machine poss&eacute;dant une adresse mat&eacute;rielle sp&eacute;cifique de se voir toujours allou&eacute;e les m&ecirc;mes nom d’h&ocirc;te, adresse IP et dur&eacute;e de bail. Un nom d’h&ocirc;te sp&eacute;cifi&eacute; comme ceci remplace le nom fourni par le client DHCP de la machine h&ocirc;te. Il est &eacute;galement possible d’omettre l’adresse mat&eacute;rielle et d’inclure le nom d’h&ocirc;te, auquel cas l’adresse IP et la dur&eacute;e de bail s’appliqueront &agrave; toute machine se r&eacute;clamant de ce nom. Par exemple --dhcp-host=00:20:e0:3b:13:af,wap,infinite sp&eacute;cifie &agrave; Dnsmasq de fournir &agrave; la machine d’adresse mat&eacute;rielle 00:20:e0:3b:13:af le nom, et un bail de dur&eacute;e ind&eacute;termin&eacute;e.

--dhcp-host=lap,192.168.0.199 sp&eacute;cifie &agrave; Dnsmasq d’allouer toujours &agrave; la machine portant le nom lap l’adresse IP 192.168.0.199.

Les adresses allou&eacute;es de la sorte ne sont pas contraintes &agrave; une plage d’adresse sp&eacute;cifi&eacute;e par une option --dhcp-range, mais elles se trouver dans le m&ecirc;me sous-r&eacute;seau qu’une plage dhcp-range valide. Pour les sous-r&eacute;seaux qui n’ont pas besoin d’adresses dynamiquement allou&eacute;es, utiliser le mot-clef "static" dans la d&eacute;claration de plage d’adresses dhcp-range.

Il est possible d’utiliser des identifiants clients plut&ocirc;t que des adresses mat&eacute;rielles pour identifier les h&ocirc;tes, en pr&eacute;fixant par ceux-ci par ’id:’. Ainsi, --dhcp-host=id:01:02:03:04,..... r&eacute;f&egrave;re &agrave; l’h&ocirc;te d’identifiant 01:02:03:04. Il est &eacute;galement possible de sp&eacute;cifier l’identifiant client sous la forme d’une cha&icirc;ne de caract&egrave;res, comme ceci : --dhcp-host=id:identifiantclientsousformedechaine,.....

L’option sp&eacute;ciale id:* signifie : "ignorer tout identifiant client et n’utiliser que l’adresse mat&eacute;rielle". Cela est utile lorsqu’un client pr&eacute;sente un identifiant client mais pas les autres.

Si un nom appara&icirc;t dans /etc/hosts, l’adresse associ&eacute;e peut &ecirc;tre allou&eacute;e &agrave; un bail DHCP mais seulement si une option --dhcp-host sp&eacute;cifiant le nom existe par ailleurs. Seul un nom d’h&ocirc;te peut-&ecirc;tre donn&eacute; dans une option dhcp-host , mais les alias sont possibles au travers de l’utilisation des CNAMEs. (Voir --cname ). Le mot clef "ignore" ("ignorer") indique &agrave; Dnsmasq de ne jamais fournir de bail DHCP &agrave; une machine. La machine peut &ecirc;tre sp&eacute;cifi&eacute;e par son adresse mat&eacute;rielle, son identifiant client ou son nom d’h&ocirc;te. Par exemple --dhcp-host=00:20:e0:3b:13:af,ignore Cela est utile lorsqu’un autre serveur DHCP sur le r&eacute;seau doit &ecirc;tre utilis&eacute; par certaines machines.

Le param&egrave;tre set:<identifiant r&eacute;seau> permet de d&eacute;finir un identifiant de r&eacute;seau lorsque l’option dhcp-host est utilis&eacute;e. Cela peut servir &agrave; s&eacute;lectionner des options DHCP juste pour cet h&ocirc;te. Plus d’un label peut &ecirc;tre fourni dans une directive dhcp-host (et dans cette seule directive). Lorsqu’une machine co&iuml;ncide avec une directive dhcp-host (ou une impliqu&eacute;e par /etc/ethers), alors le label r&eacute;serv&eacute; "known" ("connu") est associ&eacute;. Cela permet &agrave; Dnsmasq d’&ecirc;tre configur&eacute; pour ignorer les requ&ecirc;tes issus de machines inconnue
par le biais de --dhcp-ignore=tag:!known.

Les adresses ethernet (mais pas les identifiants clients) peuvent &ecirc;tre d&eacute;finies avec des octets joker, ainsi par exemple --dhcp-host=00:20:e0:3b:13:*,ignore demande &agrave; Dnsmasq d’ignorer une gamme d’adresses mat&eacute;rielles. Il est &agrave; noter que "*" doit-&ecirc;tre pr&eacute;c&eacute;d&eacute; d’un caract&egrave;re d’&eacute;chappement ou mis entre guillemets lorsque sp&eacute;cifi&eacute; en option de ligne de commande, mais pas dans le fichier de configuration.

Les adresses mat&eacute;rielles co&iuml;ncident en principe avec n’importe quel type de r&eacute;seau (ARP), mais il est possible de les limiter &agrave; un seul type ARP en les pr&eacute;c&eacute;dant du type ARP (en Hexad&eacute;cimal) et de "-". Ainsi --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 co&iuml;ncidera uniquement avec des adresses mat&eacute;rielles Token-Ring, puisque le type ARP pour une adresse Token-Ring est 6.

Un cas sp&eacute;cial correspond &agrave; l’inclusion d’une ou plusieurs adresses mat&eacute;rielles, c-&agrave;-d : --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2. Cela permet &agrave; une adresse IP d’&ecirc;tre associ&eacute; &agrave; plusieurs adresses mat&eacute;rielles, et donne &agrave; dnsmasq la permission d’abandonner un bail DHCP attribu&eacute; &agrave; l’une de ces adresses lorsqu’une autre adresse dans la liste demande un bail. Ceci est une op&eacute;ration dangereuse qui ne fonctionnera de mani&egrave;re fiable que si une adresse mat&eacute;rielle est active &agrave; un moment donn&eacute; et dnsmasq n’a aucun moyen de s’assurer de cela. Cela est utile, par exemple, pour allouer une adresse IP stable &agrave; un laptop qui aurait &agrave; la fois une connexion filaire et sans-fil.

--dhcp-hostsfile=<fichier>

Lis les informations d’h&ocirc;tes DHCP dans le fichier sp&eacute;cifi&eacute;. Le fichier contient des informations &agrave; raison d’un h&ocirc;te par ligne. Le format d’une ligne est la m&ecirc;me que le texte fourni &agrave; la droite sur caract&egrave;re "=" dans l’option --dhcp-host. L’avantage de stocker les informations sur les h&ocirc;tes DHCP dans ce fichier est que celles-ci peuvent &ecirc;tre modifi&eacute;es sans recharger Dnsmasq; le fichier sera relu lorsque Dnsmasq re&ccedil;oit un signal SIGHUP.

--dhcp-optsfile=<fichier>

Lis les informations relatives aux options DHCP dans le fichier sp&eacute;cifi&eacute;. L’int&eacute;r&ecirc;t d’utiliser cette option est le m&ecirc;me que pour --dhcp-hostsfile : le fichier sp&eacute;cifi&eacute; sera recharg&eacute; &agrave; la r&eacute;ception par dnsmasq d’un signal SIGHUP. Notez qu’il est possible d’encoder l’information via --dhcp-boot en utilisant les noms optionnels bootfile-name, server-ip-address et tftp-server. Ceci permet d’inclure ces options dans un fichier "dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME

−Z, --read-ethers

Lis les informations d’h&ocirc;tes DHCP dans le fichier /etc/ethers. Le format de /etc/ethers est une adresse mat&eacute;rielle suivie, soit par un nom d’h&ocirc;te, soit par une adresse IP sous la forme de 4 chiffres s&eacute;par&eacute;s par des points. Lorsque lu par Dnsmasq, ces lignes ont exactement le m&ecirc;me effet que l’option --dhcp-host contenant les m&ecirc;mes informations. /etc/ethers est relu &agrave; la r&eacute;ception d’un signal SIGHUP par Dnsmasq.

−O,
--dhcp-option=[tag:<label>,[tag:<label>]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom
d’option>],[<valeur>[,<valeur>]]

Sp&eacute;cifie des options diff&eacute;rentes ou suppl&eacute;mentaires pour des clients DHCP. Par d&eacute;faut, Dnsmasq envoie un ensemble standard d’options aux clients DHCP : le masque de r&eacute;seau et l’adresse de broadcast sont les m&ecirc;mes que pour l’h&ocirc;te sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la route par d&eacute;faut prennent comme valeur l’adresse de la machine sur laquelle tourne Dnsmasq. Si une option de nom de domaine a &eacute;t&eacute; d&eacute;finie, son contenu est transmis. Cette option de configuration permet de changer toutes ces valeurs par d&eacute;faut, ou de sp&eacute;cifier d’autres options. L’option DHCP &agrave; transmettre peut &ecirc;tre fournie sous forme d’un nombre d&eacute;cimal ou sous la forme "option:<nom d’option>". Les nombres correspondants aux options sont d&eacute;finis dans la RFC2132 et suivants. Les noms d’options connus par Dnsmasq peuvent &ecirc;tre obtenus via "Dnsmasq --help dhcp". Par exemple, pour d&eacute;finir la route par d&eacute;faut &agrave; 192.168.4.4, il est possible de faire --dhcp-option=3,192.168.4.4 ou --dhcp-option = option:router, 192.168.4.4 ou encore, pour positionner l’adresse du serveur de temps &agrave; 192.168.0.4, on peut faire --dhcp-option = 42,192.168.0.4 ou --dhcp-option = option:ntp-server, 192.168.0.4 L’adresse 0.0.0.0 prends ici le sens "d’adresse de la machine sur laquelle tourne Dnsmasq". Les types de donn&eacute;es autoris&eacute;es sont des adresses IP sous la forme de 4 chiffres s&eacute;par&eacute;s par des points, un nombre d&eacute;cimal, une liste de caract&egrave;res hexad&eacute;cimaux s&eacute;par&eacute;s par des 2 points, ou une cha&icirc;ne de caract&egrave;res. Si des labels optionnels sont fournis, alors cette option n’est envoy&eacute;e qu’aux r&eacute;seaux dont tous les labels co&iuml;ncident avec ceux de la requ&ecirc;te.

Un traitement sp&eacute;cial est effectu&eacute; sur les cha&icirc;nes de caract&egrave;res fournies pour l’option 119, conform&eacute;ment &agrave; la RFC 3397. Les cha&icirc;nes de caract&egrave;res ou les adresses IP sous forme de 4 chiffres s&eacute;par&eacute;s par des points donn&eacute;s en arguments de l’option 120 sont trait&eacute;s conform&eacute;ments &agrave; la RFC 3361. Les adresses IP sous forme de 4 chiffres s&eacute;par&eacute;s par des points suivies par une barre montante "/", puis une taille de masque sont encod&eacute;s conform&eacute;ments &agrave; la RFC 3442.

Attention : aucun test n’&eacute;tant fait pour v&eacute;rifier que des donn&eacute;es d’un type ad&eacute;quat sont envoy&eacute;es pour un num&eacute;ro d’option donn&eacute;, il est tout &agrave; fait possible de persuader Dnsmasq de g&eacute;n&eacute;rer des paquets DHCP ill&eacute;gaux par une utilisation incorrecte de cette option. Lorsque la valeur est un nombre d&eacute;cimal, Dnsmasq doit d&eacute;terminer la taille des donn&eacute;es. Cela est fait en examinant le num&eacute;ro de l’option et/ou la valeur, mais peut-&ecirc;tre &eacute;vit&eacute; en rajoutant un suffixe d’une lettre comme suit : b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des options encapsul&eacute;es de classes de vendeurs (voir plus bas), pour lesquelles Dnsmasq ne peut d&eacute;terminer la taille de la valeur. Les donn&eacute;es d’options consistant uniquement de points et de d&eacute;cimaux sont interpr&eacute;t&eacute;es par Dnsmasq comme des adresses IP, et envoy&eacute;es comme telles. Pour forcer l’envoi sous forme de cha&icirc;ne de caract&egrave;re, il est n&eacute;cessaire d’utiliser des guillemets doubles. Par exemple, l’utilisation de l’option 66 pour fournir une adresse IP sous la forme d’une cha&icirc;ne de caract&egrave;res comme nom de serveur TFTP, il est n&eacute;cessaire de faire comme suit : --dhcp-option=66,"1.2.3.4"

Les options encapsul&eacute;es de classes de vendeurs peuvent-&ecirc;tre aussi sp&eacute;cifi&eacute;es en utilisant --dhcp-option : par exemple --dhcp-option=vendor:PXEClient,1,0.0.0.0 envoie l’option encapsul&eacute;e de classe de vendeur "mftp-address=0.0.0.0" &agrave; n’importe quel client dont la classe de vendeur correspond &agrave; "PXEClient". La correspondance pour les classes de vendeur s’effectue sur des sous-cha&icirc;nes de caract&egrave;res (voir --dhcp-vendorclass pour plus de d&eacute;tails). Si une option de classe de vendeur (num&eacute;ro 60) est envoy&eacute;e par Dnsmasq, alors cela est utilis&eacute; pour s&eacute;lectionner les options encapsul&eacute;es, de pr&eacute;f&eacute;rence &agrave; toute option envoy&eacute;e par le client. Il est possible d’omettre compl&egrave;tement une classe de vendeur : --dhcp-option=vendor:,1,0.0.0.0 Dans ce cas l’option encapsul&eacute;e est toujours envoy&eacute;e.

Les options peuvent-&ecirc;tre encapsul&eacute;es au sein d’autres options : par exemple --dhcp-option=encap:175, 190, iscsi-client0 enverra l’option 175, au sein de laquelle se trouve l’option 190. Plusieurs options encapsul&eacute;es avec le m&ecirc;me num&eacute;ro d’option seront correctement combin&eacute;es au sein d’une seule option encapsul&eacute;e. Il n’est pas possible de sp&eacute;cifier encap: et vendor: au sein d’une m&ecirc;me option dhcp.

La derni&egrave;re variante pour les options encapsul&eacute;es est "l’option de Vendeur identifiant le vendeur" ("Vendor-Identifying Vendor Options") telle que d&eacute;crite dans le RFC3925. Celles-ci sont sp&eacute;cifi&eacute;es comme suit : --dhcp-option=vi-encap:2, 10, text Le num&eacute;ro dans la section vi-encap: est le num&eacute;ro IANA de l’entreprise servant &agrave; identifier cette option.

L’adresse 0.0.0.0 n’est pas trait&eacute;e de mani&egrave;re particuli&egrave;re lorsque fournie dans une option encapsul&eacute;e.

--dhcp-option-force=[tag:<label>,[tag:<label>]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom
d’option>],[<valeur>[,<valeur>]]

Cela fonctionne exactement de la m&ecirc;me fa&ccedil;on que --dhcp-option sauf que cette option sera toujours envoy&eacute;e, m&ecirc;me si le client ne la demande pas dans la liste de param&ecirc;tres requis. Cela est parfois n&eacute;cessaire, par exemple lors de la fourniture d’options &agrave; PXELinux.

--dhcp-no-override

D&eacute;sactive la r&eacute;utilisation des champs DHCP nom de serveur et nom de fichier comme espace suppl&eacute;mentaire pour les options. Si cela est possible, dnsmasq d&eacute;place les informations sur le serveur de d&eacute;marrage et le nom de fichier (fournis par ’dhcp-boot’) en dehors des champs d&eacute;di&eacute;s &agrave; cet usage dans les options DHCP. Cet espace suppl&eacute;mentaire est alors disponible dans le paquet DHCP pour d’autres options, mais peut, dans quelques rares cas, perturber des clients vieux ou d&eacute;fectueux. Cette option force le comportement &agrave; l’utilisation des valeurs "simples et s&uuml;res" afin d’&eacute;viter des probl&egrave;mes dans de tels cas.

−U, --dhcp-vendorclass=set:<label>,<classe de vendeur>

Associe une cha&icirc;ne de classe de vendeur &agrave; un label. La plupart des clients DHCP fournissent une "classe de vendeur" ("vendor class") qui repr&eacute;sente, d’une certaine fa&ccedil;on, le type d’h&ocirc;te. Cette option associe des classes de vendeur &agrave; des labels, de telle sorte que des options DHCP peuvent-&ecirc;tre fournie de mani&egrave;re s&eacute;lective aux diff&eacute;rentes classes d’h&ocirc;tes. Par exemple, dhcp-vendorclass=set:printers,Hewlett-Packard JetDirect ou dhcp-vendorclass=printers,Hewlett-Packard JetDirect permet de n’allouer des options qu’aux imprimantes HP de la mani&egrave;re suivante : --dhcp-option=tag:printers,3,192.168.4.4 La cha&icirc;ne de caract&egrave;res de la classe de vendeur founie en argument est cherch&eacute;e en temps que sous-cha&icirc;ne de caract&egrave;res au sein de la classe de vendeur fournie par le client, de fa&ccedil;on &agrave; permettre la recherche d’un sous-ensemble de la cha&icirc;ne de caract&egrave;res ("fuzzy matching"). Le pr&eacute;fixe set: est optionnel mais autoris&eacute; afin de conserver une certaine homog&eacute;n&eacute;it&eacute;.

−j, --dhcp-userclass=set:<label>,<classe utilisateur>

Associe une cha&icirc;ne de classe d’utilisateur &agrave; un label (effectue la recherche sur des sous-cha&icirc;nes, comme pour les classes de vendeur). La plupart des clients permettent de configurer une "classe d’utilisateur". Cette option associe une classe d’utilisateur &agrave; un label, de telle mani&egrave;re qu’il soit possible de fournir des options DHCP sp&eacute;cifiques &agrave; diff&eacute;rentes classes d’h&ocirc;tes. Il est possible, par exemple, d’utiliser ceci pour d&eacute;finir un serveur d’impression diff&eacute;rent pour les h&ocirc;tes de la classe "comptes" et ceux de la classe "ing&eacute;nierie".

−4, --dhcp-mac=set:<label>,<adresse MAC>

Associe une adresse mat&eacute;rielle (MAC) &agrave; un label. L’adresse mat&eacute;rielle peut inclure des jokers. Par exemple --dhcp-mac=set:3com,01:34:23:*:*:* permet de d&eacute;finir le label "3com" pour n’importe quel h&ocirc;te dont l’adresse mat&eacute;rielle co&iuml;ncide avec les crit&egrave;res d&eacute;finis.

--dhcp-circuitid=set:<label>,<identifiant de circuit>,
--dhcp-remoteid=set:<label>,<identifiant distant>

Associe des options de relais DHCP issus de la RFC3046 &agrave; des labels. Cette information peut-&ecirc;tre fournie par des relais DHCP. L’identifiant de circuit ou l’identifiant distant est normalement fourni sous la forme d’une cha&icirc;ne de valeurs hexad&eacute;cimales s&eacute;par&eacute;es par des ":", mais il est &eacute;galement possible qu’elle le soit sous la forme d’une simple cha&icirc;ne de caract&egrave;res. Si l’identifiant de circuit ou d’agent correspond exactement &agrave; celui fourni par le relais DHCP, alors le label est appos&eacute;.

--dhcp-subscrid=set:<label>,<identifiant d’abonn&eacute;>

Associe des options de relais DHCP issues de la RFC3993 &agrave; des labels.

--dhcp-proxy[=<adresse ip>]......

Un agent relai DHCP normal est uniquement utilis&eacute; pour faire suivre les &eacute;l&eacute;ments initiaux de l’interaction avec le serveur DHCP. Une fois que le client est configur&eacute;, il communique directement avec le serveur. Cela n’est pas souhaitable si le relais rajoute des informations suppl&eacute;mentaires aux paquets DHCP, telles que celles utilis&eacute;es dans dhcp-circuitid et dhcp-remoteid. Une impl&eacute;mentation compl&egrave;te de relai peut utiliser l’option serverid-override de la RFC 5107 afin de forcer le serveur DHCP &agrave; utiliser le relai en temps que proxy complet, de sorte que tous les paquets passent par le relai. Cette option permet d’obtenir le m&ecirc;me r&eacute;sultat pour des relais ne supportant pas la RFC 5107. Fournie seule, elle manipule la valeur de server-id pour toutes les interactions via des relais. Si une liste d’adresses IP est donn&eacute;e, seules les interactions avec les relais dont l’adresse est dans la liste seront affect&eacute;es.

--dhcp-match=set:<label>,<num&eacute;ro d’option>|option:<nom
d’option>|vi-encap:<entreprise>[,<valeur>]

Si aucune valeur n’est sp&eacute;cifi&eacute;e, associe le label si le client envoie une option DHCP avec le num&eacute;ro ou le nom sp&eacute;cifi&eacute;. Lorsqu’une valeur est fournie, positionne le label seulement dans le cas o&ugrave; l’option est fournie et correspond &agrave; la valeur. La valeur peut-&ecirc;tre de la forme "01:ff:*:02", auquel cas le d&eacute;but de l’option doit correspondre (en respectant les jokers). La valeur peut aussi &ecirc;tre de la m&ecirc;me forme que dans dhcp-option , auquel cas l’option est trait&eacute;e comme un tableau de valeur, et un des &eacute;l&eacute;ments doit correspondre, ainsi

--dhcp-match=set:efi-ia32,option:client-arch,6

sp&eacute;cifie le label "efi-ia32" si le num&eacute;ro 6 appara&icirc;t dnas la liste d’architectures envoy&eacute; par le client au sein de l’option 93. (se r&eacute;ferer au RFC 4578 pour plus de d&eacute;tails). Si la valeur est un chaine de caract&egrave;res, celle-ci est recherch&eacute;e (correspondance en temps que sous-cha&icirc;ne).

Pour la forme particuli&egrave;re vi-encap:<num&eacute;ro d’entreprise>, la comparaison se fait avec les classes de vendeur "identifiant de vendeur" ("vendor-identifying vendor classes") pour l’entreprise dont le num&eacute;ro est fourni en option. Veuillez vous r&eacute;ferer &agrave; la RFC 3925 pour plus de d&eacute;tail.

--tag-if=set:<label>[,set:<label>[,tag:<label>[,tag:<label>]]]

Effectue une op&eacute;ration bool&eacute;enne sur les labels. Si tous les labels apparaissant dans la liste tag:<label> sont positionn&eacute;s, alors tous les la de la liste "set:<labels>" sont positionn&eacute;s (ou supprim&eacute;s, dans le cas o&ugrave; "tag:!<label>" utilis&eacute;). Si aucun tag:<label> n’est sp&eacute;cifi&eacute;, alors tous les labels fournis par set:<label> sont positionn&eacute;s. N’importe quel nombre de set: ou tag: peuvent &ecirc;tre fournis, et l’ordre est sans importance. Les lignes tag-if sont execut&eacute;es dans l’ordre, ce qui fait que si un label dans tag:<label> est un label positionn&eacute; par une r&ecirc;gle tag-if, la ligne qui positionne le label doit pr&eacute;c&eacute;der celle qui le teste.

−J, --dhcp-ignore=tag:<label>[,tag:<label>]

Lorsque tous les labels fournis dans l’option sont pr&eacute;sents, ignorer l’h&ocirc;te et ne pas donner de bail DHCP.

--dhcp-ignore-names[=tag:<label>[,tag:<label>]]

Lorsque tous les labels fournis dans l’option sont pr&eacute;sents, ignorer le nom de machine fourni par l’h&ocirc;te. Il est &agrave; noter que, &agrave; la diff&eacute;rence de l’option "dhcp-ignore", il est permis de ne pas fournir de label. Dans ce cas, les noms d’h&ocirc;tes fournis par les clients DHCP seront toujours ignor&eacute;s, et les noms d’h&ocirc;tes seront ajout&eacute;s au DNS en utilisant uniquement la configuration dhcp-host de Dnsmasq, ainsi que le contenu des fichiers /etc/hosts et /etc/ethers.

--dhcp-generate-names=tag:<label>[,tag:<label>]

G&eacute;n&eacute;rer un nom pour les clients DHCP qui autrement n’en aurait pas, en utilisant l’adresse MAC sous sa forme hexad&eacute;cimale, s&eacute;par&eacute;e par des tirets. Noter que si un h&ocirc;te fourni un nom, celui-ci sera utilis&eacute; de pr&eacute;f&eacute;rence au nom autog&eacute;n&eacute;r&eacute;, &agrave; moins que --dhcp-ignore-names ne soit positionn&eacute;.

--dhcp-broadcast=[tag:<label>[,tag:<label>]]

Lorsque tous les labels fournis dans l’option sont pr&eacute;sents, toujours utiliser le broadcast pour communiquer avec l’h&ocirc;te lorsque celui-ci n’est pas configur&eacute;. Il est possible de ne sp&eacute;cifier aucun label, auquel cas cette option s’applique inconditionnellement. La plupart des clients DHCP n&eacute;cessitant une r&eacute;ponse par le biais d’un broadcast activent une option dans leur requ&ecirc;te, ce qui fait que cela se fait automatiquement, mais ce n’est pas la cas de certains vieux clients BOOTP.

−M, --dhcp-boot=[tag:<label>,]<nom de fichier>,[<nom de
serveur>[,<adresse de serveur>]]

Sp&eacute;cifie les options BOOTP devant &ecirc;tre retourn&eacute;es par le serveur DHCP. Le nom de serveur ainsi que l’adresse sont optionnels : s’ils ne sont pas fournis, le nom est laiss&eacute; vide et l’adresse fournie est celle de la machine sur laquelle s’ex&eacute;cute Dnsmasq. Si Dnsmasq founit un service TFTP (voir --enable-tftp ), alors seul un nom de fichier est requis ici pour permettre un d&eacute;marrage par le r&eacute;seau. Si d’&eacute;ventuels labels sont fournis, ils doivent co&iuml;ncider avec ceux du client pour que cet &eacute;lement de configuration lui soit envoy&eacute;.

--pxe-service=[tag:<label>,]<CSA>,<entr&eacute;e de menu>[,<nom de
fichier>|<type de service de d&eacute;marrage>][,<adresse de serveur>]

La plupart des ROMS de d&eacute;marrage PXE ne permettent au syst&egrave;me PXE que la simple obtention d’une adresse IP, le t&eacute;l&eacute;chargement du fichier sp&eacute;cifi&eacute; dans dhcp-boot et son ex&eacute;cution. Cependant, le syst&egrave;me PXE est capable de fonctions bien plus complexes pour peu que le serveur DHCP soit adapt&eacute;.

Ceci sp&eacute;cifie l’option de d&eacute;marrage qui apparaitra dans un menu de d&eacute;marrage PXE. <CSA> est le type du syst&egrave;me client. Seuls des types de services valides apparaitront dans un menu. Les types connus sont x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI et X86-64_EFI; D’autres types peuvent-&ecirc;tre sp&eacute;cifi&eacute;s sous la forme d’une valeur enti&egrave;re. Le param&egrave;tre apr&egrave;s le texte correspondant &agrave; l’entr&eacute;e dans le menu peut &ecirc;tre un nom de fichier, auquel cas Dnsmasq agit comme un serveur de d&eacute;marrage et indique au client PXE qu’il faut t&eacute;l&eacute;charger ce fichier via TFTP, soit depuis ce serveur (l’option enable-tftp doit &ecirc;tre sp&eacute;cifi&eacute;e pour que cela marche), soit depuis un autre serveur TFTP si une adresse de serveur est fournie. Veuillez noter que le suffixe de "couche" (en principe ".0") est fourni par PXE et ne doit pas &ecirc;tre rajout&eacute; au nom de fichier. Si une valeur num&eacute;rique enti&egrave;re est fournir pour le type de d&eacute;marrage, en remplacement du nom de fichier, le client PXE devra chercher un service de d&eacute;marrage de ce type sur le r&eacute;seau. Cette recherche peut &ecirc;tre faite via broadcast ou directement aupr&egrave;s d’un serveur si son adresse IP est fournie dans l’option. Si aucun nom de fichier n’est donn&eacute; ni aucune valeur de type de service de d&eacute;marrage n’est fournie (ou qu’une valeur de 0 est donn&eacute;e pour le type de service), alors l’entr&eacute;e de menu provoque l’interruption du d&eacute;marrage par le r&eacute;seau et la poursuite du d&eacute;marrage sur un m&eacute;dia local.

--pxe-prompt=[tag:<label>,]<invite>[,<d&eacute;lai>]

Cette option permet d’afficher une invite &agrave; la suite du d&eacute;marrage PXE. Si un d&eacute;lai est fourni, alors la premi&egrave;re entr&eacute;e du menu de d&eacute;marrage sera automatiquement ex&eacute;cut&eacute;e apr&egrave;s ce d&eacute;lai. Si le d&eacute;lai vaut 0, alors la premi&egrave;re entr&eacute;e disponible sera ex&eacute;cut&eacute;e imm&eacute;diatement. Si pxe-prompt est omis, le syst&egrave;me attendra un choix de l’utilisateur s’il existe plusieurs entr&eacute;es dans le menu, ou d&eacute;marrera imm&eacute;diatement dans le cas o&ugrave; il n’y a qu’une seule entr&eacute;e. Voir pxe-service pour plus de d&eacute;tails sur les entr&eacute;es de menu.

Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas o&ugrave; un autre serveur DHCP sur le r&eacute;seau est responsable de l’allocation des adresses IP, auquel cas Dnsmasq se contente de fournir les informations donn&eacute;es dans les options pxe-prompt et pxe-service pour permettre le d&eacute;marrage par le r&eacute;seau. Ce mode est activ&eacute; en utilisant le mot-clef proxy dans dhcp-range.

−X, --dhcp-lease-max=<nombre>

Limite Dnsmasq &agrave; un maximum de <nombre> baux DHCP. Le d&eacute;faut est de 1000. Cette limite permet d’&eacute;viter des attaques de d&eacute;ni de service ("DoS") par des h&ocirc;tes cr&eacute;ant des milliers de baux et utilisant beaucoup de m&eacute;moire dans le processus Dnsmasq.

−K, --dhcp-authoritative

Cette option doit &ecirc;tre donn&eacute;e lorsque Dnsmasq est le seul serveur DHCP sur le r&eacute;seau. Cela change le comportement par d&eacute;faut qui est celui d’un strict respect des RFC, afin que les requ&ecirc;tes DHCP pour des baux inconnus par des h&ocirc;tes inconnus ne soient pas ignor&eacute;es. Cela permet &agrave; de nouveaux h&ocirc;tes d’obtenir des baux sans tenir compte de fastidieuses temporisations ("timeout"). Cela permet &eacute;galement &agrave; Dnsmasq de reconstruire sa base de donn&eacute;e contenant les baux sans que les clients n’aient besoin de redemander un bail, si celle-ci est perdue.

--dhcp-alternate-port[=<port serveur>[,<port client>]]

Change les ports utilis&eacute;s par d&eacute;faut pour le DHCP. Si cette option est donn&eacute;e toute seule sans arguments, alors change les ports utilis&eacute;s pour le DHCP de 67 et 68 respectivement &agrave; 1067 et 1068. Si un seul argument est donn&eacute;, ce num&eacute;ro est utilis&eacute; pour le port serveur et ce num&eacute;ro plus 1 est utilis&eacute; pour le port client. Enfin, en fournissant deux num&eacute;ros de ports, il est possible de sp&eacute;cifier arbitrairement 2 ports &agrave; la fois pour le serveur et pour le client DHCP.

−3, --bootp-dynamic[=<identifiant de r&eacute;seau>[,<identifiant de
r&eacute;seau>]]

Permet l’allocation dynamique d’adresses IP &agrave; des clients BOOTP. Utiliser cette option avec pr&eacute;caution, une adresse allou&eacute;e &agrave; un client BOOTP &eacute;tant perp&eacute;tuelle, et de fait n’est plus disponibles pour d’autres h&ocirc;tes. Si aucun argument n’est donn&eacute;, alors cette option permet une allocation dynamique dans tous les cas. Si des arguments sont sp&eacute;cifi&eacute;s, alors l’allocation ne se fait que lorsque tous les identifiants co&iuml;ncident. Il est possible de r&eacute;peter cette option avec plusieurs jeux d’arguments.

−5, --no-ping

Par d&eacute;faut, le serveur DHCP tente de s’assurer qu’une adresse n’est pas utilis&eacute;e avant de l’allouer &agrave; un h&ocirc;te. Cela est fait en envoyant une requ&ecirc;te ICMP de type "echo request" (aussi connue sous le nom de "ping") &agrave; l’adresse en question. Si le serveur obtient une r&eacute;ponse, alors l’adresse doit d&eacute;j&agrave; &ecirc;tre utilis&eacute;e et une autre est essay&eacute;e. Cette option permet de supprimer cette v&eacute;rification. A utiliser avec pr&eacute;caution.

--log-dhcp

Traces additionnelles pour le service DHCP : enregistre toutes les options envoy&eacute;es aux clients DHCP et les labels utilis&eacute;s pour la d&eacute;termination de celles-ci.

−l, --dhcp-leasefile=<chemin de fichier>

Utilise le fichier dont le chemin est fourni pour stocker les informations de baux DHCP.

−6 --dhcp-script=<chemin de fichier>

Lorsqu’un bail DHCP est cr&eacute;&eacute;, ou qu’un ancien est supprim&eacute;, le fichier dont le chemin est sp&eacute;cifi&eacute; est ex&eacute;cut&eacute;. Le <chemin de fichier> doit &ecirc;tre un chemin absolu, aucune recherche n’est effectu&eacute;e via la variable d’environnement PATH. Les arguments fournis &agrave; celui-ci sont soit "add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de l’adresse MAC de l’h&ocirc;te puis l’adresse IP et le nom d’h&ocirc;te si celui-ci est connu."add" signifie qu’un bail a &eacute;t&eacute; cr&eacute;&eacute;, "del" signifie qu’il a &eacute;t&eacute; supprim&eacute;, "old" notifie que le bail existait au lancement de Dnsmasq, ou un changement d’adresse MAC ou de nom d’h&ocirc;te pour un bail existant (ou, dans le cas o&ugrave; leasefile-ro est sp&eacute;cifi&eacute;, un changement de dur&eacute;e de bail ou d’identifiant d’h&ocirc;te). Si l’adresse Mac est d’un type de r&eacute;seau autre qu’ethernet, il est n&eacute;cessaire de la pr&eacute;ceder du type de r&eacute;seau, par exemple "06-01:23:45:67:89:ab" pour du token ring. Le processus est ex&eacute;cut&eacute; en temps que super-utilisateur (si Dnsmasq a &eacute;t&eacute; lanc&eacute; en temps que "root"), m&ecirc;me si Dnsmasq est configur&eacute; pour changer son UID pour celle d’un utilisateur non-privil&eacute;gi&eacute;.

L’environnement est h&eacute;rit&eacute; de celui de l’invocation du processus Dnsmasq, auquel se rajoute quelques unes ou toutes les variables d&eacute;crites ci-dessous :

DNSMASQ_CLIENT_ID, si l’h&ocirc;te a fourni un identifiant de client.

DNSMASQ_DOMAIN si le nom de domaine pleinement qualifi&eacute; de l’h&ocirc;te est connu, la part relative au domaine y est stock&eacute;e.

Si le client fournit une information de classe de vendeur, un nom d’h&ocirc;te, ou des classes d’utilisateur, celles-ci sont fournies dans les variables DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 &agrave; DNSMASQ_USER_CLASSn et DNSMASQ_SUPPLIED_HOSTNAME respectivement, mais seulement pour les actions "add" et "old" lorsqu’un h&ocirc;te reprend un bail existant, ces variables n’&eacute;tant pas stock&eacute;es dans la base de baux de Dnsmasq.

Si Dnsmasq a &eacute;t&eacute; compil&eacute; avec l’option HAVE_BROKEN_RTC ("horloge RTC d&eacute;fectueuse"), alors la dur&eacute;e du bail (en secondes) est stock&eacute;e dans la variable DNSMASQ_LEASE_LENGTH, sinon la date d’expiration du bail est toujours stock&eacute; dans la variable d’environnement DNSMASQ_LEASE_EXPIRES. Le nombre de secondes avant expiration est toujours stock&eacute; dans DNSMASQ_TIME_REMAINING.

Si un bail &eacute;tait associ&eacute; &agrave; un nom d’h&ocirc;te et que celui-ci est supprim&eacute;, un &eacute;v&ecirc;nement de type "old" est g&eacute;n&eacute;r&eacute; avec le nouveau statut du bail, c-&agrave;-d sans nom d’h&ocirc;te, et le nom initial est fourni dans la variable d’environnement DNSMASQ_OLD_HOSTNAME.

La variable DNSMASQ_INTERFACE contient le nom de l’interface sur laquelle la requ&ecirc;te est arriv&eacute;e; ceci n’est pas renseign&eacute; dans le cas des actions "old" ayant lieu apr&egrave;s un red&eacute;marrage de dnsmasq.

La variable DNSMASQ_RELAY_ADDRESS est renseign&eacute;e si le client a utilis&eacute; un relai DHCP pour contacter Dnsmasq, si l’adresse IP du relai est connue.

DNSMASQ_TAGS contient tous les labels fournis pendant la transaction DHCP, s&eacute;par&eacute;s par des espaces.

Tous les descripteurs de fichiers sont ferm&eacute;s, sauf stdin, stdout et stderr qui sont ouverts sur /dev/null (sauf en mode d&eacute;verminage).

Le script n’est pas lanc&eacute; de mani&egrave;re concurrente : au plus une instance du script est execut&eacute;e &agrave; la fois (dnsmasq attends qu’une instance de script se termine avant de lancer la suivante). Les changements dans la base des baux n&eacute;cessitant le lancement du script sont plac&eacute; en attente dans une queue jusqu’&agrave; terminaison d’une instance du script en cours. Si cette mise en queue fait que plusieurs changements d’&eacute;tats apparaissent pour un bail donn&eacute; avant que le script puisse &ecirc;tre lanc&eacute;, alors les &eacute;tats les plus anciens sont supprim&eacute;s et lorsque le script sera finalement lanc&eacute;, ce sera avec l’&eacute;tat courant du bail.

Au d&eacute;marrage de Dnsmasq, le script sera invoqu&eacute; pour chacun des baux existants dans le fichier des baux. Le script sera lanc&eacute; avec l’action "del" pour les baux expir&eacute;s, et "old" pour les autres. Lorsque Dnsmasq re&ccedil;oit un signal HUP, le script sera invoqu&eacute; avec une action "old" pour tous les baux existants.

--dhcp-scriptuser

Sp&eacute;cifie l’utilisateur sous lequel le script lease-change doit &ecirc;tre ex&eacute;cut&eacute;. La valeur par d&eacute;faut correspond &agrave; l’utilisateur root mais peut-&ecirc;tre chang&eacute;e par le biais de cette option.

−9, --leasefile-ro

Supprimer compl&egrave;tement l’usage du fichier servant de base de donn&eacute;e pour les baux DHCP. Le fichier ne sera ni cr&eacute;&eacute;, ni lu, ni &eacute;crit. Change la fa&ccedil;on dont le script de changement d’&eacute;tat de bail est lanc&eacute; (si celui-ci est fourni par le biais de l’option --dhcp-script ), de sorte que la base de donn&eacute;es de baux puisse &ecirc;tre compl&egrave;tement g&eacute;r&eacute;e par le script sur un stockage externe. En addition aux actions d&eacute;crites dans --dhcp-script, le script de changement d’&eacute;tat de bail est appell&eacute; une fois, au lancement de Dnsmasq, avec pour seul argument "init". Lorsqu’appell&eacute; de la sorte, le script doit fournir l’&eacute;tat de la base de baux, dans le format de fichier de baux de Dnsmasq, sur sa sortie standard (stdout) et retourner un code de retour de 0. Positionner cette option provoque &eacute;galement une invocation du script de changement d’&eacute;tat de bail &agrave; chaque changement de l’identifiant de client, de longueur de bail ou de date d’expiration.

--bridge-interface=<interface>,<alias>[,<alias>]

Traiter les requ&ecirc;tes DHCP arrivant sur n’importe laquelle des interfaces <alias> comme si elles arrivaient de l’interface <interface>. Cette option est n&eacute;cessaire lors de l’utilisation de pont ethernet "ancien mode" sur plate-forme BSD, puisque dans ce cas les paquets arrivent sur des interfaces "tap" n’ont pas d’adresse IP.

−s, --domain=<domaine>[,<gamme d’adresses>]

Sp&eacute;cifie le domaine du serveur DHCP. Le domaine peut &ecirc;tre donn&eacute; de mani&egrave;re inconditionnelle (sans sp&eacute;cifier de gamme d’adresses IP) ou pour des gammes d’adresses IP limit&eacute;es. Cela a deux effets; tout d’abord, le serveur DHCP retourne le domaine &agrave; tous les h&ocirc;tes le demandant, deuxi&egrave;mement, cela sp&eacute;cifie le domaine valide pour les h&ocirc;tes DHCP configur&eacute;s. Le but de cela est de contraindre les noms d’h&ocirc;te afin qu’aucun h&ocirc;te sur le LAN ne puisse fournir via DHCP un nom tel que par exemple "microsoft.com" et capturer du trafic de mani&egrave;re ill&eacute;gitime. Si aucun nom de domaine n’est sp&eacute;cifi&eacute;, alors les noms d’h&ocirc;tes avec un nom de domaine (c-&agrave;-d un point dans le nom) seront interdits et enregistr&eacute;s dans le journal (logs). Si un suffixe est fourni, alors les noms d’h&ocirc;tes poss&eacute;dant un domaine sont autoris&eacute;s, pour peu que le nom de domaine co&iuml;ncide avec le nom fourni. De plus, si un suffixe est fourni, alors les noms d’h&ocirc;tes ne poss&eacute;dant pas de nom de domain se voient rajouter le suffixe fourni dans l’option --domain. Ainsi, sur mon r&eacute;seau, je peux configurer --domain=thekelleys.org.uk et avoir une machine dont le nom DHCP serait "laptop". L’adresse IP de cette machine sera disponible &agrave; la fois pour "laptop" et "laptop.thekelleys.org.uk". Si la valeur fournie pour <domaine> est "#", alors le nom de domaine est positionn&eacute; &agrave; la premi&egrave;re valeur de la directive "search" du fichier /etc/resolv.conf (ou &eacute;quivalent). La gamme d’adresses peut &ecirc;tre de la forme <adresse ip>,<adresse ip> ou <adresse ip>/<masque de r&eacute;seau> voire une simple <adresse ip>. Voir --dhcp-fqdn qui peut changer le comportement de dnsmasq relatif aux domaines.

--dhcp-fqdn

Dans le mode par d&eacute;faut, dnsmasq ins&egrave;re les noms non-qualifi&eacute;s des clients DHCP dans le DNS. Pour cette raison, les noms doivent &ecirc;tre uniques, m&ecirc;me si deux clients ayant le m&ecirc;me nom sont dans deux domaines diff&eacute;rents. Si un deuxi&egrave;me client DHCP appara&icirc;t ayant le m&ecirc;me nom qu’un client d&eacute;j&agrave; existant, ce nom est transf&eacute;r&eacute; au nouveau client. Si --dhcp-fqdn est sp&eacute;cifi&eacute;, ce comportement change : les noms non qualifi&eacute;s ne sont plus rajout&eacute;s dans le DNS, seuls les noms qualifi&eacute;s le sont. Deux clients DHCP avec le m&ecirc;me nom peuvent tous les deux garder le nom, pour peu que la partie relative au domaine soit diff&eacute;rente (c-&agrave;-d que les noms pleinements qualifi&eacute;s diff&egrave;rent). Pour d’assurer que tous les noms ont une partie domaine, il doit-y avoir au moins un --domain sans gamme d’adresses de sp&eacute;cifi&eacute; lorsque l’option --dhcp-fqdn est configur&eacute;e.

--enable-tftp[=<interface>]

Active la fonction serveur TFTP. Celui-ci est de mani&egrave;re d&eacute;lib&eacute;r&eacute;e limit&eacute; aux fonctions n&eacute;cessaires au d&eacute;marrage par le r&eacute;seau ("net-boot") d’un client. Seul un acc&egrave;s en lecture est possible; les extensions tsize et blksize sont support&eacute;es (tsize est seulement support&eacute; en mode octet). Voir dans la section NOTES les informations relatives &agrave; la sp&eacute;cification de l’interface.

--tftp-root=<r&eacute;pertoire>[,<interface>]

Les fichiers &agrave; fournir dans les transferts TFTP seront cherch&eacute;s en prenant le r&eacute;pertoire fourni comme racine. Lorsque cela est fourni, les chemins TFTP incluant ".." sont rejet&eacute;s, afin d’&eacute;viter que les clients ne puissent sortir de la racine sp&eacute;cifi&eacute;e. Les chemins absolus (commen&ccedil;ant par "/") sont autoris&eacute;s, mais ils doivent &ecirc;tre &agrave; la racine TFTP fournie. Si l’option interface est sp&eacute;cifi&eacute;e, le r&eacute;pertoire n’est utilis&eacute; que pour les requ&ecirc;tes TFTP re&ccedil;ues sur cette interface.

--tftp-unique-root

Ajouter l’adresse IP du client TFTP en temps qu’&eacute;l&eacute;ment de chemin, &agrave; la suite de la racine tftp (adresse sous forme de 4 chiffres s&eacute;par&eacute;s par des points). Uniquement valable si une racine TFTP est sp&eacute;cifi&eacute;e et si le r&eacute;pertoire correspond existe. Ainsi, si la valeur pour tftp-root est "/tftp" et que le client d’adresse IP 1.2.3.4 requiert le fichier "monfichier", alors le chemin effective r&eacute;sultant sera "/tftp/1.2.3.4/monfichier" si /tftp/1.2.3.4 existe, ou "/tftp/monfichier" dans le cas contraire.

--tftp-secure

Active le mode TFTP s&eacute;curis&eacute; : sans cela, tout fichier lisible par Dnsmasq est disponible via TFTP (les r&egrave;gles de contr&ocirc;le d’acc&egrave;s unix habituelles s’appliquent). Lorsque l’option --tftp-secure est sp&eacute;cifi&eacute;e, seuls les fichiers poss&eacute;d&eacute;s par l’utilisateur sous lequel tourne le processus Dnsmasq sont accessibles. Si Dnsmasq est ex&eacute;cut&eacute; en temps que super-utilisateur ("root"), des r&egrave;gles diff&eacute;rentes s’appliquent : --tftp-secure n’a aucun effet, mais seuls les fichiers ayant un droit de lecture pour tout le monde sont accessibles. Il n’est pas recommand&eacute; d’ex&eacute;cuter Dnsmasq sous l’utilisateur "root" lorsque le service TFTP est activ&eacute;, et il est formellement d&eacute;conseill&eacute; de le faire sans fournir l’option --tftp-root. Sans cela, en effet, l’acc&egrave;s de tous les fichiers du serveur pour lequel le droit de lecture pour tout le monde est positionn&eacute; ("world-readable") devient possible par n’importe quel h&ocirc;te sur le r&eacute;seau.

--tftp-max=<connexions>

D&eacute;finit le nombre maximum de connexions TFTP simultan&eacute;es autoris&eacute;es. La valeur par d&eacute;faut est de 50. Lorsqu’un grand nombre de connexions TFTP est sp&eacute;cifi&eacute;, il se peut que la limite de nombre de descripteurs de fichiers par processus soit atteinte. Dnsmasq n&eacute;cessite quelques descripteurs de fichiers, ainsi qu’un descripteur de fichier pour chaque connexion TFTP simultan&eacute;e et pour chacun des fichiers devant &ecirc;tre fournis. De fait, servir le m&ecirc;me fichier &agrave; n clients ne n&eacute;cessitera qu’environ n + 10 descripteurs de fichiers, alors que fournir des fichiers tous diff&eacute;rents &agrave; n clients utilisera environ (2*n) + 10 descripteurs. Si elle est donn&eacute;e, l’option --tftp-port-range peut affecter le nombre maximum de connexions concurrentes.

--tftp-no-blocksize

Emp&ecirc;che le serveur TFTP de n&eacute;gocier l’option "blocksize" (taille de bloc) avec les clients. Certains clients bugg&eacute;s sp&eacute;cifient cette option mais se comportent ensuite de mani&egrave;re incorrecte si celle-ci est accord&eacute;e.

--tftp-port-range=<d&eacute;but>,<fin>

Un serveur TFTP &eacute;coute sur le port pr&eacute;d&eacute;fini 69 ("well-known port") pour l’initiation de la connexion, mais utilise &eacute;galement un port dynamiquement allou&eacute; pour chaque connexion. Normalement, ces ports sont allou&eacute;s par le syst&egrave;me d’exploitation, mais cette option permet de sp&eacute;cifier une gamme de ports &agrave; utiliser pour les transferts TFTP. Cela peut-&ecirc;tre utile si TFTP doit traverser un dispositif garde-barri&egrave;re ("firewall"). La valeur de d&eacute;but pour la plage de port ne peut-&ecirc;tre inf&eacute;rieure &agrave; 1025 sauf si dnsmasq tourne en temps que super-utilisateur ("root"). Le nombre de connexions TFTP concurrentes est limit&eacute;e par la taille de la gamme de ports ainsi sp&eacute;cifi&eacute;e.

--tftp-port-range=<d&eacute;but>,<fin>

Un serveur TFTP &eacute;coute sur un num&eacute;ro de port bien connu (69) pour l’initiation de la connexion, et alloue dynamiquement un port pour chaque connexion. Ces num&eacute;ros de ports sont en principe allou&eacute;s par le syst&egrave;me d’exploitation, mais cette option permet de sp&eacute;cifier une gamme de ports &agrave; utiliser pour les transferts TFTP. Cela peut-&ecirc;tre utile lorsque ceux-ci doivent traverser un dispositif garde-barri&egrave;re ("firewall"). Le d&eacute;but de la plage ne peut-&ecirc;tre inf&eacute;rieur &agrave; 1024 &agrave; moins que Dnsmasq ne fonctionne en temps que super-utilisateur ("root"). Le nombre maximal de connexions TFTP concurrentes est limit&eacute;e par la taille de la plage de ports ainsi d&eacute;finie.

−C, --conf-file=<fichier>

Sp&eacute;cifie un fichier de configuration diff&eacute;rent. L’option "conf-file" est &eacute;galement autoris&eacute;e dans des fichiers de configuration, ce qui permet l’inclusion de multiples fichiers de configuration.

−7, --conf-dir=<r&eacute;pertoire>[,<extension de fichier>...]

Lis tous les fichiers du r&eacute;pertoire sp&eacute;cifi&eacute; et les traite comme des fichiers de configuration. Si des extensions sont donn&eacute;es, tout fichier finissant par ces extensions seront ignor&eacute;s. Tout fichier dont le nom se termine en ~ ou commence par ., ainsi que ceux commen&ccedil;ant ou se terminant par # seront syst&eacute;matiquement ignor&eacute;s. Cette option peut &ecirc;tre donn&eacute;e en ligne de commande ou dans un fichier de configuration.

FICHIER DE CONFIGURATION

Au d&eacute;marrage, Dnsmasq lis /etc/dnsmasq.conf, si ce fichier existe. (Sur FreeBSD, ce fichier est /usr/local/etc/dnsmasq.conf ) (voir cependant les options −C et −7 ). Le format de ce fichier consiste en une option par ligne, exactement comme les options longues d&eacute;taill&eacute;es dans la section OPTIONS, mais sans &ecirc;tre pr&eacute;c&eacute;d&eacute;es par "--". Les lignes commen&ccedil;ant par # sont des commentaires et sont ignor&eacute;es. Pour les options qui ne peuvent-&ecirc;tre sp&eacute;cifi&eacute;es qu’une seule fois, celle du fichier de configuration prends le pas sur celle fournie en ligne de commande. Il est possible d’utiliser des guillemets afin d’&eacute;viter que les ",",":","." et "#" ne soit interpr&ecirc;t&eacute;s, et il est possible d’utiliser les s&eacute;quences d’&eacute;chappement suivantes : \\ \" \t \e \b \r et \n. Elles correspondent respectivement &agrave; la barre oblique descendante ("anti-slash"), guillemets doubles, tabulation, caract&egrave;re d’&eacute;chappement ("escape"), suppression ("backspace"), retour ("return") et nouvelle ligne ("newline").

NOTES

A la r&eacute;ception d’un signal SIGHUP, Dnsmasq vide son cache et recharge les fichiers /etc/hosts et /etc/ethers ainsi que tout autre fichier sp&eacute;cifi&eacute; par les options --dhcp-hostsfile , --dhcp-optsfile ou --addn-hosts. Le script de changement de bail est appell&eacute; pour chaque bail DHCP existant. Si l’option --no-poll est positionn&eacute;e, alors le fichier /etc/resolv.conf est &eacute;galement recharg&eacute;. SIGHUP ne provoque PAS de rechargement du fichier de configuration.

A la r&eacute;ception d’un signal SIGUSR1, Dnsmasq &eacute;crit des statistiques dans les traces syst&egrave;me. Les informations fournies sont : la taille du cache, le nombre de noms ayant &eacute;t&eacute; supprim&eacute;s du cache avant expiration afin de faire de la place pour les nouveaux noms, ainsi que le nombre total d’entr&eacute;es ayant &eacute;t&eacute; ins&eacute;r&eacute;es dans le cache. Pour chaque serveur amont, il fournit le nomnbre de requ&ecirc;tes transmises ainsi que le nombre de requ&ecirc;tes ayant r&eacute;sult&eacute; par une erreur. Lorsque Dnsmasq a &eacute;t&eacute; lanc&eacute; via --no-daemon ou lorsque la tra&ccedil;abilit&eacute; maximale a &eacute;t&eacute; activ&eacute;e ( -q ), la totalit&eacute; du contenu du cache est de surcro&icirc;t fournie.

A la r&eacute;ception d’un signal SIGUSR2 et lorsqu’il enregistre directement ses traces dans un fichier (voir --log-facility ), alors Dnsmasq ferme et re-rouvre le fichier de traces. Il faut noter que pendant cette op&eacute;ration Dnsmasq ne s’ex&eacute;cute pas en temps que "root". Lorsqu’il cr&eacute;&eacute; un fichier de traces pour la premi&egrave;re fois, Dnsmasq change le propri&eacute;taire du fichier afin de le faire appartenir &agrave; l’utilisateur non "root" sous lequel Dnsmasq s’ex&eacute;cute. Le logiciel de rotation de fichiers de trace logrotate doit &ecirc;tre configur&eacute; pour cr&eacute;er un nouveau fichier avec un propri&eacute;taire identique au fichier existant avant d’envoyer le signal SIGUSR2. Si une requ&ecirc;te DNS TCP est en cours, l’ancien fichier de traces reste ouvert dans le processus fils qui traite la requ&ecirc;te TCP et il peut y &ecirc;tre &eacute;crit. Il existe cependant une limite de 150 secondes apr&egrave;s laquelle tous les processus traitant des requ&ecirc;tes TCP expirent : pour cette raison, il est pr&eacute;f&eacute;rable de ne pas configurer la compression des fichiers de traces venant juste de faire l’objet d’une rotation. Dans le cas de l’utilisation du logiciel logrotate, les options requises sont create et delaycompress.

Dnsmasq est un logiciel de transmission de requ&ecirc;tes DNS : il n’est pas capable d’effectuer une r&eacute;solution de nom r&eacute;cursive en partant des serveurs DNS racine, mais transmet de telles requ&ecirc;tes &agrave; un serveur DNS amont capable de telles recherches r&eacute;cursives, ce qui est typiquement le cas d’un serveur DNS de FAI. Par d&eacute;faut, Dnsmasq lis /etc/resolv.conf pour d&eacute;couvrir les adresses IP des serveurs DNS amonts &agrave; utiliser, puisque cette information est en g&eacute;n&eacute;ral stock&eacute;e &agrave; cet endroit. A moins que l’option --no-poll ne soit utilis&eacute;e, Dnsmasq v&eacute;rifie la date de modification du fichier /etc/resolv.conf (ou l’&eacute;quivalent si −-resolv-file est utilis&eacute;), et le relis lorsqu’il change. Cela permet de d&eacute;finir les serveurs DNS amont de mani&egrave;re dynamique lorsque PPP ou DHCP sont utilis&eacute;s, puisque ces protocoles fournissent cette information. L’absence du fichier /etc/resolv.conf ne conduit pas &agrave; une erreur, puisqu’il peut tr&egrave;s bien ne pas &ecirc;tre cr&eacute;&eacute; avant qu’une connexion PPP ne soit &eacute;tablie. Dans ce cas, Dnsmasq v&eacute;rifie r&eacute;guli&egrave;rement pour voir si un fichier /etc/resolv.conf est cr&eacute;&eacute;. Dnsmasq peut &ecirc;tre configur&eacute; pour lire plus d’un fichier resolv.conf. Cela est utile sur un ordinateur portable o&ugrave; PPP et DHCP peuvent-&ecirc;tre utilis&eacute;s : Dnsmasq peut alors &ecirc;tre configur&eacute; pour lire &agrave; la fois /etc/ppp/resolv.conf et /etc/dhcpc/resolv.conf et utilisera le contenu du fichier ayant chang&eacute; en dernier, ce qui permet de passer automatiquement de serveurs DNS &agrave; d’autres.

Les serveurs amonts peuvent aussi &ecirc;tre sp&eacute;cifi&eacute;s sur la ligne de commande ou dans un fichier de configuration. Ces sp&eacute;cifications de serveurs peuvent &eacute;ventuellement se voir adjoindre d’un nom de domaine qui pr&eacute;cise &agrave; Dnsmasq quel serveur utiliser pour trouver les noms d’un domaine donn&eacute;.

Pour configurer Dnsmasq afin qu’il se comporte comme un cache pour la machine sur laquelle il tourne, mettre "nameserver 127.0.0.1" dans le fichier /etc/resolv.conf afin de forcer les processus locaux &agrave; envoyer leurs requ&ecirc;tes &agrave; Dnsmasq. Ensuite, sp&eacute;cifier les serveurs DNS amont soit en les fournissant directement &agrave; Dnsmasq via l’option −-server ou alors en mettant leurs adresses dans un autre fichier, par exemple /etc/resolv.dnsmasq et en lan&ccedil;ant Dnsmasq avec l’option −r /etc/resolv.dnsmasq. Cette deuxi&egrave;me technique permet la mise-&agrave;-jour dynamique des addresses de serveurs DNS amont par le biais de PPP ou DHCP.

Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le serveur DNS amont, ainsi "macompagnie.com 1.2.3.4" dans /etc/hosts assure que les requ&ecirc;tes pour "macompagnie.com" retourneront toujours 1.2.3.4, m&ecirc;me si une requ&ecirc;te au serveur DNS amont retournerait une adresse diff&eacute;rente. Il y a une exception &agrave; ceci : si le DNS amont contient un CNAME qui pointe vers un nom pr&eacute;sent dans /etc/hosts, alors la recherche du CNAME via Dnsmasq fournira l’adresse DNS amont. Pour contourner cela, il suffit de mettre l’entr&eacute;e correspondant au CNAME dans /etc/hosts.

le syst&egrave;me de label fonctionne comme suit : pour chaque requ&ecirc;te DHCP, dnsmasq associe un ensemble de labels obtenus &agrave; partir des lignes de la configuration incluant set:<label>, y compris un pour la plage d’adresse ( dhcp-range ) utilis&eacute;e pour allouer l’adresse, un pour chaque entr&eacute;e dhcp-host associ&eacute;e (auquel est rajout&eacute; le mot-clef "known" si une entr&eacute;e dhcp-host co&iuml;ncide).

Le label "bootp" est associ&eacute; aux requ&ecirc;tes BOOTP, un label dont le nom est le nom de l’interface sur laquelle la requ&ecirc;te est arriv&eacute;e.

Pour les lignes de configuration comportant des &eacute;l&eacute;ments tag:<label>, seules seront valides celles pour lesquels tous les labels correspondants seront pr&eacute;sents. C’est typiquement le cas des lignes dhcp-options. Un dhcp-option poss&eacute;dant des labels sera utilis&eacute; de pr&eacute;f&eacute;rence &agrave; un dhcp-option sans label, pour peu que _tous_ les labels positionn&eacute;s correspondent &agrave; l’ensemble de labels d&eacute;crit plus haut. Le pr&eacute;fixe ’!’ sur un label est un indicateur de n&eacute;gation, ainsi --dhcp=option=tag:!purple,3,1.2.3.4 n’envoie l’option que lorsque le label "purple" n’est pas dans la liste de labels d&eacute;finis pour l’h&ocirc;te consid&eacute;r&eacute;. (dans le cas de l’utilisation dans une ligne de commande au lieu d’un fichier de configuration, ne pas oublier d’&eacute;chapper le caract&egrave;re !, qui est un m&eacute;ta-caract&egrave;re d’interpr&eacute;teur de commande shell).

Veuillez noter que pour dhcp-range , les &eacute;l&eacute;ments tag:<label> et set:<label> sont tous les deux autoris&eacute;s pour s&eacute;lectionner la plage &agrave; utiliser selon, par exemple, le dhcp-host, et pour affecter l’option envoy&eacute;e, sur la base de la plage s&eacute;lectionn&eacute;e.

Ce syst&egrave;me a &eacute;volu&eacute; d’un syst&egrave;me plus ancien et aux possibilit&eacute;s plus limit&eacute;es, et pour des raisons de compatibilit&eacute; "net:" peut &ecirc;tre utilis&eacute; &agrave; la place de "tag:" et "set:" peut-&ecirc;tre omis (&agrave; l’exception de dhcp-host, o&ugrave; "net:" peut-&ecirc;tre utilis&eacute; &agrave; la place de "set:"). Pour les m&ecirc;mes raisons, ’#’ peut-&ecirc;tre utilis&eacute; &agrave; la place de ’!’ pour indiquer la n&eacute;gation.

Le serveur DHCP int&eacute;gr&eacute; dans Dnsmasq fonctionne &eacute;galement en temps que serveur BOOTP, pour peu que l’adresse MAC et l’adresse IP des clients soient fournies, que ce soit par le biais de l’option dhcp-host ou dans le fichier /etc/ethers , et que l’option dhcp-range soit pr&eacute;sente afin d’activer le serveur DHCP pour un r&eacute;seau donn&eacute; (L’option --bootp-dynamic supprime la n&eacute;cessit&eacute; des associations statiques). Le param&egrave;tre "filename" (nom de fichier) de la requ&ecirc;te BOOTP est utilis&eacute; comme label, ainsi que le label "bootp", permettant un certain contr&ocirc;le sur les options retourn&eacute;es aux diff&eacute;rentes classes d’h&ocirc;tes.

Il est possible de sp&eacute;cifier un nom d’interface &agrave; dhcp-range sous la forme "interface:<nom d’interface>". La s&eacute;mantique est comme suit : Pour le DHCP, s’il existe une autre valeur de dhcp-range pour laquelle _aucun_ nom d’interface n’est donn&eacute;, alors le nom d’interface est ignor&eacute; et dnsmasq se comporte comme si la partie sp&eacute;cifiant l’interface n’existait pas, sinon le service DHCP n’est fourni qu’aux interfaces mentionn&eacute;es dans les d&eacute;clarations dhcp-range. Pour le DNS, si il n’y a pas d’option --interface ou --listen-address , alors le comportement n’est pas impact&eacute; par la sp&eacute;cification d’interface. Si l’une ou l’autre de ces options est pr&eacute;sente, alors les interfaces mentionn&eacute;es dans les plages d’adresses dhcp-range sont rajout&eacute;es &agrave; la liste de celles o&ugrave; le service DNS est assur&eacute;.

De mani&egrave;re similaire, enable-tftp peut prendre un nom d’interface, ce qui active le TFTP pour cette seule interface, en ignorant les options --interface ou --listen-address De plus, --tftp-secure , --tftp-unique-root et --tftp-no-blocksize sont ignor&eacute;es pour les requ&ecirc;tes sur de telles interfaces. (une directive --tftp-root donnant le chemin de la racine et une interface doit-&ecirc;tre fournie).

Ces r&egrave;gles peuvent para&icirc;tre &eacute;trange &agrave; premi&egrave;re vue, mais elles permettent d’ajouter &agrave; la configuration de dnsmasq des lignes de configuration de la forme "dhcp-range=interface:virt0,192.168.0.4,192.168.0.200" afin de fournir un service DHCP et DNS sur cette interface, sans pour autant affecter les services fournis sur d’autres interfaces, malgr&eacute; l’absence de param&egrave;tres "interface=<interface>" sur les autres lignes de configuration. "enable-tftp=virt0" et "tftp-root=<root>,virt0" effectuent la m&ecirc;me chose pour TFTP. L’id&eacute;e de tout cela est de permettre l’addition de telles lignes automatiquement par libvirt ou un syst&egrave;me &eacute;quivalent, sans perturbation d’une configuration manuelle existant par ailleurs.

CODES DE SORTIE

0 - Dnsmasq s’est correctement lanc&eacute; en t&acirc;che de fond, ou alors s’est correctement termin&eacute; si le lancement en t&acirc;che de fond n’a pas &eacute;t&eacute; activ&eacute;.

1 - Un probl&egrave;me de configuration a &eacute;t&eacute; d&eacute;tect&eacute;.

2 - Un probl&egrave;me est survenu avec un acc&egrave;s r&eacute;seau (adresse d&eacute;j&agrave; utilis&eacute;e, tentative d’utiliser un port privil&eacute;gi&eacute; sans les permissions n&eacute;cessaires).

3 - Un probl&egrave;me est survenu avec une op&eacute;ration sur un syst&egrave;me de fichier (fichier ou r&eacute;pertoire manquant, permissions).

4 - Impossibilit&eacute; d’allouer de la m&eacute;moire.

5 - Autre probl&egrave;me.

11 ou plus - un code de retour diff&eacute;rent de 0 a &eacute;t&eacute; re&ccedil;u lors de l’appel au processus "init" du script des bails. Le code de retour de Dnsmasq correspond au code de retour du script plus 10.

LIMITES

Les valeurs par d&eacute;faut pour les limites de ressources de Dnsmasq sont en g&eacute;n&eacute;ral conservatrices et appropri&eacute;es pour des utilisations embarqu&eacute;es sur des machines de type routeur ayant des processeurs lents et une m&eacute;moire limit&eacute;e. Sur du mat&eacute;riel plus performant, il est possible d’augmenter les limites et de g&eacute;rer plus de clients. Les remarques suivantes s’appliquent &agrave; Dnsmasq version 2.37 et ult&eacute;rieur : les versions pr&eacute;c&eacute;dentes ne montaient pas en charge aussi bien.

Dnsmasq est capable de g&eacute;rer le DNS et DHCP pour au moins un millier de clients. Pour cela, la dur&eacute;e des bail ne doit pas &ecirc;tre tr&egrave;s courte (moins d’une heure). La valeur de --dns-forward-max peut-&ecirc;tre augment&eacute;e : commencer par la rendre &eacute;gale au nombre de clients et l’augmenter si le DNS semble lent. Noter que la performance du DNS d&eacute;pends &eacute;galement de la performance des serveurs amonts. La taille du cache DNS peut- &ecirc;tre augment&eacute;e : la limite en dur est de 10000 entr&eacute;es et la valeur par d&eacute;faut (150) est tr&egrave;s basse. Envoyer un signal SIGUSR1 &agrave; Dnsmasq le fait &eacute;mettre des informations utiles pour param&eacute;trer la taille de cache. Voir la section NOTES pour plus de d&eacute;tails.

Le serveur TFTP int&eacute;gr&eacute; est capable de plusieurs transferts de fichiers simultan&eacute;s : La limite absolue est li&eacute;e au nombre maximal de descripteurs de fichiers allou&eacute; &agrave; un processus et &agrave; la capacit&eacute; de l’appel syst&egrave;me select() &agrave; g&eacute;rer un grand nombre de HANDLE de fichier. Si la limite est fix&eacute;e trop haut par le biais de --tftp-max elle sera r&eacute;duite et la limite actuelle sera enregistr&eacute;e au d&eacute;marrage. Il faut noter que plus de transferts sont possible lorsque le m&ecirc;me fichier est transmis au lieu d’avoir un fichier diff&eacute;rent pour chaque transfert.

Il est possible d’utiliser Dnsmasq pour bloquer la publicit&eacute; sur la toile en associant des serveurs de publicit&eacute; bien connus &agrave; l’adresse 127.0.0.1 ou 0.0.0.0 par le biais du fichier /etc/hosts ou d’un fichier d’h&ocirc;te additionnel. Cette liste peut-&ecirc;tre tr&egrave;s longue, Dnsmasq ayant &eacute;t&eacute; test&eacute; avec succ&egrave;s avec un million de noms. Cette taille de fichier n&eacute;cessite un processeur &agrave; 1 Ghz et environ 60 Mo de RAM.

INTERNATIONALISATION

Dnsmasq peut &ecirc;tre compil&eacute; pour supporter l’internationalisation. Pour cela, les cibles "all-i18n" et "install-i18n" doivent &ecirc;tre donn&eacute;es &agrave; make, en lieu et place des cibles standards "all" et "install". Lorsque compil&eacute; avec le support de l’internationalisation, dnsmasq supporte les noms de domaines internationalis&eacute;s ("internationalised domain names" ou IDN), et les messages de traces ("logs") sont &eacute;crits dans la langue locale. Les noms de domaines dans /etc/hosts, /etc/ethers et /etc/dnsmasq.conf contenant des caract&egrave;res non-ASCII seront transform&eacute;s selon la repr&eacute;sentation punycode interne aux DNS. Veuillez noter que dnsmasq d&eacute;termine la langue pour les messages ainsi que le jeu de caract&egrave;res susceptible d’&ecirc;tre utilis&eacute; dans les fichiers de configuration &agrave; partir de la variable d’environnement LANG. Ceci devrait &ecirc;tre configur&eacute; &agrave; la valeur par d&eacute;faut du syst&egrave;me par les scripts d&eacute;marrant dnsmasq. Lorsque les fichiers de configuration sont &eacute;dit&eacute;s, veuillez faire attention &agrave; le faire en utilisant la valeur de locale par d&eacute;faut du syst&egrave;me et non une valeur sp&eacute;cifique &agrave; l’utilisateur, puisque dnsmasq n’a aucun moyen de d&eacute;terminer directement la valeur de jeu de caract&egrave;re utilis&eacute;, et assume de ce fait qu’il s’agit de la valeur par d&eacute;faut du syst&egrave;me.

FICHIERS

/etc/dnsmasq.conf

/usr/local/etc/dnsmasq.conf

/etc/resolv.conf

/etc/hosts

/etc/ethers

/var/lib/misc/dnsmasq.leases

/var/db/dnsmasq.leases

/var/run/dnsmasq.pid

VOIR AUSSI

hosts(5), resolver(5)

AUTEUR

Cette page de manuel a &eacute;t&eacute; &eacute;crite par Simon Kelley <simon@thekelleys.org.uk>.

La traduction dans un fran&ccedil;ais bancal a &eacute;t&eacute; commise par Gildas Le Nadan <3ntr0p13@gmail.com> : Toute r&eacute;vision/correction permettant de corriger orthographe ou grammaire mais surtout les &eacute;ventuelles fautes de sens sera la bienvenue!



dnsmasq(8)