Dnsmasq accepte les requtes DNS et y rponds soit en utilisant un petit cache local, soit en effectuant une requte un serveur DNS rcursif externe (par exemple celui de votre fournisseur d'accs internet). Il charge le contenu du fichier /etc/hosts afin que les noms locaux n'apparaissant pas dans les DNS globaux soient tout de mme rsolus, et assure galement la rsolution de nom pour les htes prsents dans le service DHCP.
Le serveur DHCP Dnsmasq DHCP supporte les dfinitions d'adresses statiques et les rseaux multiples. Il envoie par dfaut un jeu raisonnable de paramtres DHCP, et peut tre configur pour envoyer n'importe quel option DHCP. Il inclut un serveur TFTP scuris en lecture seule permettant le dmarrage via le rseau/PXE de clients DHCP et supporte galement le protocole BOOTP.
Dnsmasq supporte IPv6 pour le DNS mais pas pour le DHCP.
--test Vrifie la syntaxe du ou des fichiers de configurations. Se termine avec le code de retour 0 si tout est OK, ou un code diffrent de 0 dans le cas contraire. Ne dmarre pas Dnsmasq.
-h, --no-hosts Ne pas charger les noms du fichier /etc/hosts.
-H, --addn-hosts=<fichier> Fichiers d'htes additionnels. Lire le fichier spcifi en plus de /etc/hosts. Si -h est spcifi, lire uniquement le fichier spcifi. Cette option peut tre rpte afin d'ajouter d'autres fichiers. Si un rpertoire est donn, lis les fichiers contenus dans ce rpertoire.
-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 mme faon 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=<dure> Lorsque Dnsmasq rpond avec une information provenant du fichier /etc/hosts ou avec un bail DHCP, il donne un temps de vie (time-to-live) positionn zro, afin d'indiquer la machine faisant la requte que celle-ci ne doit pas tre mise dans un cache. Ceci est le comportement correct dans presque toutes les situations. Cette option permet de spcifier la valeur de time-to-live retourner (en secondes). Cela permet de rduire la charge sur le serveur, mais les clients risquent d'utiliser des donnes primes dans certains cas.
--neg-ttl=<dure> Les rponses ngatives provenant des serveurs amonts contiennent normalement une information de dure de vie (time-to-live) dans les enregistrements SOA, information dont dnsmasq se sert pour mettre la rponse en cache. Si la rponse du serveur amont omet cette information, dnsmasq ne cache pas la rponse. Cette option permet de doner une valeur de dure de vie par dfaut (en secondes) que dnsmasq utilise pour mettre les rponses ngatives dans son cache, mme en l'absence d'enregistrement SOA.
-k, --keep-in-foreground Ne pas aller en tche de fond au lancement, mais en dehors de cela, fonctionner normalement. Ce mode est prvu pour les cas o Dnsmasq est lanc par daemontools ou launchd.
-d, --no-daemon Mode debug (dverminage) : ne pas aller en tche de fond, ne pas crire de fichier pid, ne pas changer d'identifiant utilisateur, gnrer un tat complet du cache lors de la rception d'un signal SIGUSR1, envoyer les logs sur la sortie standard d'erreur ("stderr") de mme que dans le syslog, ne pas crer de processus fils pour traiter les requtes TCP.
-q, --log-queries Enregistrer les rsultats des requtes DNS traites par Dnsmasq dans un fichier de traces ("logs"). Active la gnration d'un tat complet du cache lors de la rception d'un signal SIGUSR1.
-8, --log-facility=<facility> Dfinit la "facility" dans laquelle Dnsmasq enverra ses entres syslog, par dfaut DAEMON ou LOCAL0 si le mode debug est activ. Si la "facility" contient au moins un caractre "/", alors Dnsmasq considre qu'il s'agit d'un fichier et enverra les logs dans le fichier correspondant la place du syslog. (Les erreurs lors de la lecture de la configuration vont toujours vers le syslog, mais tous les messages postrieures un dmarrage russi seront exclusivement envoys vers le fichier de logs). Lorsque Dnsmasq est configur pour envoyer ses traces vers un fichier, la rception d'un signal SIGUSR2 entraine la fermeture et rouverture du fichier. Cela permet la rotation de fichiers de traces sans ncessiter l'arrt de Dnsmasq.
--log-async[=<lignes>] Permet l'envoi de traces de manire asynchrone, et de manire optionnelle, le nombre de lignes devant tre mises dans la file d'attente par Dnsmasq lorsque l'criture vers le syslog est lente. Dnsmasq peut envoyer ses logs de manire asynchrone : cela lui permet de continuer fonctionner sans tre bloqu par le syslog, et permet syslog d'utiliser Dnsmasq pour les rsolutions DNS sans risque d'interblocage. Si la file d'attente devient pleine, Dnsmasq loggera le dpassement de file et le nombre de messages perdus. La longueur par dfaut de la file d'attente est de 5 et une valeur saine sera comprise entre 5 et 25, avec une limite maximum impose de 100.
-x, --pid-file=<chemin> Spcifie un fichier dans lequel stocker le numro de processus (pid). La valeur par dfaut est /var/run/dnsmasq.pid.
-u, --user=<nom d'utilisateur> Spcifie l'identit (nom d'utilisateur) prise par Dnsmasq aprs le dmarrage. Dnsmasq doit normalement tre dmarr en temps que root ("super-utilisateur"), mais abandonne ses privilges aprs le dmarrage en changeant d'identit. Normalement cet utilisateur est l'utilisateur nobody ("personne"), mais il est possible d'en dfinir un autre par le biais de ce paramtre.
-g, --group=<nom de groupe> Spcifie le groupe sous lequel Dnsmasq s'excute. Par dfaut, il s'agit du groupe "dip", afin de faciliter l'accs au fichier /etc/ppp/resolv.conf qui n'est en gnral pas en lecture par tout le monde.
-v, --version Imprime le numro de version.
-p, --port=<port> Ecoute sur le port numro <port> au lieu du port DNS standard (53). Paramtrer cette valeur zro dsactive compltement la fonction DNS pour ne laisser actif que le DHCP ou le TFTP.
-P, --edns-packet-max=<taille> Spcifie la taille maximum de paquet UDP EDNS.0 support par le relai DNS. Le dfaut est de 1280, qui est la valeur maximale recommande pour ethernet dans la RFC2671.
-Q, --query-port=<numro de port> Envoie et coute les requtes DNS sortantes depuis le port UDP spcifi par <numro de port>, et non sur un port alatoire. NOTE : Cette option rends dnsmasq moins sr contre les attaques par usurpation DNS ("DNS spoofing"), mais cela peut permettre d'utiliser moins de ressources et d'tre plus rapide. Donner une valeur de zro cette option restaure le comportement par dfaut prsent dans les versions de dnsmasq infrieures 2.43 qui consiste n'allouer qu'un seul port allou par le systme d'exploitation.
--min-port=<port> Ne pas utiliser de port dont le numro est infrieur la valeur donne en paramtre pour les requtes DNS sortantes. Dnsmasq choisis un port source alatoire pour les requtes sortantes : lorsque cette option est fournie, les ports utiliss seront toujours au dessus de la valeur spcifie. Utile pour des systmes derrire des dispositifs garde-barrires ("firewalls").
-i, --interface=<nom d'interface> N'couter que sur l'interface rseau spcifie. Dnsmasq aujoute automatiquement l'interface locale ("loopback") la liste des interfaces lorsque l'option --interface est utilise. Si aucune option --interface ou --listen-address n'est donne, Dnsmasq coutera sur toutes les interfaces disponibles sauf celle(s) spcifie(s) par l'option --except-interface. Les alias d'interfaces IP (e-g "eth1:0") ne peuvent tre utiliss ni avec --interface ni --except-interface. Utiliser l'option --listen-address la place.
-I, --except-interface=<interface name> Ne pas couter sur l'interface spcifie. 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 spcifie, mais fournir tout de mme le service DNS.
-a, --listen-address=<adresse IP> Ecouter sur la ou les adresse(s) IP spcifie(s). Les options --interface et --listen-address peuvent-tre spcifies simultanment, auquel cas un jeu d'interfaces et d'adresses seront utilises. Notez que si aucune option --interface n'est donne alors qu'une option --listen-address l'est, Dnsmasq n'coutera pas automatiquement sur l'interface locale ("loopback"). Pour activer l'coute sur l'interface locale, il est alors ncessaire de fournir explicitement son adresse IP, 127.0.0.1 via l'option --listen-address.
-z, --bind-interfaces Sur les systmes qui le supporte, Dnsmasq s'associe avec l'interface joker ("wildcard"), mme lorsqu'il ne doit couter que sur certaines interfaces. Par la suite, il rejette les requtes auxquelles il ne doit pas rpondre. Cette situation prsente l'avantage de fonctionner mme lorsque les interfaces vont et viennent ou changent d'adresses. L'option --bind-interfaces force Dnsmasq ne rellement s'associer qu'avec les interfaces sur lesquelles il doit couter. L'un des seuls cas o cette option est utile est celui o un autre serveur de nom (ou une autre instance de Dnsmasq) tourne sur la mme machine. Utiliser cette option permet galement d'avoir plusieurs instances de Dnsmasq fournissant un service DHCP sur la mme machine.
-y, --localise-queries Retourne des rponses aux requtes DNS dpendantes de l'interface sur laquelle la requte a t reue, partir du fichier /etc/hosts. Si un nom dans /etc/hosts a plus d'une adresse associe avec lui, et qu'une des adresses au moins est dans le mme sous-rseau que l'interface sur laquelle la requte a t reue, alors ne retourne que la(les) adresse(s) du sous-rseau considr. Cela permet d'avoir dans /etc/hosts un serveur avec de multiples adresses, une pour chacune de ses interfaces, et de fournir aux htes l'adresse correcte (base sur le rseau auquel ils sont attachs). Cette possibilit est actuellement limite IPv4.
-b, --bogus-priv Fausse rsolution inverse pour les rseaux privs. Toutes les requtes DNS inverses pour des adresses IP prives (ie 192.168.x.x, etc...) qui ne sont pas trouves dans /etc/hosts ou dans le fichier de baux DHCP se voient retournes une rponse "pas de tel domaine" ("no such domain") au lieu d'tre transmises aux serveurs de nom amont ("upstream server").
-V, --alias=[<ancienne IP>]|[<IP de dbut>-<IP de fin>],<nouvelle IP>[,<masque>] Modifie les adresses IPv4 retournes par les serveurs de nom amont; <ancienne IP> est remplace par <nouvelle IP>. Si le <masque> optionnel est fourni, alors toute adresse correspondant l'adresse <ancienne IP>/<masque> sera rcrite. Ainsi par exemple --alias=1.2.3.0,6.7.8.0,255.255.255.0 modifiera 1.2.3.56 en 6.7.8.56 et 1.2.3.67 en 6.7.8.67. Cette fonctionnalit correspond ce que les routeurs Cisco PIX appellent "bidouillage DNS" ("DNS doctoring"). Si l'ancienne IP est donne sous la forme d'une gamme d'adresses, alors seules les adresses dans cette gamme seront recrites, et non le sous-rseau dans son ensemble. Ainsi, --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 fait correspondre 192.168.0.10->192.168.0.40 10.0.0.10->10.0.0.40
-B, --bogus-nxdomain=<adresse IP> Transforme les rponses contenant l'adresse IP fournie en rponses "pas de tel domaine" ("no such domain"). Ceci a pour but de neutraliser la modification sournoise mise en place par Verisign en septembre 2003, lorsqu'ils ont commenc retourner l'adresse d'un serveur web publicitaire en rponse aux requtes pour les noms de domaines non enregistrs, au lieu de la rponse correcte "NXDOMAIN". Cette option demande Dnsmasq de retourner la rponse correcte lorsqu'il constate ce comportement. L'adresse retourne par Verisign en septembre 2003 est 64.94.110.11.
-f, --filterwin2k Les dernires versions de windows font des requtes DNS priodiques auxquelles non seulement les serveurs DNS publics ne peuvent donner de rponse, mais qui, de surcrot, peuvent poser des problmes en dclenchant des connexions intempestives pour des liens rseaux avec des connexions " la demande". Fournir cette option active le filtrage des requtes de ce type. Les requtes bloques sont les requtes pour les entres de type SOA ou SRV, ainsi que les requtes de type ANY avec des noms possdant des caractres sous-ligns (requtes 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 entres correspondant aux serveurs de noms (nameserver). Dnsmasq peut lire plusieurs fichiers de type resolv.conf, le premier fichier spcifi remplace le fichier par dfaut, le contenu des suivants est rajout dans la liste des fichiers consulter. Seul le fichier ayant la dernire date de modification sera charg en mmoire.
-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 jour de la configuration de Dnsmasq par le biais d'appel de mthodes DBus. Il est possible par ce biais de mettre jour l'adresse de serveurs DNS amont (et les domaines correspondants) et de vider le cache. Cette option ncessite que Dnsmasq soit compil avec le support DBus.
-o, --strict-order Par dfaut, Dnsmasq envoie les requtes n'importe lequel des serveurs amonts dont il a connaissance tout en essayant de favoriser les serveurs qu'il sait fonctionner. Cette option force Dnsmasq essayer d'interroger, pour chaque requte, les serveurs DNS dans leur ordre d'apparition dans le fichier /etc/resolv.conf.
--all-servers Par dfaut, lorsque dnsmasq a plus d'un serveur amont disponible, il n'envoie les requtes qu' un seul serveur. Spcifier cette option force dnsmasq effectuer ses requtes tous les serveurs disponibles. Le rsultat renvoy au client sera celui fournit par le premier serveur ayant rpondu.
--stop-dns-rebind Rejete (et enregistre dans le journal d'activit) les adresses dans la gamme d'adresses IP prive (au sens RFC1918) qui pourraient tre renvoyes par les serveurs amonts suite une rsolution de nom. Cela bloque les attaques cherchant dtourner de leur usage les logiciels de navigation web ('browser') en s'en servant pour dcouvrir les machines situes sur le rseau local.
-n, --no-poll Ne pas vrifier rgulirement si le fichier /etc/resolv.conf a t modifi.
--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 donnes diffrentes de celles stockes dans le cache.
-D, --domain-needed Indique Dnsmasq de ne jamais transmettre en amont de requtes 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 rponse de type "non trouv" est renvoye.
-S, --local, --server=[/[<domaine>]/[domaine/]][<Adresse IP>[#<port>][@<Adresse IP source>|<interface>[#<port>]]] Spcifie directement l'adresse IP d'un serveur de nom amont. Cette option ne supprime pas la lecture du fichier /etc/resolv.conf : utiliser pour cela l'option -R . Si un ou plusieurs nom(s) de domaine(s) optionnel(s) sont fournis, ce serveur sera uniquement utilis uniquement pour ce(s) domaine(s), et toute requte concernant ce(s) domaine(s) sera adresse uniquement ce serveur. Cette option est destine aux serveurs de nom privs : si vous avez un serveur de nom sur votre rseau ayant pour adresse IP 192.168.1.1 et effectuant la rsolution des noms de la forme xxx.internal.thekelleys.org.uk, alors -S /internal.thekelleys.org.uk/192.168.1.1 enverra toutes les requtes pour les machines internes vers ce serveur de nom, alors que toutes les autres requtes seront adresses aux serveurs indiqus dans le fichier /etc/resolv.conf. Une spcification de nom de domaine vide, // possde le sens particulier de "pour les noms non qualifis uniquement", c'est--dire les noms ne possdant pas de points. Un port non standard peut tre rajout la suite des adresses IP en utilisant le caractre #. Plus d'une option -S est autorise, en rptant les domaines et adresses IP comme requis. Il est galement permis de donner une option -S avec un nom de domaine mais sans adresse IP; Cela informe Dnsmasq que le domaine est local et qu'il doit rpondre aux requtes le concernant depuis les entres contenues dans le fichier /etc/hosts ou les baux DHCP, et ne doit en aucun cas transmettre les requtes aux serveurs amonts. local est synonyme de server ("serveur") afin de rendre plus claire l'utilisation de cette option pour cet usage particulier. La chane de caractres optionnelle suivant le caractre @ permet de dfinir la source que Dnsmasq doit utiliser pour les rponses ce serveur de nom. Il doit s'agir d'une des adresses IP appartenant la machine sur laquelle tourne Dnsmasq ou sinon la ligne sera ignore et une erreur sera consigne dans le journal des vnements, ou alors d'un nom d'interface. Si un nom d'interface est donn, alors les requtes vers le serveur de nom seront envoyes depuis cette interface; si une adresse ip est donne, alors l'adresse source de la requte sera l'adresse en question. L'option query-port est ignore pour tous les serveurs ayant une adresse source spcifie, mais il est possible de la donner directement dans la spcification de l'adresse source. Forcer les requtes tre mises depuis une interface spcifique n'est pas possible sur toutes les plateformes supportes par dnsmasq.
-A, --address=/<domaine>/[domaine/]<adresse IP> Spcifie une adresse IP retourner pour toute requte pour les domaines fournis en option. Les requtes pour ce(s) domaine(s) ne sont jamais transmises aux serveurs amonts et reoivent comme rponse l'adresse IP spcifie qui peut tre une adresse IPv4 ou IPv6. Pour donner la fois une adresse IPv4 et une adresse IPv6 pour un domaine, utiliser plusieurs options -A. Il faut noter que le contenu du fichier /etc/hosts et de celui des baux DHCP supplante ceci pour des noms individuels. Une utilisation courante de cette option est de rediriger la totalit du domaine doubleclick.net vers un serveur web local afin d'viter les bannires publicitaires. La spcification de domaine fonctionne de la mme faon que --server, avec la caractristique supplmentaire que /#/ concide avec tout domaine. Ainsi, --address=/#/1.2.3.4 retournera 1.2.3.4 pour toute requte n'ayant de rponse ni dans /etc/hosts, ni dans les baux DHCP, et n'tant pas transmise un serveur spcifique par le biais d'une directive --server.
-m, --mx-host=<nom de l'hte>[[,<nom du MX>],<prference>] Spcifie un enregistrement de type MX pour <nom de l'hte> retournant le nom donn dans <nom du MX> (s'il est prsent), ou sinon le nom spcifi dans l'option --mx-target si elle est prsente. Sinon retourne le nom de la machine sur laquelle Dnsmasq tourne. La valeur par dfaut (spcifie dans l'option --mx-target ) est utile dans un rseau local pour rediriger les courriers lectroniques vers un serveur central. La valeur de prfrence est optionnelle et vaut par dfaut 1 si elle n'est pas spcifie. Plus d'une entre MX peut tre fournie pour un hte donn.
-t, --mx-target=<nom d'hte> Spcifie la rponse par dfaut fournie par Dnsmasq pour les requtes sur des enregistrements de type MX. Voir --mx-host. Si --mx-target est donn mais pas de --mx-host, alors Dnsmasq retourne comme rponse un enregistrement MX contenant le nom d'hte spcifi dans l'option --mx-target pour toute requte concernant le MX de la machine sur laquelle tourne Dnsmasq.
-e, --selfmx Dfinit, pour toutes les machines locales, un MX correspondant l'hte considr. Les machines locales sont celles dfinies dans le fichier /etc/hosts ou dans un bail DHCP.
-L, --localmx Dfinit, pour toutes les machines locales, un enregistrement MX pointant sur l'hte spcifi par mx-target (ou la machine sur laquelle Dnsmasq tourne). Les machines locales sont celles dfinies dans le fichier /etc/hosts ou dans un bail DHCP.
-W --srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorit>[,<poids>]]]] Spcifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de dtails. Si le champs <domaine> n'est pas fourni, prends par dfaut la valeur fournie dans l'option --domain. La valeur par dfaut pour le domaine est vide et le port par dfaut est 1, alors que les poids et priorits par dfaut sont 0. Attention lorsque vous transposez des valeurs issues d'une configuration BIND : les ports, poids et priorits sont dans un ordre diffrents. Pour un service/domaine donn, plus d'un enregistrement SRV est autoris et tous les enregistrements qui concident sont retourns dans la rponse.
-Y, --txt-record=<nom>[[,<texte>],<texte>] Dfinit un enregistrement DNS de type TXT. La valeur de l'enregistrement TXT est un ensemble de chanes de caractres, donc un nombre variable de chanes de caractres peuvent tre spcifies, spares par des virgules.
--ptr-record=<nom>[,<cible>] Dfinit un enregistrement DNS de type PTR.
--naptr-record=<nom>,<ordre>,<prfrence>,<drapeaux>,<service>,<expr. rgulire>[,<remplacement>] Retourne un enregistrement de type NAPTR, tel que spcifi dans le RFC3403.
--cname=<cname>,<cible> Retourne un enregistrement de type CNAME qui indique que <cname> est en ralit <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 htes additionnel) ou via DHCP. Si une cible ne satisfait pas ces critres, le CNAME est ignor. Le CNAME doit tre unique, mais il est autoris d'avoir plus d'un CNAME pointant vers la mme cible.
--interface-name=<nom>,<interface> Dfinit un entregistrement DNS associant le nom avec l'adresse primaire sur l'interface donne en argument. Cette option spcifie un enregistrement de type A pour le nom donn en argument de la mme faon que s'il tait dfini par une ligne de /etc/hosts, sauf que l'adresse n'est pas constante mais dpendante de l'interface dfinie. Si l'interface est inactive, non existante ou non configure, une rponse vide est fournie. Un enregistrement inverse (PTR) est galement cr par cette option, associant l'adresse de l'interface avec le nom. Plus d'un nom peut tre associ une interface donne en rptant cette option plusieurs fois; dans ce cas, l'enregistrement inverse pointe vers le nom fourni dans la premire instance de cette option.
-c, --cache-size=<taille> Dfinit la taille du cache de Dnsmasq. La valeur par dfaut est de 150 noms. Dfinir une valeur de zro dsactive le cache.
-N, --no-negcache Dsactive le "cache ngatif". Le "cache ngatif" permet Dnsmasq de se souvenir des rponses de type "no such domain" fournies par les serveurs DNS en amont et de fournir les rponses sans avoir re-transmettre les requtes aux serveurs amont.
-0, --dns-forward-max=<nombre de requtes> Dfinit le nombre maximum de requtes DNS simultanes. La valeur par dfaut est 150, ce qui devrait tre suffisant dans la majorit des configurations. La seule situation identifie dans laquelle cette valeur ncessite d'tre augmente est lorsqu'un serveur web a la rsolution de nom active pour l'enregistrement de son journal des requtes, ce qui peut gnrer un nombre important de requtes simultanes.
-F, --dhcp-range=[[net:]identifiant de rseau,]<adresse de dbut>,<adresse de fin>[[,<masque de rseau>],<broadcast>][,<dure de bail>] Active le serveur DHCP. Les adresses seront donnes dans la plage comprise entre <adresse de dbut> et <adresse de fin> et partir des adresses dfinies statiquement dans l'option dhcp-host. Si une dure de bail est donne, alors les baux seront donns pour cette dure. La dure de bail est donne en secondes, en minutes (exemple : 45m), en heures (exemple : 1h) ou tre la chaine de caractre "infinite" pour une dure indtermine. Si aucune valeur n'est donne, une dure de bail par dfaut de une heure est applique. La valeur minimum pour un bail DHCP est de 2 minutes. Cette option peut tre rpte, avec diffrentes adresses, pour activer le service DHCP sur plus d'un rseau. Pour des rseaux directement connects (c'est--dire des rseaux dans lesquels la machine sur laquelle tourne Dnsmasq possde une interface), le masque de rseau est optionnel. Il est par contre requis pour les rseaux 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 mme sous-rseau. L'identifiant de rseau optionnel est un label alphanumrique qui permet de marquer ce rseau afin de fournir des options DHCP spcifiques chaque rseau. Lorsque prfix par 'net:', la signification change est au lieu de dfinir un label, il dfinit le label pour laquelle la rgle s'applique. Un seul label peut- tre dfini mais plusieurs labels peuvent concider. L'adresse de fin peut tre remplace par le mot-clef static ("statique") qui indique Dnsmasq d'activer le service DHCP pour le rseau spcifi, mais de ne pas activer l'allocation dynamique d'adresses IP : Seuls les htes possdant des adresses IP statiques fournies via dhcp-host ou prsentes dans le fichier /etc/ethers seront alors servis par le DHCP. L'adresse de fin peut-tre remplace par le mot-clef proxy , auquel cas Dnsmasq fournira un service de DHCP proxy pour le sous-rseau spcifi. (voir pxe-prompt et pxe-service pour plus de dtails).
-G, --dhcp-host=[<adresse matrielle>][,id:<identifiant client>|*][,net:<identifiant de rseau>][,<adresse IP>][,<nom d'hte>][,<dure de bail>][,ignore] Spcifie les paramtres DHCP relatifs un hte. Cela permet une machine possdant une adresse matrielle spcifique de se voir toujours alloue les mmes nom d'hte, adresse IP et dure de bail. Un nom d'hte spcifi comme ceci remplace le nom fourni par le client DHCP de la machine hte. Il est galement possible d'omettre l'adresse matrielle et d'inclure le nom d'hte, auquel cas l'adresse IP et la dure de bail s'appliqueront toute machine se rclamant de ce nom. Par exemple --dhcp-host=00:20:e0:3b:13:af,wap,infinite spcifie Dnsmasq de fournir la machine d'adresse matrielle 00:20:e0:3b:13:af le nom, et un bail de dure indtermine. --dhcp-host=lap,192.168.0.199 spcifie Dnsmasq d'allouer toujours la machine portant le nom lap l'adresse IP 92.168.0.199. Les adresses alloues comme ceci ne sont pas contraintes dans une plage d'adresse spcifie par une option --dhcp-range, mais elles doivent tre sur un rseau servi par le serveur DHCP. Il est possible d'utiliser des identifiants clients plutt que des adresses matrielles pour identifier les htes, en prfixant par ceux-ci par 'id:'. Ainsi, --dhcp-host=id:01:02:03:04,..... rfre l'hte d'identifiant 01:02:03:04. Il est galement possible de spcifier l'identifiant client sous la forme d'une chane de caractres, comme ceci : --dhcp-host=id:identifiantclientsousformedechaine,..... L'option spciale id:* signifie : "ignorer tout identifiant client et n'utiliser que l'adresse matrielle". Cela est utile lorsqu'un client prsente un identifiant client mais pas les autres. Si un nom apparat dans /etc/hosts, l'adresse associe peut tre alloue un bail DHCP mais seulement si une option --dhcp-host spcifiant le nom existe par ailleurs. Le mot clef "ignore" ("ignorer") indique Dnsmasq de ne jamais fournir de bail DHCP une machine. La machine peut tre spcifie par son adresse matrielle, son identifiant client ou son nom d'hte. Par exemple --dhcp-host=00:20:e0:3b:13:af,ignore Cela est utile lorsqu'un autre serveur DHCP sur le rseau doit tre utilis par certaines machines. Le paramtre net:<identifiant rseau> permet de dfinir un identifiant de rseau lorsque l'option dhcp-host est utilise. Cela peut servir slectionner des options DHCP juste pour cet hte. Lorsqu'une machine concide avec une directive dhcp-host (ou une implique par /etc/ethers), alors l'identifiant rseau rserv "known" ("connu") est associ. Cela permet Dnsmasq d'tre configur pour ignorer les requtes issus de machines inconnue par le biais de --dhcp-ignore=#known. Les adresses ethernet (mais pas les identifiants clients) peuvent tre dfinies avec des octets joker, ainsi par exemple --dhcp-host=00:20:e0:3b:13:*,ignore demande Dnsmasq d'ignorer une gamme d'adresses matrielles. Il est noter que "*" doit-tre prcd d'un caractre d'chappement ou mis entre guillemets lorsque spcifi en option de ligne de commande, mais pas dans le fichier de configuration. Les adresses matrielles concident en principe avec n'importe quel type de rseau (ARP), mais il est possible de les limiter un seul type ARP en les prcdant du type ARP (en Hexadcimal) et de "-". Ainsi --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 concidera uniquement avec des adresses matrielles Token-Ring, puisque le type ARP pour une adresse Token-Ring est 6. Un cas spcial correspond l'inclusion d'une ou plusieurs adresses matrielles, c--d : --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2. Cela permet une adresse IP d'tre associ plusieurs adresses matrielles, et donne dnsmasq la permission d'abandonner un bail DHCP attribu l'une de ces adresses lorsqu'une autre adresse dans la liste demande un bail. Ceci est une opration dangereuse qui ne fonctionnera de manire fiable que si une adresse matrielle est active un moment donn et dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile, par exemple, pour allouer une adresse IP stable un laptop qui aurait la fois une connexion filaire et sans-fil.
--dhcp-hostsfile=<fichier> Lis les informations d'htes DHCP dans le fichier spcifi. Le fichier contient des informations raison d'un hte par ligne. Le format d'une ligne est la mme que le texte fourni la droite sur caractre "=" dans l'option --dhcp-host. L'avantage de stocker les informations sur les htes DHCP dans ce fichier est que celles-ci peuvent tre modifies sans recharger Dnsmasq; le fichier sera relu lorsque Dnsmasq reoit un signal SIGHUP.
--dhcp-optsfile=<fichier> Lis les informations relatives aux options DHCP dans le fichier spcifi. L'intrt d'utiliser cette option est le mme que pour --dhcp-hostsfile : le fichier spcifi sera recharg la rception 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'htes DHCP dans le fichier /etc/ethers. Le format de /etc/ethers est une adresse matrielle suivie, soit par un nom d'hte, soit par une adresse IP sous la forme de 4 chiffres spars par des points. Lorsque lu par Dnsmasq, ces lignes ont exactement le mme effet que l'option --dhcp-host contenant les mmes informations. /etc/ethers est relu la rception d'un signal SIGHUP par Dnsmasq.
-O, --dhcp-option=[<identifiant_de_rseau>,[<identifiant_de_rseau>,]][encap:<option>,][vendor:[<classe_vendeur>],][<option>|option:<nom d'option>],[<valeur>[,<valeur>]] Spcifie des options diffrentes ou supplmentaires pour des clients DHCP. Par dfaut, Dnsmasq envoie un ensemble standard d'options aux clients DHCP : le masque de rseau et l'adresse de broadcast sont les mmes que pour l'hte sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la route par dfaut prennent comme valeur l'adresse de la machine sur laquelle tourne Dnsmasq. Si une option de nom de domaine a t dfinie, son contenu est transmis. Cette option de configuration permet de changer toutes ces valeurs par dfaut, ou de spcifier d'autres options. L'option DHCP transmettre peut tre fournie sous forme d'un nombre dcimal ou sous la forme "option:<nom d'option>". Les nombres correspondants aux options sont dfinis dans la RFC2132 et suivants. Les noms d'options connus par Dnsmasq peuvent tre obtenus via "Dnsmasq --help dhcp". Par exemple, pour dfinir la route par dfaut 192.168.4.4, il est possible de faire --dhcp-option=3,192.168.4.4 ou --dhcp-option = option:router, 192.168.4.4 ou encore, pour positionner l'adresse du serveur de temps 192.168.0.4, on peut faire --dhcp-option = 42,192.168.0.4 ou --dhcp-option = option:ntp-server, 192.168.0.4 L'adresse 0.0.0.0 prends ici le sens "d'adresse de la machine sur laquelle tourne Dnsmasq". Les types de donnes autorises sont des adresses IP sous la forme de 4 chiffres spars par des points, un nombre dcimal, une liste de caractres hexadcimaux spars par des 2 points, ou une chane de caractres. Si des identifiants de rseaux sont fournis, alors cette option n'est envoye qu'aux rseaux dont tous les identifiants concident. Un traitement spcial est effectu sur les chanes de caractres fournies pour l'option 119, conformment la RFC 3397. Les chanes de caractres ou les adresses IP sous forme de 4 chiffres spars par des points donns en arguments de l'option 120 sont traits conformments la RFC 3361. Les adresses IP sous forme de 4 chiffres spars par des points suivies par une barre montante "/", puis une taille de masque sont encods conformments la RFC 3442. Attention : aucun test n'tant fait pour vrifier que des donnes d'un type adquat sont envoyes pour un numro d'option donn, il est tout fait possible de persuader Dnsmasq de gnrer des paquets DHCP illgaux par une utilisation incorrecte de cette option. Lorsque la valeur est un nombre dcimal, Dnsmasq doit dterminer la taille des donnes. Cela est fait en examinant le numro de l'option et/ou la valeur, mais peut-tre vit en rajoutant un suffixe d'une lettre comme suit : b = un octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des options encapsules de classes de vendeurs (voir plus bas), pour lesquelles Dnsmasq ne peut dterminer la taille de la valeur. Les donnes d'options consistant uniquement de points et de dcimaux sont interprtes par Dnsmasq comme des adresses IP, et envoyes comme telles. Pour forcer l'envoi sous forme de chane de caractre, il est ncessaire d'utiliser des guillemets doubles. Par exemple, l'utilisation de l'option 66 pour fournir une adresse IP sous la forme d'une chane de caractres comme nom de serveur TFTP, il est ncessaire de faire comme suit : --dhcp-option=66,"1.2.3.4" Les options encapsules de classes de vendeurs peuvent-tre aussi spcifies en utilisant --dhcp-option : par exemple --dhcp-option=vendor:PXEClient,1,0.0.0.0 envoie l'option encapsule de classe de vendeur "mftp-address=0.0.0.0" n'importe quel client dont la classe de vendeur correspond "PXEClient". La correspondance pour les classes de vendeur s'effectue sur des sous-chanes de caractres (voir --dhcp-vendorclass pour plus de dtails). Si une option de classe de vendeur (numro 60) est envoye par Dnsmasq, alors cela est utilis pour slectionner les options encapsules, de prfrence toute option envoye par le client. Il est possible d'omettre compltement une classe de vendeur : --dhcp-option=vendor:,1,0.0.0.0 Dans ce cas l'option encapsule est toujours envoye. Les options peuvent-tre encapsules 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 encapsules avec le mme numro d'option seront correctement combines au sein d'une seule option encapsule. Il n'est pas possible de spcifier encap: et vendor: au sein d'une mme option dhcp. L'adresse 0.0.0.0 n'est pas traite de manire particulire lorsque fournie dans une option encapsule.
--dhcp-option-force=[<identifiant de rseau>,[<identifiant de rseau>,]][encap:<option>,][vendor:[<classe de vendeur>],]<option>,[<valeur>[,<valeur>]] Cela fonctionne exactement de la mme faon que --dhcp-option sauf que cette option sera toujours envoye, mme si le client ne la demande pas dans la liste de paramtres requis. Cela est parfois ncessaire, par exemple lors de la fourniture d'options PXELinux.
--dhcp-no-override Dsactive la rutilisation des champs DHCP nom de serveur et nom de fichier comme espace supplmentaire pour les options. Si cela est possible, dnsmasq dplace les informations sur le serveur de dmarrage et le nom de fichier (fournis par 'dhcp-boot') en dehors des champs ddis cet usage dans les options DHCP. Cet espace supplmentaire est alors disponible dans le paquet DHCP pour d'autres options, mais peut, dans quelques rares cas, perturber des clients vieux ou dfectueux. Cette option force le comportement l'utilisation des valeurs "simples et sres" afin d'viter des problmes dans de tels cas.
-U, --dhcp-vendorclass=<identifiant de rseau>,<classe de vendeur> Associe une chane de classe de vendeur un indentifiant de rseau. La plupart des clients DHCP fournissent une "classe de vendeur" ("vendor class") qui reprsente, d'une certaine faon, le type d'hte. Cette option associe des classes de vendeur des labels, de telle sorte que des options DHCP peuvent-tre fournie de manire slective aux diffrentes classes d'htes. Par exemple, dhcp-vendorclass=printers,Hewlett-Packard JetDirect permet de n'allouer des options qu'aux imprimantes HP de la manire suivante : --dhcp-option=printers,3,192.168.4.4 La chane de caractres de la classe de vendeur founie en argument est cherche en temps que sous-chane de caractres au sein de la classe de vendeur fournie par le client, de faon permettre la recherche d'un sous-ensemble de la chane de caractres ("fuzzy matching").
-j, --dhcp-userclass=<identifiant de rseau>,<classe utilisateur> Associe une chane de classe d'utilisateur un identifiant rseau (effectue la recherche sur des sous-chanes, comme pour les classes de vendeur). La plupart des clients permettent de configurer une "classe d'utilisateur". Cette option associe une classe d'utilisateur un label, de telle manire qu'il soit possible de fournir des options DHCP spcifiques diffrentes classes d'htes. Il est possible, par exemple, d'utiliser ceci pour dfinir un serveur d'impression diffrent pour les htes de la classe "comptes" et ceux de la classe "ingnierie".
-4, --dhcp-mac=<identifiant de rseau>,<adresse MAC> Associe une adresse matrielle (MAC) un identifiant rseau. L'adresse matrielle peut inclure des jokers. Par exemple --dhcp-mac=3com,01:34:23:*:*:* permet de dfinir le label "3com" pour n'importe quel hte dont l'adresse matrielle concide avec les critres dfinis.
--dhcp-circuitid=<identifiant de rseau>,<identifiant de circuit>, --dhcp-remoteid=<identifiant de rseau>,<identifiant distant> Associe des options de relais DHCP issus de la RFC3046 des identifiants de rseau. Cette information peut-tre fournie par des relais DHCP. L'identifiant de circuit ou l'identifiant distant est normalement fourni sous la forme d'une chane de valeurs hexadcimales spares par des ":", mais il est galement possible qu'elle le soit sous la forme d'une simple chane de caractres. Si l'identifiant de circuit ou d'agent correspond exactement celui fourni par le relais DHCP, alors l'identifiant de rseau est positionn.
--dhcp-subscrid=<identifiant de rseau>,<identifiant d'abonn> Associe des options de relais DHCP issues de la RFC3993 des identifiants de rseau.
--dhcp-match=<identifiant de rseau>,<numro d'option>|option:<nom d'option>[,<valeur>] Si aucune valeur n'est spcifie, associe l'identifiant de rseau si le client envoie une option DHCP avec le numro ou le nom spcifi. Lorsqu'une valeur est fournie, positionne le label seulement dans le cas o l'option est fournie et correspond la valeur. La valeur peut-tre de la forme "01:ff:*:02", auquel cas le dbut de l'option doit correspondre (en respectant les jokers). La valeur peut aussi tre de la mme forme que dans dhcp-option , auquel cas l'option est traite comme un tableau de valeur, et un des lments doit correspondre, ainsi --dhcp-match=efi-ia32,option:client-arch,6 spcifie le label "efi-ia32" si le numro 6 apparat dnas la liste d'architectures envoy par le client au sein de l'option 93. (se rferer au RFC 4578 pour plus de dtails). Si la valeur est un chaine de caractres, celle-ci est recherche (correspondance en temps que sous-chane).
-J, --dhcp-ignore=<identifiant de rseau>[,<identifiant de rseau>] Lorsque tous les identifiants de rseau fournis concident avec la liste d'identifiants rseau drive des classes de rseau, hte, vendeur et utilisateur, ignorer l'hte et ne pas donner de bail DHCP.
--dhcp-ignore-names[=<identifiant de rseau>[,<identifiant de rseau>]] Lorsque tous les identifiant de rseau concident avec la liste d'identifiants rseau drives des classes de rseau, hte, vendeur et utilisateur, ignorer le nom de machine fourni par l'hte. Il est noter que, la diffrence de l'option "dhcp-ignore", il est permis de ne pas fournir d'identifiant rseau. Dans ce cas, les noms d'htes fournis par les clients DHCP seront toujours ignors, et les noms d'htes seront ajouts au DNS en utilisant uniquement la configuration dhcp-host de Dnsmasq, ainsi que le contenu des fichiers /etc/hosts et /etc/ethers.
--dhcp-broadcast=<identifiant de rseau>[,<identifiant de rseau>] Lorsque tous les identifiants de rseaux fournis correspondent ceux obtenus partir des classes de rseau, d'hte ou d'utilisateur, force l'utilisation du broadcast pour communiquer avec l'hte lorsque celui-ci n'est pas configur. La plupart des clients DHCP ncessitant une rponse par le biais d'un broadcast activent une option dans leur requte, ce qui fait que cela se fait automatiquement, mais ce n'est pas la cas de certains vieux clients BOOTP.
-M, --dhcp-boot=[net:<identifiant de rseau>,]<nom de fichier>,[<nom de serveur>[,<adresse de serveur>]] Spcifie les options BOOTP devant tre retournes par le serveur DHCP. Le nom de serveur ainsi que l'adresse sont optionnels : s'ils ne sont pas fournis, le nom est laiss vide et l'adresse fournie est celle de la machine sur laquelle s'excute Dnsmasq. Si Dnsmasq founit un service TFTP (voir --enable-tftp ), alors seul un nom de fichier est requis ici pour permettre un dmarrage par le rseau. Si d'ventuels identifiants de rseau sont fournis, ils doivent concider avec ceux du client pour que cet lement de configuration lui soit envoy. Il est noter que les identifiants de rseau doivent-tre prfixs par "net:".
--pxe-service=[net:<identifiant de rseau>,]<CSA>,<entre de menu>,<nom de fichier>|<type de service de dmarrage>[,<adresse de serveur>] La plupart des ROMS de dmarrage PXE ne permettent au systme PXE que la simple obtention d'une adresse IP, le tlchargement du fichier spcifi dans dhcp-boot et son excution. Cependant, le systme PXE est capable de fonctions bien plus complexes pour peu que le serveur DHCP soit adapt. Ceci spcifie l'option de dmarrage qui apparaitra dans un menu de dmarrage PXE. <CSA> est le type du systme client. Seuls des types de services valides apparaitront dans un menu. Les types connus sont x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI et X86-64_EFI; D'autres types peuvent-tre spcifis sous la forme d'une valeur entire. Le paramtre aprs le texte correspondant l'entre dans le menu peut tre un nom de fichier, auquel cas Dnsmasq agit comme un serveur de dmarrage et indique au client PXE qu'il faut tlcharger ce fichier via TFTP, soit depuis ce serveur (l'option enable-tftp doit tre spcifie 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 tre rajout au nom de fichier. Si une valeur numrique entire est fournir pour le type de dmarrage, en remplacement du nom de fichier, le client PXE devra chercher un service de dmarrage de ce type sur le rseau. Cette recherche peut tre faite via multicast ou broadcast, ou directement auprs d'un serveur si son adresse IP est fournie dans l'option. Un service de dmarrage de type 0 est spcial et provoquera une interruption du dmarrage par le rseau ainsi que la poursuite du dmarrage sur un mdia local.
--pxe-prompt=[net:<identifiant de rseau>,]<invite>[,<dlai>] Cette option permet d'afficher une invite la suite du dmarrage PXE. Si un dlai est fourni, alors la premire entre du menu de dmarrage sera automatiquement excute aprs ce dlai. Si le dlai vaut 0, alors la premire entre disponible sera excute immdiatement. Si pxe-prompt est omis, le systme attendra un choix de l'utilisateur s'il existe plusieurs entres dans le menu, ou dmarrera immdiatement dans le cas o il n'y a qu'une seule entre. Voir pxe-service pour plus de dtails sur les entres de menu. Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas o un autre serveur DHCP sur le rseau est responsable de l'allocation des adresses IP, auquel cas Dnsmasq se contente de fournir les informations donnes dans les options pxe-prompt et pxe-service pour permettre le dmarrage par le rseau. Ce mode est activ en utilisant le mot-clef proxy dans dhcp-range.
-X, --dhcp-lease-max=<nombre> Limite Dnsmasq un maximum de <nombre> baux DHCP. Le dfaut est de 150. Cette limite permet d'viter des attaques de dni de service ("DoS") par des htes crant des milliers de baux et utilisant beaucoup de mmoire dans le processus Dnsmasq.
-K, --dhcp-authoritative Cette option doit tre donne lorsque Dnsmasq est le seul serveur DHCP sur le rseau. Cela change le comportement par dfaut qui est celui d'un strict respect des RFC, afin que les requtes DHCP pour des baux inconnus par des htes inconnus ne soient pas ignores. Cela permet de nouveaux htes d'obtenir des baux sans tenir compte de fastidieuses temporisations ("timeout"). Cela permet galement Dnsmasq de reconstruire sa base de donne 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 utiliss par dfaut pour le DHCP. Si cette option est donne toute seule sans arguments, alors change les ports utiliss pour le DHCP de 67 et 68 respectivement 1067 et 1068. Si un seul argument est donn, ce numro est utilis pour le port serveur et ce numro plus 1 est utilis pour le port client. Enfin, en fournissant deux numros de ports, il est possible de spcifier arbitrairement 2 ports la fois pour le serveur et pour le client DHCP.
-3, --bootp-dynamic[=<identifiant de rseau>[,<identifiant de rseau>]] Permet l'allocation dynamique d'adresses IP des clients BOOTP. Utiliser cette option avec prcaution, une adresse alloue un client BOOTP tant perptuelle, et de fait n'est plus disponibles pour d'autres htes. Si aucun argument n'est donn, alors cette option permet une allocation dynamique dans tous les cas. Si des arguments sont spcifis, alors l'allocation ne se fait que lorsque tous les identifiants concident. Il est possible de rpeter cette option avec plusieurs jeux d'arguments.
-5, --no-ping Par dfaut, le serveur DHCP tente de s'assurer qu'une adresse n'est pas utilise avant de l'allouer un hte. Cela est fait en envoyant une requte ICMP de type "echo request" (aussi connue sous le nom de "ping") l'adresse en question. Si le serveur obtient une rponse, alors l'adresse doit dj tre utilise et une autre est essaye. Cette option permet de supprimer cette vrification. A utiliser avec prcaution.
--log-dhcp Traces additionnelles pour le service DHCP : enregistre toutes les options envoyes aux clients DHCP et les identifiants de rseaux utiliss pour la dtermination 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, ou qu'un ancien est supprim, le fichier dont le chemin est spcifi est excut. Les arguments fournis celui-ci sont soit "add" ("ajouter"), "old" ("ancien") ou "del" ("supprimer"), suivi de l'adresse MAC de l'hte puis l'adresse IP et le nom d'hte si celui-ci est connu."add" signifie qu'un bail a t cr, "del" signifie qu'il a t supprim, "old" notifie que le bail existait au lancement de Dnsmasq, ou un changement d'adresse MAC ou de nom d'hte pour un bail existant (ou, dans le cas o leasefile-ro est spcifi, un changement de dure de bail ou d'identifiant d'hte). Si l'adresse Mac est d'un type de rseau autre qu'ethernet, il est ncessaire de la prceder du type de rseau, par exemple "06-01:23:45:67:89:ab" pour du token ring. Le processus est excut en temps que super-utilisateur (si Dnsmasq a t lanc en temps que "root"), mme si Dnsmasq est configur pour changer son UID pour celle d'un utilisateur non-privilgi. L'environnement est hrit de celui de l'invocation du processus Dnsmasq, et si l'hte fournit un identifiant de client, celui-ci est stock dans la variable d'environnement DNSMASQ_CLIENT_ID. Si un nom de domaine pleinement qualifi (FQDN) est connu pour l'hte, la part relative au domaine est stocke dans DNSMASQ_DOMAIN. Si le client fournit une information de classe de vendeur, de classe d'utilisateur ou un nom d'hte, celles-ci sont positionnes dans les variables DNSMASQ_VENDOR_CLASS et DNSMASQ_USER_CLASS0 DNSMASQ_USER_CLASSn et DNSMASQ_SUPPLIED_HOSTNAME respectivement, mais seulement pour les actions "add" et "old" lorsqu'un hte reprend un bail existant, ces variables n'tant pas stockes dans la base de baux de Dnsmasq. Si Dnsmasq a t compil avec l'option HAVE_BROKEN_RTC ("horloge RTC dfectueuse"), alors la dure du bail (en secondes) est stocke dans la variable DNSMASQ_LEASE_LENGTH, sinon la date d'expiration du bail est toujours stock dans la variable d'environnement DNSMASQ_LEASE_EXPIRES. Le nombre de secondes avant expiration est toujours stock dans DNSMASQ_TIME_REMAINING. Si un bail tait associ un nom d'hte et que celui-ci est supprim, un vnement de type "old" est gnr avec le nouveau statut du bail, c--d sans nom d'hte, 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 requte est arrive; ceci n'est pas renseign dans le cas des actions "old" ayant lieu aprs un redmarrage de dnsmasq. La variable DNSMASQ_RELAY_ADDRESS est renseigne si le client a utilis un relai DHCP pour contacter Dnsmasq, si l'adresse IP du relai est connue. Tous les descripteurs de fichiers sont ferms, sauf stdin, stdout et stderr qui sont ouverts sur /dev/null (sauf en mode dverminage). Le script n'est pas lanc de manire concurrente : si un autre changement de bail intervient, le script ne sera relanc que lorsque l'excution actuelle sera termine. Au dmarrage de Dnsmasq, le script sera invoqu pour chacun des baux existants dans le fichier des baux. Le script sera lanc avec l'action "del" pour les baux expirs, et "old" pour les autres. <chemin de fichier> doit tre un chemin absolu (c'est--dire partant de la racine "/"), aucune recherche n'aura lieu dans les rpertoires de la variable d'environnement PATH. Lorsque Dnsmasq reoit un signal HUP, le script sera invoqu avec une action "old" pour tous les baux existants.
--dhcp-scriptuser Spcifie l'utilisateur sous lequel le script lease-change doit tre excut. La valeur par dfaut correspond l'utilisateur root mais peut-tre change par le biais de cette option.
-9, --leasefile-ro Supprimer compltement l'usage du fichier servant de base de donne pour les baux DHCP. Le fichier ne sera ni cr, ni lu, ni crit. Change la faon dont le script de changement d'tat de bail est lanc (si celui-ci est fourni par le biais de l'option --dhcp-script ), de sorte que la base de donnes de baux puisse tre compltement gre par le script sur un stockage externe. En addition aux actions dcrites dans --dhcp-script, le script de changement d'tat de bail est appell une fois, au lancement de Dnsmasq, avec pour seul argument "init". Lorsqu'appell de la sorte, le script doit fournir l'tat de la base de baux, dans le format de fichier de baux de Dnsmasq, sur sa sortie standard (stdout) et retourner un code de retour de 0. Positionner cette option provoque galement une invocation du script de changement d'tat de bail chaque changement de l'identifiant de client, de longueur de bail ou de date d'expiration.
--bridge-interface=<interface>,<alias>[,<alias>] Traiter les requtes DHCP arrivant sur n'importe laquelle des interfaces <alias> comme si elles arrivaient de l'interface <interface>. Cette option est ncessaire 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>] Spcifie le domaine du serveur DHCP. Le domaine peut tre donn de manire inconditionnelle (sans spcifier de gamme d'adresses IP) ou pour des gammes d'adresses IP limites. Cela a deux effets; tout d'abord, le serveur DHCP retourne le domaine tous les htes le demandant, deuximement, cela spcifie le domaine valide pour les htes DHCP configurs. Le but de cela est de contraindre les noms d'hte afin qu'aucun hte sur le LAN ne puisse fournir via DHCP un nom tel que par exemple "microsoft.com" et capturer du trafic de manire illgitime. Si aucun nom de domaine n'est spcifi, alors les noms d'htes avec un nom de domaine (c--d un point dans le nom) seront interdits et enregistrs dans le journal (logs). Si un suffixe est fourni, alors les noms d'htes possdant un domaine sont autoriss, pour peu que le nom de domaine concide avec le nom fourni. De plus, si un suffixe est fourni, alors les noms d'htes ne possdant pas de nom de domain se voient rajouter le suffixe fourni dans l'option --domain. Ainsi, sur mon rseau, je peux configurer --domain=thekelleys.org.uk et avoir une machine dont le nom DHCP serait "laptop". L'adresse IP de cette machine sera disponible la fois pour "laptop" et "laptop.thekelleys.org.uk". Si la valeur fournie pour <domaine> est "#", alors le nom de domaine est positionn la premire valeur de la directive "search" du fichier /etc/resolv.conf (ou quivalent). La gamme d'adresses peut tre de la forme <adresse ip>,<adresse ip> ou <adresse ip>/<masque de rseau> voire une simple <adresse ip>. Voir --dhcp-fqdn qui peut changer le comportement de dnsmasq relatif aux domaines.
--dhcp-fqdn Dans le mode par dfaut, dnsmasq insre les noms non-qualifis des clients DHCP dans le DNS. Pour cette raison, les noms doivent tre uniques, mme si deux clients ayant le mme nom sont dans deux domaines diffrents. Si un deuxime client DHCP apparat ayant le mme nom qu'un client dj existant, ce nom est transfr au nouveau client. Si --dhcp-fqdn est spcifi, ce comportement change : les noms non qualifis ne sont plus rajouts dans le DNS, seuls les noms qualifis le sont. Deux clients DHCP avec le mme nom peuvent tous les deux garder le nom, pour peu que la partie relative au domaine soit diffrente (c--d que les noms pleinements qualifis diffrent). Pour d'assurer que tous les noms ont une partie domaine, il doit-y avoir au moins un --domain sans gamme d'adresses de spcifi lorsque l'option --dhcp-fqdn est configure.
--enable-tftp Active la fonction serveur TFTP. Celui-ci est de manire dlibre limit aux fonctions ncessaires au dmarrage par le rseau ("net-boot") d'un client. Seul un accs en lecture est possible; les extensions tsize et blksize sont supportes (tsize est seulement support en mode octet).
--tftp-root=<rpertoire> Les fichiers fournir dans les transferts TFTP seront cherchs en prenant le rpertoire fourni comme racine. Lorsque cela est fourni, les chemins TFTP incluant ".." sont rejets, afin d'viter que les clients ne puissent sortir de la racine spcifie. Les chemins absolus (commenant par "/") sont autoriss, mais ils doivent tre la racine TFTP fournie.
--tftp-unique-root Ajouter l'adresse IP du client TFTP en temps qu'lment de chemin, la suite de la racine tftp (adresse sous forme de 4 chiffres spars par des points). Uniquement valable si une racine TFTP est spcifie et si le rpertoire 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 rsultant 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 scuris : sans cela, tout fichier lisible par Dnsmasq est disponible via TFTP (les rgles de contrle d'accs unix habituelles s'appliquent). Lorsque l'option --tftp-secure est spcifie, seuls les fichiers possds par l'utilisateur sous lequel tourne le processus Dnsmasq sont accessibles. Si Dnsmasq est excut en temps que super-utilisateur ("root"), des rgles diffrentes s'appliquent : --tftp-secure n'a aucun effet, mais seuls les fichiers ayant un droit de lecture pour tout le monde sont accessibles. Il n'est pas recommand d'excuter Dnsmasq sous l'utilisateur "root" lorsque le service TFTP est activ, et il est formellement dconseill de le faire sans fournir l'option --tftp-root. Sans cela, en effet, l'accs de tous les fichiers du serveur pour lequel le droit de lecture pour tout le monde est positionn ("world-readable") devient possible par n'importe quel hte sur le rseau.
--tftp-max=<connexions> Dfinit le nombre maximum de connexions TFTP simultanes autorises. La valeur par dfaut est de 50. Lorsqu'un grand nombre de connexions TFTP est spcifi, il se peut que la limite de nombre de descripteurs de fichiers par processus soit atteinte. Dnsmasq ncessite quelques descripteurs de fichiers, ainsi qu'un descripteur de fichier pour chaque connexion TFTP simultane et pour chacun des fichiers devant tre fournis. De fait, servir le mme fichier n clients ne ncessitera qu'environ n + 10 descripteurs de fichiers, alors que fournir des fichiers tous diffrents n clients utilisera environ (2*n) + 10 descripteurs. Si elle est donne, l'option --tftp-port-range peut affecter le nombre maximum de connexions concurrentes.
--tftp-no-blocksize Empche le serveur TFTP de ngocier l'option "blocksize" (taille de bloc) avec les clients. Certains clients buggs spcifient cette option mais se comportent ensuite de manire incorrecte si celle-ci est accorde.
--tftp-port-range=<dbut>,<fin> Un serveur TFTP coute sur le port prdfini 69 ("well-known port") pour l'initiation de la connexion, mais utilise galement un port dynamiquement allou pour chaque connexion. Normalement, ces ports sont allous par le systme d'exploitation, mais cette option permet de spcifier une gamme de ports utiliser pour les transferts TFTP. Cela peut-tre utile si TFTP doit traverser un dispositif garde-barrire ("firewall"). La valeur de dbut pour la plage de port ne peut-tre infrieure 1025 sauf si dnsmasq tourne en temps que super-utilisateur ("root"). Le nombre de connexions TFTP concurrentes est limite par la taille de la gamme de ports ainsi spcifie.
--tftp-port-range=<dbut>,<fin> Un serveur TFTP coute sur un numro de port bien connu (69) pour l'initiation de la connexion, et alloue dynamiquement un port pour chaque connexion. Ces numros de ports sont en principe allous par le systme d'exploitation, mais cette option permet de spcifier une gamme de ports utiliser pour les transferts TFTP. Cela peut-tre utile lorsque ceux-ci doivent traverser un dispositif garde-barrire ("firewall"). Le dbut de la plage ne peut-tre infrieur 1024 moins que Dnsmasq ne fonctionne en temps que super-utilisateur ("root"). Le nombre maximal de connexions TFTP concurrentes est limite par la taille de la plage de ports ainsi dfinie.
-C, --conf-file=<fichier> Spcifie un fichier de configuration diffrent. L'option "conf-file" est galement autorise dans des fichiers de configuration, ce qui permet l'inclusion de multiples fichiers de configuration.
-7, --conf-dir=<rpertoire>[,<extension de fichier>...] Lis tous les fichiers du rpertoire spcifi et les traite comme des fichiers de configuration. Si des extensions sont donnes, tout fichier finissant par ces extensions seront ignors. Tout fichier dont le nom se termine en ~ ou commence par ., ainsi que ceux commenant ou se terminant par # seront systmatiquement ignors. Cette option peut tre donne en ligne de commande ou dans un fichier de configuration.
A la rception d'un signal SIGUSR1, Dnsmasq crit des statistiques dans les traces systme. Les informations fournies sont : la taille du cache, le nombre de noms ayant t supprims du cache avant expiration afin de faire de la place pour les nouveaux noms, ainsi que le nombre total d'entres ayant t insres dans le cache. Pour chaque serveur amont, il fournit le nomnbre de requtes transmises ainsi que le nombre de requtes ayant rsult par une erreur. Lorsque Dnsmasq a t lanc via --no-daemon ou lorsque la traabilit maximale a t active ( -q ), la totalit du contenu du cache est de surcrot fournie.
A la rception 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 opration Dnsmasq ne s'excute pas en temps que "root". Lorsqu'il cr un fichier de traces pour la premire fois, Dnsmasq change le propritaire du fichier afin de le faire appartenir l'utilisateur non "root" sous lequel Dnsmasq s'excute. Le logiciel de rotation de fichiers de trace logrotate doit tre configur pour crer un nouveau fichier avec un propritaire identique au fichier existant avant d'envoyer le signal SIGUSR2. Si une requte DNS TCP est en cours, l'ancien fichier de traces reste ouvert dans le processus fils qui traite la requte TCP et il peut y tre crit. Il existe cependant une limite de 150 secondes aprs laquelle tous les processus traitant des requtes TCP expirent : pour cette raison, il est prfrable 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 requtes DNS : il n'est pas capable d'effectuer une rsolution de nom rcursive en partant des serveurs DNS racine, mais transmet de telles requtes un serveur DNS amont capable de telles recherches rcursives, ce qui est typiquement le cas d'un serveur DNS de FAI. Par dfaut, Dnsmasq lis /etc/resolv.conf pour dcouvrir les adresses IP des serveurs DNS amonts utiliser, puisque cette information est en gnral stocke cet endroit. A moins que l'option --no-poll ne soit utilise, Dnsmasq vrifie la date de modification du fichier /etc/resolv.conf (ou l'quivalent si --resolv-file est utilis), et le relis lorsqu'il change. Cela permet de dfinir les serveurs DNS amont de manire dynamique lorsque PPP ou DHCP sont utiliss, puisque ces protocoles fournissent cette information. L'absence du fichier /etc/resolv.conf ne conduit pas une erreur, puisqu'il peut trs bien ne pas tre cr avant qu'une connexion PPP ne soit tablie. Dans ce cas, Dnsmasq vrifie rgulirement pour voir si un fichier /etc/resolv.conf est cr. Dnsmasq peut tre configur pour lire plus d'un fichier resolv.conf. Cela est utile sur un ordinateur portable o PPP et DHCP peuvent-tre utiliss : Dnsmasq peut alors tre configur pour lire la fois /etc/ppp/resolv.conf et /etc/dhcpc/resolv.conf et utilisera le contenu du fichier ayant chang en dernier, ce qui permet de passer automatiquement de serveurs DNS d'autres.
Les serveurs amonts peuvent aussi tre spcifis sur la ligne de commande ou dans un fichier de configuration. Ces spcifications de serveurs peuvent ventuellement se voir adjoindre d'un nom de domaine qui prcise Dnsmasq quel serveur utiliser pour trouver les noms d'un domaine donn.
Pour configurer Dnsmasq afin qu'il se comporte comme un cache pour la machine sur laquelle il tourne, mettre "nameserver 127.0.0.1" dans le fichier /etc/resolv.conf afin de forcer les processus locaux envoyer leurs requtes Dnsmasq. Ensuite, spcifier les serveurs DNS amont soit en les fournissant directement Dnsmasq via l'option --server ou alors en mettant leurs adresses dans un autre fichier, par exemple /etc/resolv.dnsmasq et en lanant Dnsmasq avec l'option -r /etc/resolv.dnsmasq. Cette deuxime technique permet la mise--jour dynamique des addresses de serveurs DNS amont par le biais de PPP ou DHCP.
Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le serveur DNS amont, ainsi "macompagnie.com 1.2.3.4" dans /etc/hosts assure que les requtes pour "macompagnie.com" retourneront toujours 1.2.3.4, mme si une requte au serveur DNS amont retournerait une adresse diffrente. Il y a une exception ceci : si le DNS amont contient un CNAME qui pointe vers un nom prsent dans /etc/hosts, alors la recherche du CNAME via Dnsmasq fournira l'adresse DNS amont. Pour contourner cela, il suffit de mettre l'entre correspondant au CNAME dans /etc/hosts.
les identifiants de rseau fonctionnent comme suit : Dnsmasq associe chaque requte DHCP un ensemble d'identifiants de rseau; un pour la plage d'adresse DHCP ( dhcp-range ) utilise pour allouer l'adresse, un identifiant pour chaque entre dhcp-host associe (il ajoute "known" lorsqu'une entre dhcp-host concide), l'tiquette "bootp" pour les requtes BOOTP, un identifiant dont le nom est le nom de l'interface sur laquelle la requte est arrive, et ventuellement un identifiant pour chaque classe de vendeur ou d'utilisateur fournie par le client DHCP dans sa requte. Les options DHCP ( dhcp-option ) ayant un identifiant de rseau seront utiliss de prfrence celles sans identifiants de rseau, pour peu que tous les labels correspondent. Le prfixe '#' sur un label est un indicateur de ngation, ainsi --dhcp=option=#purple,3,1.2.3.4 envoie l'option lorsque le label "purple" n'est pas dans la liste de labels valides pour l'hte considr.
Si l'identifiant de rseau dans la plage d'adresses DHCP ( dhcp-range ) est prfix par 'net:', alors sa signification change : au lieu d'associer un label la plage spcifie, cela indique un label de rseau devant tre spcifi par le client DHCP. Ainsi, s'il y a plus d'une plage d'adresses DHCP sur un sous-rseau, et que l'une est prfixe par un identifiant de rseau (par exemple l'un spcifi dans une option de classe de vendeur), alors un hte ayant l'identifiant de rseau en question positionn se verra allouer une adresse dans la plage d'adresses DHCP prfixe.
Le serveur DHCP intgr dans Dnsmasq fonctionne galement en temps que serveur BOOTP, pour peu que l'adresse MAC et l'adresse IP des clients soient fournies, que ce soit par le biais de l'option dhcp-host ou dans le fichier /etc/ethers , et que l'option dhcp-range soit prsente afin d'activer le serveur DHCP pour un rseau donn (L'option --bootp-dynamic supprime la ncessit des associations statiques). Le paramtre "filename" (nom de fichier) de la requte BOOTP est compar avec les identifiants de rseaux des options dhcp-option ainsi que le label "bootp", ce qui permet de contrler les options retournes aux diffrentes classes d'htes.
0 - Dnsmasq s'est correctement lanc en tche de fond, ou alors s'est correctement termin si le lancement en tche de fond n'a pas t activ.
1 - Un problme de configuration a t dtect.
2 - Un problme est survenu avec un accs rseau (adresse dj utilise, tentative d'utiliser un port privilgi sans les permissions ncessaires).
3 - Un problme est survenu avec une opration sur un systme de fichier (fichier ou rpertoire manquant, permissions).
4 - Impossibilit d'allouer de la mmoire.
5 - Autre problme.
11 ou plus - un code de retour diffrent de 0 a t reu 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.
Dnsmasq est capable de grer le DNS et DHCP pour au moins un millier de clients. Evidement, pour cela la valeur de --dhcp-lease-max doit tre augmente et la dure des baux ne doit pas tre trs courte (moins d'une heure). La valeur de --dns-forward-max peut-tre augmente : commencer par la rendre gale au nombre de clients et l'augmenter si le DNS semble lent. Noter que la performance du DNS dpends galement de la performance des serveurs amonts. La taille du cache DNS peut- tre augmente : la limite en dur est de 10000 entres et la valeur par dfaut (150) est trs basse. Envoyer un signal SIGUSR1 Dnsmasq le fait mettre des informations utiles pour paramtrer la taille de cache. Voir la section NOTES pour plus de dtails.
Le serveur TFTP intgr est capable de plusieurs transferts de fichiers simultans : La limite absolue est lie au nombre maximal de descripteurs de fichiers allou un processus et la capacit de l'appel systme select() grer un grand nombre de HANDLE de fichier. Si la limite est fixe trop haut par le biais de --tftp-max elle sera rduite et la limite actuelle sera enregistre au dmarrage. Il faut noter que plus de transferts sont possible lorsque le mme fichier est transmis au lieu d'avoir un fichier diffrent pour chaque transfert.
Il est possible d'utiliser Dnsmasq pour bloquer la publicit sur la toile en associant des serveurs de publicit bien connus l'adresse 127.0.0.1 ou 0.0.0.0 par le biais du fichier /etc/hosts ou d'un fichier d'hte additionnel. Cette liste peut-tre trs longue, Dnsmasq ayant t test avec succs avec un million de noms. Cette taille de fichier ncessite un processeur 1 Ghz et environ 60 Mo de RAM.