|
version 1.1.1.2, 2014/06/15 16:31:38
|
version 1.1.1.3, 2016/11/02 09:57:01
|
|
Line 42 the configuration file.
|
Line 42 the configuration file.
|
| Read and syntax check configuration file(s). Exit with code 0 if all |
Read and syntax check configuration file(s). Exit with code 0 if all |
| is OK, or a non-zero code otherwise. Do not start up dnsmasq. |
is OK, or a non-zero code otherwise. Do not start up dnsmasq. |
| .TP |
.TP |
| |
.B \-w, --help |
| |
Display all command-line options. |
| |
.B --help dhcp |
| |
will display known DHCPv4 configuration options, and |
| |
.B --help dhcp6 |
| |
will display DHCPv6 options. |
| |
.TP |
| .B \-h, --no-hosts |
.B \-h, --no-hosts |
| Don't read the hostnames in /etc/hosts. |
Don't read the hostnames in /etc/hosts. |
| .TP |
.TP |
|
Line 50 Additional hosts file. Read the specified file as well
|
Line 57 Additional hosts file. Read the specified file as well
|
| only the specified file. This option may be repeated for more than one |
only the specified file. This option may be repeated for more than one |
| additional hosts file. If a directory is given, then read all the files contained in that directory. |
additional hosts file. If a directory is given, then read all the files contained in that directory. |
| .TP |
.TP |
| |
.B --hostsdir=<path> |
| |
Read all the hosts files contained in the directory. New or changed files |
| |
are read automatically. See --dhcp-hostsdir for details. |
| |
.TP |
| .B \-E, --expand-hosts |
.B \-E, --expand-hosts |
| Add the domain to simple names (without a period) in /etc/hosts |
Add the domain to simple names (without a period) in /etc/hosts |
| in the same way as for DHCP-derived names. Note that this does not |
in the same way as for DHCP-derived names. Note that this does not |
| apply to domain names in cnames, PTR records, TXT records etc. |
apply to domain names in cnames, PTR records, TXT records etc. |
| .TP |
.TP |
| .B \-T, --local-ttl=<time> |
.B \-T, --local-ttl=<time> |
| When replying with information from /etc/hosts or the DHCP leases | When replying with information from /etc/hosts or configuration or the DHCP leases |
| file dnsmasq by default sets the time-to-live field to zero, meaning |
file dnsmasq by default sets the time-to-live field to zero, meaning |
| that the requester should not itself cache the information. This is |
that the requester should not itself cache the information. This is |
| the correct thing to do in almost all situations. This option allows a |
the correct thing to do in almost all situations. This option allows a |
|
Line 64 time-to-live (in seconds) to be given for these replie
|
Line 75 time-to-live (in seconds) to be given for these replie
|
| reduce the load on the server at the expense of clients using stale |
reduce the load on the server at the expense of clients using stale |
| data under some circumstances. |
data under some circumstances. |
| .TP |
.TP |
| |
.B --dhcp-ttl=<time> |
| |
As for --local-ttl, but affects only replies with information from DHCP leases. If both are given, --dhcp-ttl applies for DHCP information, and --local-ttl for others. Setting this to zero eliminates the effect of --local-ttl for DHCP. |
| |
.TP |
| .B --neg-ttl=<time> |
.B --neg-ttl=<time> |
| Negative replies from upstream servers normally contain time-to-live |
Negative replies from upstream servers normally contain time-to-live |
| information in SOA records which dnsmasq uses for caching. If the |
information in SOA records which dnsmasq uses for caching. If the |
|
Line 81 the upstream DNS servers.
|
Line 95 the upstream DNS servers.
|
| .B --max-cache-ttl=<time> |
.B --max-cache-ttl=<time> |
| Set a maximum TTL value for entries in the cache. |
Set a maximum TTL value for entries in the cache. |
| .TP |
.TP |
| |
.B --min-cache-ttl=<time> |
| |
Extend short TTL values to the time given when caching them. Note that |
| |
artificially extending TTL values is in general a bad idea, do not do it |
| |
unless you have a good reason, and understand what you are doing. |
| |
Dnsmasq limits the value of this option to one hour, unless recompiled. |
| |
.TP |
| .B --auth-ttl=<time> |
.B --auth-ttl=<time> |
| Set the TTL value returned in answers from the authoritative server. |
Set the TTL value returned in answers from the authoritative server. |
| .TP |
.TP |
|
Line 98 only, to stop dnsmasq daemonising in production, use
|
Line 118 only, to stop dnsmasq daemonising in production, use
|
| .B -k. |
.B -k. |
| .TP |
.TP |
| .B \-q, --log-queries |
.B \-q, --log-queries |
| Log the results of DNS queries handled by dnsmasq. Enable a full cache dump on receipt of SIGUSR1. | Log the results of DNS queries handled by dnsmasq. Enable a full cache dump on receipt of SIGUSR1. If the argument "extra" is supplied, ie |
| | .B --log-queries=extra |
| | then the log has extra information at the start of each line. |
| | This consists of a serial number which ties together the log lines associated with an individual query, and the IP address of the requestor. |
| .TP |
.TP |
| .B \-8, --log-facility=<facility> |
.B \-8, --log-facility=<facility> |
| Set the facility to which dnsmasq will send syslog entries, this |
Set the facility to which dnsmasq will send syslog entries, this |
|
Line 161 queries. Dnsmasq picks random ports as source for outb
|
Line 184 queries. Dnsmasq picks random ports as source for outb
|
| when this option is given, the ports used will always to larger |
when this option is given, the ports used will always to larger |
| than that specified. Useful for systems behind firewalls. |
than that specified. Useful for systems behind firewalls. |
| .TP |
.TP |
| |
.B --max-port=<port> |
| |
Use ports lower than that given as source for outbound DNS queries. |
| |
Dnsmasq picks random ports as source for outbound queries: |
| |
when this option is given, the ports used will always be lower |
| |
than that specified. Useful for systems behind firewalls. |
| |
.TP |
| |
|
| .B \-i, --interface=<interface name> |
.B \-i, --interface=<interface name> |
| Listen only on the specified interface(s). Dnsmasq automatically adds |
Listen only on the specified interface(s). Dnsmasq automatically adds |
| the loopback (local) interface to the list of interfaces to use when |
the loopback (local) interface to the list of interfaces to use when |
|
Line 293 an advertising web page in response to queries for unr
|
Line 323 an advertising web page in response to queries for unr
|
| instead of the correct NXDOMAIN response. This option tells dnsmasq to |
instead of the correct NXDOMAIN response. This option tells dnsmasq to |
| fake the correct response when it sees this behaviour. As at Sept 2003 |
fake the correct response when it sees this behaviour. As at Sept 2003 |
| the IP address being returned by Verisign is 64.94.110.11 |
the IP address being returned by Verisign is 64.94.110.11 |
| |
.TP |
| |
.B --ignore-address=<ipaddr> |
| |
Ignore replies to A-record queries which include the specified address. |
| |
No error is generated, dnsmasq simply continues to listen for another reply. |
| |
This is useful to defeat blocking strategies which rely on quickly supplying a |
| |
forged answer to a DNS request for certain domain, before the correct answer can arrive. |
| .TP |
.TP |
| .B \-f, --filterwin2k |
.B \-f, --filterwin2k |
| Later versions of windows make periodic DNS requests which don't get sensible answers from |
Later versions of windows make periodic DNS requests which don't get sensible answers from |
|
Line 334 it will send queries to just one server. Setting this
|
Line 370 it will send queries to just one server. Setting this
|
| dnsmasq to send all queries to all available servers. The reply from |
dnsmasq to send all queries to all available servers. The reply from |
| the server which answers first will be returned to the original requester. |
the server which answers first will be returned to the original requester. |
| .TP |
.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 <hex>.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 |
.B --stop-dns-rebind |
| Reject (and log) addresses from upstream nameservers which are in the |
Reject (and log) addresses from upstream nameservers which are in the |
| private IP ranges. This blocks an attack where a browser behind a |
private IP ranges. This blocks an attack where a browser behind a |
|
Line 376 xxx.internal.thekelleys.org.uk at 192.168.1.1 then giv
|
Line 422 xxx.internal.thekelleys.org.uk at 192.168.1.1 then giv
|
| .B -S /internal.thekelleys.org.uk/192.168.1.1 |
.B -S /internal.thekelleys.org.uk/192.168.1.1 |
| will send all queries for |
will send all queries for |
| internal machines to that nameserver, everything else will go to the |
internal machines to that nameserver, everything else will go to the |
| servers in /etc/resolv.conf. An empty domain specification, | servers in /etc/resolv.conf. DNSSEC validation is turned off for such |
| | private nameservers, UNLESS a |
| | .B --trust-anchor |
| | is specified for the domain in question. An empty domain specification, |
| .B // |
.B // |
| has the special meaning of "unqualified names only" ie names without any |
has the special meaning of "unqualified names only" ie names without any |
| dots in them. A non-standard port may be specified as |
dots in them. A non-standard port may be specified as |
|
Line 431 but provides some syntactic sugar to make specifying a
|
Line 480 but provides some syntactic sugar to make specifying a
|
| is exactly equivalent to |
is exactly equivalent to |
| .B --server=/3.2.1.in-addr.arpa/192.168.0.1 |
.B --server=/3.2.1.in-addr.arpa/192.168.0.1 |
| .TP |
.TP |
| .B \-A, --address=/<domain>/[domain/]<ipaddr> | .B \-A, --address=/<domain>/[domain/][<ipaddr>] |
| Specify an IP address to return for any host in the given domains. |
Specify an IP address to return for any host in the given domains. |
| Queries in the domains are never forwarded and always replied to |
Queries in the domains are never forwarded and always replied to |
| with the specified IP address which may be IPv4 or IPv6. To give |
with the specified IP address which may be IPv4 or IPv6. To give |
|
Line 443 domain specification works in the same was as for --se
|
Line 492 domain specification works in the same was as for --se
|
| additional facility that /#/ matches any domain. Thus |
additional facility that /#/ matches any domain. Thus |
| --address=/#/1.2.3.4 will always return 1.2.3.4 for any query not |
--address=/#/1.2.3.4 will always return 1.2.3.4 for any query not |
| answered from /etc/hosts or DHCP and not sent to an upstream |
answered from /etc/hosts or DHCP and not sent to an upstream |
| nameserver by a more specific --server directive. | nameserver by a more specific --server directive. As for --server, |
| | one or more domains with no address returns a no-such-domain answer, so |
| | --address=/example.com/ is equivalent to --server=/example.com/ and returns |
| | NXDOMAIN for example.com and all its subdomains. |
| .TP |
.TP |
| .B --ipset=/<domain>/[domain/]<ipset>[,<ipset>] |
.B --ipset=/<domain>/[domain/]<ipset>[,<ipset>] |
| Places the resolved IP addresses of queries for the specified domains |
Places the resolved IP addresses of queries for the specified domains |
|
Line 487 zone files: the port, weight and priority numbers are
|
Line 539 zone files: the port, weight and priority numbers are
|
| order. More than one SRV record for a given service/domain is allowed, |
order. More than one SRV record for a given service/domain is allowed, |
| all that match are returned. |
all that match are returned. |
| .TP |
.TP |
| .B --host-record=<name>[,<name>....][<IPv4-address>],[<IPv6-address>] | .B --host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>] |
| Add A, AAAA and PTR records to the DNS. This adds one or more names to |
Add A, AAAA and PTR records to the DNS. This adds one or more names to |
| the DNS with associated IPv4 (A) and IPv6 (AAAA) records. A name may |
the DNS with associated IPv4 (A) and IPv6 (AAAA) records. A name may |
| appear in more than one |
appear in more than one |
|
Line 504 is in effect. Short and long names may appear in the s
|
Line 556 is in effect. Short and long names may appear in the s
|
| .B host-record, |
.B host-record, |
| eg. |
eg. |
| .B --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 |
.B --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100 |
| |
|
| |
If the time-to-live is given, it overrides the default, which is zero |
| |
or the value of --local-ttl. The value is a positive integer and gives |
| |
the time-to-live in seconds. |
| .TP |
.TP |
| .B \-Y, --txt-record=<name>[[,<text>],<text>] |
.B \-Y, --txt-record=<name>[[,<text>],<text>] |
| Return a TXT DNS record. The value of TXT record is a set of strings, |
Return a TXT DNS record. The value of TXT record is a set of strings, |
|
Line 517 Return a PTR DNS record.
|
Line 573 Return a PTR DNS record.
|
| .B --naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>] |
.B --naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>] |
| Return an NAPTR DNS record, as specified in RFC3403. |
Return an NAPTR DNS record, as specified in RFC3403. |
| .TP |
.TP |
| .B --cname=<cname>,<target> | .B --cname=<cname>,<target>[,<TTL>] |
| Return a CNAME record which indicates that <cname> is really |
Return a CNAME record which indicates that <cname> is really |
| <target>. There are significant limitations on the target; it must be a |
<target>. There are significant limitations on the target; it must be a |
| DNS name which is known to dnsmasq from /etc/hosts (or additional |
DNS name which is known to dnsmasq from /etc/hosts (or additional |
|
Line 526 hosts files), from DHCP, from --interface-name or from
|
Line 582 hosts files), from DHCP, from --interface-name or from
|
| If the target does not satisfy this |
If the target does not satisfy this |
| criteria, the whole cname is ignored. The cname must be unique, but it |
criteria, the whole cname is ignored. The cname must be unique, but it |
| is permissable to have more than one cname pointing to the same target. |
is permissable to have more than one cname pointing to the same target. |
| |
|
| |
If the time-to-live is given, it overrides the default, which is zero |
| |
or the value of -local-ttl. The value is a positive integer and gives |
| |
the time-to-live in seconds. |
| .TP |
.TP |
| .B --dns-rr=<name>,<RR-number>,[<hex data>] |
.B --dns-rr=<name>,<RR-number>,[<hex data>] |
| Return an arbitrary DNS Resource Record. The number is the type of the |
Return an arbitrary DNS Resource Record. The number is the type of the |
|
Line 562 configured a zero is added in front of the label. ::1
|
Line 622 configured a zero is added in front of the label. ::1
|
| The address range can be of the form |
The address range can be of the form |
| <ip address>,<ip address> or <ip address>/<netmask> |
<ip address>,<ip address> or <ip address>/<netmask> |
| .TP |
.TP |
| .B --add-mac | .B --add-mac[=base64|text] |
| Add the MAC address of the requestor to DNS queries which are |
Add the MAC address of the requestor to DNS queries which are |
| forwarded upstream. This may be used to DNS filtering by the upstream |
forwarded upstream. This may be used to DNS filtering by the upstream |
| server. The MAC address can only be added if the requestor is on the same |
server. The MAC address can only be added if the requestor is on the same |
|
Line 570 subnet as the dnsmasq server. Note that the mechanism
|
Line 630 subnet as the dnsmasq server. Note that the mechanism
|
| is not yet standardised, so this should be considered |
is not yet standardised, so this should be considered |
| experimental. Also note that exposing MAC addresses in this way may |
experimental. Also note that exposing MAC addresses in this way may |
| have security and privacy implications. The warning about caching |
have security and privacy implications. The warning about caching |
| given for --add-subnet applies to --add-mac too. | given for --add-subnet applies to --add-mac too. An alternative encoding of the |
| | MAC, as base64, is enabled by adding the "base64" parameter and a human-readable encoding of hex-and-colons is enabled by added the "text" parameter. |
| | .TP |
| | .B --add-cpe-id=<string> |
| | Add a arbitrary identifying string to o DNS queries which are |
| | forwarded upstream. |
| .TP |
.TP |
| .B --add-subnet[[=<IPv4 prefix length>],<IPv6 prefix length>] | .B --add-subnet[[=[<IPv4 address>/]<IPv4 prefix length>][,[<IPv6 address>/]<IPv6 prefix length>]] |
| Add the subnet address of the requestor to the DNS queries which are | Add a subnet address to the DNS queries which are forwarded |
| forwarded upstream. The amount of the address forwarded depends on the | upstream. If an address is specified in the flag, it will be used, |
| prefix length parameter: 32 (128 for IPv6) forwards the whole address, | otherwise, the address of the requestor will be used. The amount of |
| zero forwards none of it but still marks the request so that no | the address forwarded depends on the prefix length parameter: 32 (128 |
| upstream nameserver will add client address information either. The | for IPv6) forwards the whole address, zero forwards none of it but |
| default is zero for both IPv4 and IPv6. Note that upstream nameservers | still marks the request so that no upstream nameserver will add client |
| may be configured to return different results based on this | address information either. The default is zero for both IPv4 and |
| information, but the dnsmasq cache does not take account. If a dnsmasq | IPv6. Note that upstream nameservers may be configured to return |
| instance is configured such that different results may be encountered, | different results based on this information, but the dnsmasq cache |
| caching should be disabled. | does not take account. If a dnsmasq instance is configured such that |
| | different results may be encountered, caching should be disabled. |
| | |
| | For example, |
| | .B --add-subnet=24,96 |
| | will add the /24 and /96 subnets of the requestor for IPv4 and IPv6 requestors, respectively. |
| | .B --add-subnet=1.2.3.4/24 |
| | will add 1.2.3.0/24 for IPv4 requestors and ::/0 for IPv6 requestors. |
| | .B --add-subnet=1.2.3.4/24,1.2.3.4/24 |
| | will add 1.2.3.0/24 for both IPv4 and IPv6 requestors. |
| | |
| .TP |
.TP |
| .B \-c, --cache-size=<cachesize> |
.B \-c, --cache-size=<cachesize> |
| Set the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching. |
Set the size of dnsmasq's cache. The default is 150 names. Setting the cache size to zero disables caching. |
|
Line 622 Provide DS records to act a trust anchors for DNSSEC
|
Line 697 Provide DS records to act a trust anchors for DNSSEC
|
| validation. Typically these will be the DS record(s) for Zone Signing |
validation. Typically these will be the DS record(s) for Zone Signing |
| key(s) of the root zone, |
key(s) of the root zone, |
| but trust anchors for limited domains are also possible. The current |
but trust anchors for limited domains are also possible. The current |
| root-zone trust anchors may be donwloaded from https://data.iana.org/root-anchors/root-anchors.xml | root-zone trust anchors may be downloaded from https://data.iana.org/root-anchors/root-anchors.xml |
| .TP |
.TP |
| .B --dnssec-check-unsigned |
.B --dnssec-check-unsigned |
| As a default, dnsmasq does not check that unsigned DNS replies are |
As a default, dnsmasq does not check that unsigned DNS replies are |
|
Line 645 that dnsmasq should be started with this flag when the
|
Line 720 that dnsmasq should be started with this flag when the
|
| reliable time is established, a SIGHUP should be sent to dnsmasq, which enables time checking, and purges the cache of DNS records |
reliable time is established, a SIGHUP should be sent to dnsmasq, which enables time checking, and purges the cache of DNS records |
| which have not been throughly checked. |
which have not been throughly checked. |
| .TP |
.TP |
| |
.B --dnssec-timestamp=<path> |
| |
Enables an alternative way of checking the validity of the system time for DNSSEC (see --dnssec-no-timecheck). In this case, the |
| |
system time is considered to be valid once it becomes later than the timestamp on the specified file. The file is created and |
| |
its timestamp set automatically by dnsmasq. The file must be stored on a persistent filesystem, so that it and its mtime are carried |
| |
over system restarts. The timestamp file is created after dnsmasq has dropped root, so it must be in a location writable by the |
| |
unprivileged user that dnsmasq runs as. |
| |
.TP |
| .B --proxy-dnssec |
.B --proxy-dnssec |
| Copy the DNSSEC Authenticated Data bit from upstream servers to downstream clients and cache it. This is an |
Copy the DNSSEC Authenticated Data bit from upstream servers to downstream clients and cache it. This is an |
| alternative to having dnsmasq validate DNSSEC, but it depends on the security of the network between |
alternative to having dnsmasq validate DNSSEC, but it depends on the security of the network between |
|
Line 708 compiled in and the kernel must have conntrack support
|
Line 790 compiled in and the kernel must have conntrack support
|
| included and configured. This option cannot be combined with |
included and configured. This option cannot be combined with |
| --query-port. |
--query-port. |
| .TP |
.TP |
| .B \-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>][,<mode>][,<netmask>[,<broadcast>]][,<lease time>] | .B \-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>|<mode>][,<netmask>[,<broadcast>]][,<lease time>] |
| .TP |
.TP |
| .B \-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-IPv6addr>[,<end-IPv6addr>|constructor:<interface>][,<mode>][,<prefix-len>][,<lease time>] |
.B \-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-IPv6addr>[,<end-IPv6addr>|constructor:<interface>][,<mode>][,<prefix-len>][,<lease time>] |
| |
|
|
Line 794 and
|
Line 876 and
|
| for details.) |
for details.) |
| |
|
| For IPv6, the mode may be some combination of |
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, off-link. |
| |
|
| .B ra-only |
.B ra-only |
| tells dnsmasq to offer Router Advertisement only on this subnet, |
tells dnsmasq to offer Router Advertisement only on this subnet, |
|
Line 829 can be combined with
|
Line 911 can be combined with
|
| and |
and |
| .B slaac. |
.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. |
| |
|
| |
.B off-link |
| |
tells dnsmasq to advertise the prefix without the on-link (aka L) bit set. |
| |
|
| .TP |
.TP |
| .B \-G, --dhcp-host=[<hwaddr>][,id:<client_id>|*][,set:<tag>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore] |
.B \-G, --dhcp-host=[<hwaddr>][,id:<client_id>|*][,set:<tag>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore] |
| Specify per host parameters for the DHCP server. This allows a machine |
Specify per host parameters for the DHCP server. This allows a machine |
|
Line 947 is given, then read all the files contained in that di
|
Line 1037 is given, then read all the files contained in that di
|
| using this option is the same as for --dhcp-hostsfile: the |
using this option is the same as for --dhcp-hostsfile: the |
| dhcp-optsfile will be re-read when dnsmasq receives SIGHUP. Note that |
dhcp-optsfile will be re-read when dnsmasq receives SIGHUP. Note that |
| it is possible to encode the information in a |
it is possible to encode the information in a |
| |
.TP |
| |
.B --dhcp-hostsdir=<path> |
| |
This is equivalent to dhcp-hostsfile, except for the following. The path MUST be a |
| |
directory, and not an individual file. Changed or new files within |
| |
the directory are read automatically, without the need to send SIGHUP. |
| |
If a file is deleted for changed after it has been read by dnsmasq, then the |
| |
host record it contained will remain until dnsmasq recieves a SIGHUP, or |
| |
is restarted; ie host records are only added dynamically. |
| |
.TP |
| |
.B --dhcp-optsdir=<path> |
| |
This is equivalent to dhcp-optsfile, with the differences noted for --dhcp-hostsdir. |
| |
.TP |
| .B --dhcp-boot |
.B --dhcp-boot |
| flag as DHCP options, using the options names bootfile-name, |
flag as DHCP options, using the options names bootfile-name, |
| server-ip-address and tftp-server. This allows these to be included |
server-ip-address and tftp-server. This allows these to be included |
|
Line 1256 functions when supported by a suitable DHCP server.
|
Line 1358 functions when supported by a suitable DHCP server.
|
| This specifies a boot option which may appear in a PXE boot menu. <CSA> is |
This specifies a boot option which may appear in a PXE boot menu. <CSA> is |
| client system type, only services of the correct type will appear in a |
client system type, only services of the correct type will appear in a |
| menu. The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, |
menu. The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, |
| Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI; an | Intel_Lean_Client, IA32_EFI, X86-64_EFI, Xscale_EFI, BC_EFI, ARM32_EFI and ARM64_EFI; an |
| integer may be used for other types. The |
integer may be used for other types. The |
| parameter after the menu text may be a file name, in which case dnsmasq acts as a |
parameter after the menu text may be a file name, in which case dnsmasq acts as a |
| boot server and directs the PXE client to download the file by TFTP, |
boot server and directs the PXE client to download the file by TFTP, |
|
Line 1265 either from itself (
|
Line 1367 either from itself (
|
| must be set for this to work) or another TFTP server if the final server |
must be set for this to work) or another TFTP server if the final server |
| address/name is given. |
address/name is given. |
| Note that the "layer" |
Note that the "layer" |
| suffix (normally ".0") is supplied by PXE, and should not be added to | suffix (normally ".0") is supplied by PXE, and need not be added to |
| the basename. If an integer boot service type, rather than a basename | the basename. Alternatively, the basename may be a filename, complete with suffix, in which case |
| | no layer suffix is added. If an integer boot service type, rather than a basename |
| is given, then the PXE client will search for a |
is given, then the PXE client will search for a |
| suitable boot service for that type on the network. This search may be done |
suitable boot service for that type on the network. This search may be done |
| by broadcast, or direct to a server if its IP address/name is provided. |
by broadcast, or direct to a server if its IP address/name is provided. |
|
Line 1332 enables dynamic allocation. With tags, only when the t
|
Line 1435 enables dynamic allocation. With tags, only when the t
|
| set. It may be repeated with different tag sets. |
set. It may be repeated with different tag sets. |
| .TP |
.TP |
| .B \-5, --no-ping |
.B \-5, --no-ping |
| (IPv4 only) By default, the DHCP server will attempt to ensure that an address in | (IPv4 only) By default, the DHCP server will attempt to ensure that an address is |
| not in use before allocating it to a host. It does this by sending an |
not in use before allocating it to a host. It does this by sending an |
| ICMP echo request (aka "ping") to the address in question. If it gets |
ICMP echo request (aka "ping") to the address in question. If it gets |
| a reply, then the address must already be in use, and another is |
a reply, then the address must already be in use, and another is |
|
Line 1464 At dnsmasq startup, the script will be invoked for
|
Line 1567 At dnsmasq startup, the script will be invoked for
|
| all existing leases as they are read from the lease file. Expired |
all existing leases as they are read from the lease file. Expired |
| leases will be called with "del" and others with "old". When dnsmasq |
leases will be called with "del" and others with "old". When dnsmasq |
| receives a HUP signal, the script will be invoked for existing leases |
receives a HUP signal, the script will be invoked for existing leases |
| with an "old " event. | with an "old" event. |
| |
|
| |
|
| There are two further actions which may appear as the first argument | There are four further actions which may appear as the first argument |
| to the script, "init" and "tftp". More may be added in the future, so | to the script, "init", "arp-add", "arp-del" and "tftp". More may be added in the future, so |
| scripts should be written to ignore unknown actions. "init" is |
scripts should be written to ignore unknown actions. "init" is |
| described below in |
described below in |
| .B --leasefile-ro |
.B --leasefile-ro |
|
Line 1476 The "tftp" action is invoked when a TFTP file transfer
|
Line 1579 The "tftp" action is invoked when a TFTP file transfer
|
| arguments are the file size in bytes, the address to which the file |
arguments are the file size in bytes, the address to which the file |
| was sent, and the complete pathname of the file. |
was sent, and the complete pathname of the file. |
| |
|
| |
The "arp-add" and "arp-del" actions are only called if enabled with |
| |
.B --script-arp |
| |
They are are supplied with a MAC address and IP address as arguments. "arp-add" indicates |
| |
the arrival of a new entry in the ARP or neighbour table, and "arp-del" indicates the deletion of same. |
| |
|
| .TP |
.TP |
| .B --dhcp-luascript=<path> |
.B --dhcp-luascript=<path> |
| Specify a script written in Lua, to be run when leases are created, |
Specify a script written in Lua, to be run when leases are created, |
|
Line 1522 table holds the tags
|
Line 1630 table holds the tags
|
| .B file_name |
.B file_name |
| and |
and |
| .B file_size. |
.B file_size. |
| |
|
| |
The |
| |
.B arp |
| |
and |
| |
.B arp-old |
| |
functions are called only when enabled with |
| |
.B --script-arp |
| |
and have a table which holds the tags |
| |
.B mac_addres |
| |
and |
| |
.B client_address. |
| .TP |
.TP |
| .B --dhcp-scriptuser |
.B --dhcp-scriptuser |
| Specify the user as which to run the lease-change script or Lua script. This defaults to root, but can be changed to another user using this flag. |
Specify the user as which to run the lease-change script or Lua script. This defaults to root, but can be changed to another user using this flag. |
| .TP | .TP |
| | .B --script-arp |
| | Enable the "arp" and "arp-old" functions in the dhcp-script and dhcp-luascript. |
| | .TP |
| .B \-9, --leasefile-ro |
.B \-9, --leasefile-ro |
| Completely suppress use of the lease database file. The file will not |
Completely suppress use of the lease database file. The file will not |
| be created, read, or written. Change the way the lease-change |
be created, read, or written. Change the way the lease-change |
|
Line 1541 option also forces the leasechange script to be called
|
Line 1663 option also forces the leasechange script to be called
|
| to the client-id and lease length and expiry time. |
to the client-id and lease length and expiry time. |
| .TP |
.TP |
| .B --bridge-interface=<interface>,<alias>[,<alias>] |
.B --bridge-interface=<interface>,<alias>[,<alias>] |
| Treat DHCP request packets arriving at any of the <alias> interfaces | Treat DHCP (v4 and v6) request and IPv6 Router Solicit packets |
| as if they had arrived at <interface>. This option is necessary when | arriving at any of the <alias> interfaces as if they had arrived at |
| using "old style" bridging on BSD platforms, since | <interface>. This option allows dnsmasq to provide DHCP and RA |
| packets arrive at tap interfaces which don't have an IP address. | service over unaddressed and unbridged Ethernet interfaces, e.g. on an |
| | OpenStack compute host where each such interface is a TAP interface to |
| | a VM, or as in "old style bridging" on BSD platforms. A trailing '*' |
| | wildcard can be used in each <alias>. |
| .TP |
.TP |
| .B \-s, --domain=<domain>[,<address range>[,local]] |
.B \-s, --domain=<domain>[,<address range>[,local]] |
| Specifies DNS domains for the DHCP server. Domains may be be given |
Specifies DNS domains for the DHCP server. Domains may be be given |
|
Line 1615 creation are handled by a different protocol. When DHC
|
Line 1740 creation are handled by a different protocol. When DHC
|
| only a subset of this is needed, and dnsmasq can handle it, using |
only a subset of this is needed, and dnsmasq can handle it, using |
| existing DHCP configuration to provide most data. When RA is enabled, |
existing DHCP configuration to provide most data. When RA is enabled, |
| dnsmasq will advertise a prefix for each dhcp-range, with default |
dnsmasq will advertise a prefix for each dhcp-range, with default |
| router and recursive DNS server as the relevant link-local address on | router as the relevant link-local address on |
| the machine running dnsmasq. By default, he "managed address" bits are set, and | the machine running dnsmasq. By default, the "managed address" bits are set, and |
| the "use SLAAC" bit is reset. This can be changed for individual |
the "use SLAAC" bit is reset. This can be changed for individual |
| subnets with the mode keywords described in |
subnets with the mode keywords described in |
| .B --dhcp-range. |
.B --dhcp-range. |
| RFC6106 DNS parameters are included in the advertisements. By default, |
RFC6106 DNS parameters are included in the advertisements. By default, |
| the relevant link-local address of the machine running dnsmasq is sent |
the relevant link-local address of the machine running dnsmasq is sent |
| as recursive DNS server. If provided, the DHCPv6 options dns-server and |
as recursive DNS server. If provided, the DHCPv6 options dns-server and |
| domain-search are used for RDNSS and DNSSL. | domain-search are used for the DNS server (RDNSS) and the domain serach list (DNSSL). |
| .TP |
.TP |
| .B --ra-param=<interface>,[high|low],[[<ra-interval>],<router lifetime>] |
.B --ra-param=<interface>,[high|low],[[<ra-interval>],<router lifetime>] |
| Set non-default values for router advertisements sent via an |
Set non-default values for router advertisements sent via an |
|
Line 1654 Absolute paths (starting with /) are allowed, but they
|
Line 1779 Absolute paths (starting with /) are allowed, but they
|
| the tftp-root. If the optional interface argument is given, the |
the tftp-root. If the optional interface argument is given, the |
| directory is only used for TFTP requests via that interface. |
directory is only used for TFTP requests via that interface. |
| .TP |
.TP |
| |
.B --tftp-no-fail |
| |
Do not abort startup if specified tftp root directories are inaccessible. |
| |
.TP |
| .B --tftp-unique-root |
.B --tftp-unique-root |
| Add the IP address of the TFTP client as a path component on the end |
Add the IP address of the TFTP client as a path component on the end |
| of the TFTP-root (in standard dotted-quad format). Only valid if a |
of the TFTP-root (in standard dotted-quad format). Only valid if a |
|
Line 1690 require about (2*n) + 10 descriptors. If
|
Line 1818 require about (2*n) + 10 descriptors. If
|
| .B --tftp-port-range |
.B --tftp-port-range |
| is given, that can affect the number of concurrent connections. |
is given, that can affect the number of concurrent connections. |
| .TP |
.TP |
| |
.B --tftp-mtu=<mtu size> |
| |
Use size as the ceiling of the MTU supported by the intervening network when |
| |
negotiating TFTP blocksize, overriding the MTU setting of the local interface if it is larger. |
| |
.TP |
| .B --tftp-no-blocksize |
.B --tftp-no-blocksize |
| Stop the TFTP server from negotiating the "blocksize" option with a |
Stop the TFTP server from negotiating the "blocksize" option with a |
| client. Some buggy clients request this option but then behave badly |
client. Some buggy clients request this option but then behave badly |
|
Line 1709 Specify a different configuration file. The conf-file
|
Line 1841 Specify a different configuration file. The conf-file
|
| configuration files, to include multiple configuration files. A |
configuration files, to include multiple configuration files. A |
| filename of "-" causes dnsmasq to read configuration from stdin. |
filename of "-" causes dnsmasq to read configuration from stdin. |
| .TP |
.TP |
| .B \-7, --conf-dir=<directory>[,<file-extension>......] | .B \-7, --conf-dir=<directory>[,<file-extension>......], |
| Read all the files in the given directory as configuration |
Read all the files in the given directory as configuration |
| files. If extension(s) are given, any files which end in those |
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 |
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 | with # are always skipped. If the extension starts with * then only files |
| line or in a configuration file. | 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 |
.TP |
| .B --servers-file=<file> |
.B --servers-file=<file> |
| A special case of |
A special case of |
|
Line 1747 clears its cache and then re-loads
|
Line 1883 clears its cache and then re-loads
|
| .I /etc/hosts |
.I /etc/hosts |
| and |
and |
| .I /etc/ethers |
.I /etc/ethers |
| and any file given by --dhcp-hostsfile, --dhcp-optsfile or --addn-hosts. | and any file given by --dhcp-hostsfile, --dhcp-hostsdir, --dhcp-optsfile, |
| | --dhcp-optsdir, --addn-hosts or --hostsdir. |
| The dhcp lease change script is called for all |
The dhcp lease change script is called for all |
| existing DHCP leases. If |
existing DHCP leases. If |
| .B |
.B |