NAME¶
Dnsmasq - Un serveur DHCP et cache DNS poids-plume.
SYNOPSIS¶
dnsmasq [OPTION]...
DESCRIPTION¶
dnsmasq est un serveur DHCP et DNS à faible empreinte mémoire.
Il offre à la fois les services DNS et DHCP pour un réseau local
(LAN).
Dnsmasq accepte les requêtes DNS et y réponds soit en utilisant un
petit cache local, soit en effectuant une requête à un serveur DNS
récursif externe (par exemple celui de votre fournisseur d'accès
internet). Il charge le contenu du fichier /etc/hosts afin que les noms locaux
n'apparaissant pas dans les DNS globaux soient tout de même résolus,
et assure également la résolution de nom pour les hôtes
présents dans le service DHCP.
Le serveur DHCP Dnsmasq DHCP supporte les définitions d'adresses statiques
et les réseaux multiples. Il envoie par défaut un jeu raisonnable de
paramètres DHCP, et peut être configuré pour envoyer n'importe
quel option DHCP. Il inclut un serveur TFTP sécurisé en lecture
seule permettant le démarrage via le réseau/PXE de clients DHCP et
supporte également le protocole BOOTP.
Dnsmasq supporte IPv6 et contient un démon minimaliste capable de faire des
annonces routeurs ("router-advertisements").
OPTIONS¶
Notes : Il est possible d'utiliser des options sans leur donner de
paramètre. Dans ce cas, la fonction correspondante sera
désactivée. Par exemple
--pid-file= (sans paramètre
après le =) désactive l'écriture du fichier PID. Sur BSD,
à moins que le logiciel ne soit compilé avec la bibliothèque
GNU getopt, la forme longue des options ne fonctionne pas en ligne de
commande; Elle est toujours supportée dans le fichier de configuration.
- --test
- Vérifie la syntaxe du ou des fichiers de
configurations. Se termine avec le code de retour 0 si tout est OK, ou un
code différent de 0 dans le cas contraire. Ne démarre pas
Dnsmasq.
- -h, --no-hosts
- Ne pas charger les noms du fichier /etc/hosts.
- -H, --addn-hosts=<fichier>
- Fichiers d'hôtes additionnels. Lire le fichier
spécifié en plus de /etc/hosts. Si -h est
spécifié, lire uniquement le fichier spécifié. Cette
option peut être répétée afin d'ajouter d'autres
fichiers. Si un répertoire est donné, lis les fichiers contenus
dans ce répertoire.
- -E, --expand-hosts
- Ajoute le nom de domaine aux noms simples (ne contenant pas
de point dans le nom) contenus dans le fichier /etc/hosts, de la même
façon que pour le service DHCP. Notez que cela ne s'applique pas au
nom de domaine dans les CNAME, les enregistrements PTR, TXT, etc...
- -T, --local-ttl=<durée>
- Lorsque Dnsmasq répond avec une information provenant
du fichier /etc/hosts ou avec un bail DHCP, il donne un temps de vie
(time-to-live) positionné à zéro, afin d'indiquer à la
machine faisant la requête que celle-ci ne doit pas être mise
dans un cache. Ceci est le comportement correct dans presque toutes les
situations. Cette option permet de spécifier la valeur de
time-to-live à retourner (en secondes). Cela permet de réduire
la charge sur le serveur, mais les clients risquent d'utiliser des
données périmées dans certains cas.
- --neg-ttl=<durée>
- Les réponses négatives provenant des serveurs
amonts contiennent normalement une information de durée de vie
(time-to-live) dans les enregistrements SOA, information dont dnsmasq se
sert pour mettre la réponse en cache. Si la réponse du serveur
amont omet cette information, dnsmasq ne cache pas la réponse. Cette
option permet de doner une valeur de durée de vie par défaut (en
secondes) que dnsmasq utilise pour mettre les réponses négatives
dans son cache, même en l'absence d'enregistrement SOA.
- --max-ttl=<durée>
- Définie la valeur de TTL maximum qui sera fournie aux
clients. La valeur maximum de TTL spécifiée sera fournie aux
clients en remplacement de la vraie valeur de TTL si cette dernière
est supérieure. La valeur réelle de TTL est cependant
conservée dans le cache afin d'éviter de saturer les serveurs
DNS en amont.
- -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.
- -q, --log-queries
- Enregistrer les résultats des requêtes DNS
traitées par Dnsmasq dans un fichier de traces ("logs").
Active la génération d'un état complet du cache lors de la
réception d'un signal SIGUSR1.
- -8, --log-facility=<facility>
- Définit la "facility" dans laquelle Dnsmasq
enverra ses entrées syslog, par défaut DAEMON ou LOCAL0 si le
mode debug est activé. Si la "facility" contient au moins
un caractère "/", alors Dnsmasq considère qu'il s'agit
d'un fichier et enverra les logs dans le fichier correspondant à la
place du syslog. Si la "facility" est '-', alors dnsmasq envoie
les logs sur la sortie d'erreur standard stderr. (Les erreurs lors de la
lecture de la configuration vont toujours vers le syslog, mais tous les
messages postérieurs à un démarrage réussi seront
exclusivement envoyés vers le fichier de logs). Lorsque Dnsmasq est
configuré pour envoyer ses traces vers un fichier, la réception
d'un signal SIGUSR2 entraine la fermeture et réouverture du fichier.
Cela permet la rotation de fichiers de traces sans nécessiter
l'arrêt de Dnsmasq.
- --log-async[=<lignes>]
- Permet l'envoi de traces de manière asynchrone, et de
manière optionnelle, le nombre de lignes devant être mises dans
la file d'attente par Dnsmasq lorsque l'écriture vers le syslog est
lente. Dnsmasq peut envoyer ses logs de manière asynchrone : cela lui
permet de continuer à fonctionner sans être bloqué par le
syslog, et permet à syslog d'utiliser Dnsmasq pour les
résolutions DNS sans risque d'interblocage. Si la file d'attente
devient pleine, Dnsmasq loggera le dépassement de file et le nombre
de messages perdus. La longueur par défaut de la file d'attente est
de 5 et une valeur saine sera comprise entre 5 et 25, avec une limite
maximum imposée de 100.
- -x, --pid-file=<chemin>
- Spécifie un fichier dans lequel stocker le numéro
de processus (pid). La valeur par défaut est
/var/run/dnsmasq.pid.
- -u, --user=<nom d'utilisateur>
- Spécifie l'identité (nom d'utilisateur) prise par
Dnsmasq après le démarrage. Dnsmasq doit normalement être
démarré en temps que root ("super-utilisateur"), mais
abandonne ses privilèges après le démarrage en changeant
d'identité. Normalement cet utilisateur est l'utilisateur nobody
("personne"), mais il est possible d'en définir un autre
par le biais de ce paramètre.
- -g, --group=<nom de groupe>
- Spécifie le groupe sous lequel Dnsmasq s'exécute.
Par défaut, il s'agit du groupe "dip", afin de faciliter
l'accès au fichier /etc/ppp/resolv.conf qui n'est en
général pas en lecture par tout le monde.
- -v, --version
- Imprime le numéro de version.
- -p, --port=<port>
- Ecoute sur le port numéro <port> au lieu du port
DNS standard (53). Paramétrer cette valeur à zéro
désactive complètement la fonction DNS pour ne laisser actif que
le DHCP ou le TFTP.
- -P, --edns-packet-max=<taille>
- Spécifie la taille maximum de paquet UDP EDNS.0
supporté par le relai DNS. Le défaut est de 4096, qui est la
valeur recommandée dans la RFC5625.
- -Q, --query-port=<numéro de port>
- Envoie et écoute les requêtes DNS sortantes
depuis le port UDP spécifié par <numéro de port>, et
non sur un port aléatoire. NOTE : Cette option rends dnsmasq moins
sûr contre les attaques par usurpation DNS ("DNS
spoofing"), mais cela peut permettre d'utiliser moins de ressources
et d'être plus rapide. Donner une valeur de zéro à cette
option restaure le comportement par défaut présent dans les
versions de dnsmasq inférieures à 2.43 qui consiste à
n'allouer qu'un seul port alloué par le système
d'exploitation.
- --min-port=<port>
- Ne pas utiliser de port dont le numéro est
inférieur à la valeur donnée en paramètre pour les
requêtes DNS sortantes. Dnsmasq choisis un port source aléatoire
pour les requêtes sortantes : lorsque cette option est fournie, les
ports utilisés seront toujours au dessus de la valeur
spécifiée. Utile pour des systèmes derrière des
dispositifs garde-barrières ("firewalls").
- -i, --interface=<nom d'interface>
- N'écouter que sur l'interface réseau
spécifiée. Dnsmasq aujoute automatiquement l'interface locale
("loopback") à la liste des interfaces lorsque l'option
--interface est utilisée. Si aucune option --interface
ou --listen-address n'est donnée, Dnsmasq écoutera sur
toutes les interfaces disponibles sauf celle(s) spécifiée(s) par
l'option --except-interface. Les alias d'interfaces IP (e-g
"eth1:0") ne peuvent être utilisés ni avec
--interface ni --except-interface. Utiliser l'option
--listen-address à la place.
- -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.
- -2, --no-dhcp-interface=<nom d'interface>
- Ne pas fournir de service DHCP sur l'interface
spécifiée, mais fournir tout de même le service DNS.
- -a, --listen-address=<adresse IP>
- Ecouter sur la ou les adresse(s) IP spécifiée(s).
Les options --interface et --listen-address
peuvent-être spécifiées simultanément, auquel cas un
jeu d'interfaces et d'adresses seront utilisées. Notez que si aucune
option --interface n'est donnée alors qu'une option
--listen-address l'est, Dnsmasq n'écoutera pas automatiquement
sur l'interface locale ("loopback"). Pour activer l'écoute
sur l'interface locale, il est alors nécessaire de fournir
explicitement son adresse IP, 127.0.0.1 via l'option
--listen-address.
- -z, --bind-interfaces
- Sur les systèmes qui le supporte, Dnsmasq s'associe
avec l'interface joker ("wildcard"), même lorsqu'il ne doit
écouter que sur certaines interfaces. Par la suite, il rejette les
requêtes auxquelles il ne doit pas répondre. Cette situation
présente l'avantage de fonctionner même lorsque les interfaces
vont et viennent ou changent d'adresses. L'option --bind-interfaces
force Dnsmasq à ne réellement s'associer qu'avec les interfaces
sur lesquelles il doit écouter. L'un des seuls cas où cette
option est utile est celui où un autre serveur de nom (ou une autre
instance de Dnsmasq) tourne sur la même machine. Utiliser cette
option permet également d'avoir plusieurs instances de Dnsmasq
fournissant un service DHCP sur la même machine.
- -y, --localise-queries
- Retourne des réponses aux requêtes DNS
dépendantes de l'interface sur laquelle la requête a
été reçue, à partir du fichier /etc/hosts. Si un nom
dans /etc/hosts a plus d'une adresse associée avec lui, et qu'une des
adresses au moins est dans le même sous-réseau que l'interface
sur laquelle la requête a été reçue, alors ne retourne
que la(les) adresse(s) du sous-réseau considéré. Cela
permet d'avoir dans /etc/hosts un serveur avec de multiples adresses, une
pour chacune de ses interfaces, et de fournir aux hôtes l'adresse
correcte (basée sur le réseau auquel ils sont attachés).
Cette possibilité est actuellement limitée à IPv4.
- -b, --bogus-priv
- Fausse résolution inverse pour les réseaux
privés. Toutes les requêtes DNS inverses pour des adresses IP
privées (ie 192.168.x.x, etc...) qui ne sont pas trouvées dans
/etc/hosts ou dans le fichier de baux DHCP se voient retournées une
réponse "pas de tel domaine" ("no such domain")
au lieu d'être transmises aux serveurs de nom amont ("upstream
server").
- -V, --alias=[<ancienne IP>]|[<IP de
début>-<IP de fin>],<nouvelle
IP>[,<masque>]
- Modifie les adresses IPv4 retournées par les serveurs
de nom amont; <ancienne IP> est remplacée par <nouvelle
IP>. Si le <masque> optionnel est fourni, alors toute adresse
correspondant à l'adresse <ancienne IP>/<masque> sera
réécrite. Ainsi par exemple
--alias=1.2.3.0,6.7.8.0,255.255.255.0 modifiera 1.2.3.56 en
6.7.8.56 et 1.2.3.67 en 6.7.8.67. Cette fonctionnalité correspond
à ce que les routeurs Cisco PIX appellent "bidouillage DNS"
("DNS doctoring"). Si l'ancienne IP est donnée sous la
forme d'une gamme d'adresses, alors seules les adresses dans cette gamme
seront réecrites, et non le sous-réseau dans son ensemble.
Ainsi, --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
fait correspondre 192.168.0.10->192.168.0.40 à
10.0.0.10->10.0.0.40
- -B, --bogus-nxdomain=<adresse IP>
- Transforme les réponses contenant l'adresse IP fournie
en réponses "pas de tel domaine" ("no such
domain"). Ceci a pour but de neutraliser la modification sournoise
mise en place par Verisign en septembre 2003, lorsqu'ils ont commencé
à retourner l'adresse d'un serveur web publicitaire en réponse
aux requêtes pour les noms de domaines non enregistrés, au lieu
de la réponse correcte "NXDOMAIN". Cette option demande
à Dnsmasq de retourner la réponse correcte lorsqu'il constate ce
comportement. L'adresse retournée par Verisign en septembre 2003 est
64.94.110.11.
- -f, --filterwin2k
- Les dernières versions de windows font des
requêtes DNS périodiques auxquelles non seulement les serveurs
DNS publics ne peuvent donner de réponse, mais qui, de surcroît,
peuvent poser des problèmes en déclenchant des connexions
intempestives pour des liens réseaux avec des connexions "à
la demande". Fournir cette option active le filtrage des
requêtes de ce type. Les requêtes bloquées sont les
requêtes pour les entrées de type SOA ou SRV, ainsi que les
requêtes de type ANY avec des noms possédant des caractères
sous-lignés (requêtes pour des serveurs LDAP).
- -r, --resolv-file=<fichier>
- Lis les adresses des serveurs de nom amont dans le fichier
de nom <fichier>, au lieu du fichier /etc/resolv.conf. Pour le
format de ce fichier, voir dans le manuel pour resolv.conf(5) les
entrées correspondant aux serveurs de noms (nameserver). Dnsmasq peut
lire plusieurs fichiers de type resolv.conf, le premier fichier
spécifié remplace le fichier par défaut, le contenu des
suivants est rajouté dans la liste des fichiers à consulter.
Seul le fichier ayant la dernière date de modification sera
chargé en mémoire.
- -R, --no-resolv
- Ne pas lire le contenu du fichier /etc/resolv.conf.
N'obtenir l'adresse des serveurs de nom amont que depuis la ligne de
commande ou le fichier de configuration de Dnsmasq.
- -1, --enable-dbus
- 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.
- -o, --strict-order
- Par défaut, Dnsmasq envoie les requêtes à
n'importe lequel des serveurs amonts dont il a connaissance tout en
essayant de favoriser les serveurs qu'il sait fonctionner. Cette option
force Dnsmasq à essayer d'interroger, pour chaque requête, les
serveurs DNS dans leur ordre d'apparition dans le fichier
/etc/resolv.conf.
- --all-servers
- Par défaut, lorsque dnsmasq a plus d'un serveur amont
disponible, il n'envoie les requêtes qu'à un seul serveur.
Spécifier cette option force dnsmasq à effectuer ses
requêtes à tous les serveurs disponibles. Le résultat
renvoyé au client sera celui fournit par le premier serveur ayant
répondu.
- --stop-dns-rebind
- Rejete (et enregistre dans le journal d'activité) les
adresses dans la gamme d'adresses IP privée (au sens RFC1918) qui
pourraient être renvoyées par les serveurs amonts suite à
une résolution de nom. Cela bloque les attaques cherchant à
détourner de leur usage les logiciels de navigation web ('browser')
en s'en servant pour découvrir les machines situées sur le
réseau local.
- --rebind-localhost-ok
- Exclue 127.0.0/8 des vérifications de
réassociation DNS. Cette gamme d'adresses est retournée par les
serveurs Realtime Blackhole (RBL, utilisés dans la lutte contre le
spam), la bloquer peut entraîner des disfonctionnements de ces
services.
- --rebind-domain-ok=[<domaine>]|[[/<domaine>/[<domaine>/]
- Ne pas détecter ni bloquer les actions de type
dns-rebind pour ces domaines. Cette option peut prendre comme valeur soit
un nom de domaine soit plusieurs noms de domains entourés par des
'/', selon une syntaxe similaire à l'option --server, c-à-d :
--rebind-domain-ok=/domaine1/domaine2/domaine3/
- -n, --no-poll
- Ne pas vérifier régulièrement si le fichier
/etc/resolv.conf a été modifié.
- --clear-on-reload
- Lorsque le fichier /etc/resolv.conf est relu, 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.
- -m, --mx-host=<nom de l'hôte>[[,<nom du
MX>],<préference>]
- Spécifie un enregistrement de type MX pour <nom de
l'hôte> retournant le nom donné dans <nom du MX> (s'il
est présent), ou sinon le nom spécifié dans l'option
--mx-target si elle est présente. Sinon retourne le nom de la
machine sur laquelle Dnsmasq tourne. La valeur par défaut
(spécifiée dans l'option --mx-target ) est utile dans un
réseau local pour rediriger les courriers électroniques vers un
serveur central. La valeur de préférence est optionnelle et vaut
par défaut 1 si elle n'est pas spécifiée. Plus d'une
entrée MX peut être fournie pour un hôte donné.
- -t, --mx-target=<nom d'hôte>
- Spécifie la réponse par défaut fournie par
Dnsmasq pour les requêtes sur des enregistrements de type MX. Voir
--mx-host. Si --mx-target est donné mais pas de
--mx-host, alors Dnsmasq retourne comme réponse un
enregistrement MX contenant le nom d'hôte spécifié dans
l'option --mx-target pour toute requête concernant le MX de la
machine sur laquelle tourne Dnsmasq.
- -e, --selfmx
- Définit, pour toutes les machines locales, un MX
correspondant à l'hôte considéré. Les machines locales
sont celles définies dans le fichier /etc/hosts ou dans un bail
DHCP.
- -L, --localmx
- Définit, pour toutes les machines locales, un
enregistrement MX pointant sur l'hôte spécifié par
mx-target (ou la machine sur laquelle Dnsmasq tourne). Les machines
locales sont celles définies dans le fichier /etc/hosts ou dans un
bail DHCP.
- -W
--srv-host=<_service>.<_protocole>.[<domaine>],[<cible>[,<port>[,<priorité>[,<poids>]]]]
- Spécifie un enregistrement DNS de type SRV. Voir la
RFC2782 pour plus de détails. Si le champs <domaine> n'est pas
fourni, prends par défaut la valeur fournie dans l'option
--domain. La valeur par défaut pour le domaine est vide et le
port par défaut est 1, alors que les poids et priorités par
défaut sont 0. Attention lorsque vous transposez des valeurs issues
d'une configuration BIND : les ports, poids et priorités sont dans un
ordre différents. Pour un service/domaine donné, plus d'un
enregistrement SRV est autorisé et tous les enregistrements qui
coïncident sont retournés dans la réponse.
- --host-record=<nom>[,<nom>....][<adresse
IPv4>],[<adresse IPv6>]
- Ajoute des enregistrements A, AAAA et PTR dans le DNS. Ceci
permet d'ajouter un ou plusieurs noms dans le DNS et de les associer
à des enregistrements IPv4 (A) ou IPv6 (AAAA). Un nom peut
apparaître dans plus d'une entrée host-record et de fait
être associé à plus d'une adresse. Seule la première
entrée créée l'enregistrement PTR associée au nom.
Ceci correspond à la même règle que celle utilisée
lors de la lecture du fichier hosts. Les options host-record sont
considérées lues avant le fichier hosts, ainsi un nom
apparaissant dans une option host-record et dans le fichier hosts n'aura
pas d'enregistrement PTR associé à l'entrée dans le fichier
hosts. A l'inverse du fichier hosts, les noms ne sont pas étendus,
même lorsque l'option expand-hosts est activée. Les noms
longs et les noms courts peuvent apparaitre dans la même entrée
host-record, c-à-d
--host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100
- -Y,
--txt-record=<nom>[[,<texte>],<texte>]
- Définit un enregistrement DNS de type TXT. La valeur
de l'enregistrement TXT est un ensemble de chaînes de
caractères, donc un nombre variable de chaînes de
caractères peuvent être spécifiées, séparées
par des virgules. Utilisez des guillemets pour mettre une virgule dans une
chaîne de caractères. Notez que la longueur maximale pour une
chaîne est de 255 caractères, les chaînes plus longues
étant découpées en morceaux de 255 caractères de
longs.
- --ptr-record=<nom>[,<cible>]
- Définit un enregistrement DNS de type PTR.
- --naptr-record=<nom>,<ordre>,<préférence>,<drapeaux>,<service>,<expr.
régulière>[,<remplacement>]
- Retourne un enregistrement de type NAPTR, tel que
spécifié dans le RFC3403.
- --cname=<cname>,<cible>
- Retourne un enregistrement de type CNAME qui indique que
<cname> est en réalité <cible>. Il existe des
contraintes significatives sur la valeur de cible; il doit s'agir d'un nom
DNS qui est connu de dnsmasq via /etc/hosts (ou un fichier hôtes
additionnel) ou via DHCP. 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.
- --interface-name=<nom>,<interface>
- Définit un entregistrement DNS associant le nom avec
l'adresse primaire sur l'interface donnée en argument. Cette option
spécifie un enregistrement de type A pour le nom donné en
argument de la même façon que s'il était défini par
une ligne de /etc/hosts, sauf que l'adresse n'est pas constante mais
dépendante de l'interface définie. Si l'interface est inactive,
non existante ou non configurée, une réponse vide est fournie.
Un enregistrement inverse (PTR) est également créé par
cette option, associant l'adresse de l'interface avec le nom. Plus d'un
nom peut être associé à une interface donnée en
répétant cette option plusieurs fois; dans ce cas,
l'enregistrement inverse pointe vers le nom fourni dans la première
instance de cette option.
- --add-mac
- Ajoute l'adresse MAC du requêteur aux requêtes
DNS transmises aux serveurs amonts. Cela peut être utilisé dans
un but de filtrage DNS par les serveurs amonts. L'adresse MAC peut
uniquement être ajoutée si le requêteur est sur le
même sous-réseau que le serveur dnsmasq. Veuillez noter que le
mécanisme utilisé pour effectuer cela (une option EDNS0) n'est
pas encore standardisée, aussi cette fonctionalité doit
être considérée comme expérimentale. Notez
également qu'exposer les adresses MAC de la sorte peut avoir des
implications en termes de sécurité et de vie privée.
- -c, --cache-size=<taille>
- Définit la taille du cache de Dnsmasq. La valeur par
défaut est de 150 noms. Définir une valeur de zéro
désactive le cache.
- -N, --no-negcache
- Désactive le "cache négatif". Le
"cache négatif" permet à Dnsmasq de se souvenir des
réponses de type "no such domain" fournies par les serveurs
DNS en amont et de fournir les réponses sans avoir à
re-transmettre les requêtes aux serveurs amont.
- -0, --dns-forward-max=<nombre de
requêtes>
- Définit le nombre maximum de requêtes DNS
simultanées. La valeur par défaut est 150, ce qui devrait
être suffisant dans la majorité des configurations. La seule
situation identifiée dans laquelle cette valeur nécessite
d'être augmentée est lorsqu'un serveur web a la résolution
de nom activée pour l'enregistrement de son journal des
requêtes, ce qui peut générer un nombre important de
requêtes simultanées.
- --proxy-dnssec
- Un resolveur sur une machine cliente peut effectuer la
validation DNSSEC de deux façons : il peut effectuer lui-même
les opérations de chiffrements sur la réponse reçue, ou il
peut laisser le serveur récursif amont faire la validation et
positionner un drapeau dans la réponse au cas où celle-ci est
correcte. Dnsmasq n'est pas un validateur DNSSEC, aussi il ne peut
effectuer la validation comme un serveur de nom récursif, cependant
il peut retransmettre les résultats de validation de ses serveurs
amonts. Cette option permet l'activation de cette fonctionalité. Vous
ne devriez utiliser cela que si vous faites confiance aux serveurs amonts
ainsi que le réseau entre vous et eux. Si vous utilisez le
premier mode DNSSEC, la validation par le resolveur des clients, cette
option n'est pas requise. Dnsmasq retourne toujours toutes les
données nécessaires par un client pour effectuer la validation
lui-même.
- --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=[interface:<interface>,][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=[interface:<interface>,][tag:<label>[,tag:<label>],][set:<label>],]<addresse
IPv6 de début>[,<adresse IPv6 de
fin>][,<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.
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.
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.
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.
La section interface:<nom d'interface> n'est normalement pas
utilisée. Se référer aux indications de la section NOTES
pour plus de détail à ce sujet.
- -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 plutôt que des
adresses matérielles pour identifier les hôtes, en
préfixant par 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] A noter
que pour le DHCP IPv6, l'adresse matérielle n'est en principe pas
disponible, aussi un client doit-être identifié par un
identifiant de client (appellé "DUID client") ou un nom
d'hôte.
L'option spéciale id:* signifie : "ignorer tout identifiant client
et n'utiliser que l'adresse matérielle". Cela est utile
lorsqu'un client présente un identifiant client mais pas les autres.
Si un nom apparaît dans /etc/hosts, l'adresse associée peut
être allouée à un bail DHCP mais seulement si une option
--dhcp-host spécifiant le nom existe par ailleurs. Seul un nom
d'hôte peut-être donné dans une option dhcp-host ,
mais les alias sont possibles au travers de l'utilisation des CNAMEs.
(Voir --cname ). Le mot clef "ignore"
("ignorer") indique à Dnsmasq de ne jamais fournir de bail
DHCP à une machine. La machine peut être spécifiée par
son adresse matérielle, son identifiant client ou son nom
d'hôte. Par exemple --dhcp-host=00:20:e0:3b:13:af,ignore Cela
est utile lorsqu'un autre serveur DHCP sur le réseau doit être
utilisé par certaines machines.
Le paramètre set:<identifiant réseau> permet de définir
un identifiant de réseau lorsque l'option dhcp-host est
utilisée. Cela peut servir à sélectionner des options DHCP
juste pour cet hôte. Plus d'un label peut être fourni dans une
directive dhcp-host (et dans cette seule directive). Lorsqu'une machine
coïncide avec une directive dhcp-host (ou une impliquée par
/etc/ethers), alors le label réservé "known"
("connu") est associé. Cela permet à Dnsmasq
d'être configuré pour ignorer les requêtes issus de
machines inconnue
par le biais de --dhcp-ignore=tag:!known.
Les adresses ethernet (mais pas les identifiants clients) peuvent être
définies avec des octets joker, ainsi par exemple
--dhcp-host=00:20:e0:3b:13:*,ignore demande à Dnsmasq
d'ignorer une gamme d'adresses matérielles. Il est à noter que
"*" doit-être précédé d'un caractère
d'échappement ou mis entre guillemets lorsque spécifié en
option de ligne de commande, mais pas dans le fichier de configuration.
Les adresses matérielles coïncident en principe avec n'importe
quel type de réseau (ARP), mais il est possible de les limiter à
un seul type ARP en les précédant du type ARP (en
Hexadécimal) et de "-". Ainsi
--dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 coïncidera uniquement
avec des adresses matérielles Token-Ring, puisque le type ARP pour
une adresse Token-Ring est 6.
Un cas spécial, pour IPv4, correspond à l'inclusion d'une ou
plusieurs adresses matérielles, c-à-d :
--dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2. Cela
permet à une adresse IP d'être associé à plusieurs
adresses matérielles, et donne à dnsmasq la permission
d'abandonner un bail DHCP attribué à l'une de ces adresses
lorsqu'une autre adresse dans la liste demande un bail. Ceci est une
opération dangereuse qui ne fonctionnera de manière fiable que
si une adresse matérielle est active à un moment donné et
dnsmasq n'a aucun moyen de s'assurer de cela. Cela est utile, par exemple,
pour allouer une adresse IP stable à un laptop qui aurait à la
fois une connexion filaire et sans-fil.
- --dhcp-hostsfile=<chemin>
- Lis les informations d'hôtes DHCP dans le fichier
spécifié. Si l'argument est un chemin vers un répertoire,
lis tous les fichiers de ce répertoire. Le fichier contient des
informations à raison d'un hôte par ligne. Le format d'une ligne
est la même que le texte fourni à la droite sur caractère
"=" dans l'option --dhcp-host. L'avantage de stocker les
informations sur les hôtes DHCP dans ce fichier est que celles-ci
peuvent être modifiées sans recharger Dnsmasq; le fichier sera
relu lorsque Dnsmasq reçoit un signal SIGHUP.
- --dhcp-optsfile=<chemin>
- Lis les informations relatives aux options DHCP dans le
fichier spécifié. Si l'argument est un chemin vers un
répertoire, lis tous les fichiers de ce répertoire.
L'intérêt d'utiliser cette option est le même que pour
--dhcp-hostsfile : le fichier spécifié sera rechargé à
la réception par dnsmasq d'un signal SIGHUP. Notez qu'il est possible
d'encoder l'information via --dhcp-boot en utilisant les noms
optionnels bootfile-name, server-ip-address et tftp-server. Ceci permet
d'inclure ces options dans un fichier
"dhcp-optsfile".DNSMASQ_SUPPLIED_HOSTNAME
- -Z, --read-ethers
- Lis les informations d'hôtes DHCP dans le fichier
/etc/ethers. Le format de /etc/ethers est une adresse matérielle
suivie, soit par un nom d'hôte, soit par une adresse IP sous la forme
de 4 chiffres séparés par des points. Lorsque lu par Dnsmasq,
ces lignes ont exactement le même effet que l'option
--dhcp-host contenant les mêmes informations. /etc/ethers est
relu à la réception d'un signal SIGHUP par Dnsmasq. Les adresses
IPv6 ne sont PAS lues dans /etc/ethers.
- -O,
--dhcp-option=[tag:<label>,[tag:<label>]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom
d'option>|option6:<option>|option6:<nom
d'option>],[<valeur>[,<valeur>]]
- Spécifie des options différentes ou
supplémentaires pour des clients DHCP. Par défaut, Dnsmasq
envoie un ensemble standard d'options aux clients DHCP : le masque de
réseau et l'adresse de broadcast sont les mêmes que pour
l'hôte sur lequel tourne Dnsmasq, et le serveur DNS ainsi que la
route par défaut prennent comme valeur l'adresse de la machine sur
laquelle tourne Dnsmasq. (Des règles équivalentes s'appliquent
en IPv6). Si une option de nom de domaine a été définie,
son contenu est transmis. Cette option de configuration permet de changer
toutes ces valeurs par défaut, ou de spécifier d'autres options.
L'option DHCP à transmettre peut être fournie sous forme d'un
nombre décimal ou sous la forme "option:<nom
d'option>". Les nombres correspondants aux options sont
définis dans la RFC2132 et suivants. Les noms d'options connus par
Dnsmasq peuvent être obtenus via "Dnsmasq --help dhcp". Par
exemple, pour définir la route par défaut à 192.168.4.4, il
est possible de faire --dhcp-option=3,192.168.4.4 ou
--dhcp-option = option:router, 192.168.4.4 ou encore, pour
positionner l'adresse du serveur de temps à 192.168.0.4, on peut
faire --dhcp-option = 42,192.168.0.4 ou --dhcp-option =
option:ntp-server, 192.168.0.4 L'adresse 0.0.0.0 prends ici le sens
"d'adresse de la machine sur laquelle tourne Dnsmasq". Les types
de données autorisées sont des adresses IP sous la forme de 4
chiffres séparés par des points, un nombre décimal, une
liste de caractères hexadécimaux séparés par des 2
points, ou une chaîne de caractères. Si des labels optionnels
sont fournis, alors cette option n'est envoyée qu'aux réseaux
dont tous les labels coïncident avec ceux de la requête.
Un traitement spécial est effectué sur les chaînes de
caractères fournies pour l'option 119, conformément à la
RFC 3397. Les chaînes de caractères ou les adresses IP sous
forme de 4 chiffres séparés par des points donnés en
arguments de l'option 120 sont traités conforméments à la
RFC 3361. Les adresses IP sous forme de 4 chiffres séparés par
des points suivies par une barre montante "/", puis une taille
de masque sont encodés conforméments à la RFC 3442.
Les options IPv6 sont fournies en utilisant le mot-clef option6:
suivi par le numéro d'option ou le nom d'option. L'espace de nommage
des options IPv6 est disjint de l'espace de nommage des options IPv4. Les
adresses IPv6 en option doivent être entourées de crochets,
comme par exemple : --dhcp-option=option6:ntp-server,[1234::56]
Attention : aucun test n'étant fait pour vérifier que des
données d'un type adéquat sont envoyées pour un numéro
d'option donné, il est tout à fait possible de persuader Dnsmasq
de générer des paquets DHCP illégaux par une utilisation
incorrecte de cette option. Lorsque la valeur est un nombre décimal,
Dnsmasq doit déterminer la taille des données. Cela est fait en
examinant le numéro de l'option et/ou la valeur, mais peut-être
évité en rajoutant un suffixe d'une lettre comme suit : b = un
octet, s = 2 octets, i = 4 octets. Cela sert essentiellement pour des
options encapsulées de classes de vendeurs (voir plus bas), pour
lesquelles Dnsmasq ne peut déterminer la taille de la valeur. Les
données d'options consistant uniquement de points et de décimaux
sont interprétées par Dnsmasq comme des adresses IP, et
envoyées comme telles. Pour forcer l'envoi sous forme de chaîne
de caractère, il est nécessaire d'utiliser des guillemets
doubles. Par exemple, l'utilisation de l'option 66 pour fournir une
adresse IP sous la forme d'une chaîne de caractères comme nom de
serveur TFTP, il est nécessaire de faire comme suit :
--dhcp-option=66,"1.2.3.4"
Les options encapsulées de classes de vendeurs peuvent-être aussi
spécifiées (pour IPv4 seulement) en utilisant
--dhcp-option : par exemple
--dhcp-option=vendor:PXEClient,1,0.0.0.0 envoie l'option
encapsulée de classe de vendeur "mftp-address=0.0.0.0"
à n'importe quel client dont la classe de vendeur correspond à
"PXEClient". La correspondance pour les classes de vendeur
s'effectue sur des sous-chaînes de caractères (voir
--dhcp-vendorclass pour plus de détails). Si une option de
classe de vendeur (numéro 60) est envoyée par Dnsmasq, alors
cela est utilisé pour sélectionner les options encapsulées,
de préférence à toute option envoyée par le client. Il
est possible d'omettre complètement une classe de vendeur :
--dhcp-option=vendor:,1,0.0.0.0 Dans ce cas l'option
encapsulée est toujours envoyée.
En IPv4, les options peuvent-être encapsulées au sein d'autres
options : par exemple --dhcp-option=encap:175, 190, iscsi-client0
enverra l'option 175, au sein de laquelle se trouve l'option 190.
Plusieurs options encapsulées avec le même numéro d'option
seront correctement combinées au sein d'une seule option
encapsulée. Il n'est pas possible de spécifier encap: et vendor:
au sein d'une même option dhcp.
La dernière variante pour les options encapsulées est
"l'option de Vendeur identifiant le vendeur"
("Vendor-Identifying Vendor Options") telle que décrite
dans le RFC3925. Celles-ci sont spécifiées comme suit :
--dhcp-option=vi-encap:2, 10, text Le numéro dans la section
vi-encap: est le numéro IANA de l'entreprise servant à
identifier cette option. Cette forme d'encapsulation est également
supportée en IPv6.
L'adresse 0.0.0.0 n'est pas traitée de manière particulière
lorsque fournie dans une option encapsulée.
- --dhcp-option-force=[tag:<label>,[tag:<label>]][encap:<option>,][vi-encap:<entreprise>,][vendor:[<classe_vendeur>],][<option>|option:<nom
d'option>],[<valeur>[,<valeur>]]
- Cela fonctionne exactement de la même façon que
--dhcp-option sauf que cette option sera toujours envoyée,
même si le client ne la demande pas dans la liste de paramêtres
requis. Cela est parfois nécessaire, par exemple lors de la
fourniture d'options à PXELinux.
- --dhcp-no-override
- (IPv4 seulement) Désactive la réutilisation des
champs DHCP nom de serveur et nom de fichier comme espace
supplémentaire pour les options. Si cela est possible, dnsmasq
déplace les informations sur le serveur de démarrage et le nom
de fichier (fournis par 'dhcp-boot') en dehors des champs dédiés
à cet usage dans les options DHCP. Cet espace supplémentaire est
alors disponible dans le paquet DHCP pour d'autres options, mais peut,
dans quelques rares cas, perturber des clients vieux ou défectueux.
Cette option force le comportement à l'utilisation des valeurs
"simples et sûres" afin d'éviter des problèmes
dans de tels cas.
- -U,
--dhcp-vendorclass=set:<label>,[enterprise:<numéro IANA
d'enterprise>,]<classe de vendeur>
-
Associe une chaîne de classe de vendeur à un label. La plupart des
clients DHCP fournissent une "classe de vendeur" ("vendor
class") qui représente, d'une certaine façon, le type
d'hôte. Cette option associe des classes de vendeur à des
labels, de telle sorte que des options DHCP peuvent-être fournie de
manière sélective aux différentes classes d'hôtes. Par
exemple, dhcp-vendorclass=set:printers,Hewlett-Packard JetDirect ou
dhcp-vendorclass=printers,Hewlett-Packard JetDirect permet de
n'allouer des options qu'aux imprimantes HP de la manière suivante :
--dhcp-option=tag:printers,3,192.168.4.4 La chaîne de
caractères de la classe de vendeur founie en argument est
cherchée en temps que sous-chaîne de caractères au sein de
la classe de vendeur fournie par le client, de façon à permettre
la recherche d'un sous-ensemble de la chaîne de caractères
("fuzzy matching"). Le préfixe set: est optionnel mais
autorisé afin de conserver une certaine homogénéité.
Notez qu'en IPv6 (et seulement en IPv6), les noms de classes de vendeurs
sont dans un espace de nom associé au numéro attribué
à l'entreprise par l'IANA. Ce numéro est fourni par le biais du
mot-clef enterprise: et seules les classes de vendeurs associées au
numéro spécifié seront cherchées.
- -j, --dhcp-userclass=set:<label>,<classe
utilisateur>
- Associe une chaîne de classe d'utilisateur à un
label (effectue la recherche sur des sous-chaînes, comme pour les
classes de vendeur). La plupart des clients permettent de configurer une
"classe d'utilisateur". Cette option associe une classe
d'utilisateur à un label, de telle manière qu'il soit possible
de fournir des options DHCP spécifiques à différentes
classes d'hôtes. Il est possible, par exemple, d'utiliser ceci pour
définir un serveur d'impression différent pour les hôtes de
la classe "comptes" et ceux de la classe
"ingénierie".
- -4, --dhcp-mac=set:<label>,<adresse
MAC>
- (IPv4 uniquement) Associe une adresse matérielle (MAC)
à un label. L'adresse matérielle peut inclure des jokers. Par
exemple --dhcp-mac=set:3com,01:34:23:*:*:* permet de définir
le label "3com" pour n'importe quel hôte dont l'adresse
matérielle coïncide avec les critères définis.
- --dhcp-circuitid=set:<label>,<identifiant de
circuit>, --dhcp-remoteid=set:<label>,<identifiant
distant>
- Associe des options de relais DHCP issus de la RFC3046
à des labels. Cette information peut-être fournie par des relais
DHCP. L'identifiant de circuit ou l'identifiant distant est normalement
fourni sous la forme d'une chaîne de valeurs hexadécimales
séparées par des ":", mais il est également
possible qu'elle le soit sous la forme d'une simple chaîne de
caractères. Si l'identifiant de circuit ou d'agent correspond
exactement à celui fourni par le relais DHCP, alors le label est
apposé. dhcp-remoteid est supporté en IPv6 (mais non
dhcp-circuitid).
- --dhcp-subscrid=set:<label>,<identifiant
d'abonné>
- (IPv4 et IPv6) Associe des options de relais DHCP issues de
la RFC3993 à des labels.
- --dhcp-proxy[=<adresse ip>]......
- (IPv4 seulement) Un agent relai DHCP normal est uniquement
utilisé pour faire suivre les éléments initiaux de
l'interaction avec le serveur DHCP. Une fois que le client est
configuré, il communique directement avec le serveur. Cela n'est pas
souhaitable si le relais rajoute des informations supplémentaires aux
paquets DHCP, telles que celles utilisées dans dhcp-circuitid
et dhcp-remoteid. Une implémentation complète de relai
peut utiliser l'option serverid-override de la RFC 5107 afin de forcer le
serveur DHCP à utiliser le relai en temps que proxy complet, de sorte
que tous les paquets passent par le relai. Cette option permet d'obtenir
le même résultat pour des relais ne supportant pas la RFC 5107.
Fournie seule, elle manipule la valeur de server-id pour toutes les
interactions via des relais. Si une liste d'adresses IP est donnée,
seules les interactions avec les relais dont l'adresse est dans la liste
seront affectées.
- --dhcp-match=set:<label>,<numéro
d'option>|option:<nom
d'option>|vi-encap:<entreprise>[,<valeur>]
- Si aucune valeur n'est spécifiée, associe le
label si le client envoie une option DHCP avec le numéro ou le nom
spécifié. Lorsqu'une valeur est fournie, positionne le label
seulement dans le cas où l'option est fournie et correspond à la
valeur. La valeur peut-être de la forme "01:ff:*:02",
auquel cas le début de l'option doit correspondre (en respectant les
jokers). La valeur peut aussi être de la même forme que dans
dhcp-option , auquel cas l'option est traitée comme un tableau
de valeur, et un des éléments doit correspondre, ainsi
--dhcp-match=set:efi-ia32,option:client-arch,6
spécifie le label "efi-ia32" si le numéro 6
apparaît dnas la liste d'architectures envoyé par le client au
sein de l'option 93. (se réferer au RFC 4578 pour plus de
détails). Si la valeur est un chaine de caractères, celle-ci est
recherchée (correspondance en temps que sous-chaîne).
Pour la forme particulière vi-encap:<numéro d'entreprise>,
la comparaison se fait avec les classes de vendeur "identifiant de
vendeur" ("vendor-identifying vendor classes") pour
l'entreprise dont le numéro est fourni en option. Veuillez vous
réferer à la RFC 3925 pour plus de détail.
- --tag-if=set:<label>[,set:<label>[,tag:<label>[,tag:<label>]]]
- Effectue une opération booléenne sur les labels.
Si tous les labels apparaissant dans la liste tag:<label> sont
positionnés, alors tous les la de la liste
"set:<labels>" sont positionnés (ou supprimés,
dans le cas où "tag:!<label>" utilisé). Si aucun
tag:<label> n'est spécifié, alors tous les labels fournis
par set:<label> sont positionnés. N'importe quel nombre de set:
ou tag: peuvent être fournis, et l'ordre est sans importance. Les
lignes tag-if sont executées dans l'ordre, ce qui fait que si un
label dans tag:<label> est un label positionné par une
rêgle tag-if, la ligne qui positionne le label doit
précéder celle qui le teste.
- -J,
--dhcp-ignore=tag:<label>[,tag:<label>]
- Lorsque tous les labels fournis dans l'option sont
présents, ignorer l'hôte et ne pas donner de bail DHCP.
- --dhcp-ignore-names[=tag:<label>[,tag:<label>]]
- Lorsque tous les labels fournis dans l'option sont
présents, ignorer le nom de machine fourni par l'hôte. Il est
à noter que, à la différence de l'option
"dhcp-ignore", il est permis de ne pas fournir de label. Dans ce
cas, les noms d'hôtes fournis par les clients DHCP seront toujours
ignorés, et les noms d'hôtes seront ajoutés au DNS en
utilisant uniquement la configuration dhcp-host de Dnsmasq, ainsi que le
contenu des fichiers /etc/hosts et /etc/ethers.
- --dhcp-generate-names=tag:<label>[,tag:<label>]
- (IPv4 seulement) Générer un nom pour les clients
DHCP qui autrement n'en aurait pas, en utilisant l'adresse MAC sous sa
forme hexadécimale, séparée par des tirets. Noter que si un
hôte fourni un nom, celui-ci sera utilisé de
préférence au nom autogénéré, à moins que
--dhcp-ignore-names ne soit positionné.
- --dhcp-broadcast=[tag:<label>[,tag:<label>]]
- (IPv4 seulement) Lorsque tous les labels fournis dans
l'option sont présents, toujours utiliser le broadcast pour
communiquer avec l'hôte lorsque celui-ci n'est pas configuré. Il
est possible de ne spécifier aucun label, auquel cas cette option
s'applique inconditionnellement. La plupart des clients DHCP
nécessitant une réponse par le biais d'un broadcast activent une
option dans leur requête, ce qui fait que cela se fait
automatiquement, mais ce n'est pas le cas de certains vieux clients
BOOTP.
- -M, --dhcp-boot=[tag:<label>,]<nom de
fichier>,[<nom de serveur>[,<adresse de serveur>|<nom du
serveur tftp>]]
- (IPv4 seulement) Spécifie les options BOOTP devant
être retournées par le serveur DHCP. Le nom de serveur ainsi que
l'adresse sont optionnels : s'ils ne sont pas fournis, le nom est
laissé vide et l'adresse fournie est celle de la machine sur laquelle
s'exécute Dnsmasq. Si Dnsmasq founit un service TFTP (voir
--enable-tftp ), alors seul un nom de fichier est requis ici pour
permettre un démarrage par le réseau. Si d'éventuels labels
sont fournis, ils doivent coïncider avec ceux du client pour que cet
élement de configuration lui soit envoyé. Une adresse de serveur
TFTP peut être spécifiée à la place de l'adresse IP,
sous la forme d'un nom de domaine qui sera cherché dans le fichier
/etc/hosts. Ce nom peut être associé dans /etc/hosts avec
plusieurs adresses IP, auquel cas celles-ci seront utilisées tour
à tour (algorithme round-robin). Cela peut-être utiliser pour
équilibrer la charge tftp sur plusieurs serveurs.
- --dhcp-sequential-ip
- Dnsmasq est conçu pour choisir l'adresse IP des
clients DHCP en utilisant un hachage de l'adresse MAC du client. Cela
permet en général à l'adresse IP du client de rester stable
au fil du temps, même lorsque le client laisse expirer son bail DHCP
de temps en temps. Dans ce mode de fonctionnement par défaut, les
adresses IP sont distribuées de façon pseudo-aléatoire dans
la totalité de la plage d'adresses utilisable. Il existe des
circonstances (par exemples pour du déploiement de serveur) où
il est plus pratique d'allouer les adresses IP de manière
séquentielle, en commençant par la plus petite adresse
disponible, et c'est ce mode de fonctionnement qui est permis par cette
option. Veuillez noter que dans ce mode séquentiel, les clients qui
laissent expirer leur bail ont beaucoup plus de chance de voir leur
adresse IP changer, aussi cette option ne devrait pas être
utilisée dans un cas général.
- --pxe-service=[tag:<label>,]<CSA>,<entrée
de menu>[,<nom de fichier>|<type de service de
démarrage>][,<adresse de serveur>|<nom de
serveur>]
- La plupart des ROMS de démarrage PXE ne permettent au
système PXE que la simple obtention d'une adresse IP, le
téléchargement du fichier spécifié dans
dhcp-boot et son exécution. Cependant, le système PXE est
capable de fonctions bien plus complexes pour peu que le serveur DHCP soit
adapté.
Ceci spécifie l'option de démarrage qui apparaitra dans un menu de
démarrage PXE. <CSA> est le type du système client. Seuls
des types de services valides apparaitront dans un menu. Les types connus
sont x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI,
BC_EFI, Xscale_EFI et X86-64_EFI; D'autres types peuvent-être
spécifiés sous la forme d'une valeur entière. Le
paramètre après le texte correspondant à l'entrée dans
le menu peut être un nom de fichier, auquel cas Dnsmasq agit comme un
serveur de démarrage et indique au client PXE qu'il faut
télécharger ce fichier via TFTP, soit depuis ce serveur
(l'option enable-tftp doit être spécifiée pour que
cela marche), soit depuis un autre serveur TFTP si une adresse ou un nom
de serveur est fournie. Veuillez noter que le suffixe de
"couche" (en principe ".0") est fourni par PXE et ne
doit pas être rajouté au nom de fichier. Si une valeur
numérique entière est fournir pour le type de démarrage, en
remplacement du nom de fichier, le client PXE devra chercher un service de
démarrage de ce type sur le réseau. Cette recherche peut
être faite via broadcast ou directement auprès d'un serveur si
son adresse IP ou son nom sont fournis dans l'option. Si aucun nom de
fichier n'est donné ni aucune valeur de type de service de
démarrage n'est fournie (ou qu'une valeur de 0 est donnée pour
le type de service), alors l'entrée de menu provoque l'interruption
du démarrage par le réseau et la poursuite du démarrage sur
un média local. L'adresse de serveur peut être donnée sous
la forme de nom de domaine qui est recherché dans /etc/hosts. Ce nom
peut-être associé à plusieurs adresses IP, qui dans ce cas
sont utilisées à tour de rôle (en
"round-robin").
- --pxe-prompt=[tag:<label>,]<invite>[,<délai>]
- Cette option permet d'afficher une invite à la suite
du démarrage PXE. Si un délai est fourni, alors la première
entrée du menu de démarrage sera automatiquement
exécutée après ce délai. Si le délai vaut 0,
alors la première entrée disponible sera exécutée
immédiatement. Si pxe-prompt est omis, le système
attendra un choix de l'utilisateur s'il existe plusieurs entrées dans
le menu, ou démarrera immédiatement dans le cas où il n'y a
qu'une seule entrée. Voir pxe-service pour plus de
détails sur les entrées de menu.
Dnsmasq peut servir de "proxy-DHCP" PXE, dans le cas où un
autre serveur DHCP sur le réseau est responsable de l'allocation des
adresses IP, auquel cas Dnsmasq se contente de fournir les informations
données dans les options pxe-prompt et pxe-service pour
permettre le démarrage par le réseau. Ce mode est activé en
utilisant le mot-clef proxy dans dhcp-range.
- -X, --dhcp-lease-max=<nombre>
- Limite Dnsmasq à un maximum de <nombre> baux
DHCP. Le défaut est de 1000. Cette limite permet d'éviter des
attaques de déni de service ("DoS") par des hôtes
créant des milliers de baux et utilisant beaucoup de mémoire
dans le processus Dnsmasq.
- -K, --dhcp-authoritative
- (IPv4 seulement) Cette option doit être donnée
lorsque Dnsmasq est le seul serveur DHCP sur le réseau. 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.
- --dhcp-alternate-port[=<port serveur>[,<port
client>]]
- (IPv4 seulement) Change les ports utilisés par
défaut pour le DHCP. Si cette option est donnée seule sans
argument, alors change les ports utilisés pour le DHCP de 67 et 68
respectivement à 1067 et 1068. Si un seul argument est donné, ce
numéro est utilisé pour le port serveur et ce numéro plus 1
est utilisé pour le port client. Enfin, en fournissant deux
numéros de ports, il est possible de spécifier arbitrairement 2
ports à la fois pour le serveur et pour le client DHCP.
- -3, --bootp-dynamic[=<identifiant de
réseau>[,<identifiant de réseau>]]
- (IPv4 seulement) Permet l'allocation dynamique d'adresses
IP à des clients BOOTP. Utiliser cette option avec précaution,
une adresse allouée à un client BOOTP étant
perpétuelle, et de fait n'est plus disponibles pour d'autres
hôtes. Si aucun argument n'est donné, alors cette option permet
une allocation dynamique dans tous les cas. Si des arguments sont
spécifiés, alors l'allocation ne se fait que lorsque tous les
identifiants coïncident. Il est possible de répeter cette option
avec plusieurs jeux d'arguments.
- -5, --no-ping
- (IPv4 seulement) Par défaut, le serveur DHCP tente de
s'assurer qu'une adresse n'est pas utilisée avant de l'allouer à
un hôte. Cela est fait en envoyant une requête ICMP de type
"echo request" (aussi connue sous le nom de "ping")
à l'adresse en question. Si le serveur obtient une réponse,
alors l'adresse doit déjà être utilisée et une autre
est essayée. Cette option permet de supprimer cette
vérification. A utiliser avec précaution.
- --log-dhcp
- Traces additionnelles pour le service DHCP : enregistre
toutes les options envoyées aux clients DHCP et les labels
utilisés pour la détermination de celles-ci.
- -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.
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'.
A noter que le nom d'hôte fourni, la classe de vendeur ou les
données de classe d'utilisateur sont uniquement fournies pour les
actions "add" ou l'action "old" lorsqu'un hôte
reprend un bail existant, puisque ces informations ne sont pas
conservées dans la base de baux de dnsmasq.
Tous les descripteurs de fichiers sont fermés, sauf stdin, stdout et
stderr qui sont ouverts sur /dev/null (sauf en mode déverminage).
Le script n'est pas lancé de manière concurrente : au plus une
instance du script est executée à la fois (dnsmasq attends
qu'une instance de script se termine avant de lancer la suivante). Les
changements dans la base des baux nécessitant le lancement du script
sont placé en attente dans une queue jusqu'à terminaison d'une
instance du script en cours. Si cette mise en queue fait que plusieurs
changements d'états apparaissent pour un bail donné avant que le
script puisse être lancé, alors les états les plus anciens
sont supprimés et lorsque le script sera finalement lancé, ce
sera avec l'état courant du bail.
Au démarrage de Dnsmasq, le script sera invoqué pour chacun des
baux existants dans le fichier des baux. Le script sera lancé avec
l'action "del" pour les baux expirés, et "old"
pour les autres. Lorsque Dnsmasq reçoit un signal HUP, le script sera
invoqué avec une action "old" pour tous les baux existants.
Il existe deux autres actions pouvant apparaître comme argument au
script : "init" et "tftp". D'autres sont susceptibles
d'être rajoutées dans le futur, aussi les scripts
devraient-être écrits de sorte à ignorer les actions
inconnues. "init" est décrite ci-dessous dans
--leasefile-ro. L'action "tftp" est invoquée
lorsqu'un transfert de fichier TFTP s'est terminé. Ses arguments sont
la taille du fichier en octets, l'adresse à laquelle le fichier a
été envoyé, ainsi que le chemin complet du fichier.
- --dhcp-luascript=<chemin>
- Spécifie un script écrit en Lua, devant être
exécuté lorsque des baux sont créés, détruits ou
modifiés. Pour utiliser cette option, dnsmasq doit être
compilé avec avec le support de Lua. L'interpréteur Lua est
initialisé une seule fois, lorsque dnsmasq démarre, ce qui fait
que les variables globales persistent entre les évênements
liés aux baux. Le code Lua doit définir une fonction
lease et peut fournir des fonctions init et shutdown
qui sont appellées, sans arguments, lorsque dnsmasq démarre ou
s'arrête. Il peut également fournir une fonction tftp.
La fonction lease reçoit les informations détaillées
dans --dhcp-script. Il reçoit deux arguments. Le premier
spécifie l'action, qui est une chaîne de caractères
contenant les valeurs "add" (ajout), "old"
(réactivation d'un bail existant) ou "del" (suppression).
Le deuxième est une table contenant des paires de valeurs de labels.
Les labels correspondent pour l'essentiel aux valeurs d'environnement
détaillées ci-dessus, ainsi le label "domain"
(domaine) contient les mêmes données que la variable
d'environnement DNSMASQ_DOMAIN. Il existe quelques labels
supplémentaires contenant les données fournies comme arguments
à --dhcp-script. Ces labels sont mac_address,
ip_address (pour respectivement l'adresse MAC et l'adresse IP) et
hostname (le nom d'hôte) dans le cas d'IPv4, et
client_duid, ip_address (valeur DUID du client et adresse IP
respectivement) ainsi que hostname (le nom d'hôte) dans le cas
d'IPv6.
La fonction tftp est appelée de la même façon que la
fonction "lease", et la table contient les labels
destination_address, file_name et file_size
(respectivement "adresse de destination", "nom de
fichier" et "taille de fichier").
- --dhcp-scriptuser
- Spécifie l'utilisateur sous lequel le script shell
lease-change ou le script doivent être exécutés. La valeur
par défaut correspond à l'utilisateur root mais peut-être
changée par le biais de cette option.
- -9, --leasefile-ro
- Supprimer complètement l'usage du fichier servant de
base de donnée pour les baux DHCP. Le fichier ne sera ni
créé, ni lu, ni écrit. Change la façon dont le script
de changement d'état de bail est lancé (si celui-ci est fourni
par le biais de l'option --dhcp-script ), de sorte que la base de
données de baux puisse être complètement gérée
par le script sur un stockage externe. En addition aux actions
décrites dans --dhcp-script, le script de changement
d'état de bail est appellé une fois, au lancement de Dnsmasq,
avec pour seul argument "init". Lorsqu'appellé de la sorte,
le script doit fournir l'état de la base de baux, dans le format de
fichier de baux de Dnsmasq, sur sa sortie standard (stdout) et retourner
un code de retour de 0. Positionner cette option provoque également
une invocation du script de changement d'état de bail à chaque
changement de l'identifiant de client, de longueur de bail ou de date
d'expiration.
- --bridge-interface=<interface>,<alias>[,<alias>]
- Traiter les requêtes DHCP arrivant sur n'importe
laquelle des interfaces <alias> comme si elles arrivaient de
l'interface <interface>. Cette option est nécessaire lors de
l'utilisation de pont ethernet "ancien mode" sur plate-forme
BSD, puisque dans ce cas les paquets arrivent sur des interfaces
"tap" n'ont pas d'adresse IP.
- -s, --domain=<domaine>[,<gamme
d'adresses>[,local]]
- Spécifie le domaine du serveur DHCP. Le domaine peut
être donné de manière inconditionnelle (sans spécifier
de gamme d'adresses IP) ou pour des gammes d'adresses IP limitées.
Cela a deux effets; tout d'abord, le serveur DHCP retourne le domaine
à tous les hôtes le demandant, deuxièmement, cela
spécifie le domaine valide pour les hôtes DHCP configurés.
Le but de cela est de contraindre les noms d'hôte afin qu'aucun
hôte sur le LAN ne puisse fournir via DHCP un nom tel que par exemple
"microsoft.com" et capturer du trafic de manière
illégitime. Si aucun nom de domaine n'est spécifié, alors
les noms d'hôtes avec un nom de domaine (c-à-d un point dans le
nom) seront interdits et enregistrés dans le journal (logs). Si un
suffixe est fourni, alors les noms d'hôtes possédant un domaine
sont autorisés, pour peu que le nom de domaine coïncide avec le
nom fourni. De plus, si un suffixe est fourni, alors les noms d'hôtes
ne possédant pas de nom de domain se voient rajouter le suffixe
fourni dans l'option --domain. Ainsi, sur mon réseau, je peux
configurer --domain=thekelleys.org.uk et avoir une machine dont le
nom DHCP serait "laptop". L'adresse IP de cette machine sera
disponible à la fois pour "laptop" et
"laptop.thekelleys.org.uk". Si la valeur fournie pour
<domaine> est "#", alors le nom de domaine est
positionné à la première valeur de la directive
"search" du fichier /etc/resolv.conf (ou équivalent).
La gamme d'adresses peut être de la forme <adresse
ip>,<adresse ip> ou <adresse ip>/<masque de
réseau> voire une simple <adresse ip>. Voir
--dhcp-fqdn qui peut changer le comportement de dnsmasq relatif aux
domaines.
Si la gamme d'adresse est fournie sous la forme <adresse
ip>/<taille de réseau>, alors le drapeau "local"
peut-être rajouté qui a pour effect d'ajouter
--local-declarations aux requêtes DNS directes et inverses.
C-à-d --domain=thekelleys.org.uk,192.168.0.0/24,local est
identique à --domain=thekelleys.org.uk,192.168.0.0/24
--local=/thekelleys.org.uk/ --local=/0.168.192.in-addr.arpa/ La taille de
réseau doit-être de 8, 16 ou 24 pour être valide.
- --dhcp-fqdn
- Dans le mode par défaut, dnsmasq insère les noms
non-qualifiés des clients DHCP dans le DNS. Pour cette raison, les
noms doivent être uniques, même si deux clients ayant le
même nom sont dans deux domaines différents. Si un deuxième
client DHCP apparaît ayant le même nom qu'un client
déjà existant, ce nom est transféré au nouveau client.
Si --dhcp-fqdn est spécifié, ce comportement change : les
noms non qualifiés ne sont plus rajoutés dans le DNS, seuls les
noms qualifiés le sont. Deux clients DHCP avec le même nom
peuvent tous les deux garder le nom, pour peu que la partie relative au
domaine soit différente (c-à-d que les noms pleinements
qualifiés diffèrent). Pour d'assurer que tous les noms ont une
partie domaine, il doit-y avoir au moins un --domain sans gamme
d'adresses de spécifié lorsque l'option --dhcp-fqdn est
configurée.
- --dhcp-client-update
- Normalement, lorsque dnsmasq fournit un bail DHCP, il
positionne un label dans l'option FQDN pour indiquer au client qu'il ne
doit pas tenter de faire une mise à jour DDNS avec son nom et son
adresse IP. Ceci parce que la paire Nom-IP est rajoutée
automatiquement dans la partie DNS de dnsmasq. Cette option inhibe ce
comportement ce qui est utile, par exemple, pour permettre aux clients
Windows de la mise à jour de serveurs Active Directory. Voir la RFC
4702 pour plus de détails.
- --enable-ra
- Active la fonctionalité d'annonces routeurs IPv6
("IPv6 Router Advertisement"). DHCPv6 ne gère pas la
configuration complète du réseau de la même façon que
DHCPv4. La découverte de routeurs et la découverte
(éventuelle) de préfixes pour la création autonome
d'adresse sont gérées par un protocole différent. Lorsque
DHCP est utilisé, seul un sous-ensemble de tout ceci est
nécessaire et dnsmasq est à même de le gérer, en
utilisant la configuration DHCP présente pour fournir la
majorité des données. Lorsque les annonces routeurs (RA pour
"Router Advertisement") sont activées, dnsmasq va annoncer
un préfixe pour chaque dhcp-range et, par défaut, fournir comme
valeur de routeur et de DNS récursif la valeur d'adresse link-local
appropriée parmi celles de la machine sur laquelle tourne dnsmasq.
Par défaut, les bits "managed address" sont
positionnés, et le bit "use SLAAC" ("utiliser
SLAAC") est réinitialisé. Cela peut-être changé
pour des sous-réseaux donnés par le biais du mot clef de mode
décris dans --dhcp-range. Les paramètres DNS du RFC6106
sont inclus dans les annonces. Par défaut, l'adresse link-local
appropriée parmi celles de la machine sur laquelle tourne dnsmasq est
spécifiée comme DNS récursif. Si elles sont fournies, les
options dns-server et domain-search sont utilisées respectivement
pour RDNSS et DNSSL.
- --enable-tftp[=<interface>]
- Active la fonction serveur TFTP. Celui-ci est de
manière délibérée limité aux fonctions
nécessaires au démarrage par le réseau
("net-boot") d'un client. Seul un accès en lecture est
possible; les extensions tsize et blksize sont supportées (tsize est
seulement supporté en mode octet). Voir dans la section NOTES les
informations relatives à la spécification de l'interface.
- --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-max=<connexions>
- Définit le nombre maximum de connexions TFTP
simultanées autorisées. La valeur par défaut est de 50.
Lorsqu'un grand nombre de connexions TFTP est spécifié, il se
peut que la limite de nombre de descripteurs de fichiers par processus
soit atteinte. Dnsmasq nécessite quelques descripteurs de fichiers,
ainsi qu'un descripteur de fichier pour chaque connexion TFTP
simultanée et pour chacun des fichiers devant être fournis. De
fait, servir le même fichier à n clients ne nécessitera
qu'environ n + 10 descripteurs de fichiers, alors que fournir des fichiers
tous différents à n clients utilisera environ (2*n) + 10
descripteurs. Si elle est donnée, l'option --tftp-port-range
peut affecter le nombre maximum de connexions concurrentes.
- --tftp-no-blocksize
- Empêche le serveur TFTP de négocier l'option
"blocksize" (taille de bloc) avec les clients. Certains clients
buggés spécifient cette option mais se comportent ensuite de
manière incorrecte si celle-ci est accordée.
- --tftp-port-range=<début>,<fin>
- Un serveur TFTP écoute sur le port prédéfini
69 ("well-known port") pour l'initiation de la connexion, mais
utilise également un port dynamiquement alloué pour chaque
connexion. Normalement, ces ports sont alloués par le système
d'exploitation, mais cette option permet de spécifier une gamme de
ports à utiliser pour les transferts TFTP. Cela peut-être utile
si TFTP doit traverser un dispositif garde-barrière
("firewall"). La valeur de début pour la plage de port ne
peut-être inférieure à 1025 sauf si dnsmasq tourne en temps
que super-utilisateur ("root"). Le nombre de connexions TFTP
concurrentes est limitée par la taille de la gamme de ports ainsi
spécifiée.
- --tftp-port-range=<début>,<fin>
- Un serveur TFTP écoute sur un numéro de port bien
connu (69) pour l'initiation de la connexion, et alloue dynamiquement un
port pour chaque connexion. Ces numéros de ports sont en principe
alloués par le système d'exploitation, mais cette option permet
de spécifier une gamme de ports à utiliser pour les transferts
TFTP. Cela peut-être utile lorsque ceux-ci doivent traverser un
dispositif garde-barrière ("firewall"). Le début de la
plage ne peut-être inférieur à 1024 à moins que
Dnsmasq ne fonctionne en temps que super-utilisateur ("root").
Le nombre maximal de connexions TFTP concurrentes est limitée par la
taille de la plage de ports ainsi définie.
- -C, --conf-file=<fichier>
- Spécifie un fichier de configuration différent.
L'option "conf-file" est également autorisée dans des
fichiers de configuration, ce qui permet l'inclusion de multiples fichiers
de configuration. L'utilisation de "-" comme nom de fichier
permet la lecture par dnsmasq de sa configuration sur l'entrée
standard stdin.
- -7, --conf-dir=<répertoire>[,<extension de
fichier>...]
- Lis tous les fichiers du répertoire spécifié
et les traite comme des fichiers de configuration. Si des extensions sont
données, tout fichier finissant par ces extensions seront
ignorés. Tout fichier dont le nom se termine en ~ ou commence par .,
ainsi que ceux commençant ou se terminant par # seront
systématiquement ignorés. Cette option peut être
donnée en ligne de commande ou dans un fichier de configuration.
FICHIER DE CONFIGURATION¶
Au démarrage, Dnsmasq lis
/etc/dnsmasq.conf, si ce fichier existe.
(Sur FreeBSD, ce fichier est
/usr/local/etc/dnsmasq.conf ) (voir
cependant les options
-C et
-7 ). Le format de ce fichier
consiste en une option par ligne, exactement comme les options longues
détaillées dans la section OPTIONS, mais sans être
précédées par "--". Les lignes commençant par #
sont des commentaires et sont ignorées. Pour les options qui ne
peuvent-être spécifiées qu'une seule fois, celle du fichier de
configuration prends le pas sur celle fournie en ligne de commande. Il est
possible d'utiliser des guillemets afin d'éviter que les
",",":","." et "#" ne soit
interprêtés, et il est possible d'utiliser les séquences
d'échappement suivantes : \\ \" \t \e \b \r et \n. Elles
correspondent respectivement à la barre oblique descendante
("anti-slash"), guillemets doubles, tabulation, caractère
d'échappement ("escape"), suppression ("backspace"),
retour ("return") et nouvelle ligne ("newline").
NOTES¶
A la réception d'un signal SIGHUP,
Dnsmasq vide son cache et
recharge les fichiers
/etc/hosts et
/etc/ethers ainsi que tout
autre fichier spécifié par les options
--dhcp-hostsfile ,
--dhcp-optsfile ou
--addn-hosts. Le script de changement de bail
est appellé pour chaque bail DHCP existant. Si l'option
--no-poll
est positionnée, alors le fichier
/etc/resolv.conf est
également rechargé. SIGHUP ne provoque PAS de rechargement du
fichier de configuration.
A la réception d'un signal SIGUSR1,
Dnsmasq écrit des
statistiques dans les traces système. Les informations fournies sont : la
taille du cache, le nombre de noms ayant été supprimés du cache
avant expiration afin de faire de la place pour les nouveaux noms, ainsi que
le nombre total d'entrées ayant été insérées dans le
cache. Pour chaque serveur amont, il fournit le nomnbre de requêtes
transmises ainsi que le nombre de requêtes ayant résulté par
une erreur. Lorsque Dnsmasq a été lancé via
--no-daemon
ou lorsque la traçabilité maximale a été activée (
-q ), la totalité du contenu du cache est de surcroît
fournie.
A la réception d'un signal SIGUSR2 et lorsqu'il enregistre directement ses
traces dans un fichier (voir
--log-facility ), alors
Dnsmasq
ferme et re-rouvre le fichier de traces. Il faut noter que pendant cette
opération Dnsmasq ne s'exécute pas en temps que "root".
Lorsqu'il créé un fichier de traces pour la première fois,
Dnsmasq change le propriétaire du fichier afin de le faire appartenir
à l'utilisateur non "root" sous lequel Dnsmasq s'exécute.
Le logiciel de rotation de fichiers de trace logrotate doit être
configuré pour créer un nouveau fichier avec un propriétaire
identique au fichier existant avant d'envoyer le signal SIGUSR2. Si une
requête DNS TCP est en cours, l'ancien fichier de traces reste ouvert
dans le processus fils qui traite la requête TCP et il peut y être
écrit. Il existe cependant une limite de 150 secondes après laquelle
tous les processus traitant des requêtes TCP expirent : pour cette
raison, il est préférable de ne pas configurer la compression des
fichiers de traces venant juste de faire l'objet d'une rotation. Dans le cas
de l'utilisation du logiciel logrotate, les options requises sont
create et
delaycompress.
Dnsmasq est un logiciel de transmission de requêtes DNS : il n'est pas
capable d'effectuer une résolution de nom récursive en partant des
serveurs DNS racine, mais transmet de telles requêtes à un serveur
DNS amont capable de telles recherches récursives, ce qui est typiquement
le cas d'un serveur DNS de FAI. Par défaut, Dnsmasq lis
/etc/resolv.conf pour découvrir les adresses IP des serveurs DNS
amonts à utiliser, puisque cette information est en général
stockée à cet endroit. A moins que l'option
--no-poll ne soit
utilisée,
Dnsmasq vérifie la date de modification du fichier
/etc/resolv.conf (ou l'équivalent si
--resolv-file est
utilisé), et le relis lorsqu'il change. Cela permet de définir les
serveurs DNS amont de manière dynamique lorsque PPP ou DHCP sont
utilisés, puisque ces protocoles fournissent cette information. L'absence
du fichier
/etc/resolv.conf ne conduit pas à une erreur, puisqu'il
peut très bien ne pas être créé avant qu'une connexion PPP
ne soit établie. Dans ce cas, Dnsmasq vérifie
régulièrement pour voir si un fichier
/etc/resolv.conf est
créé. Dnsmasq peut être configuré pour lire plus d'un
fichier resolv.conf. Cela est utile sur un ordinateur portable où PPP et
DHCP peuvent-être utilisés : Dnsmasq peut alors être
configuré pour lire à la fois
/etc/ppp/resolv.conf et
/etc/dhcpc/resolv.conf et utilisera le contenu du fichier ayant
changé en dernier, ce qui permet de passer automatiquement de serveurs
DNS à d'autres.
Les serveurs amonts peuvent aussi être spécifiés sur la ligne de
commande ou dans un fichier de configuration. Ces spécifications de
serveurs peuvent éventuellement se voir adjoindre d'un nom de domaine qui
précise à Dnsmasq quel serveur utiliser pour trouver les noms d'un
domaine donné.
Pour configurer Dnsmasq afin qu'il se comporte comme un cache pour la machine
sur laquelle il tourne, mettre "nameserver 127.0.0.1" dans le
fichier
/etc/resolv.conf afin de forcer les processus locaux à
envoyer leurs requêtes à Dnsmasq. Ensuite, spécifier les
serveurs DNS amont soit en les fournissant directement à Dnsmasq via
l'option
--server ou alors en mettant leurs adresses dans un autre
fichier, par exemple
/etc/resolv.dnsmasq et en lançant Dnsmasq
avec l'option
-r /etc/resolv.dnsmasq. Cette deuxième technique
permet la mise-à-jour dynamique des addresses de serveurs DNS amont par
le biais de PPP ou DHCP.
Les adresses dans /etc/hosts prennent le dessus sur celles fournies par le
serveur DNS amont, ainsi "macompagnie.com 1.2.3.4" dans /etc/hosts
assure que les requêtes pour "macompagnie.com" retourneront
toujours 1.2.3.4, même si une requête au serveur DNS amont
retournerait une adresse différente. Il y a une exception à ceci :
si le DNS amont contient un CNAME qui pointe vers un nom présent dans
/etc/hosts, alors la recherche du CNAME via Dnsmasq fournira l'adresse DNS
amont. Pour contourner cela, il suffit de mettre l'entrée correspondant
au CNAME dans /etc/hosts.
le système de label fonctionne comme suit : pour chaque requête DHCP,
dnsmasq associe un ensemble de labels obtenus à partir des lignes de la
configuration incluant set:<label>, y compris un pour la plage d'adresse
(
dhcp-range ) utilisée pour allouer l'adresse, un pour chaque
entrée
dhcp-host associée (auquel est rajouté le
mot-clef "known" si une entrée dhcp-host coïncide).
Le label "bootp" est associé aux requêtes BOOTP, un label
dont le nom est le nom de l'interface sur laquelle la requête est
arrivée.
Pour les lignes de configuration comportant des éléments
tag:<label>, seules seront valides celles pour lesquels tous les labels
correspondants seront présents. C'est typiquement le cas des lignes
dhcp-options. Un
dhcp-option possédant des labels sera
utilisé de préférence à un
dhcp-option sans label,
pour peu que _tous_ les labels positionnés correspondent à
l'ensemble de labels décrit plus haut. Le préfixe '!' sur un label
est un indicateur de négation, ainsi
--dhcp=option=tag:!purple,3,1.2.3.4 n'envoie l'option que lorsque le
label "purple" n'est pas dans la liste de labels définis pour
l'hôte considéré. (dans le cas de l'utilisation dans une ligne
de commande au lieu d'un fichier de configuration, ne pas oublier
d'échapper le caractère !, qui est un méta-caractère
d'interpréteur de commande shell).
Lors de la sélection d'une option, une étiquette spécifiée
par dhcp-range passe après les autres étiquettes, ce qui permet de
facilement remplacer des option génériques pour des hôtes
spécifiques, ainsi :
dhcp-range=set:interface1,......
dhcp-host=set:monhote,.....
dhcp-option=tag:interface1,option:nis-domain,"domaine1"
dhcp-option=tag:monhote,option:nis-domain,"domaine2" va
positionner l'option NIS-domain à domaine1 pour les hôtes dans la
plage d'adresse, sauf pour monhote pour lequel cette valeur sera domaine2.
Veuillez noter que pour
dhcp-range , les éléments
tag:<label> et set:<label> sont tous les deux autorisés pour
sélectionner la plage à utiliser selon, par exemple, le dhcp-host,
et pour affecter l'option envoyée, sur la base de la plage
sélectionnée.
Ce système a évolué d'un système plus ancien et aux
possibilités plus limitées, et pour des raisons de
compatibilité "net:" peut être utilisé à la
place de "tag:" et "set:" peut-être omis (à
l'exception de
dhcp-host, où "net:" peut-être
utilisé à la place de "set:"). Pour les mêmes
raisons, '#' peut-être utilisé à la place de '!' pour indiquer
la négation.
Le serveur DHCP intégré dans Dnsmasq fonctionne également en
temps que serveur BOOTP, pour peu que l'adresse MAC et l'adresse IP des
clients soient fournies, que ce soit par le biais de l'option
dhcp-host
ou dans le fichier
/etc/ethers , et que l'option
dhcp-range soit
présente afin d'activer le serveur DHCP pour un réseau donné
(L'option
--bootp-dynamic supprime la nécessité des
associations statiques). Le paramètre "filename" (nom de
fichier) de la requête BOOTP est utilisé comme label, ainsi que le
label "bootp", permettant un certain contrôle sur les options
retournées aux différentes classes d'hôtes.
Il est possible de spécifier un nom d'interface à
dhcp-range
sous la forme "interface:<nom d'interface>". La
sémantique est comme suit : Pour le DHCP, s'il existe une autre valeur de
dhcp-range pour laquelle _aucun_ nom d'interface n'est donné, alors le
nom d'interface est ignoré et dnsmasq se comporte comme si la partie
spécifiant l'interface n'existait pas, sinon le service DHCP n'est fourni
qu'aux interfaces mentionnées dans les déclarations dhcp-range. Pour
le DNS, si il n'y a pas d'option
--interface ou
--listen-address
, alors le comportement n'est pas impacté par la spécification
d'interface. Si l'une ou l'autre de ces options est présente, alors les
interfaces mentionnées dans les plages d'adresses dhcp-range sont
rajoutées à la liste de celles où le service DNS est
assuré.
De manière similaire,
enable-tftp peut prendre un nom d'interface,
ce qui active le TFTP pour cette seule interface, en ignorant les options
--interface ou
--listen-address De plus,
--tftp-secure ,
--tftp-unique-root et
--tftp-no-blocksize sont ignorées
pour les requêtes sur de telles interfaces. (une directive
--tftp-root donnant le chemin de la racine et une interface
doit-être fournie).
Ces règles peuvent paraître étrange à première vue,
mais elles permettent d'ajouter à la configuration de dnsmasq des lignes
de configuration de la forme
"dhcp-range=interface:virt0,192.168.0.4,192.168.0.200" afin de
fournir un service DHCP et DNS sur cette interface, sans pour autant affecter
les services fournis sur d'autres interfaces, malgré l'absence de
paramètres "interface=<interface>" sur les autres lignes
de configuration. "enable-tftp=virt0" et
"tftp-root=<root>,virt0" effectuent la même chose pour
TFTP. L'idée de tout cela est de permettre l'addition de telles lignes
automatiquement par libvirt ou un système équivalent, sans
perturbation d'une configuration manuelle existant par ailleurs.
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!