From 8920299c8e866477b959f1dd387682a4d3aa7fe1 Mon Sep 17 00:00:00 2001 From: Shibby Date: Thu, 12 Mar 2015 21:11:55 +0100 Subject: [PATCH] dnsmasq 2.72+ up to December 9 2014 From Toastman-RT branch - thx Toastman --- release/src/router/dnsmasq/CHANGELOG | 57 +- release/src/router/dnsmasq/Makefile | 5 +- release/src/router/dnsmasq/VERSION | 2 +- release/src/router/dnsmasq/bld/Android.mk | 3 +- release/src/router/dnsmasq/bld/pkg-wrapper | 9 +- .../router/dnsmasq/contrib/systemd/dnsmasq.service | 2 +- release/src/router/dnsmasq/dbus/DBus-interface | 17 + release/src/router/dnsmasq/debian/changelog | 36 +- release/src/router/dnsmasq/debian/control | 4 +- release/src/router/dnsmasq/debian/default | 2 +- release/src/router/dnsmasq/debian/init | 13 +- release/src/router/dnsmasq/debian/rules | 27 +- release/src/router/dnsmasq/debian/systemd.service | 2 +- release/src/router/dnsmasq/dnsmasq.conf.example | 6 + release/src/router/dnsmasq/doc.html | 4 +- release/src/router/dnsmasq/man/dnsmasq.8 | 30 +- release/src/router/dnsmasq/man/fr/dnsmasq.8 | 4709 ++++++++++---------- release/src/router/dnsmasq/po/de.po | 1400 +++--- release/src/router/dnsmasq/po/es.po | 928 ++-- release/src/router/dnsmasq/po/fi.po | 922 ++-- release/src/router/dnsmasq/po/fr.po | 932 ++-- release/src/router/dnsmasq/po/id.po | 940 ++-- release/src/router/dnsmasq/po/it.po | 921 ++-- release/src/router/dnsmasq/po/no.po | 927 ++-- release/src/router/dnsmasq/po/pl.po | 1668 +++---- release/src/router/dnsmasq/po/pt_BR.po | 922 ++-- release/src/router/dnsmasq/po/ro.po | 1335 +++--- release/src/router/dnsmasq/src/auth.c | 2 +- release/src/router/dnsmasq/src/blockdata.c | 8 +- release/src/router/dnsmasq/src/bpf.c | 6 +- release/src/router/dnsmasq/src/cache.c | 4 +- release/src/router/dnsmasq/src/config.h | 28 +- release/src/router/dnsmasq/src/dbus.c | 81 +- release/src/router/dnsmasq/src/dhcp.c | 5 +- release/src/router/dnsmasq/src/dhcp6.c | 3 +- release/src/router/dnsmasq/src/dnsmasq.c | 34 +- release/src/router/dnsmasq/src/dnsmasq.h | 32 +- release/src/router/dnsmasq/src/dnssec.c | 23 +- release/src/router/dnsmasq/src/forward.c | 104 +- release/src/router/dnsmasq/src/ipset.c | 2 +- release/src/router/dnsmasq/src/lease.c | 38 +- release/src/router/dnsmasq/src/loop.c | 116 + release/src/router/dnsmasq/src/netlink.c | 60 +- release/src/router/dnsmasq/src/network.c | 37 +- release/src/router/dnsmasq/src/option.c | 61 +- release/src/router/dnsmasq/src/radv-protocol.h | 2 + release/src/router/dnsmasq/src/radv.c | 69 +- release/src/router/dnsmasq/src/rfc1035.c | 7 +- release/src/router/dnsmasq/src/rfc2131.c | 1 + release/src/router/dnsmasq/src/rfc3315.c | 45 +- release/src/router/dnsmasq/src/tables.c | 173 + release/src/router/dnsmasq/src/util.c | 60 +- 52 files changed, 9560 insertions(+), 7264 deletions(-) rewrite release/src/router/dnsmasq/man/fr/dnsmasq.8 (73%) create mode 100644 release/src/router/dnsmasq/src/loop.c create mode 100644 release/src/router/dnsmasq/src/tables.c diff --git a/release/src/router/dnsmasq/CHANGELOG b/release/src/router/dnsmasq/CHANGELOG index 6c3782daae..e6d4a97356 100644 --- a/release/src/router/dnsmasq/CHANGELOG +++ b/release/src/router/dnsmasq/CHANGELOG @@ -1,3 +1,53 @@ +version 2.73 + Fix crash at startup when an empty suffix is supplied to + --conf-dir, also trivial memory leak. Thanks to + Tomas Hozza for spotting this. + + +version 2.72 + Add ra-advrouter mode, for RFC-3775 mobile IPv6 support. + + Add support for "ipsets" in *BSD, using pf. Thanks to + Sven Falempim for the patch. + + Fix race condition which could lock up dnsmasq when an + interface goes down and up rapidly. Thanks to Conrad + Kostecki for helping to chase this down. + + Add DBus methods SetFilterWin2KOption and SetBogusPrivOption + Thanks to the Smoothwall project for the patch. + + Fix failure to build against Nettle-3.0. Thanks to Steven + Barth for spotting this and finding the fix. + + When assigning existing DHCP leases to intefaces by comparing + networks, handle the case that two or more interfaces have the + same network part, but different prefix lengths (favour the + longer prefix length.) Thanks to Lung-Pin Chang for the + patch. + + Add a mode which detects and removes DNS forwarding loops, ie + a query sent to an upstream server returns as a new query to + dnsmasq, and would therefore be forwarded again, resulting in + a query which loops many times before being dropped. Upstream + servers which loop back are disabled and this event is logged. + Thanks to Smoothwall for their sponsorship of this feature. + + Extend --conf-dir to allow filtering of files. So + --conf-dir=/etc/dnsmasq.d,\*.conf + will load all the files in /etc/dnsmasq.d which end in .conf + + Fix bug when resulted in NXDOMAIN answers instead of NODATA in + some circumstances. + + Fix bug which caused dnsmasq to become unresponsive if it + failed to send packets due to a network interface disappearing. + Thanks to Niels Peen for spotting this. + + Fix problem with --local-service option on big-endian platforms + Thanks to Richard Genoud for the patch. + + version 2.71 Subtle change to error handling to help DNSSEC validation when servers fail to provide NODATA answers for @@ -540,7 +590,7 @@ version 2.63 the suggestion. Allow "w" (for week) as multiplier in lease times, as well - as seconds, minutes, hours and days. Álvaro Gámez Machado + as seconds, minutes, hours and days. Álvaro Gámez Machado spotted the ommission. Update French translation. Thanks to Gildas Le Nadan. @@ -1389,8 +1439,8 @@ version 2.50 Fix security problem which allowed any host permitted to do TFTP to possibly compromise dnsmasq by remote buffer overflow when TFTP enabled. Thanks to Core Security - Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro - Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and + Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro + Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and Pablo Annetta. This problem has Bugtraq id: 36121 and CVE: 2009-2957 @@ -1750,3 +1800,4 @@ version 2.43 version 2.42 The changelog for version 2.42 and earlier is available in CHANGELOG.archive. + diff --git a/release/src/router/dnsmasq/Makefile b/release/src/router/dnsmasq/Makefile index 292c8bdbe8..76aad7ca29 100644 --- a/release/src/router/dnsmasq/Makefile +++ b/release/src/router/dnsmasq/Makefile @@ -61,7 +61,7 @@ lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CON lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.1` nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags nettle hogweed` nettle_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --libs nettle hogweed` -gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --copy -lgmp` +gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC NO_GMP --copy -lgmp` sunos_libs = `if uname | grep SunOS >/dev/null 2>&1; then echo -lsocket -lnsl -lposix4; fi` version = -DVERSION='\"`$(top)/bld/get-version $(top)`\"' @@ -69,8 +69,7 @@ objs = cache.o rfc1035.o util.o option.o forward.o network.o \ dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o \ helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o \ dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o \ - domain.o dnssec.o blockdata.o - + domain.o dnssec.o blockdata.o tables.o loop.o hdrs = dnsmasq.h config.h dhcp-protocol.h dhcp6-protocol.h \ dns-protocol.h radv-protocol.h ip6addr.h diff --git a/release/src/router/dnsmasq/VERSION b/release/src/router/dnsmasq/VERSION index c4da1d483a..cd08c7d802 100644 --- a/release/src/router/dnsmasq/VERSION +++ b/release/src/router/dnsmasq/VERSION @@ -1 +1 @@ -v2.71 +v2.72+ December 9 2014 diff --git a/release/src/router/dnsmasq/bld/Android.mk b/release/src/router/dnsmasq/bld/Android.mk index 309d1789bf..d1e80afa29 100644 --- a/release/src/router/dnsmasq/bld/Android.mk +++ b/release/src/router/dnsmasq/bld/Android.mk @@ -9,7 +9,8 @@ LOCAL_SRC_FILES := bpf.c cache.c dbus.c dhcp.c dnsmasq.c \ rfc2131.c tftp.c util.c conntrack.c \ dhcp6.c rfc3315.c dhcp-common.c outpacket.c \ radv.c slaac.c auth.c ipset.c domain.c \ - dnssec.c dnssec-openssl.c blockdata.c + dnssec.c dnssec-openssl.c blockdata.c tables.c \ + loop.c LOCAL_MODULE := dnsmasq diff --git a/release/src/router/dnsmasq/bld/pkg-wrapper b/release/src/router/dnsmasq/bld/pkg-wrapper index 9f9332d7d9..0ddb678c6a 100755 --- a/release/src/router/dnsmasq/bld/pkg-wrapper +++ b/release/src/router/dnsmasq/bld/pkg-wrapper @@ -11,9 +11,14 @@ in=`cat` if grep "^\#[[:space:]]*define[[:space:]]*$search" config.h >/dev/null 2>&1 || \ echo $in | grep $search >/dev/null 2>&1; then - +# Nasty, nasty, in --copy, arg 2 is another config to search for, use with NO_GMP if [ $op = "--copy" ]; then - pkg="$*" + if grep "^\#[[:space:]]*define[[:space:]]*$pkg" config.h >/dev/null 2>&1 || \ + echo $in | grep $pkg >/dev/null 2>&1; then + pkg="" + else + pkg="$*" + fi elif grep "^\#[[:space:]]*define[[:space:]]*${search}_STATIC" config.h >/dev/null 2>&1 || \ echo $in | grep ${search}_STATIC >/dev/null 2>&1; then pkg=`$pkg --static $op $*` diff --git a/release/src/router/dnsmasq/contrib/systemd/dnsmasq.service b/release/src/router/dnsmasq/contrib/systemd/dnsmasq.service index a27fe6d7e4..c70b14455a 100644 --- a/release/src/router/dnsmasq/contrib/systemd/dnsmasq.service +++ b/release/src/router/dnsmasq/contrib/systemd/dnsmasq.service @@ -1,5 +1,5 @@ [Unit] -Description=A lightweight DHCP and caching DNS server +Description=dnsmasq - A lightweight DHCP and caching DNS server [Service] Type=dbus diff --git a/release/src/router/dnsmasq/dbus/DBus-interface b/release/src/router/dnsmasq/dbus/DBus-interface index cbb6e82c0b..9a895eb24a 100644 --- a/release/src/router/dnsmasq/dbus/DBus-interface +++ b/release/src/router/dnsmasq/dbus/DBus-interface @@ -40,6 +40,14 @@ ClearCache Returns nothing. Clears the domain name cache and re-reads /etc/hosts. The same as sending dnsmasq a HUP signal. +SetFilterWin2KOption +-------------------- +Takes boolean, sets or resets the --filterwin2k option. + +SetBogusPrivOption +------------------ +Takes boolean, sets or resets the --bogus-priv option. + SetServers ---------- Returns nothing. Takes a set of arguments representing the new @@ -152,6 +160,15 @@ for SetServersEx is represented as "/eng.mycorp.com/lab.mycorp.com/1003:1234:abcd::1%eth0" ] +GetLoopServers +-------------- + +(Only available if dnsmasq compiled with HAVE_LOOP) + +Return an array of strings, each string is the IP address of an upstream +server which has been found to loop queries back to this dnsmasq instance, and +it therefore not being used. + 2. SIGNALS diff --git a/release/src/router/dnsmasq/debian/changelog b/release/src/router/dnsmasq/debian/changelog index 070421e73a..0a7932550b 100644 --- a/release/src/router/dnsmasq/debian/changelog +++ b/release/src/router/dnsmasq/debian/changelog @@ -1,9 +1,30 @@ +dnsmasq (2.73-1) unstable; urgency=low + + * New upstream. + + -- Simon Kelley Fri, 03 Oct 2014 08:49:42 +0000 + +dnsmasq (2.72-2) unstable; urgency=low + + * Fix build in Debian-kFreeBSD. (closes: #763693) + + -- Simon Kelley Thu, 02 Oct 2014 22:34:12 +0000 + +dnsmasq (2.72-1) unstable; urgency=low + + * New upstream. + * If dns-root-data package is installed, use it to set the DNSSEC + trust anchor(s). Recommend dns-root-data. (closes: #760460) + * Handle AD bit correctly in replies from cache. (closes: #761654) + + -- Simon Kelley Tue, 20 May 2014 21:01:11 +0000 + dnsmasq (2.71-1) unstable; urgency=low * New upstream. - * Fix 100% CPU-usage bug when dnsmasq started with cachesize + * Fix 100% CPU-usage bug when dnsmasq started with cachesize set to zero. (LP: #1314697) - + -- Simon Kelley Fri, 16 May 2014 20:17:10 +0000 dnsmasq (2.70-3) unstable; urgency=medium @@ -16,7 +37,7 @@ dnsmasq (2.70-3) unstable; urgency=medium postinst/postrm exactly as dh_systemd would, add dependency on init-system-helpers. Closes: #724602 - -- Simon Kelley Sun, 11 May 2014 17:45:21 +0000 + -- Simon Kelley Sun, 11 May 2014 17:45:21 +0000 dnsmasq (2.70-2) unstable; urgency=low @@ -1163,12 +1184,3 @@ dnsmasq (0.95-1) unstable; urgency=low -- Simon Kelley Sat, 29 Aug 1998 20:27:27 -0400 - - - - - - - - - diff --git a/release/src/router/dnsmasq/debian/control b/release/src/router/dnsmasq/debian/control index e7f2080dcc..d7dfa946e7 100644 --- a/release/src/router/dnsmasq/debian/control +++ b/release/src/router/dnsmasq/debian/control @@ -3,9 +3,9 @@ Section: net Priority: optional Build-depends: gettext, libnetfilter-conntrack-dev [linux-any], libidn11-dev, libdbus-1-dev (>=0.61), libgmp-dev, - nettle-dev (>=2.4-3) + nettle-dev (>=2.4-3), libbsd-dev [!linux-any] Maintainer: Simon Kelley -Standards-Version: 3.9.3 +Standards-Version: 3.9.5 Package: dnsmasq Architecture: all diff --git a/release/src/router/dnsmasq/debian/default b/release/src/router/dnsmasq/debian/default index 7a43b92afc..03ebd7e19e 100644 --- a/release/src/router/dnsmasq/debian/default +++ b/release/src/router/dnsmasq/debian/default @@ -27,7 +27,7 @@ CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new # If the resolvconf package is installed, dnsmasq will use its output # rather than the contents of /etc/resolv.conf to find upstream # nameservers. Uncommenting this line inhibits this behaviour. -# Note that including a "resolv-file=" line in +# Note that including a "resolv-file=" line in # /etc/dnsmasq.conf is not enough to override resolvconf if it is # installed: the line below must be uncommented. #IGNORE_RESOLVCONF=yes diff --git a/release/src/router/dnsmasq/debian/init b/release/src/router/dnsmasq/debian/init index 0b65d1447c..808c6c12a8 100644 --- a/release/src/router/dnsmasq/debian/init +++ b/release/src/router/dnsmasq/debian/init @@ -158,9 +158,6 @@ stop() # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/dnsmasq/$NAME.pid --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - return "$RETVAL" } stop_resolvconf() @@ -280,9 +277,15 @@ case "$1" in stop_resolvconf ;; systemd-exec) -# --pid-file without argument disables writing a PIDfile, we don't need one with sytemd. +# /var/run may be volatile, so we need to ensure that + # /var/run/dnsmasq exists here as well as in postinst + if [ ! -d /var/run/dnsmasq ]; then + mkdir /var/run/dnsmasq || return 2 + chown dnsmasq:nogroup /var/run/dnsmasq || return 2 + fi # Enable DBus by default because we use DBus activation with systemd. - exec $DAEMON --keep-in-foreground --pid-file --enable-dbus \ + exec $DAEMON --keep-in-foreground --enable-dbus \ + -x /var/run/dnsmasq/$NAME.pid \ ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \ ${MAILTARGET:+ -t $MAILTARGET} \ ${DNSMASQ_USER:+ -u $DNSMASQ_USER} \ diff --git a/release/src/router/dnsmasq/debian/rules b/release/src/router/dnsmasq/debian/rules index fac8e556d6..0dcbb30d1a 100755 --- a/release/src/router/dnsmasq/debian/rules +++ b/release/src/router/dnsmasq/debian/rules @@ -11,21 +11,19 @@ package=dnsmasq-base -CFLAGS = $(shell export DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS); dpkg-buildflags --get CFLAGS) -CFLAGS += $(shell dpkg-buildflags --get CPPFLAGS) +dpkg_buildflags := DEB_BUILD_MAINT_OPTIONS="hardening=+all" dpkg-buildflags + +CFLAGS = $(shell $(dpkg_buildflags) --get CFLAGS) +CFLAGS += $(shell $(dpkg_buildflags) --get CPPFLAGS) CFLAGS += -Wall -W -LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) +LDFLAGS = $(shell $(dpkg_buildflags) --get LDFLAGS) DEB_COPTS = $(COPTS) -# The nettle library in Debian is too old to include -# ECC support. -DEB_COPTS += -DNO_NETTLE_ECC - TARGET = install-i18n -DEB_BUILD_ARCH_OS := $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS) +DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) # Force package version based on git tags. ifneq (,$(filter gitversion,$(DEB_BUILD_OPTIONS))) @@ -37,7 +35,7 @@ ifeq (,$(filter nodbus,$(DEB_BUILD_OPTIONS))) endif ifeq (,$(filter noconntrack,$(DEB_BUILD_OPTIONS))) -ifeq ($(DEB_BUILD_ARCH_OS),linux) +ifeq ($(DEB_HOST_ARCH_OS),linux) DEB_COPTS += -DHAVE_CONNTRACK endif endif @@ -85,6 +83,11 @@ ifeq (,$(filter nodnssec,$(DEB_BUILD_OPTIONS))) DEB_COPTS += -DHAVE_DNSSEC endif +ifneq ($(DEB_HOST_ARCH_OS),linux) + # For strlcpy in FreeBSD + LDFLAGS += -lbsd +endif + clean: $(checkdir) rm -rf debian/daemon debian/base debian/utils debian/*~ debian/files debian/substvars debian/utils-substvars @@ -134,7 +137,9 @@ binary-arch: checkroot -d debian/base/var/lib/misc make $(TARGET) PREFIX=/usr DESTDIR=`pwd`/debian/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=gcc ifeq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS))) - install -m 644 doc.html debian/base/usr/share/doc/$(package)/. +# Need to remove paypal links in Debian Package for policy reasons. + sed -e /\Donations/Q -e /icon.png/d doc.html -e /favicon.ico/d >debian/base/usr/share/doc/$(package)/doc.html + echo "" >>debian/base/usr/share/doc/$(package)/doc.html install -m 644 setup.html debian/base/usr/share/doc/$(package)/. install -m 644 dnsmasq.conf.example debian/base/usr/share/doc/$(package)/examples/. install -m 644 trust-anchors.conf debian/base/usr/share/$(package)/. @@ -171,7 +176,7 @@ endif chmod -R g-ws debian/base dpkg --build debian/base .. -ifeq ($(DEB_BUILD_ARCH_OS),linux) +ifeq ($(DEB_HOST_ARCH_OS),linux) rm -rf debian/utils install -m 755 -d debian/utils/DEBIAN \ -d debian/utils/usr/share/man/man1 \ diff --git a/release/src/router/dnsmasq/debian/systemd.service b/release/src/router/dnsmasq/debian/systemd.service index 284e535e5a..139eddc51b 100644 --- a/release/src/router/dnsmasq/debian/systemd.service +++ b/release/src/router/dnsmasq/debian/systemd.service @@ -13,7 +13,7 @@ ExecStartPre=/usr/sbin/dnsmasq --test # itself, when called with the "systemd-exec" function. # # It also adds the command-line flags -# --keep-in-foreground --enable-dbus +# --keep-in-foreground --enable-dbus # to enable DBus by default because we use DBus activation. # ExecStart=/etc/init.d/dnsmasq systemd-exec diff --git a/release/src/router/dnsmasq/dnsmasq.conf.example b/release/src/router/dnsmasq/dnsmasq.conf.example index 206f4d184e..1bd305dbdb 100644 --- a/release/src/router/dnsmasq/dnsmasq.conf.example +++ b/release/src/router/dnsmasq/dnsmasq.conf.example @@ -640,3 +640,9 @@ # Include another lot of configuration options. #conf-file=/etc/dnsmasq.more.conf #conf-dir=/etc/dnsmasq.d + +# Include all the files in a directory except those ending in .bak +#conf-dir=/etc/dnsmasq.d,.bak + +# Include all files in a directory which end in .conf +#conf-dir=/etc/dnsmasq.d/,*.conf diff --git a/release/src/router/dnsmasq/doc.html b/release/src/router/dnsmasq/doc.html index fb0704dba5..473cd202b2 100644 --- a/release/src/router/dnsmasq/doc.html +++ b/release/src/router/dnsmasq/doc.html @@ -1,8 +1,7 @@ Dnsmasq - network services for small networks. - + @@ -94,3 +93,4 @@ a contribution towards my expenses, please use the donation button below. + diff --git a/release/src/router/dnsmasq/man/dnsmasq.8 b/release/src/router/dnsmasq/man/dnsmasq.8 index 6658f16a7b..0a6ba728cf 100644 --- a/release/src/router/dnsmasq/man/dnsmasq.8 +++ b/release/src/router/dnsmasq/man/dnsmasq.8 @@ -334,6 +334,16 @@ it will send queries to just one server. Setting this flag forces dnsmasq to send all queries to all available servers. The reply from the server which answers first will be returned to the original requester. .TP +.B --dns-loop-detect +Enable code to detect DNS forwarding loops; ie the situation where a query sent to one +of the upstream server eventually returns as a new query to the dnsmasq instance. The +process works by generating TXT queries of the form .test and sending them to +each upstream server. The hex is a UID which encodes the instance of dnsmasq sending the query +and the upstream server to which it was sent. If the query returns to the server which sent it, then +the upstream server through which it was sent is disabled and this event is logged. Each time the +set of upstream servers changes, the test is re-run on all of them, including ones which +were previously disabled. +.TP .B --stop-dns-rebind Reject (and log) addresses from upstream nameservers which are in the private IP ranges. This blocks an attack where a browser behind a @@ -794,7 +804,7 @@ and for details.) For IPv6, the mode may be some combination of -.B ra-only, slaac, ra-names, ra-stateless. +.B ra-only, slaac, ra-names, ra-stateless, ra-advrouter. .B ra-only tells dnsmasq to offer Router Advertisement only on this subnet, @@ -829,6 +839,11 @@ can be combined with and .B slaac. +.B ra-advrouter +enables a mode where router address(es) rather than prefix(es) are included in the advertisements. +This is described in RFC-3775 section 7.2 and is used in mobile IPv6. In this mode the interval option +is also included, as described in RFC-3775 section 7.3. + .TP .B \-G, --dhcp-host=[][,id:|*][,set:][,][,][,][,ignore] Specify per host parameters for the DHCP server. This allows a machine @@ -1545,6 +1560,7 @@ Treat DHCP request packets arriving at any of the interfaces as if they had arrived at . This option is necessary when using "old style" bridging on BSD platforms, since packets arrive at tap interfaces which don't have an IP address. +A trailing '*' wildcard can be used in each . .TP .B \-s, --domain=[,
[,local]] Specifies DNS domains for the DHCP server. Domains may be be given @@ -1709,12 +1725,16 @@ Specify a different configuration file. The conf-file option is also allowed in configuration files, to include multiple configuration files. A filename of "-" causes dnsmasq to read configuration from stdin. .TP -.B \-7, --conf-dir=[,......] +.B \-7, --conf-dir=[,......], Read all the files in the given directory as configuration files. If extension(s) are given, any files which end in those extensions are skipped. Any files whose names end in ~ or start with . or start and end -with # are always skipped. This flag may be given on the command -line or in a configuration file. +with # are always skipped. If the extension starts with * then only files +which have that extension are loaded. So +.B --conf-dir=/path/to/dir,*.conf +loads all files with the suffix .conf in /path/to/dir. This flag may be given on the command +line or in a configuration file. If giving it on the command line, be sure to +escape * characters. .TP .B --servers-file= A special case of @@ -2194,5 +2214,3 @@ assume that it is the system default. .BR resolver (5) .SH AUTHOR This manual page was written by Simon Kelley . - - diff --git a/release/src/router/dnsmasq/man/fr/dnsmasq.8 b/release/src/router/dnsmasq/man/fr/dnsmasq.8 dissimilarity index 73% index 2f329ee103..87e021d975 100644 --- a/release/src/router/dnsmasq/man/fr/dnsmasq.8 +++ b/release/src/router/dnsmasq/man/fr/dnsmasq.8 @@ -1,2354 +1,2355 @@ -.TH DNSMASQ 8 -.SH NAME -Dnsmasq \- Un serveur DHCP et cache DNS poids-plume. -.SH SYNOPSIS -.B dnsmasq -.I [OPTION]... -.SH "DESCRIPTION" -.BR dnsmasq -est un serveur à faible empreinte mémoire faisant DNS, TFTP, PXE, annonces de -routeurs et DHCP. Il offre à la fois les services DNS et DHCP pour un réseau -local (LAN). -.PP -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. Il peut aussi agir en temps que -serveur DNS faisant autorité pour un ou plusieurs domaines, permettant à des -noms locaux d'apparaitre dans le DNS global. -.PP -Le serveur DHCP Dnsmasq DHCP supporte les définitions d'adresses statiques et les -réseaux multiples. Il fournit par défaut un jeu raisonnable de paramètres DHCP, -et peut être configuré pour fournir n'importe quelle option DHCP. -Il inclut un serveur TFTP sécurisé en lecture seule permettant le démarrage via -le réseau/PXE de clients DHCP et supporte également le protocole BOOTP. Le -support PXE est complet, et comprend un mode proxy permettant de fournir des -informations PXE aux clients alors que l'allocation DHCP est effectuée par un -autre serveur. -.PP -Le serveur DHCPv6 de dnsmasq possède non seulement les mêmes fonctionalités -que le serveur DHCPv4, mais aussi le support des annonces de routeurs ainsi -qu'une fonctionalité permettant l'addition de ressources AAAA pour des -clients utilisant DHCPv4 et la configuration IPv6 sans état (stateless -autoconfiguration). -Il inclut le support d'allocations d'adresses (à la fois en DHCPv6 et en -annonces de routeurs - RA) pour des sous-réseaux dynamiquement délégués via -une délégation de préfixe DHCPv6. -.PP -Dnsmasq est developpé pour de petits systèmes embarqués. It tends à avoir -l'empreinte mémoire la plus faible possible pour les fonctions supportées, -et permet d'exclure les fonctions inutiles du binaire compilé. -.SH 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 -.B --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. -.TP -.B --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. -.TP -.B \-h, --no-hosts -Ne pas charger les noms du fichier /etc/hosts. -.TP -.B \-H, --addn-hosts= -Fichiers d'hôtes additionnels. Lire le fichier spécifié en plus de /etc/hosts. -Si -.B -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. -.TP -.B \-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... -.TP -.B \-T, --local-ttl= -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. -.TP -.B --neg-ttl= -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. -.TP -.B --max-ttl= -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. -.TP -.B --max-cache-ttl= -Définie la valeur de TTL maximum pour les entrées dans le cache -.TP -.B --auth-ttl= -Définie la valeur de TTL retournée pour les réponses du serveur faisant -autorité. -.TP -.B \-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. -.TP -.B \-d, --no-daemon -Mode debug (déverminage) : ne pas aller en tâche de fond, ne pas écrire de -fichier pid, ne pas changer d'identifiant utilisateur, générer un état complet -du cache lors de la réception d'un signal SIGUSR1, envoyer les logs sur la -sortie standard d'erreur ("stderr") de même que dans le syslog, ne pas créer de -processus fils pour traiter les requêtes TCP. A noter que cette option est à -user pour du déverminage seulement : pour empêcher dnsmasq se fonctionner en -mode démon en production, utiliser -.B -k. -.TP -.B \-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. -.TP -.B \-8, --log-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. -.TP -.B --log-async[=] -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. -.TP -.B \-x, --pid-file= -Spécifie un fichier dans lequel stocker le numéro de processus (pid). La valeur -par défaut est /var/run/dnsmasq.pid. -.TP -.B \-u, --user= -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. -.TP -.B \-g, --group= -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. -.TP -.B \-v, --version -Imprime le numéro de version. -.TP -.B \-p, --port= -Ecoute sur le port numéro 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. -.TP -.B \-P, --edns-packet-max= -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. -.TP -.B \-Q, --query-port= -Envoie et écoute les requêtes DNS sortantes depuis le port UDP spécifié par -, 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. -.TP -.B --min-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"). -.TP -.B \-i, --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 -.B --interface -est utilisée. -Si aucune option -.B --interface -ou -.B --listen-address -n'est donnée, Dnsmasq écoutera sur toutes les interfaces disponibles sauf -celle(s) spécifiée(s) par l'option -.B --except-interface. -Les alias d'interfaces IP (e-g "eth1:0") ne peuvent être utilisés ni avec -.B --interface -ni -.B \--except-interface. -Utiliser l'option -.B --listen-address -à la place. Un simple joker, consistant d'un '*' final, peut-être utilisé dans -les options -.B \--interface -et -.B \--except-interface -.TP -.B \-I, --except-interface= -Ne pas écouter sur l'interface spécifiée. Notez que l'ordre dans lesquelles les -options -.B \--listen-address -, -.B --interface -et -.B --except-interface -sont fournies n'importe pas, et que l'option -.B --except-interface -l'emporte toujours sur les autres. -.TP -.B --auth-server=,| -Active le mode DNS faisant autorité pour les requêtes arrivant sur cette -interface ou sur cette adresse. Noter que l'interface ou l'adresse n'ont -pas besoin d'être mentionées ni dans -.B --interface -ni dans -.B --listen-address -En effet, -.B --auth-server -va passer outre ceux-ci et fournir un service DNS différent sur l'interface -spécifiée. La valeur de est l'enregistrement de type "colle" -("glue record"). Il doit correspondre dans le service DNS global avec un -enregistrement de type A et/ou AAAA pointant sur l'adresse sur laquelle dnsmasq -écoute pour le mode DNS faisant autorité. -.TP -.B \-2, --no-dhcp-interface= -Ne pas fournir de service DHCP sur l'interface spécifiée, mais fournir tout de -même le service DNS. -.TP -.B \-a, --listen-address= -Ecouter sur la ou les adresse(s) IP spécifiée(s). Les options -.B \--interface -et -.B \--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 -.B \--interface -n'est donnée alors qu'une option -.B \--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 -.B \--listen-address. -.TP -.B \-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 -.B --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. -.TP -.B --bind-dynamic -Autorise un mode réseau intermédiaire entre -.B --bind-interfaces -et le mode par défaut. Dnsmasq s'associe à une seule interface, ce qui permet -plusieurs instances de dnsmasq, mais si une interface ou adresse apparaissent, -il se mettra automatiquement à écouter sur celles-ci (les règles de contrôle -d'accès s'appliquent). -De fait, les interfaces créées dynamiquement fonctionnent de la même façon que -dans le comportement par défaut. Ce fonctionnement nécessite des APIs réseau -non standard et n'est disponible que sous Linux. Sur les autres plateformes, -le fonctionnement est celui du mode --bind-interfaces. -.TP -.B \-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. -.TP -.B \-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"). -.TP -.B \-V, --alias=[]|[-],[,] -Modifie les adresses IPv4 retournées par les serveurs de nom amont; - est remplacée par . Si le optionnel est -fourni, alors toute adresse correspondant à l'adresse / -sera réécrite. Ainsi par exemple -.B --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, -.B --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 -.TP -.B \-B, --bogus-nxdomain= -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. -.TP -.B \-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). -.TP -.B \-r, --resolv-file= -Lis les adresses des serveurs de nom amont dans le fichier de nom , -au lieu du fichier /etc/resolv.conf. Pour le format de ce fichier, voir dans le -manuel pour -.BR 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. -.TP -.B \-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. -.TP -.B \-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. Si un nom de -service est fourni, dnsmasq fourni un service à ce nom, plutôt qu'avec la -valeur par défaut : -.B uk.org.thekelleys.dnsmasq -.TP -.B \-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. -.TP -.B --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. -.TP -.B --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. -.TP -.B --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. -.TP -.B --rebind-domain-ok=[]|[[//[/] -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 : -.B --rebind-domain-ok=/domaine1/domaine2/domaine3/ -.TP -.B \-n, --no-poll -Ne pas vérifier régulièrement si le fichier /etc/resolv.conf a été modifié. -.TP -.B --clear-on-reload -Lorsque le fichier /etc/resolv.conf est relu, ou si les serveurs amonts sont -configurés via DBus, vider le cache DNS. -Cela est utile si les nouveaux serveurs sont susceptibles d'avoir des données -différentes de celles stockées dans le cache. -.TP -.B \-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. -.TP -.B \-S, --local, --server=[/[]/[domaine/]][[#][@|[#]]] -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 -.B -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 -.B -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, -.B // -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 -.B -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 : -.B --server=/google.com/1.2.3.4 -.B --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 -.B --server=/google.com/1.2.3.4 -.B --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 -.B -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. -.B local -est synonyme de -.B 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. -.TP -.B \-A, --address=//[domaine/] -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 -.B -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 -.B --server, -avec la caractéristique supplémentaire que -.B /#/ -coïncide avec tout domaine. Ainsi, -.B --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 -.B --server. -.TP -.B --ipset=//[domaine/][,] -Obtient les adresses IP des domaines spécifiés et les place dans les groupes -d'IP netfilter (ipset) indiqués. Domaines et sous-domaines sont résolus de la -même façon que pour --address. Ces groupes d'IP doivent déjà exister. Voir -ipset(8) pour plus de détails. -.TP -.B \-m, --mx-host=[[,],] -Spécifie un enregistrement de type MX pour retournant le nom -donné dans (s'il est présent), ou sinon le nom spécifié dans -l'option -.B --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 -.B --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é. -.TP -.B \-t, --mx-target= -Spécifie la réponse par défaut fournie par Dnsmasq pour les requêtes sur des -enregistrements de type MX. Voir -.B --mx-host. -Si -.B --mx-target -est donné mais pas de -.B --mx-host, -alors Dnsmasq retourne comme réponse un enregistrement MX -contenant le nom d'hôte spécifié dans l'option -.B --mx-target -pour toute requête -concernant le MX de la machine sur laquelle tourne Dnsmasq. -.TP -.B \-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. -.TP -.B \-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. -.TP -.B \-W --srv-host=<_service>.<_protocole>.[],[[,[,[,]]]] -Spécifie un enregistrement DNS de type SRV. Voir la RFC2782 pour plus de -détails. Si le champs n'est pas fourni, prends par défaut la valeur -fournie dans l'option -.B --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. -.TP -.B --host-record=[,....][],[] -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 -.B 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 -.B 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 -.B expand-hosts -est activée. Les noms longs et les noms courts peuvent apparaitre dans la même -entrée -.B host-record, -c-à-d -.B --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 -.TP -.B \-Y, --txt-record=[[,],] -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. -.TP -.B --ptr-record=[,] -Définit un enregistrement DNS de type PTR. -.TP -.B --naptr-record=,,,,,[,] -Retourne un enregistrement de type NAPTR, tel que spécifié dans le RFC3403. -.TP -.B --cname=, -Retourne un enregistrement de type CNAME qui indique que est en -réalité . Il existe des contraintes importantes sur la valeur -cible; il doit s'agir d'un nom DNS qui est connu de dnsmasq via /etc/hosts -(ou un fichier hôtes additionnel), via DHCP, via interface--name ou par un autre -.B --cname. -Si une cible ne satisfait pas ces critères, le CNAME est ignoré. Le CNAME -doit être unique, mais il est autorisé d'avoir plus d'un CNAME pointant -vers la même cible. -.TP -.B --dns-rr=,,[] -Retourne un enregistrement DNS arbitraire. Le numéro correspond au type -d'enregistrement (qui est toujours de la classe C_IN). La valeur de -l'enregistrement est donnée dans les données hexadécimales, qui peuvent -être de la forme 01:23:45, 01 23 45,+012345 ou n'importe quelle combinaison. -.TP -.B --interface-name=, -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. -.TP -.B --synth-domain=,[,] -Créé des enregistrements A/AAAA ou PTR pour une plage d'adresses. Les -enregistrements utilisent l'adresse ainsi que les points (ou les deux points -dans le cas d'IPv6) remplacés par des tirets. - -Un exemple devrait rendre cela plus clair : -La configuration -.B --synth-domain=thekelleys.org.uk,192.168.0.0/24,internal- -permet de retourner internal-192-168-0-56.thekelleys.org.uk lors d'une requête -sur l'adresse 192.168.0.56 et vice-versa pour la requête inverse. La même -logique s'applique pour IPv6, avec la particularité suivante : les adresses -IPv6 pouvant commencer par '::', mais les noms DNS ne pouvant pas commencer -par '-', si aucun préfixe n'est donné, un zéro est ajouté en début de nom. -Ainsi, ::1 devient 0--1. - -La plage d'adresses peut-être de la forme -, ou / -.TP -.B --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. L'avertissement donné pour --add-subnet -s'applique également ici. -.TP -.B --add-subnet[[=],] -Rajoute l'adresse de sous-réseau du requêteur aux requêtes DNS transmises -aux serveurs amonts. La quantité d'adresses transmises dépend du paramètre -longueur du préfixe : 32 (ou 128 dans le cas d'IPv6) transmet la totalité -de l'adresse, 0 n'en transmet aucun mais marque néanmoins la requête ce qui -fait qu'aucun serveur amont ne rajoutera d'adresse client. La valeur par -défaut est zéro et pour IPv4 et pour IPv6. A noter que les serveurs amonts -peuvent-être configurés pour retourner des valeurs différentes en fonction -de cette information mais que le cache de dnsmasq n'en tient pas compte. -Si une instance de dnsmasq est configurée de telle maniêre que des valeurs -différentes pourraient-être rencontrés, alors le cache devrait être désactivé. -.TP -.B \-c, --cache-size= -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. -.TP -.B \-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. -.TP -.B \-0, --dns-forward-max= -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. -.TP -.B --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 -.I 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. -.TP - -.B --auth-zone=[,[/][,[/].....]] -Définie une zone DNS pour laquelle dnsmasq agit en temps que serveur faisant -autorité. Les enregistrements DNS définis localement et correspondant à ce -domaine seront fournis. Les enregistrements A et AAAA doivent se situer dans -l'un des sous-réseaux définis, ou dans un réseau correspondant à une plage DHCP -(ce comportement peut-être désactivé par -.B constructor-noauth: -). Le ou les sous-réseaux sont également utilisé(s) pour définir les domaines -in-addr.arpa et ip6.arpa servant à l'interrogation DNS inverse. Si la longueur -de préfixe n'est pas spécifiée, elle sera par défaut de 24 pour IPv4 et 64 pour -IPv6. Dans le cas d'IPv4, la longueur du masque de réseau devrait-être de 8, 16 -ou 24, sauf si en cas de mise en place d'une délégation de la zone in-addr.arpa -conforme au RFC 2317. -.TP -.B --auth-soa=[,[,[,[,]]]] -Spécifie les champs de l'enregistrement de type SOA (Start Of Authority) -associé à une zone pour laquelle le serveur fait autorité. A noter que cela est -optionnel, les valeurs par défaut devant convenir à la majorité des cas. -.TP -.B --auth-sec-servers=[,[,...]] -Spécifie un ou plusieurs serveur de nom secondaires pour une zone pour -laquelle dnsmasq fait autorité. Ces serveurs doivent-être configurés pour -récupérer auprès de dnsmasq les informations liées à la zone au travers d'un -transfert de zone, et répondre aux requêtes pour toutes les zones pour -lesquelles dnsmasq fait autorité. -.TP -.B --auth-peer=[,[,...]] -Spécifie la ou les adresses de serveurs secondaires autorisés à initier des -requêtes de transfert de zone (AXFR) pour les zones pour lesquelles -dnsmasq fait autorité. Si cette option n'est pas fournie, les requêtes AXFR -seront acceptées pour tous les serveurs secondaires. -.TP -.B --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. -.TP -.B \-F, --dhcp-range=[tag: