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