blob: f526acb407a932d6b30fa8bd325a6f414e2487ad [file] [log] [blame]
Simon Kelley734d5312018-03-23 23:09:53 +00001version 2.80
2 Add support for RFC 4039 DHCP rapid commit. Thanks to Ashram Method
3 for the initial patch and motivation.
4
Simon Kelleya6918532018-04-15 16:20:52 +01005 Alter the default for dnssec-check-unsigned. Versions of
6 dnsmasq prior to 2.80 defaulted to not checking unsigned
7 replies, and used --dnssec-check-unsigned to switch
8 this on. Such configurations will continue to work as before,
9 but those which used the default of no checking will need to be
10 altered to explicitly select no checking. The new default is
11 because switching off checking for unsigned replies is
12 inherently dangerous. Not only does it open the possiblity of forged
13 replies, but it allows everything to appear to be working even
14 when the upstream namesevers do not support DNSSEC, and in this
15 case no DNSSEC validation at all is occuring.
16
Simon Kelley0669ee72018-05-04 16:46:24 +010017 Fix DHCP broken-ness when --no-ping AND --dhcp-sequential-ip
18 are set. Thanks to Daniel Miess for help with this.
Simon Kelleya6918532018-04-15 16:20:52 +010019
Simon Kelley6b173352018-05-08 18:32:14 +010020 Add a facilty to store DNS packets sent/recieved in a
21 pcap-format file for later debugging. The file location
22 is given by the --dumpfile option, and a bitmap controlling
23 which packets should be dumped is given by the --dumpmask
24 option.
25
Simon Kelleyc488b682018-06-02 13:06:00 +010026 Handle the case of both standard and constructed dhcp-ranges on the
27 same interface better. We don't now contruct a dhcp-range if there's
28 already one specified. This allows the specified interface to
29 have different parameters and avoids advertising the same
30 prefix twice. Thanks to Luis Marsano for spotting this case.
31
Simon Kelley090856c2018-06-02 18:37:07 +010032 Allow zone transfer in authoritative mode if auth-peer is specified,
33 even if auth-sec-servers is not. Thanks to Raphaël Halimi for
34 the suggestion.
35
Simon Kelleya997ca02018-06-29 14:39:41 +010036 Fix bug which sometimes caused dnsmasq to wrongly return answers
37 without DNSSEC RRs to queries with the do-bit set, but only when
38 DNSSEC validation was not enabled.
39 Thanks to Petr Menšík for spotting this.
Simon Kelleya3bd7e72018-07-19 22:00:08 +010040
41 Fix missing fatal errors with some malformed options
42 (server, local, address, rebind-domain-ok, ipset, alias).
43 Thanks to Eugene Lozovoy for spotting the problem.
Simon Kelleydd33e982018-07-30 14:55:39 +010044
45 Fix crash on startup with a --synth-domain which has no prefix.
46 Introduced in 2.79. Thanks to Andreas Engel for the bug report.
47
Simon Kelley1682d152018-08-03 20:38:18 +010048 Fix missing EDNS0 section in some replies generated by local
49 DNS configuration which confused systemd-resolvd. Thanks to
50 Steve Dodd for characterising the problem.
51
Simon Kelleyc8226202018-08-08 23:46:03 +010052 Add --dhcp-name-match config option.
53
Simon Kelley974a6d02018-08-23 23:01:16 +010054 Add --caa-record config option.
Simon Kelleyda8b6512018-09-03 23:18:36 +010055
56 Implement --address=/example.com/# as (more efficient) syntactic
57 sugar for --address=/example.com/0.0.0.0 and
58 --address=/example.com/::
59 Returning null addresses is a useful technique for ad-blocking.
60 Thanks to Peter Russell for the suggestion.
Simon Kelley974a6d02018-08-23 23:01:16 +010061
Simon Kelley41392982018-09-19 22:27:11 +010062 Change anti cache-snooping behaviour with queries with the
63 recursion-desired bit unset. Instead to returning SERVFAIL, we
64 now always forward, and never answer from the cache. This
65 allows "dig +trace" command to work.
66
Simon Kelley7cbf4972018-09-26 18:03:10 +010067 Include in the example config file a formulation which
68 stops DHCP clients from claiming the DNS name "wpad".
69 This is a fix for the CERT Vulnerability VU#598349.
70
Simon Kelley41392982018-09-19 22:27:11 +010071
Simon Kelley30858e32017-10-09 22:36:11 +010072version 2.79
73 Fix parsing of CNAME arguments, which are confused by extra spaces.
74 Thanks to Diego Aguirre for spotting the bug.
75
Simon Kelley9d6918d2017-10-13 17:55:09 +010076 Where available, use IP_UNICAST_IF or IPV6_UNICAST_IF to bind
77 upstream servers to an interface, rather than SO_BINDTODEVICE.
78 Thanks to Beniamino Galvani for the patch.
79
Simon Kelley087eb762017-10-30 23:16:54 +000080 Always return a SERVFAIL answer to DNS queries without the
Ville Skyttäfaaf3062018-01-14 17:32:52 +000081 recursion desired bit set, UNLESS acting as an authoritative
Simon Kelley087eb762017-10-30 23:16:54 +000082 DNS server. This avoids a potential route to cache snooping.
83
Simon Kelley8e8b2d62017-10-30 23:21:52 +000084 Add support for Ed25519 signatures in DNSSEC validation.
85
86 No longer support RSA/MD5 signatures in DNSSEC validation,
87 since these are not secure. This behaviour is mandated in
88 RFC-6944.
89
Simon Kelleya6cee692017-12-14 22:40:48 +000090 Fix incorrect error exit code from dhcp_release6 utility.
91 Thanks Gaudenz Steinlin for the bug report.
92
Simon Kelley3c973ad2018-01-14 21:05:37 +000093 Use SIGINT (instead of overloading SIGHUP) to turn on DNSSEC
94 time validation when --dnssec-no-timecheck is in use.
95 Note that this is an incompatible change from earlier releases.
96
Simon Kelley22cd8602018-01-14 22:57:14 +000097 Allow more than one --bridge-interface option to refer to an
98 interface, so that we can use
99 --bridge-interface=int1,alias1
100 --bridge-interface=int1,alias2
101 as an alternative to
102 --bridge-interface=int1,alias1,alias2
103 Thanks to Neil Jerram for work on this.
Simon Kelley4fe67442018-01-19 12:26:08 +0000104
105 Fix for DNSSEC with wildcard-derived NSEC records.
106 It's OK for NSEC records to be expanded from wildcards,
107 but in that case, the proof of non-existence is only valid
108 starting at the wildcard name, *.<domain> NOT the name expanded
109 from the wildcard. Without this check it's possible for an
110 attacker to craft an NSEC which wrongly proves non-existence.
111 Thanks to Ralph Dolmans for finding this, and co-ordinating
112 the vulnerability tracking and fix release.
113 CVE-2017-15107 applies.
114
Simon Kelley17214532018-02-14 22:56:09 +0000115 Remove special handling of A-for-A DNS queries. These
116 are no longer a significant problem in the global DNS.
117 http://cs.northwestern.edu/~ychen/Papers/DNS_ToN15.pdf
118 Thanks to Mattias Hellström for the initial patch.
Simon Kelley4f7bb572018-03-08 18:47:08 +0000119
120 Fix failure to delete dynamically created dhcp options
121 from files in -dhcp-optsdir directories. Thanks to
122 Lindgren Fredrik for the bug report.
Simon Kelley6b2b5642018-03-10 18:12:04 +0000123
124 Add to --synth-domain the ability to create names using
125 sequential numbers, as well as encodings of IP addresses.
126 For instance,
127 --synth-domain=thekelleys.org.uk,192.168.0.50,192.168.0.70,internal-*
128 creates 21 domain names of the form
129 internal-4.thekelleys.org.uk over the address range given, with
130 internal-0.thekelleys.org.uk being 192.168.0.50 and
131 internal-20.thekelleys.org.uk being 192.168.0.70
132 Thanks to Andy Hawkins for the suggestion.
133
Simon Kelley94b68782018-03-17 18:39:23 +0000134 Tidy up Crypto code, removing workarounds for ancient
135 versions of libnettle. We now require libnettle 3.
136
Simon Kelley30858e32017-10-09 22:36:11 +0100137
Simon Kelley1649f702017-06-25 21:19:30 +0100138version 2.78
Simon Kelley32be32e2017-06-25 21:33:28 +0100139 Fix logic of appending ".<layer>" to PXE basename. Thanks to Chris
140 Novakovic for the patch.
Simon Kelley1649f702017-06-25 21:19:30 +0100141
142 Revert ping-check of address in DHCPDISCOVER if there
143 already exists a lease for the address. Under some
144 circumstances, and netbooted windows installation can reply
145 to pings before if has a DHCP lease and block allocation
146 of the address it already used during netboot. Thanks to
147 Jan Psota for spotting this.
148
149 Fix DHCP relaying, broken in 2.76 and 2.77 by commit
150 ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
151 John Fitzgibbon for the diagnosis and patch.
Simon Kelley32be32e2017-06-25 21:33:28 +0100152
Hans Dedecker93967522017-06-27 22:08:47 +0100153 Try other servers if first returns REFUSED when
154 --strict-order active. Thanks to Hans Dedecker
155 for the patch
Simon Kelley32be32e2017-06-25 21:33:28 +0100156
Simon Kelley63437ff2017-09-06 22:34:21 +0100157 Fix regression in 2.77, ironically added as a security
158 improvement, which resulted in a crash when a DNS
159 query exceeded 512 bytes (or the EDNS0 packet size,
160 if different.) Thanks to Christian Kujau, Arne Woerner
161 Juan Manuel Fernandez and Kevin Darbyshire-Bryant for
162 chasing this one down. CVE-2017-13704 applies.
163
Simon Kelley0549c732017-09-25 18:17:11 +0100164 Fix heap overflow in DNS code. This is a potentially serious
165 security hole. It allows an attacker who can make DNS
166 requests to dnsmasq, and who controls the contents of
167 a domain, which is thereby queried, to overflow
168 (by 2 bytes) a heap buffer and either crash, or
169 even take control of, dnsmasq.
170 CVE-2017-14491 applies.
171 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100172 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley0549c732017-09-25 18:17:11 +0100173 finding this.
174
Simon Kelley24036ea2017-09-25 18:47:15 +0100175 Fix heap overflow in IPv6 router advertisement code.
176 This is a potentially serious security hole, as a
177 crafted RA request can overflow a buffer and crash or
178 control dnsmasq. Attacker must be on the local network.
179 CVE-2017-14492 applies.
180 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
181 and Kevin Hamacher of the Google Security Team for
182 finding this.
Simon Kelley3d4ff1b2017-09-25 18:52:50 +0100183
184 Fix stack overflow in DHCPv6 code. An attacker who can send
185 a DHCPv6 request to dnsmasq can overflow the stack frame and
186 crash or control dnsmasq.
187 CVE-2017-14493 applies.
188 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100189 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley3d4ff1b2017-09-25 18:52:50 +0100190 finding this.
Simon Kelley33e3f102017-09-25 20:05:11 +0100191
192 Fix information leak in DHCPv6. A crafted DHCPv6 packet can
193 cause dnsmasq to forward memory from outside the packet
194 buffer to a DHCPv6 server when acting as a relay.
195 CVE-2017-14494 applies.
196 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100197 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley33e3f102017-09-25 20:05:11 +0100198 finding this.
Simon Kelley39921d02017-09-26 18:43:19 +0100199
Simon Kelley897c1132017-09-25 20:11:58 +0100200 Fix DoS in DNS. Invalid boundary checks in the
201 add_pseudoheader function allows a memcpy call with negative
202 size An attacker which can send malicious DNS queries
203 to dnsmasq can trigger a DoS remotely.
204 dnsmasq is vulnerable only if one of the following option is
205 specified: --add-mac, --add-cpe-id or --add-subnet.
206 CVE-2017-14496 applies.
207 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100208 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley897c1132017-09-25 20:11:58 +0100209 finding this.
Simon Kelley51eadb62017-09-25 20:16:50 +0100210
211 Fix out-of-memory Dos vulnerability. An attacker which can
212 send malicious DNS queries to dnsmasq can trigger memory
213 allocations in the add_pseudoheader function
214 The allocated memory is never freed which leads to a DoS
215 through memory exhaustion. dnsmasq is vulnerable only
216 if one of the following option is specified:
217 --add-mac, --add-cpe-id or --add-subnet.
218 CVE-2017-14495 applies.
219 Credit to Felix Wilhelm, Fermin J. Serna, Gabriel Campana
Simon Kelley39921d02017-09-26 18:43:19 +0100220 Kevin Hamacher and Ron Bowes of the Google Security Team for
Simon Kelley51eadb62017-09-25 20:16:50 +0100221 finding this.
Simon Kelley39921d02017-09-26 18:43:19 +0100222
223
Simon Kelley294d36d2016-07-06 21:30:25 +0100224version 2.77
Simon Kelley32be32e2017-06-25 21:33:28 +0100225 Generate an error when configured with a CNAME loop,
226 rather than a crash. Thanks to George Metz for
227 spotting this problem.
Simon Kelley903df072017-01-19 17:22:00 +0000228
Simon Kelley32be32e2017-06-25 21:33:28 +0100229 Calculate the length of TFTP error reply packet
230 correctly. This fixes a problem when the error
231 message in a TFTP packet exceeds the arbitrary
232 limit of 500 characters. The message was correctly
233 truncated, but not the packet length, so
234 extra data was appended. This is a possible
235 security risk, since the extra data comes from
236 a buffer which is also used for DNS, so that
237 previous DNS queries or replies may be leaked.
238 Thanks to Mozilla for funding the security audit
239 which spotted this bug.
Simon Kelley294d36d2016-07-06 21:30:25 +0100240
Simon Kelley32be32e2017-06-25 21:33:28 +0100241 Fix logic error in Linux netlink code. This could
242 cause dnsmasq to enter a tight loop on systems
243 with a very large number of network interfaces.
244 Thanks to Ivan Kokshaysky for the diagnosis and
245 patch.
Ivan Kokshaysky1d076672016-07-11 18:36:05 +0100246
Simon Kelley32be32e2017-06-25 21:33:28 +0100247 Fix problem with --dnssec-timestamp whereby receipt
248 of SIGHUP would erroneously engage timestamp checking.
249 Thanks to Kevin Darbyshire-Bryant for this work.
Simon Kelleyc8328ec2016-08-05 16:54:58 +0100250
Simon Kelley32be32e2017-06-25 21:33:28 +0100251 Bump zone serial on reloading /etc/hosts and friends
252 when providing authoritative DNS. Thanks to Harrald
253 Dunkel for spotting this.
Simon Kelley6d950992016-08-11 23:38:54 +0100254
Simon Kelley32be32e2017-06-25 21:33:28 +0100255 Handle v4-mapped IPv6 addresses sanely in --synth-domain.
256 These have standard representation like ::ffff:1.2.3.4
257 and are now converted to names like
258 <prefix>--ffff-1-2-3-4.<domain>
Simon Kelley6d950992016-08-11 23:38:54 +0100259
Simon Kelley32be32e2017-06-25 21:33:28 +0100260 Handle binding upstream servers to an interface
261 (--server=1.2.3.4@eth0) when the named interface
262 is destroyed and recreated in the kernel. Thanks to
263 Beniamino Galvani for the patch.
Beniamino Galvani2675f202016-08-28 20:44:05 +0100264
Simon Kelley32be32e2017-06-25 21:33:28 +0100265 Allow wildcard CNAME records in authoritative zones.
266 For example --cname=*.example.com,default.example.com
267 Thanks to Pro Backup for sponsoring this development.
Simon Kelleyb637d782016-12-13 16:44:11 +0000268
Simon Kelley32be32e2017-06-25 21:33:28 +0100269 Bump the allowed backlog of TCP connections from 5 to 32,
270 and make this a compile-time configurable option. Thanks
271 to Donatas Abraitis for diagnosing this as a potential
272 problem.
Simon Kelley09b768e2016-12-22 22:16:58 +0000273
Simon Kelley32be32e2017-06-25 21:33:28 +0100274 Add DNSMASQ_REQUESTED_OPTIONS environment variable to the
275 lease-change script. Thanks to ZHAO Yu for the patch.
Simon Kelley294d36d2016-07-06 21:30:25 +0100276
Simon Kelley32be32e2017-06-25 21:33:28 +0100277 Fix foobar in rrfilter code, that could cause malformed
278 replies, especially when DNSSEC validation on, and
279 the upstream server returns answer with the RRs in a
280 particular order. The only DNS server known to tickle
281 this is Nominum's. Thanks to Dave Täht for spotting the
282 bug and assisting in the fix.
Simon Kelley0740e432017-01-26 18:02:54 +0000283
Simon Kelley32be32e2017-06-25 21:33:28 +0100284 Fix the manpage which lied that only the primary address
285 of an interface is used by --interface-name.
Simon Kelleyd42d4702017-02-02 16:52:06 +0000286
Simon Kelley32be32e2017-06-25 21:33:28 +0100287 Make --localise-queries apply to names from --interface-name.
288 Thanks to Kevin Darbyshire-Bryant and Eric Luehrsen
289 for pushing this.
Simon Kelleyd42d4702017-02-02 16:52:06 +0000290
Simon Kelley32be32e2017-06-25 21:33:28 +0100291 Improve connection handling when talking to TCP upstream
292 servers. Specifically, be prepared to open a new TCP
293 connection when we want to make multiple queries
294 but the upstream server accepts fewer queries per connection.
Simon Kelley361dfe52017-02-10 21:12:30 +0000295
Simon Kelley32be32e2017-06-25 21:33:28 +0100296 Improve logging of upstream servers when there are a lot
297 of "local addresses only" entries. Thanks to Hannu Nyman for
298 the patch.
Floris Bos60704f52017-04-09 22:22:49 +0100299
Simon Kelley32be32e2017-06-25 21:33:28 +0100300 Make --bogus-priv apply to IPv6, for the prefixes specified
301 in RFC6303. Thanks to Kevin Darbyshire-Bryant for work on this.
Floris Bos503c6092017-04-09 23:07:13 +0100302
Simon Kelley32be32e2017-06-25 21:33:28 +0100303 Allow use of MAC addresses with --tftp-unique-root. Thanks
304 to Floris Bos for the patch.
David Flamand005c46d2017-04-11 11:49:54 +0100305
Simon Kelley32be32e2017-06-25 21:33:28 +0100306 Add --dhcp-reply-delay option. Thanks to Floris Bos
307 for the patch.
Petr Menšíkc77fb9d2017-04-16 20:20:08 +0100308
Simon Kelley32be32e2017-06-25 21:33:28 +0100309 Add mtu setting facility to --ra-param. Thanks to David
310 Flamand for the patch.
Petr Menšíkc77fb9d2017-04-16 20:20:08 +0100311
Simon Kelley32be32e2017-06-25 21:33:28 +0100312 Capture STDOUT and STDERR output from dhcp-script and log
313 it as part of the dnsmasq log stream. Makes life easier
314 for diagnosing unexpected problems in scripts.
315 Thanks to Petr Mensik for the patch.
Petr Menšík3a8b0f62017-04-23 14:12:37 +0100316
Simon Kelley32be32e2017-06-25 21:33:28 +0100317 Generate fatal errors when failing to parse the output
318 of the dhcp-script in "init" mode. Avoids strange errors
319 when the script accidentally emits error messages.
320 Thanks to Petr Mensik for the patch.
Simon Kelley88a77a72017-02-11 17:02:02 +0000321
Simon Kelley32be32e2017-06-25 21:33:28 +0100322 Make --rev-server for an RFC1918 subnet work even in the
323 presence of the --bogus-priv flag. Thanks to
324 Vladislav Grishenko for the patch.
Vladislav Grishenko6ec5f5c2017-04-24 22:34:45 +0100325
Simon Kelley32be32e2017-06-25 21:33:28 +0100326 Extend --ra-param mtu: field to allow an interface name.
327 This allows the MTU of a WAN interface to be advertised on
328 the internal interfaces of a router. Thanks to
329 Vladislav Grishenko for the patch.
Simon Kelley5ce3e762017-04-28 22:14:20 +0100330
Simon Kelley32be32e2017-06-25 21:33:28 +0100331 Do ICMP-ping check for address-in-use for DHCPv4 when
332 the client specifies an address in DHCPDISCOVER, and when
333 an address in configured locally. Thanks to Alin Năstac
334 for spotting the problem.
Simon Kelleyb2a9c572017-04-30 18:21:31 +0100335
Simon Kelley32be32e2017-06-25 21:33:28 +0100336 Add new DHCP tag "known-othernet" which is set when only a
337 dhcp-host exists for another subnet. Can be used to ensure
338 that privileged hosts are not given "guest" addresses by
339 accident. Thanks to Todd Sanket for the suggestion.
Vladislav Grishenko6ec5f5c2017-04-24 22:34:45 +0100340
Simon Kelley32be32e2017-06-25 21:33:28 +0100341 Remove historic automatic inclusion of IDN support when
342 building internationalisation support. This doesn't
343 fit now there is a choice of IDN libraries. Be sure
344 to include either -DHAVE_IDN or -DHAVE_LIBIDN2 for
345 IDN support.
346
347
Simon Kelleyd2aa7df2015-08-03 21:52:12 +0100348version 2.76
Simon Kelley32be32e2017-06-25 21:33:28 +0100349 Include 0.0.0.0/8 in DNS rebind checks. This range
350 translates to hosts on the local network, or, at
351 least, 0.0.0.0 accesses the local host, so could
352 be targets for DNS rebinding. See RFC 5735 section 3
353 for details. Thanks to Stephen Röttger for the bug report.
Simon Kelley77607cb2015-09-10 23:08:43 +0100354
Simon Kelley32be32e2017-06-25 21:33:28 +0100355 Enhance --add-subnet to allow arbitrary subnet addresses.
356 Thanks to Ed Barsley for the patch.
Simon Kelley77607cb2015-09-10 23:08:43 +0100357
Simon Kelley32be32e2017-06-25 21:33:28 +0100358 Respect the --no-resolv flag in inotify code. Fixes bug
359 which caused dnsmasq to fail to start if a resolv-file
360 was a dangling symbolic link, even of --no-resolv set.
361 Thanks to Alexander Kurtz for spotting the problem.
Edwin Török41a8d9e2015-11-14 17:45:48 +0000362
Simon Kelley32be32e2017-06-25 21:33:28 +0100363 Fix crash when an A or AAAA record is defined locally,
364 in a hosts file, and an upstream server sends a reply
365 that the same name is empty. Thanks to Edwin Török for
366 the patch.
André Glüpkereddf3652016-01-12 12:54:17 +0000367
Simon Kelley32be32e2017-06-25 21:33:28 +0100368 Fix failure to correctly calculate cache-size when
369 reading a hosts-file fails. Thanks to André Glüpker
370 for the patch.
Simon Kelleyd05dd582016-01-19 21:23:30 +0000371
Simon Kelley32be32e2017-06-25 21:33:28 +0100372 Fix wrong answer to simple name query when --domain-needed
373 set, but no upstream servers configured. Dnsmasq returned
374 REFUSED, in this case, when it should be the same as when
375 upstream servers are configured - NOERROR. Thanks to
376 Allain Legacy for spotting the problem.
Simon Kelleyd05dd582016-01-19 21:23:30 +0000377
Simon Kelley32be32e2017-06-25 21:33:28 +0100378 Return REFUSED when running out of forwarding table slots,
379 not SERVFAIL.
Simon Kelley1e505122016-01-25 21:29:23 +0000380
Simon Kelley32be32e2017-06-25 21:33:28 +0100381 Add --max-port configuration. Thanks to Hans Dedecker for
382 the patch.
Simon Kelley1e505122016-01-25 21:29:23 +0000383
Simon Kelley32be32e2017-06-25 21:33:28 +0100384 Add --script-arp and two new functions for the dhcp-script.
385 These are "arp" and "arp-old" which announce the arrival and
386 removal of entries in the ARP or neighbour tables.
Simon Kelley1e505122016-01-25 21:29:23 +0000387
Simon Kelley32be32e2017-06-25 21:33:28 +0100388 Extend --add-mac to allow a new encoding of the MAC address
389 as base64, by configuring --add-mac=base64
Simon Kelleyfdc97e12016-02-13 17:47:17 +0000390
Simon Kelley32be32e2017-06-25 21:33:28 +0100391 Add --add-cpe-id option.
Simon Kelleye06e6e32016-02-24 21:26:16 +0000392
Simon Kelley32be32e2017-06-25 21:33:28 +0100393 Don't crash with divide-by-zero if an IPv6 dhcp-range
394 is declared as a whole /64.
395 (ie xx::0 to xx::ffff:ffff:ffff:ffff)
396 Thanks to Laurent Bendel for spotting this problem.
Simon Kelleyfdc97e12016-02-13 17:47:17 +0000397
Simon Kelley32be32e2017-06-25 21:33:28 +0100398 Add support for a TTL parameter in --host-record and
399 --cname.
Simon Kelleybec366b2016-02-24 22:03:26 +0000400
Simon Kelley32be32e2017-06-25 21:33:28 +0100401 Add --dhcp-ttl option.
Simon Kelleya2bc2542016-04-21 22:34:22 +0100402
Simon Kelley32be32e2017-06-25 21:33:28 +0100403 Add --tftp-mtu option. Thanks to Patrick McLean for the
404 initial patch.
Simon Kelley14ffa072016-04-25 16:36:44 +0100405
Simon Kelley32be32e2017-06-25 21:33:28 +0100406 Check return-code of inet_pton() when parsing dhcp-option.
407 Bad addresses could fail to generate errors and result in
408 garbage dhcp-options being sent. Thanks to Marc Branchaud
409 for spotting this.
Simon Kelley69cbf782016-05-03 21:33:38 +0100410
Simon Kelley32be32e2017-06-25 21:33:28 +0100411 Fix wrong value for EDNS UDP packet size when using
412 --servers-file to define upstream DNS servers. Thanks to
413 Scott Bonar for the bug report.
Simon Kelley69cbf782016-05-03 21:33:38 +0100414
Simon Kelley32be32e2017-06-25 21:33:28 +0100415 Move the dhcp_release and dhcp_lease_time tools from
416 contrib/wrt to contrib/lease-tools.
Simon Kelley68bea102016-05-11 22:15:06 +0100417
Simon Kelley32be32e2017-06-25 21:33:28 +0100418 Add dhcp_release6 to contrib/lease-tools. Many thanks
419 to Sergey Nechaev for this code.
Simon Kelley68bea102016-05-11 22:15:06 +0100420
Simon Kelley32be32e2017-06-25 21:33:28 +0100421 To avoid filling logs in configurations which define
422 many upstream nameservers, don't log more that 30 servers.
423 The number to be logged can be changed as SERVERS_LOGGED
424 in src/config.h.
Simon Kelleyb9702602016-05-03 22:34:06 +0100425
Simon Kelley32be32e2017-06-25 21:33:28 +0100426 Swap the values if BC_EFI and x86-64_EFI in --pxe-service.
427 These were previously wrong due to an error in RFC 4578.
428 If you're using BC_EFI to boot 64-bit EFI machines, you
429 will need to update your config.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100430
Simon Kelley32be32e2017-06-25 21:33:28 +0100431 Add ARM32_EFI and ARM64_EFI as valid architectures in
432 --pxe-service.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100433
Simon Kelley32be32e2017-06-25 21:33:28 +0100434 Fix PXE booting for UEFI architectures. Modify PXE boot
435 sequence in this case to force the client to talk to dnsmasq
436 over port 4011. This makes PXE and especially proxy-DHCP PXE
437 work with these architectures.
Simon Kelley0a4a0492016-05-15 20:13:45 +0100438
Simon Kelley32be32e2017-06-25 21:33:28 +0100439 Workaround problems with UEFI PXE clients. There exist
440 in the wild PXE clients which have problems with PXE
441 boot menus. To work around this, when there's a single
442 --pxe-service which applies to client, then that target
443 will be booted directly, rather then sending a
444 single-item boot menu.
445
446 Many thanks to Jarek Polok, Michael Kuron and Dreamcat4
447 for their work on the long-standing UEFI PXE problem.
448
449 Subtle change in the semantics of "basename" in
450 --pxe-service. The historical behaviour has always been
451 that the actual filename downloaded from the TFTP server
452 is <basename>.<layer> where <layer> is an integer which
453 corresponds to the layer parameter supplied by the client.
454 It's not clear what the function of the "layer"
455 actually is in the PXE protocol, and in practise layer
456 is always zero, so the filename is <basename>.0
457 The new behaviour is the same as the old, except when
458 <basename> includes a file suffix, in which case
459 the layer suffix is no longer added. This allows
460 sensible suffices to be used, rather then the
461 meaningless ".0". Only in the unlikely event that you
462 have a config with a basename which already has a
463 suffix, is this an incompatible change, since the file
464 downloaded will change from name.suffix.0 to just
465 name.suffix
Simon Kelleyda2cad42016-05-18 15:14:08 +0100466
Simon Kelleybec366b2016-02-24 22:03:26 +0000467
Simon Kelley63ec5d12015-07-30 20:59:07 +0100468version 2.75
Simon Kelley32be32e2017-06-25 21:33:28 +0100469 Fix reversion on 2.74 which caused 100% CPU use when a
470 dhcp-script is configured. Thanks to Adrian Davey for
471 reporting the bug and testing the fix.
Simon Kelley63ec5d12015-07-30 20:59:07 +0100472
Simon Kelley32be32e2017-06-25 21:33:28 +0100473
Simon Kelley90cb2222015-07-05 21:59:10 +0100474version 2.74
Simon Kelley32be32e2017-06-25 21:33:28 +0100475 Fix reversion in 2.73 where --conf-file would attempt to
476 read the default file, rather than no file.
Simon Kelley90cb2222015-07-05 21:59:10 +0100477
Simon Kelley32be32e2017-06-25 21:33:28 +0100478 Fix inotify code to handle dangling symlinks better and
479 not SEGV in some circumstances.
Simon Kelley362c9302015-07-06 21:48:49 +0100480
Simon Kelley32be32e2017-06-25 21:33:28 +0100481 DNSSEC fix. In the case of a signed CNAME generated by a
482 wildcard which pointed to an unsigned domain, the wrong
483 status would be logged, and some necessary checks omitted.
484
Simon Kelley362c9302015-07-06 21:48:49 +0100485
Simon Kelley00cd9d52014-10-02 21:44:21 +0100486version 2.73
Simon Kelley32be32e2017-06-25 21:33:28 +0100487 Fix crash at startup when an empty suffix is supplied to
488 --conf-dir, also trivial memory leak. Thanks to
489 Tomas Hozza for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +0000490
Simon Kelley32be32e2017-06-25 21:33:28 +0100491 Remove floor of 4096 on advertised EDNS0 packet size when
492 DNSSEC in use, the original rationale for this has long gone.
493 Thanks to Anders Kaseorg for spotting this.
Simon Kelley800c5cc2014-12-15 17:50:15 +0000494
Simon Kelley32be32e2017-06-25 21:33:28 +0100495 Use inotify for checking on updates to /etc/resolv.conf and
496 friends under Linux. This fixes race conditions when the files are
497 updated rapidly and saves CPU by noy polling. To build
498 a binary that runs on old Linux kernels without inotify,
499 use make COPTS=-DNO_INOTIFY
Simon Kelley3ad3f3b2014-12-16 18:25:17 +0000500
Simon Kelley32be32e2017-06-25 21:33:28 +0100501 Fix breakage of --domain=<domain>,<subnet>,local - only reverse
502 queries were intercepted. THis appears to have been broken
503 since 2.69. Thanks to Josh Stone for finding the bug.
Simon Kelley47669362014-12-17 12:41:56 +0000504
Simon Kelley32be32e2017-06-25 21:33:28 +0100505 Eliminate IPv6 privacy addresses and deprecated addresses from
506 the answers given by --interface-name. Note that reverse queries
507 (ie looking for names, given addresses) are not affected.
508 Thanks to Michael Gorbach for the suggestion.
Simon Kelley094b5c32014-12-21 16:11:52 +0000509
Simon Kelley32be32e2017-06-25 21:33:28 +0100510 Fix crash in DNSSEC code with long RRs. Thanks to Marco Davids
511 for the bug report.
Simon Kelley00cd9d52014-10-02 21:44:21 +0100512
Simon Kelley32be32e2017-06-25 21:33:28 +0100513 Add --ignore-address option. Ignore replies to A-record
514 queries which include the specified address. No error is
515 generated, dnsmasq simply continues to listen for another
516 reply. This is useful to defeat blocking strategies which
517 rely on quickly supplying a forged answer to a DNS
518 request for certain domains, before the correct answer can
519 arrive. Thanks to Glen Huang for the patch.
Simon Kelley25cf5e32015-01-09 15:53:03 +0000520
Simon Kelley32be32e2017-06-25 21:33:28 +0100521 Revisit the part of DNSSEC validation which determines if an
522 unsigned answer is legit, or is in some part of the DNS
523 tree which should be signed. Dnsmasq now works from the
524 DNS root downward looking for the limit of signed
525 delegations, rather than working bottom up. This is
526 both more correct, and less likely to trip over broken
527 nameservers in the unsigned parts of the DNS tree
528 which don't respond well to DNSSEC queries.
Simon Kelley39341552015-01-18 22:11:10 +0000529
Simon Kelley32be32e2017-06-25 21:33:28 +0100530 Add --log-queries=extra option, which makes logs easier
531 to search automatically.
Simon Kelley5f4dc5c2015-01-20 20:51:02 +0000532
Simon Kelley32be32e2017-06-25 21:33:28 +0100533 Add --min-cache-ttl option. I've resisted this for a long
534 time, on the grounds that disbelieving TTLs is never a
535 good idea, but I've been persuaded that there are
536 sometimes reasons to do it. (Step forward, GFW).
537 To avoid misuse, there's a hard limit on the TTL
538 floor of one hour. Thanks to RinSatsuki for the patch.
Win King Wan61b838d2015-01-21 20:41:48 +0000539
Simon Kelley32be32e2017-06-25 21:33:28 +0100540 Cope with multiple interfaces with the same link-local
541 address. (IPv6 addresses are scoped, so this is allowed.)
542 Thanks to Cory Benfield for help with this.
Simon Kelleyf6e62e22015-03-01 18:17:54 +0000543
Simon Kelley32be32e2017-06-25 21:33:28 +0100544 Add --dhcp-hostsdir. This allows addition of new host
545 configurations to a running dnsmasq instance much more
546 cheaply than having dnsmasq re-read all its existing
547 configuration each time.
Stefan Tomanek30d08792015-03-31 22:32:11 +0100548
Simon Kelley32be32e2017-06-25 21:33:28 +0100549 Don't reply to DHCPv6 SOLICIT messages if we're not
550 configured to do stateful DHCPv6. Thanks to Win King Wan
551 for the patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100552
Simon Kelley32be32e2017-06-25 21:33:28 +0100553 Fix broken DNSSEC validation of ECDSA signatures.
Simon Kelley38440b22015-04-12 21:52:47 +0100554
Simon Kelley32be32e2017-06-25 21:33:28 +0100555 Add --dnssec-timestamp option, which provides an automatic
556 way to detect when the system time becomes valid after
557 boot on systems without an RTC, whilst allowing DNS
558 queries before the clock is valid so that NTP can run.
559 Thanks to Kevin Darbyshire-Bryant for developing this idea.
Simon Kelley38440b22015-04-12 21:52:47 +0100560
Simon Kelley32be32e2017-06-25 21:33:28 +0100561 Add --tftp-no-fail option. Thanks to Stefan Tomanek for
562 the patch.
Simon Kelley04b0ac02015-04-06 17:19:13 +0100563
Simon Kelley32be32e2017-06-25 21:33:28 +0100564 Fix crash caused by looking up servers.bind, CHAOS text
565 record, when more than about five --servers= lines are
566 in the dnsmasq config. This causes memory corruption
567 which causes a crash later. Thanks to Matt Coddington for
568 sterling work chasing this down.
Simon Kelleya5ae1f82015-04-25 21:46:10 +0100569
Simon Kelley32be32e2017-06-25 21:33:28 +0100570 Fix crash on receipt of certain malformed DNS requests.
571 Thanks to Nick Sampanis for spotting the problem.
572 Note that this is could allow the dnsmasq process's
573 memory to be read by an attacker under certain
574 circumstances, so it has a CVE, CVE-2015-3294
Simon Kelley78c61842015-04-16 15:05:30 +0100575
Simon Kelley32be32e2017-06-25 21:33:28 +0100576 Fix crash in authoritative DNS code, if a .arpa zone
577 is declared as authoritative, and then a PTR query which
578 is not to be treated as authoritative arrived. Normally,
579 directly declaring .arpa zone as authoritative is not
580 done, so this crash wouldn't be seen. Instead the
581 relevant .arpa zone should be specified as a subnet
582 in the auth-zone declaration. Thanks to Johnny S. Lee
583 for the bugreport and initial patch.
Simon Kelleya77cec82015-05-08 16:25:38 +0100584
Simon Kelley32be32e2017-06-25 21:33:28 +0100585 Fix authoritative DNS code to correctly reply to NS
586 and SOA queries for .arpa zones for which we are
587 declared authoritative by means of a subnet in auth-zone.
588 Previously we provided correct answers to PTR queries
589 in such zones (including NS and SOA) but not direct
590 NS and SOA queries. Thanks to Johnny S. Lee for
591 pointing out the problem.
Simon Kelleyb059c962015-05-08 20:25:51 +0100592
Simon Kelley32be32e2017-06-25 21:33:28 +0100593 Fix logging of DHCPREPLY which should be suppressed
594 by quiet-dhcp6. Thanks to J. Pablo Abonia for
595 spotting the problem.
Simon Kelleyca85a282015-05-13 22:33:04 +0100596
Simon Kelley32be32e2017-06-25 21:33:28 +0100597 Try and handle net connections with broken fragmentation
598 that lose large UDP packets. If a server times out,
599 reduce the maximum UDP packet size field in the EDNS0
600 header to 1280 bytes. If it then answers, make that
601 change permanent.
Nicolas Cavallaric6d82c92015-06-09 20:42:20 +0100602
Simon Kelley32be32e2017-06-25 21:33:28 +0100603 Check IPv4-mapped IPv6 addresses when --stop-rebind
604 is active. Thanks to Jordan Milne for spotting this.
Neil Jerram4918bd52015-06-10 22:23:20 +0100605
Simon Kelley32be32e2017-06-25 21:33:28 +0100606 Allow DHCPv4 options T1 and T2 to be set using --dhcp-option.
607 Thanks to Kevin Benton for patches and work on this.
Neil Jerram4918bd52015-06-10 22:23:20 +0100608
Simon Kelley32be32e2017-06-25 21:33:28 +0100609 Fix code for DHCPCONFIRM DHCPv6 messages to confirm addresses
610 in the correct subnet, even of not in dynamic address
611 allocation range. Thanks to Steve Hirsch for spotting
612 the problem.
613
614 Add AddDhcpLease and DeleteDhcpLease DBus methods. Thanks
615 to Nicolas Cavallari for the patch.
616
617 Allow configuration of router advertisements without the
618 "on-link" bit set. Thanks to Neil Jerram for the patch.
619
620 Extend --bridge-interface to DHCPv6 and router
621 advertisements. Thanks to Neil Jerram for the patch.
622
623
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100624version 2.72
Simon Kelley32be32e2017-06-25 21:33:28 +0100625 Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
Simon Kelleyc4a09372014-06-02 20:30:07 +0100626
Simon Kelley32be32e2017-06-25 21:33:28 +0100627 Add support for "ipsets" in *BSD, using pf. Thanks to
628 Sven Falempin for the patch.
Simon Kelley8e9ffba2014-05-20 20:38:25 +0100629
Simon Kelley32be32e2017-06-25 21:33:28 +0100630 Fix race condition which could lock up dnsmasq when an
631 interface goes down and up rapidly. Thanks to Conrad
632 Kostecki for helping to chase this down.
Daniel Collinsc4638f92014-06-07 21:21:44 +0100633
Simon Kelley32be32e2017-06-25 21:33:28 +0100634 Add DBus methods SetFilterWin2KOption and SetBogusPrivOption
635 Thanks to the Smoothwall project for the patch.
Simon Kelleycdb755c2014-06-18 20:52:53 +0100636
Simon Kelley32be32e2017-06-25 21:33:28 +0100637 Fix failure to build against Nettle-3.0. Thanks to Steven
638 Barth for spotting this and finding the fix.
Simon Kelleyb5ea1cc2014-07-29 16:34:14 +0100639
Simon Kelley32be32e2017-06-25 21:33:28 +0100640 When assigning existing DHCP leases to interfaces by comparing
641 networks, handle the case that two or more interfaces have the
642 same network part, but different prefix lengths (favour the
643 longer prefix length.) Thanks to Lung-Pin Chang for the
644 patch.
Simon Kelley57826492014-09-18 22:08:58 +0100645
Simon Kelley32be32e2017-06-25 21:33:28 +0100646 Add a mode which detects and removes DNS forwarding loops, ie
647 a query sent to an upstream server returns as a new query to
648 dnsmasq, and would therefore be forwarded again, resulting in
649 a query which loops many times before being dropped. Upstream
650 servers which loop back are disabled and this event is logged.
651 Thanks to Smoothwall for their sponsorship of this feature.
Simon Kelleybf2db4b2014-09-18 22:10:46 +0100652
Simon Kelley32be32e2017-06-25 21:33:28 +0100653 Extend --conf-dir to allow filtering of files. So
654 --conf-dir=/etc/dnsmasq.d,\*.conf
655 will load all the files in /etc/dnsmasq.d which end in .conf
656
657 Fix bug when resulted in NXDOMAIN answers instead of NODATA in
658 some circumstances.
659
660 Fix bug which caused dnsmasq to become unresponsive if it
661 failed to send packets due to a network interface disappearing.
662 Thanks to Niels Peen for spotting this.
663
664 Fix problem with --local-service option on big-endian platforms
665 Thanks to Richard Genoud for the patch.
666
667
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100668version 2.71
Simon Kelley32be32e2017-06-25 21:33:28 +0100669 Subtle change to error handling to help DNSSEC validation
670 when servers fail to provide NODATA answers for
671 non-existent DS records.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100672
Simon Kelley32be32e2017-06-25 21:33:28 +0100673 Tweak code which removes DNSSEC records from answers when
674 not required. Fixes broken answers when additional section
675 has real records in it. Thanks to Marco Davids for the bug
676 report.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100677
Simon Kelley32be32e2017-06-25 21:33:28 +0100678 Fix DNSSEC validation of ANY queries. Thanks to Marco Davids
679 for spotting that too.
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100680
Simon Kelley32be32e2017-06-25 21:33:28 +0100681 Fix total DNS failure and 100% CPU use if cachesize set to zero,
682 regression introduced in 2.69. Thanks to James Hunt and
683 the Ubuntu crowd for assistance in fixing this.
Simon Kelleyb692f232014-05-09 10:29:43 +0100684
Simon Kelley9d1b22a2014-04-29 13:02:41 +0100685
Simon Kelley63758382014-04-16 22:20:55 +0100686version 2.70
Simon Kelley32be32e2017-06-25 21:33:28 +0100687 Fix crash, introduced in 2.69, on TCP request when dnsmasq
688 compiled with DNSSEC support, but running without DNSSEC
689 enabled. Thanks to Manish Sing for spotting that one.
Simon Kelley63758382014-04-16 22:20:55 +0100690
Simon Kelley32be32e2017-06-25 21:33:28 +0100691 Fix regression which broke ipset functionality. Thanks to
692 Wang Jian for the bug report.
Simon Kelley3b1b3e92014-04-23 15:46:05 +0100693
Simon Kelley63758382014-04-16 22:20:55 +0100694
Simon Kelley1ee9be42013-12-09 16:50:19 +0000695version 2.69
Simon Kelley32be32e2017-06-25 21:33:28 +0100696 Implement dynamic interface discovery on *BSD. This allows
697 the constructor: syntax to be used in dhcp-range for DHCPv6
698 on the BSD platform. Thanks to Matthias Andree for
699 valuable research on how to implement this.
Simon Kelley1ee9be42013-12-09 16:50:19 +0000700
Simon Kelley32be32e2017-06-25 21:33:28 +0100701 Fix infinite loop associated with some --bogus-nxdomain
702 configs. Thanks fogobogo for the bug report.
Simon Kelley8db957d2013-12-17 15:47:10 +0000703
Simon Kelley32be32e2017-06-25 21:33:28 +0100704 Fix missing RA RDNS option with configuration like
705 --dhcp-option=option6:23,[::] Thanks to Tsachi Kimeldorfer
706 for spotting the problem.
Simon Kelleyae762422014-01-10 18:15:16 +0000707
Simon Kelley32be32e2017-06-25 21:33:28 +0100708 Add [fd00::] and [fe80::] as special addresses in DHCPv6
709 options, analogous to [::]. [fd00::] is replaced with the
710 actual ULA of the interface on the machine running
711 dnsmasq, [fe80::] with the link-local address.
712 Thanks to Tsachi Kimeldorfer for championing this.
Simon Kelleyc3a04082014-01-11 22:18:19 +0000713
Simon Kelley32be32e2017-06-25 21:33:28 +0100714 DNSSEC validation and caching. Dnsmasq needs to be
715 compiled with this enabled, with
Simon Kelley198d9402014-04-09 20:36:53 +0100716
Simon Kelley32be32e2017-06-25 21:33:28 +0100717 make dnsmasq COPTS=-DHAVE_DNSSEC
Simon Kelley1ee9be42013-12-09 16:50:19 +0000718
Simon Kelley32be32e2017-06-25 21:33:28 +0100719 this adds dependencies on the nettle crypto library and the
720 gmp maths library. It's possible to have these linked
721 statically with
Simon Kelley613d6c52014-02-04 11:50:11 +0000722
Simon Kelley32be32e2017-06-25 21:33:28 +0100723 make dnsmasq COPTS='-DHAVE_DNSSEC -DHAVE_DNSSEC_STATIC'
Simon Kelley198d9402014-04-09 20:36:53 +0100724
Simon Kelley32be32e2017-06-25 21:33:28 +0100725 which bloats the dnsmasq binary, but saves the size of
726 the shared libraries which are much bigger.
Simon Kelleyde73a492014-02-17 21:43:27 +0000727
Simon Kelley32be32e2017-06-25 21:33:28 +0100728 To enable, DNSSEC, you will need a set of
729 trust-anchors. Now that the TLDs are signed, this can be
730 the keys for the root zone, and for convenience they are
731 included in trust-anchors.conf in the dnsmasq
732 distribution. You should of course check that these are
733 legitimate and up-to-date. So, adding
Simon Kelleyc8a80482014-03-05 14:29:54 +0000734
Simon Kelley32be32e2017-06-25 21:33:28 +0100735 conf-file=/path/to/trust-anchors.conf
736 dnssec
Simon Kelley604f7592014-03-22 19:33:43 +0000737
Simon Kelley32be32e2017-06-25 21:33:28 +0100738 to your config is all that's needed to get things
739 working. The upstream nameservers have to be DNSSEC-capable
740 too, of course. Many ISP nameservers aren't, but the
741 Google public nameservers (8.8.8.8 and 8.8.4.4) are.
742 When DNSSEC is configured, dnsmasq validates any queries
743 for domains which are signed. Query results which are
744 bogus are replaced with SERVFAIL replies, and results
745 which are correctly signed have the AD bit set. In
746 addition, and just as importantly, dnsmasq supplies
747 correct DNSSEC information to clients which are doing
748 their own validation, and caches DNSKEY, DS and RRSIG
749 records, which significantly improve the performance of
750 downstream validators. Setting --log-queries will show
751 DNSSEC in action.
Simon Kelley10068602014-04-03 21:16:40 +0100752
Simon Kelley32be32e2017-06-25 21:33:28 +0100753 If a domain is returned from an upstream nameserver without
754 DNSSEC signature, dnsmasq by default trusts this. This
755 means that for unsigned zone (still the majority) there
756 is effectively no cost for having DNSSEC enabled. Of course
757 this allows an attacker to replace a signed record with a
758 false unsigned record. This is addressed by the
759 --dnssec-check-unsigned flag, which instructs dnsmasq
760 to prove that an unsigned record is legitimate, by finding
761 a secure proof that the zone containing the record is not
762 signed. Doing this has costs (typically one or two extra
763 upstream queries). It also has a nasty failure mode if
764 dnsmasq's upstream nameservers are not DNSSEC capable.
765 Without --dnssec-check-unsigned using such an upstream
766 server will simply result in not queries being validated;
767 with --dnssec-check-unsigned enabled and a
768 DNSSEC-ignorant upstream server, _all_ queries will fail.
769
770 Note that DNSSEC requires that the local time is valid and
771 accurate, if not then DNSSEC validation will fail. NTP
772 should be running. This presents a problem for routers
773 without a battery-backed clock. To set the time needs NTP
774 to do DNS lookups, but lookups will fail until NTP has run.
775 To address this, there's a flag, --dnssec-no-timecheck
776 which disables the time checks (only) in DNSSEC. When dnsmasq
777 is started and the clock is not synced, this flag should
778 be used. As soon as the clock is synced, SIGHUP dnsmasq.
779 The SIGHUP clears the cache of partially-validated data and
780 resets the no-timecheck flag, so that all DNSSEC checks
781 henceforward will be complete.
782
783 The development of DNSSEC in dnsmasq was started by
784 Giovanni Bajo, to whom huge thanks are owed. It has been
785 supported by Comcast, whose techfund grant has allowed for
786 an invaluable period of full-time work to get it to
787 a workable state.
788
789 Add --rev-server. Thanks to Dave Taht for suggesting this.
790
791 Add --servers-file. Allows dynamic update of upstream servers
792 full access to configuration.
793
794 Add --local-service. Accept DNS queries only from hosts
795 whose address is on a local subnet, ie a subnet for which
796 an interface exists on the server. This option
797 only has effect if there are no --interface --except-interface,
798 --listen-address or --auth-server options. It is intended
799 to be set as a default on installation, to allow
800 unconfigured installations to be useful but also safe from
801 being used for DNS amplification attacks.
802
803 Fix crashes in cache_get_cname_target() when dangling CNAMEs
804 encountered. Thanks to Andy and the rt-n56u project for
805 find this and helping to chase it down.
806
807 Fix wrong RCODE in authoritative DNS replies to PTR queries. The
808 correct answer was included, but the RCODE was set to NXDOMAIN.
809 Thanks to Craig McQueen for spotting this.
810
811 Make statistics available as DNS queries in the .bind TLD as
812 well as logging them.
Simon Kelley198d9402014-04-09 20:36:53 +0100813
Simon Kelleyc8a80482014-03-05 14:29:54 +0000814
Simon Kelley376d48c2013-11-13 13:04:30 +0000815version 2.68
Simon Kelley32be32e2017-06-25 21:33:28 +0100816 Use random addresses for DHCPv6 temporary address
817 allocations, instead of algorithmically determined stable
818 addresses.
Simon Kelley376d48c2013-11-13 13:04:30 +0000819
Simon Kelley32be32e2017-06-25 21:33:28 +0100820 Fix bug which meant that the DHCPv6 DUID was not available
821 in DHCP script runs during the lifetime of the dnsmasq
822 process which created the DUID de-novo. Once the DUID was
823 created and stored in the lease file and dnsmasq
824 restarted, this bug disappeared.
Simon Kelley376d48c2013-11-13 13:04:30 +0000825
Simon Kelley32be32e2017-06-25 21:33:28 +0100826 Fix bug introduced in 2.67 which could result in erroneous
827 NXDOMAIN returns to CNAME queries.
Simon Kelley376d48c2013-11-13 13:04:30 +0000828
Simon Kelley32be32e2017-06-25 21:33:28 +0100829 Fix build failures on MacOS X and openBSD.
Simon Kelley376d48c2013-11-13 13:04:30 +0000830
Simon Kelley32be32e2017-06-25 21:33:28 +0100831 Allow subnet specifications in --auth-zone to be interface
832 names as well as address literals. This makes it possible
833 to configure authoritative DNS when local address ranges
834 are dynamic and works much better than the previous
835 work-around which exempted constructed DHCP ranges from the
836 IP address filtering. As a consequence, that work-around
837 is removed. Under certain circumstances, this change wil
838 break existing configuration: if you're relying on the
839 constructed-range exception, you need to change --auth-zone
840 to specify the same interface as is used to construct your
841 DHCP ranges, probably with a trailing "/6" like this:
842 --auth-zone=example.com,eth0/6 to limit the addresses to
843 IPv6 addresses of eth0.
Simon Kelleydd9d9ce2013-11-15 11:24:00 +0000844
Simon Kelley32be32e2017-06-25 21:33:28 +0100845 Fix problems when advertising deleted IPv6 prefixes. If
846 the prefix is deleted (rather than replaced), it doesn't
847 get advertised with zero preferred time. Thanks to Tsachi
848 for the bug report.
Simon Kelley25439062013-11-25 21:14:51 +0000849
Simon Kelley32be32e2017-06-25 21:33:28 +0100850 Fix segfault with some locally configured CNAMEs. Thanks
851 to Andrew Childs for spotting the problem.
Simon Kelley25439062013-11-25 21:14:51 +0000852
Simon Kelley32be32e2017-06-25 21:33:28 +0100853 Fix memory leak on re-reading /etc/hosts and friends,
854 introduced in 2.67.
Simon Kelley2329bef2013-12-03 13:41:16 +0000855
Simon Kelley32be32e2017-06-25 21:33:28 +0100856 Check the arrival interface of incoming DNS and TFTP
857 requests via IPv6, even in --bind-interfaces mode. This
858 isn't possible for IPv4 and can generate scary warnings,
859 but as it's always possible for IPv6 (the API always
860 exists) then we should do it always.
861
862 Tweak the rules on prefix-lengths in --dhcp-range for
863 IPv6. The new rule is that the specified prefix length
864 must be larger than or equal to the prefix length of the
865 corresponding address on the local interface.
Vladislav Grishenko4c82efc2013-12-03 16:05:30 +0000866
Simon Kelley376d48c2013-11-13 13:04:30 +0000867
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100868version 2.67
Simon Kelley32be32e2017-06-25 21:33:28 +0100869 Fix crash if upstream server returns SERVFAIL when
870 --conntrack in use. Thanks to Giacomo Tazzari for finding
871 this and supplying the patch.
Simon Kelleyaa63a212013-04-22 15:01:52 +0100872
Simon Kelley32be32e2017-06-25 21:33:28 +0100873 Repair regression in 2.64. That release stopped sending
874 lease-time information in the reply to DHCPINFORM
875 requests, on the correct grounds that it was a standards
876 violation. However, this broke the dnsmasq-specific
877 dhcp_lease_time utility. Now, DHCPINFORM returns
878 lease-time only if it's specifically requested
879 (maintaining standards) and the dhcp_lease_time utility
880 has been taught to ask for it (restoring functionality).
Simon Kelley86e92f92013-04-23 11:31:39 +0100881
Simon Kelley32be32e2017-06-25 21:33:28 +0100882 Fix --dhcp-match, --dhcp-vendorclass and --dhcp-userclass
883 to work with BOOTP and well as DHCP. Thanks to Peter
884 Korsgaard for spotting the problem.
Simon Kelley2bb73af2013-04-24 17:38:19 +0100885
Simon Kelley32be32e2017-06-25 21:33:28 +0100886 Add --synth-domain. Thanks to Vishvananda Ishaya for
887 suggesting this.
Simon Kelleyd5052fb2013-04-25 12:44:20 +0100888
Simon Kelley32be32e2017-06-25 21:33:28 +0100889 Fix failure to compile ipset.c if old kernel headers are
890 in use. Thanks to Eugene Rudoy for pointing this out.
Simon Kelley3f2873d2013-05-14 11:28:47 +0100891
Simon Kelley32be32e2017-06-25 21:33:28 +0100892 Handle IPv4 interface-address labels in Linux. These are
893 often used to emulate the old IP-alias addresses. Before,
894 using --interface=eth0 would service all the addresses of
895 eth0, including ones configured as aliases, which appear
896 in ifconfig as eth0:0. Now, only addresses with the label
897 eth0 are active. This is not backwards compatible: if you
898 want to continue to bind the aliases too, you need to add
899 eg. --interface=eth0:0 to the config.
Giacomo Tazzari797a7af2013-04-22 13:16:37 +0100900
Simon Kelley32be32e2017-06-25 21:33:28 +0100901 Fix "failed to set SO_BINDTODEVICE on DHCP socket: Socket
902 operation on non-socket" error on startup with
903 configurations which have exactly one --interface option
904 and do RA but _not_ DHCPv6. Thanks to Trever Adams for the
905 bug report.
Simon Kelley115ac3e2013-05-20 11:28:32 +0100906
Simon Kelley32be32e2017-06-25 21:33:28 +0100907 Generalise --interface-name to cope with IPv6 addresses
908 and multiple addresses per interface per address family.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100909
Simon Kelley32be32e2017-06-25 21:33:28 +0100910 Fix option parsing for --dhcp-host, which was generating a
911 spurious error when all seven possible items were
912 included. Thanks to Zhiqiang Wang for the bug report.
Simon Kelleybaa80ae2013-05-29 16:32:07 +0100913
Simon Kelley32be32e2017-06-25 21:33:28 +0100914 Remove restriction on prefix-length in --auth-zone. Thanks
915 to Toke Hoiland-Jorgensen for suggesting this.
Marcelo Salhab Brogliato0da5e892013-05-31 11:49:06 +0100916
Simon Kelley32be32e2017-06-25 21:33:28 +0100917 Log when the maximum number of concurrent DNS queries is
918 reached. Thanks to Marcelo Salhab Brogliato for the patch.
Simon Kelleye2ba0df2013-05-31 17:04:25 +0100919
Simon Kelley32be32e2017-06-25 21:33:28 +0100920 If wildcards are used in --interface, don't assume that
921 there will only ever be one available interface for DHCP
922 just because there is one at start-up. More may appear, so
923 we can't use SO_BINDTODEVICE. Thanks to Natrio for the bug
924 report.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100925
Simon Kelley32be32e2017-06-25 21:33:28 +0100926 Increase timeout/number of retries in TFTP to accommodate
927 AudioCodes Voice Gateways doing streaming writes to flash.
928 Thanks to Damian Kaczkowski for spotting the problem.
Simon Kelley625ac282013-07-02 21:19:32 +0100929
Simon Kelley32be32e2017-06-25 21:33:28 +0100930 Fix crash with empty DHCP string options when adding zero
931 terminator. Thanks to Patrick McLean for the bug report.
Kyle Mesteryd859ca22013-07-24 13:11:58 +0100932
Simon Kelley32be32e2017-06-25 21:33:28 +0100933 Allow hostnames to start with a number, as allowed in
934 RFC-1123. Thanks to Kyle Mestery for the patch.
Roy Marples3f3adae2013-07-25 16:22:46 +0100935
Simon Kelley32be32e2017-06-25 21:33:28 +0100936 Fixes to DHCP FQDN option handling: don't terminate FQDN
937 if domain not known and allow a FQDN option with blank
938 name to request that a FQDN option is returned in the
939 reply. Thanks to Roy Marples for the patch.
Simon Kelleyd9fb0be2013-07-25 21:47:17 +0100940
Simon Kelley32be32e2017-06-25 21:33:28 +0100941 Make --clear-on-reload apply to setting upstream servers
942 via DBus too.
Simon Kelleyef1a94a2013-07-26 13:59:03 +0100943
Simon Kelley32be32e2017-06-25 21:33:28 +0100944 When the address which triggered the construction of an
945 advertised IPv6 prefix disappears, continue to advertise
946 the prefix for up to 2 hours, with the preferred lifetime
947 set to zero. This satisfies RFC 6204 4.3 L-13 and makes
948 things work better if a prefix disappears without being
949 deprecated first. Thanks to Uwe Schindler for persuasively
950 arguing for this.
Simon Kelleyb4b93082013-06-19 10:31:23 +0100951
Simon Kelley32be32e2017-06-25 21:33:28 +0100952 Fix MAC address enumeration on *BSD. Thanks to Brad Smith
953 for the bug report.
Simon Kelley871d4562013-07-27 21:32:32 +0100954
Simon Kelley32be32e2017-06-25 21:33:28 +0100955 Support RFC-4242 information-refresh-time options in the
956 reply to DHCPv6 information-request. The lease time of the
957 smallest valid dhcp-range is sent. Thanks to Uwe Schindler
958 for suggesting this.
Simon Kelleyedf0bde2013-07-29 17:21:48 +0100959
Simon Kelley32be32e2017-06-25 21:33:28 +0100960 Make --listen-address higher priority than --except-interface
961 in all circumstances. Thanks to Thomas Hood for the bugreport.
Simon Kelley2937f8a2013-07-29 19:49:07 +0100962
Simon Kelley32be32e2017-06-25 21:33:28 +0100963 Provide independent control over which interfaces get TFTP
964 service. If enable-tftp is given a list of interfaces, then TFTP
965 is provided on those. Without the list, the previous behaviour
966 (provide TFTP to the same interfaces we provide DHCP to)
967 is retained. Thanks to Lonnie Abelbeck for the suggestion.
Simon Kelleyff7eea22013-09-04 18:01:38 +0100968
Simon Kelley32be32e2017-06-25 21:33:28 +0100969 Add --dhcp-relay config option. Many thanks to vtsl.net
970 for sponsoring this development.
Simon Kelley0932f9c2013-09-05 11:30:30 +0100971
Simon Kelley32be32e2017-06-25 21:33:28 +0100972 Fix crash with empty tag: in --dhcp-range. Thanks to
973 Kaspar Schleiser for the bug report.
Simon Kelleyceae52d2013-09-12 15:05:47 +0100974
Simon Kelley32be32e2017-06-25 21:33:28 +0100975 Add "baseline" and "bloatcheck" makefile targets, for
976 revealing size changes during development. Thanks to
977 Vladislav Grishenko for the patch.
Simon Kelleyc8f2dd82013-09-13 11:22:55 +0100978
Simon Kelley32be32e2017-06-25 21:33:28 +0100979 Cope with DHCPv6 clients which send REQUESTs without
980 address options - treat them as SOLICIT with rapid commit.
Simon Kelley89500e32013-09-20 16:29:20 +0100981
Simon Kelley32be32e2017-06-25 21:33:28 +0100982 Support identification of clients by MAC address in
983 DHCPv6. When using a relay, the relay must support RFC
984 6939 for this to work. It always works for directly
985 connected clients. Thanks to Vladislav Grishenko
986 for prompting this feature.
Simon Kelley889d8a12013-10-02 13:12:09 +0100987
Simon Kelley32be32e2017-06-25 21:33:28 +0100988 Remove the rule for constructed DHCP ranges that the local
989 address must be either the first or last address in the
990 range. This was originally to avoid SLAAC addresses, but
991 we now explicitly autoconfig and privacy addresses instead.
Tanguy Bouzelocef1d7422013-10-03 11:06:31 +0100992
Simon Kelley32be32e2017-06-25 21:33:28 +0100993 Update Polish translation. Thanks to Jan Psota.
Simon Kelley871d4562013-07-27 21:32:32 +0100994
Simon Kelley32be32e2017-06-25 21:33:28 +0100995 Fix problem in DHCPv6 vendorclass/userclass matching
996 code. Thanks to Tanguy Bouzeloc for the patch.
Simon Kelleyc4cd95d2013-10-10 20:58:11 +0100997
Simon Kelley32be32e2017-06-25 21:33:28 +0100998 Update Spanish translation. Thanks to Vicente Soriano.
Simon Kelleyed4c0762013-10-08 20:46:34 +0100999
Simon Kelley32be32e2017-06-25 21:33:28 +01001000 Add --ra-param option. Thanks to Vladislav Grishenko for
1001 inspiration on this.
Kevin Darbyshire-Bryant8c0b73d2013-10-11 11:56:33 +01001002
Simon Kelley32be32e2017-06-25 21:33:28 +01001003 Add --add-subnet configuration, to tell upstream DNS
1004 servers where the original client is. Thanks to DNSthingy
1005 for sponsoring this feature.
Simon Kelleyd56a6042013-10-11 14:39:03 +01001006
Simon Kelley32be32e2017-06-25 21:33:28 +01001007 Add --quiet-dhcp, --quiet-dhcp6 and --quiet-ra. Thanks to
1008 Kevin Darbyshire-Bryant for the initial patch.
Simon Kelley24b5a5d2013-10-11 15:19:28 +01001009
Simon Kelley32be32e2017-06-25 21:33:28 +01001010 Allow A/AAAA records created by --interface-name to be the
1011 target of --cname. Thanks to Hadmut Danisch for the
1012 suggestion.
Simon Kelley45cca582013-10-15 10:20:13 +01001013
Simon Kelley32be32e2017-06-25 21:33:28 +01001014 Avoid treating a --dhcp-host which has an IPv6 address
1015 as eligible for use with DHCPv4 on the grounds that it has
1016 no address, and vice-versa. Thanks to Yury Konovalov for
1017 spotting the problem.
1018
1019 Do a better job caching dangling CNAMEs. Thanks to Yves
1020 Dorfsman for spotting the problem.
1021
1022
Simon Kelley333b2ce2013-01-07 21:46:03 +00001023version 2.66
Simon Kelley32be32e2017-06-25 21:33:28 +01001024 Add the ability to act as an authoritative DNS
1025 server. Dnsmasq can now answer queries from the wider 'net
1026 with local data, as long as the correct NS records are set
1027 up. Only local data is provided, to avoid creating an open
1028 DNS relay. Zone transfer is supported, to allow secondary
1029 servers to be configured.
Simon Kelley333b2ce2013-01-07 21:46:03 +00001030
Simon Kelley32be32e2017-06-25 21:33:28 +01001031 Add "constructed DHCP ranges" for DHCPv6. This is intended
1032 for IPv6 routers which get prefixes dynamically via prefix
1033 delegation. With suitable configuration, stateful DHCPv6
1034 and RA can happen automatically as prefixes are delegated
1035 and then deprecated, without having to re-write the
1036 dnsmasq configuration file or restart the daemon. Thanks to
1037 Steven Barth for extensive testing and development work on
1038 this idea.
Simon Kelley71c73ac2013-01-08 21:22:24 +00001039
Simon Kelley32be32e2017-06-25 21:33:28 +01001040 Fix crash on startup on Solaris 11. Regression probably
1041 introduced in 2.61. Thanks to Geoff Johnstone for the
1042 patch.
Simon Kelley22ce5502013-01-22 13:53:04 +00001043
Simon Kelley32be32e2017-06-25 21:33:28 +01001044 Add code to make behaviour for TCP DNS requests that same
1045 as for UDP requests, when a request arrives for an allowed
1046 address, but via a banned interface. This change is only
1047 active on Linux, since the relevant API is missing (AFAIK)
1048 on other platforms. Many thanks to Tomas Hozza for
1049 spotting the problem, and doing invaluable discovery of
1050 the obscure and undocumented API required for the solution.
Simon Kelleya21e27b2013-02-17 16:41:35 +00001051
Simon Kelley32be32e2017-06-25 21:33:28 +01001052 Don't send the default DHCP option advertising dnsmasq as
1053 the local DNS server if dnsmasq is configured to not act
1054 as DNS server, or it's configured to a non-standard port.
Simon Kelley4038ae22013-02-19 16:47:07 +00001055
Simon Kelley32be32e2017-06-25 21:33:28 +01001056 Add DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID,
1057 DNSMASQ_REMOTE_ID variables to the environment of the
1058 lease-change script (and the corresponding Lua). These hold
1059 information inserted into the DHCP request by a DHCP relay
1060 agent. Thanks to Lakefield Communications for providing a
1061 bounty for this addition.
Jason A. Donenfeld13d86c72013-02-22 18:20:53 +00001062
Simon Kelley32be32e2017-06-25 21:33:28 +01001063 Fixed crash, introduced in 2.64, whilst handling DHCPv6
1064 information-requests with some common configurations.
1065 Thanks to Robert M. Albrecht for the bug report and
1066 chasing the problem.
Simon Kelleyc7961072013-02-28 15:17:58 +00001067
Simon Kelley32be32e2017-06-25 21:33:28 +01001068 Add --ipset option. Thanks to Jason A. Donenfeld for the
1069 patch.
Simon Kelley56a11422013-04-02 17:02:58 +01001070
Simon Kelley32be32e2017-06-25 21:33:28 +01001071 Don't erroneously reject some option names in --dhcp-match
1072 options. Thanks to Benedikt Hochstrasser for the bug report.
Simon Kelley0b0a73c2013-04-11 14:07:02 +01001073
Simon Kelley32be32e2017-06-25 21:33:28 +01001074 Allow a trailing '*' wildcard in all interface-name
1075 configurations. Thanks to Christian Parpart for the patch.
Simon Kelley834f36f2013-04-17 13:52:49 +01001076
Simon Kelley32be32e2017-06-25 21:33:28 +01001077 Handle the situation where libc headers define
1078 SO_REUSEPORT, but the kernel in use doesn't, to cope with
1079 the introduction of this option to Linux. Thanks to Rich
1080 Felker for the bug report.
1081
1082 Update Polish translation. Thanks to Jan Psota.
1083
1084 Fix crash if the configured DHCP lease limit is
1085 reached. Regression occurred in 2.61. Thanks to Tsachi for
1086 the bug report.
1087
1088 Update the French translation. Thanks to Gildas le Nadan.
1089
1090
Simon Kelleyee86ce62012-12-07 11:54:46 +00001091version 2.65
Simon Kelley32be32e2017-06-25 21:33:28 +01001092 Fix regression which broke forwarding of queries sent via
1093 TCP which are not for A and AAAA and which were directed to
1094 non-default servers. Thanks to Niax for the bug report.
Simon Kelleyee86ce62012-12-07 11:54:46 +00001095
Simon Kelley32be32e2017-06-25 21:33:28 +01001096 Fix failure to build with DHCP support excluded. Thanks to
1097 Gustavo Zacarias for the patch.
1098
1099 Fix nasty regression in 2.64 which completely broke caching.
Simon Kelleyb5a8dd12012-12-10 11:37:25 +00001100
1101
Simon Kelley2e34ac12012-08-29 14:15:25 +01001102version 2.64
Simon Kelley32be32e2017-06-25 21:33:28 +01001103 Handle DHCP FQDN options with all flag bits zero and
1104 --dhcp-client-update set. Thanks to Bernd Krumbroeck for
1105 spotting the problem.
Simon Kelley2e34ac12012-08-29 14:15:25 +01001106
Simon Kelley32be32e2017-06-25 21:33:28 +01001107 Finesse the check for /etc/hosts names which conflict with
1108 DHCP names. Previously a name/address pair in /etc/hosts
1109 which didn't match the name/address of a DHCP lease would
1110 generate a warning. Now that only happens if there is not
1111 also a match. This allows multiple addresses for a name in
1112 /etc/hosts with one of them assigned via DHCP.
Simon Kelley12d71ed2012-08-30 15:16:41 +01001113
Simon Kelley32be32e2017-06-25 21:33:28 +01001114 Fix broken vendor-option processing for BOOTP. Thanks to
1115 Hans-Joachim Baader for the bug report.
Simon Kelley4d0f5b42012-09-05 23:29:30 +01001116
Simon Kelley32be32e2017-06-25 21:33:28 +01001117 Don't report spurious netlink errors, regression in
1118 2.63. Thanks to Vladislav Grishenko for the patch.
Simon Kelleydfb23b32012-09-18 21:44:47 +01001119
Simon Kelley32be32e2017-06-25 21:33:28 +01001120 Flag DHCP or DHCPv6 in startup logging. Thanks to
1121 Vladislav Grishenko for the patch.
Simon Kelley2b127a12012-09-18 21:51:22 +01001122
Simon Kelley32be32e2017-06-25 21:33:28 +01001123 Add SetServersEx method in DBus interface. Thanks to Dan
1124 Williams for the patch.
Simon Kelleyfaafb3f2012-09-20 14:17:39 +01001125
Simon Kelley32be32e2017-06-25 21:33:28 +01001126 Add SetDomainServers method in DBus interface. Thanks to
1127 Roy Marples for the patch.
Simon Kelley295a54e2012-12-01 21:02:15 +00001128
Simon Kelley32be32e2017-06-25 21:33:28 +01001129 Fix build with later Lua libraries. Thanks to Cristian
1130 Rodriguez for the patch.
Simon Kelley2e34ac12012-08-29 14:15:25 +01001131
Simon Kelley32be32e2017-06-25 21:33:28 +01001132 Add --max-cache-ttl option. Thanks to Dennis Kaarsemaker
1133 for the patch.
Simon Kelley1d860412012-09-20 20:48:04 +01001134
Simon Kelley32be32e2017-06-25 21:33:28 +01001135 Fix breakage of --host-record parsing, resulting in
1136 infinite loop at startup. Regression in 2.63. Thanks to
1137 Haim Gelfenbeyn for spotting this.
Simon Kelleye4807d82012-09-27 21:52:26 +01001138
Simon Kelley32be32e2017-06-25 21:33:28 +01001139 Set SO_REUSEADDRESS and SO_V6ONLY options on the DHCPv6
1140 socket, this allows multiple instances of dnsmasq on a
1141 single machine, in the same way as for DHCPv4. Thanks to
1142 Gene Czarcinski and Vladislav Grishenko for work on this.
Simon Kelley20223102012-10-15 10:41:17 +01001143
Simon Kelley32be32e2017-06-25 21:33:28 +01001144 Fix DHCPv6 to do access control correctly when it's
1145 configured with --listen-address. Thanks to
1146 Gene Czarcinski for sorting this out.
Simon Kelleybe6cfb42012-10-16 20:38:31 +01001147
Simon Kelley32be32e2017-06-25 21:33:28 +01001148 Add a "wildcard" dhcp-range which works for any IPv6
1149 subnet, --dhcp-range=::,static Useful for Stateless
1150 DHCPv6. Thanks to Vladislav Grishenko for the patch.
Simon Kelley819ff4d2012-10-21 18:25:12 +01001151
Simon Kelley32be32e2017-06-25 21:33:28 +01001152 Don't include lease-time in DHCPACK replies to DHCPINFORM
1153 queries, since RFC-2131 says we shouldn't. Thanks to
1154 Wouter Ibens for pointing this out.
Simon Kelley8e4b8792012-11-14 14:12:56 +00001155
Simon Kelley32be32e2017-06-25 21:33:28 +01001156 Makefile tweak to do dependency checking on header files.
1157 Thanks to Johan Peeters for the patch.
Simon Kelleyd89fb4e2012-12-01 21:21:13 +00001158
Simon Kelley32be32e2017-06-25 21:33:28 +01001159 Check interface for outgoing unsolicited router
1160 advertisements, rather than relying on interface address
1161 configuration. Thanks to Gene Czarinski for the patch.
Simon Kelley29d28dd2012-12-03 14:05:59 +00001162
Simon Kelley32be32e2017-06-25 21:33:28 +01001163 Handle better attempts to transmit on interfaces which are
1164 still doing DAD, and specifically do not just transmit
1165 without setting source address and interface, since this
1166 can cause very puzzling effects when a router
1167 advertisement goes astray. Thanks again to Gene Czarinski.
Simon Kelley29d28dd2012-12-03 14:05:59 +00001168
Simon Kelley32be32e2017-06-25 21:33:28 +01001169 Get RA timers right when there is more than one
1170 dhcp-range on a subnet.
1171
Simon Kelleyd1a59752012-11-05 16:50:30 +00001172
Simon Kelley078a6302012-06-07 13:56:23 +01001173version 2.63
Simon Kelley32be32e2017-06-25 21:33:28 +01001174 Do duplicate dhcp-host address check in --test mode.
Simon Kelley078a6302012-06-07 13:56:23 +01001175
Simon Kelley32be32e2017-06-25 21:33:28 +01001176 Check that tftp-root directories are accessible before
1177 start-up. Thanks to Daniel Veillard for the initial patch.
Simon Kelley8b3ae2f2012-06-13 13:43:49 +01001178
Simon Kelley32be32e2017-06-25 21:33:28 +01001179 Allow more than one --tfp-root flag. The per-interface
1180 stuff is pointless without that.
Simon Kelley8b3ae2f2012-06-13 13:43:49 +01001181
Simon Kelley32be32e2017-06-25 21:33:28 +01001182 Add --bind-dynamic. A hybrid mode between the default and
1183 --bind-interfaces which copes with dynamically created
1184 interfaces.
Simon Kelley54dd3932012-06-20 11:23:38 +01001185
Simon Kelley32be32e2017-06-25 21:33:28 +01001186 A couple of fixes to the build system for Android. Thanks
1187 to Metin Kaya for the patches.
Simon Kelley8bc4cec2012-07-03 21:04:11 +01001188
Simon Kelley32be32e2017-06-25 21:33:28 +01001189 Remove the interface:<interface> argument in --dhcp-range, and
1190 the interface argument to --enable-tftp. These were a
1191 still-born attempt to allow automatic isolated
1192 configuration by libvirt, but have never (to my knowledge)
1193 been used, had very strange semantics, and have been
1194 superseded by other mechanisms.
Simon Kelleyc4a7f902012-07-12 20:52:12 +01001195
Simon Kelley32be32e2017-06-25 21:33:28 +01001196 Fixed bug logging filenames when duplicate dhcp-host
1197 addresses are found. Thanks to John Hanks for the patch.
Simon Kelley611ebc52012-07-16 16:23:46 +01001198
Simon Kelley32be32e2017-06-25 21:33:28 +01001199 Fix regression in 2.61 which broke caching of CNAME
1200 chains. Thanks to Atul Gupta for the bug report.
Simon Kelley611ebc52012-07-16 16:23:46 +01001201
Simon Kelley32be32e2017-06-25 21:33:28 +01001202 Allow the target of a --cname flag to be another --cname.
Simon Kelley42243212012-07-20 15:19:18 +01001203
Simon Kelley32be32e2017-06-25 21:33:28 +01001204 Teach DHCPv6 about the RFC 4242 information-refresh-time
1205 option, and add parsing if the minutes, hours and days
1206 format for options. Thanks to Francois-Xavier Le Bail for
1207 the suggestion.
Simon Kelley42243212012-07-20 15:19:18 +01001208
Simon Kelley32be32e2017-06-25 21:33:28 +01001209 Allow "w" (for week) as multiplier in lease times, as well
1210 as seconds, minutes, hours and days. Álvaro Gámez Machado
1211 spotted the omission.
Simon Kelleyad094272012-08-10 17:10:54 +01001212
Simon Kelley32be32e2017-06-25 21:33:28 +01001213 Update French translation. Thanks to Gildas Le Nadan.
1214
1215 Allow a DBus service name to be given with --enable-dbus
1216 which overrides the default,
1217 uk.org.thekelleys.dnsmasq. Thanks to Mathieu
1218 Trudel-Lapierre for the patch.
1219
1220 Set the "prefix on-link" bit in Router
1221 Advertisements. Thanks to Gui Iribarren for the patch.
Simon Kelleyfd05f122012-08-12 17:48:50 +01001222
Simon Kelley078a6302012-06-07 13:56:23 +01001223
Simon Kelley8358e0f2012-04-29 21:53:09 +01001224version 2.62
Simon Kelley32be32e2017-06-25 21:33:28 +01001225 Update German translation. Thanks to Conrad Kostecki.
Simon Kelley8358e0f2012-04-29 21:53:09 +01001226
Simon Kelley32be32e2017-06-25 21:33:28 +01001227 Cope with router-solict packets which don't have a valid
1228 source address. Thanks to Vladislav Grishenko for the patch.
Simon Kelleyf632e562012-05-12 15:05:34 +01001229
Simon Kelley32be32e2017-06-25 21:33:28 +01001230 Fixed bug which caused missing periodic router
1231 advertisements with some configurations. Thanks to
1232 Vladislav Grishenko for the patch.
Simon Kelley919dd7c2012-05-12 15:23:09 +01001233
Simon Kelley32be32e2017-06-25 21:33:28 +01001234 Fixed bug which broke DHCPv6/RA with prefix lengths
1235 which are not divisible by 8. Thanks to Andre Coetzee
1236 for spotting this.
Simon Kelleyc64b7f62012-05-18 10:19:59 +01001237
Simon Kelley32be32e2017-06-25 21:33:28 +01001238 Fix non-response to router-solicitations when
1239 router-advertisement configured, but DHCPv6 not
1240 configured. Thanks to Marien Zwart for the patch.
Simon Kelley18c63ef2012-05-21 14:34:15 +01001241
Simon Kelley32be32e2017-06-25 21:33:28 +01001242 Add --dns-rr, to allow arbitrary DNS resource records.
Simon Kelley9f7f3b12012-05-28 21:39:57 +01001243
Simon Kelley32be32e2017-06-25 21:33:28 +01001244 Fixed bug which broke RA scheduling when an interface had
1245 two addresses in the same network. Thanks to Jim Bos for
1246 his help nailing this.
Simon Kelley5ae34bf2012-06-04 21:14:03 +01001247
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001248version 2.61
Simon Kelley32be32e2017-06-25 21:33:28 +01001249 Re-write interface discovery code on *BSD to use
1250 getifaddrs. This is more portable, more straightforward,
1251 and allows us to find the prefix length for IPv6
1252 addresses.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001253
Simon Kelley32be32e2017-06-25 21:33:28 +01001254 Add ra-names, ra-stateless and slaac keywords for DHCPv6.
1255 Dnsmasq can now synthesise AAAA records for dual-stack
1256 hosts which get IPv6 addresses via SLAAC. It is also now
1257 possible to use SLAAC and stateless DHCPv6, and to
1258 tell clients to use SLAAC addresses as well as DHCP ones.
1259 Thanks to Dave Taht for help with this.
Simon Kelley7023e382012-03-09 12:05:49 +00001260
Simon Kelley32be32e2017-06-25 21:33:28 +01001261 Add --dhcp-duid to allow DUID-EN uids to be used.
Simon Kelley8b372702012-03-09 17:45:10 +00001262
Simon Kelley32be32e2017-06-25 21:33:28 +01001263 Explicitly send DHCPv6 replies to the correct port, instead
1264 of relying on clients to send requests with the correct
1265 source address, since at least one client in the wild gets
1266 this wrong. Thanks to Conrad Kostecki for help tracking
1267 this down.
Simon Kelleyeabc6dd2012-03-07 20:28:20 +00001268
Simon Kelley32be32e2017-06-25 21:33:28 +01001269 Send a preference value of 255 in DHCPv6 replies when
1270 --dhcp-authoritative is in effect. This tells clients not
1271 to wait around for other DHCP servers.
Simon Kelley8643ec72012-03-12 20:04:14 +00001272
Simon Kelley32be32e2017-06-25 21:33:28 +01001273 Better logging of DHCPv6 options.
Simon Kelley8643ec72012-03-12 20:04:14 +00001274
Simon Kelley32be32e2017-06-25 21:33:28 +01001275 Add --host-record. Thanks to Rob Zwissler for the
1276 suggestion.
Simon Kelleye759d422012-03-16 13:18:57 +00001277
Simon Kelley32be32e2017-06-25 21:33:28 +01001278 Invoke the DHCP script with action "tftp" when a TFTP file
1279 transfer completes. The size of the file, address to which
1280 it was sent and complete pathname are supplied. Note that
1281 version 2.60 introduced some script incompatibilities
1282 associated with DHCPv6, and this is a further change. To
1283 be safe, scripts should ignore unknown actions, and if
1284 not IPv6-aware, should exit if the environment
1285 variable DNSMASQ_IAID is set. The use-case for this is
1286 to track netboot/install. Suggestion from Shantanu
1287 Gadgil.
Simon Kelleya9530962012-03-20 22:07:35 +00001288
Simon Kelley32be32e2017-06-25 21:33:28 +01001289 Update contrib/port-forward/dnsmasq-portforward to reflect
1290 the above.
Simon Kelleya9530962012-03-20 22:07:35 +00001291
Simon Kelley32be32e2017-06-25 21:33:28 +01001292 Set the environment variable DNSMASQ_LOG_DHCP when running
1293 the script id --log-dhcp is in effect, so that script can
1294 taylor their logging verbosity. Suggestion from Malte
1295 Forkel.
Simon Kelleya9530962012-03-20 22:07:35 +00001296
Simon Kelley32be32e2017-06-25 21:33:28 +01001297 Arrange that addresses specified with --listen-address
1298 work even if there is no interface carrying the
1299 address. This is chiefly useful for IPv4 loopback
1300 addresses, where any address in 127.0.0.0/8 is a valid
1301 loopback address, but normally only 127.0.0.1 appears on
1302 the lo interface. Thanks to Mathieu Trudel-Lapierre for
1303 the idea and initial patch.
Simon Kelley7d2b5c92012-03-23 10:00:02 +00001304
Simon Kelley32be32e2017-06-25 21:33:28 +01001305 Fix crash, introduced in 2.60, when a DHCPINFORM is
1306 received from a network which has no valid dhcp-range.
1307 Thanks to Stephane Glondu for the bug report.
Simon Kelleyc8257542012-03-28 21:15:41 +01001308
Simon Kelley32be32e2017-06-25 21:33:28 +01001309 Add a new DHCP lease time keyword, "deprecated" for
1310 --dhcp-range. This is only valid for IPv6, and sets the
1311 preferred lease time for both DHCP and RA to zero. The
1312 effect is that clients can continue to use the address
1313 for existing connections, but new connections will use
1314 other addresses, if they exist. This makes hitless
1315 renumbering at least possible.
Simon Kelley18f0fb02012-03-31 21:18:55 +01001316
Simon Kelley32be32e2017-06-25 21:33:28 +01001317 Fix bug in address6_available() which caused DHCPv6 lease
1318 acquisition to fail if more than one dhcp-range in use.
Simon Kelley6c559c32012-04-02 20:40:34 +01001319
Simon Kelley32be32e2017-06-25 21:33:28 +01001320 Provide RDNSS and DNSSL data in router advertisements,
1321 using the settings provided for DHCP options
1322 option6:domain-search and option6:dns-server.
Simon Kelley9380ba72012-04-16 14:41:56 +01001323
Simon Kelley32be32e2017-06-25 21:33:28 +01001324 Tweak logo/favicon.ico to add some transparency. Thanks to
1325 SamLT for work on this.
Simon Kelleye46164e2012-04-16 16:39:38 +01001326
Simon Kelley32be32e2017-06-25 21:33:28 +01001327 Don't cache data from non-recursive nameservers, since it
1328 may erroneously look like a valid CNAME to a non-existent
1329 name. Thanks to Ben Winslow for finding this.
Simon Kelleyd1c759c2012-04-16 17:26:19 +01001330
Simon Kelley32be32e2017-06-25 21:33:28 +01001331 Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP
1332 on exactly one interface and --bind-interfaces is set. This
1333 makes the OpenStack use-case of one dnsmasq per virtual
1334 interface work. This is only available on Linux; it's not
1335 supported on other platforms. Thanks to Vishvananda Ishaya
1336 and the OpenStack team for the suggestion.
Simon Kelleydcffad22012-04-24 15:25:18 +01001337
Simon Kelley32be32e2017-06-25 21:33:28 +01001338 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley19d69be2012-04-27 10:14:34 +01001339
Simon Kelley32be32e2017-06-25 21:33:28 +01001340 Give correct from-cache answers to explicit CNAME queries.
1341 Thanks to Rob Zwissler for spotting this.
1342
1343 Add --tftp-lowercase option. Thanks to Oliver Rath for the
1344 patch.
1345
1346 Ensure that the DBus DhcpLeaseUpdated events are generated
1347 when a lease goes through INIT_REBOOT state, even if the
1348 dhcp-script is not in use. Thanks to Antoaneta-Ecaterina
1349 Ene for the patch.
1350
1351 Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks
1352 to Brad Smith for spotting this.
1353
Simon Kelleyc8257542012-03-28 21:15:41 +01001354
Simon Kelleyc72daea2012-01-05 21:33:27 +00001355version 2.60
Simon Kelley32be32e2017-06-25 21:33:28 +01001356 Fix compilation problem in Mac OS X Lion. Thanks to Olaf
1357 Flebbe for the patch.
Simon Kelley74c95c22011-10-19 09:33:39 +01001358
Simon Kelley32be32e2017-06-25 21:33:28 +01001359 Fix DHCP when using --listen-address with an IP address
1360 which is not the primary address of an interface.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001361
Simon Kelley32be32e2017-06-25 21:33:28 +01001362 Add --dhcp-client-update option.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001363
Simon Kelley32be32e2017-06-25 21:33:28 +01001364 Add Lua integration. Dnsmasq can now execute a DHCP
1365 lease-change script written in Lua. This needs to be
1366 enabled at compile time by setting HAVE_LUASCRIPT in
1367 src/config.h or running "make COPTS=-DHAVE_LUASCRIPT"
1368 Thanks to Jan-Piet Mens for the idea and proof-of-concept
1369 implementation.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001370
Simon Kelley32be32e2017-06-25 21:33:28 +01001371 Tidied src/config.h to distinguish between
1372 platform-dependent compile-time options which are selected
1373 automatically, and builder-selectable compile time
1374 options. Document the latter better, and describe how to
1375 set them from the make command line.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001376
Simon Kelley32be32e2017-06-25 21:33:28 +01001377 Tidied up IPPROTO_IP/SOL_IP (and IPv6 equivalent)
1378 confusion. IPPROTO_IP works everywhere now.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001379
Simon Kelley32be32e2017-06-25 21:33:28 +01001380 Set TOS on DHCP sockets, this improves things on busy
1381 wireless networks. Thanks to Dave Taht for the patch.
Simon Kelleya2761752012-01-18 16:07:21 +00001382
Simon Kelley32be32e2017-06-25 21:33:28 +01001383 Determine VERSION automatically based on git magic:
1384 release tags or hash values.
Simon Kelleya2761752012-01-18 16:07:21 +00001385
Simon Kelley32be32e2017-06-25 21:33:28 +01001386 Improve start-up speed when reading large hosts files
1387 containing many distinct addresses.
Simon Kelley9bbc8872012-02-09 21:33:09 +00001388
Simon Kelley32be32e2017-06-25 21:33:28 +01001389 Fix problem if dnsmasq is started without the stdin,
1390 stdout and stderr file descriptors open. This can manifest
1391 itself as 100% CPU use. Thanks to Chris Moore for finding
1392 this.
Simon Kelley751d6f42012-02-10 15:24:51 +00001393
Simon Kelley32be32e2017-06-25 21:33:28 +01001394 Fix shell-scripting bug in bld/pkg-wrapper. Thanks to
1395 Mark Mitchell for the patch.
Simon Kelleyb36ae192012-02-13 12:54:34 +00001396
Simon Kelley32be32e2017-06-25 21:33:28 +01001397 Allow the TFP server or boot server in --pxe-service, to
1398 be a domain name instead of an IP address. This allows for
1399 round-robin to multiple servers, in the same way as
1400 --dhcp-boot. A good suggestion from Cristiano Cumer.
Simon Kelley1adadf52012-02-13 22:15:58 +00001401
Simon Kelley32be32e2017-06-25 21:33:28 +01001402 Support BUILDDIR variable in the Makefile. Allows builds
1403 for multiple archs from the same source tree with eg.
1404 make BUILDDIR=linux (relative to dnsmasq tree)
1405 make BUILDDIR=/tmp/openbsd (absolute path)
1406 If BUILDDIR is not set, compilation happens in the src
1407 directory, as before. Suggestion from Mark Mitchell.
Simon Kelleyac8540c2012-02-26 20:57:31 +00001408
Simon Kelley32be32e2017-06-25 21:33:28 +01001409 Support DHCPv6. Support is there for the sort of things
1410 the existing v4 server does, including tags, options,
1411 static addresses and relay support. Missing is prefix
1412 delegation, which is probably not required in the dnsmasq
1413 niche, and an easy way to accept prefix delegations from
1414 an upstream DHCPv6 server, which is. Future plans include
1415 support for DHCPv6 router option and MAC address option
1416 (to make selecting clients by MAC address work like IPv4).
1417 These will be added as the standards mature.
1418 This code has been tested, but this is the first release,
1419 so don't bet the farm on it just yet. Many thanks to all
1420 testers who have got it this far.
Simon Kelley552af8b2012-02-29 20:10:31 +00001421
Simon Kelley32be32e2017-06-25 21:33:28 +01001422 Support IPv6 router advertisements. This is a
1423 simple-minded implementation, aimed at providing the
1424 vestigial RA needed to go alongside IPv6. Is picks up
1425 configuration from the DHCPv6 conf, and should just need
1426 enabling with --enable-ra.
1427
1428 Fix long-standing wrinkle with --localise-queries that
1429 could result in wrong answers when DNS packets arrive
1430 via an interface other than the expected one. Thanks to
1431 Lorenzo Milesi and John Hanks for spotting this one.
1432
1433 Update French translation. Thanks to Gildas Le Nadan.
1434
1435 Update Polish translation. Thanks to Jan Psota.
Simon Kelleydf66e342012-03-04 20:04:22 +00001436
1437
Simon Kelleyc72daea2012-01-05 21:33:27 +00001438version 2.59
Simon Kelley32be32e2017-06-25 21:33:28 +01001439 Fix regression in 2.58 which caused failure to start up
1440 with some combinations of dnsmasq config and IPv6 kernel
1441 network config. Thanks to Brielle Bruns for the bug
1442 report.
Simon Kelleyc72daea2012-01-05 21:33:27 +00001443
Simon Kelley32be32e2017-06-25 21:33:28 +01001444 Improve dnsmasq's behaviour when network interfaces are
1445 still doing duplicate address detection (DAD). Previously,
1446 dnsmasq would wait up to 20 seconds at start-up for the
1447 DAD state to terminate. This is broken for bridge
1448 interfaces on recent Linux kernels, which don't start DAD
1449 until the bridge comes up, and so can take arbitrary
1450 time. The new behaviour lets dnsmasq poll for an arbitrary
1451 time whilst providing service on other interfaces. Thanks
1452 to Stephen Hemminger for pointing out the problem.
Simon Kelley74c95c22011-10-19 09:33:39 +01001453
1454
Simon Kelley7de060b2011-08-26 17:24:52 +01001455version 2.58
Simon Kelley32be32e2017-06-25 21:33:28 +01001456 Provide a definition of the SA_SIZE macro where it's
1457 missing. Fixes build failure on openBSD.
Simon Kelley7de060b2011-08-26 17:24:52 +01001458
Simon Kelley32be32e2017-06-25 21:33:28 +01001459 Don't include a zero terminator at the end of messages
1460 sent to /dev/log when /dev/log is a datagram socket.
1461 Thanks to Didier Rabound for spotting the problem.
Simon Kelley7de060b2011-08-26 17:24:52 +01001462
Simon Kelley32be32e2017-06-25 21:33:28 +01001463 Add --dhcp-sequential-ip flag, to force allocation of IP
1464 addresses in ascending order. Note that the default
1465 pseudo-random mode is in general better but some
1466 server-deployment applications need this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001467
Simon Kelley32be32e2017-06-25 21:33:28 +01001468 Fix problem where a server-id of 0.0.0.0 is sent to a
1469 client when a dhcp-relay is in use if a client renews a
1470 lease after dnsmasq restart and before any clients on the
1471 subnet get a new lease. Thanks to Mike Ruiz for assistance
1472 in chasing this one down.
Simon Kelley7de060b2011-08-26 17:24:52 +01001473
Simon Kelley32be32e2017-06-25 21:33:28 +01001474 Don't return NXDOMAIN to an AAAA query if we have CNAME
1475 which points to an A record only: NODATA is the correct
1476 reply in this case. Thanks to Tom Fernandes for spotting
1477 the problem.
Simon Kelley7de060b2011-08-26 17:24:52 +01001478
Simon Kelley32be32e2017-06-25 21:33:28 +01001479 Relax the need to supply a netmask in --dhcp-range for
1480 networks which use a DHCP relay. Whilst this is still
1481 desirable, in the absence of a netmask dnsmasq will use
1482 a default based on the class (A, B, or C) of the address.
1483 This should at least remove a cause of mysterious failure
1484 for people using RFC1918 addresses and relays.
Simon Kelley7de060b2011-08-26 17:24:52 +01001485
Simon Kelley32be32e2017-06-25 21:33:28 +01001486 Add support for Linux conntrack connection marking. If
1487 enabled with --conntrack, the connection mark for incoming
1488 DNS queries will be copied to the outgoing connections
1489 used to answer those queries. This allows clever firewall
1490 and accounting stuff. Only available if dnsmasq is
1491 compiled with HAVE_CONNTRACK and adds a dependency on
1492 libnetfilter-conntrack. Thanks to Ed Wildgoose for the
1493 initial idea, testing and sponsorship of this function.
Simon Kelley7de060b2011-08-26 17:24:52 +01001494
Simon Kelley32be32e2017-06-25 21:33:28 +01001495 Provide a sane error message when someone attempts to
1496 match a tag in --dhcp-host.
Simon Kelley7de060b2011-08-26 17:24:52 +01001497
Simon Kelley32be32e2017-06-25 21:33:28 +01001498 Tweak the behaviour of --domain-needed, to avoid problems
1499 with recursive nameservers downstream of dnsmasq. The new
1500 behaviour only stops A and AAAA queries, and returns
1501 NODATA rather than NXDOMAIN replies.
Simon Kelley7de060b2011-08-26 17:24:52 +01001502
Simon Kelley32be32e2017-06-25 21:33:28 +01001503 Efficiency fix for very large DHCP configurations, thanks
1504 to James Gartrell and Mike Ruiz for help with this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001505
Simon Kelley32be32e2017-06-25 21:33:28 +01001506 Allow the TFTP-server address in --dhcp-boot to be a
1507 domain-name which is looked up in /etc/hosts. This can
1508 give multiple IP addresses which are used round-robin,
1509 thus doing TFTP server load-balancing. Thanks to Sushil
1510 Agrawal for the patch.
Simon Kelley7de060b2011-08-26 17:24:52 +01001511
Simon Kelley32be32e2017-06-25 21:33:28 +01001512 When two tagged dhcp-options for a particular option
1513 number are both valid, use the one which is valid without
1514 a tag from the dhcp-range. Allows overriding of the value
1515 of a DHCP option for a particular host as well as
1516 per-network values. So
1517 --dhcp-range=set:interface1,......
1518 --dhcp-host=set:myhost,.....
1519 --dhcp-option=tag:interface1,option:nis-domain,"domain1"
1520 --dhcp-option=tag:myhost,option:nis-domain,"domain2"
1521 will set the NIS-domain to domain1 for hosts in the range, but
1522 override that to domain2 for a particular host.
Simon Kelley7de060b2011-08-26 17:24:52 +01001523
Simon Kelley32be32e2017-06-25 21:33:28 +01001524 Fix bug which resulted in truncated files and timeouts for
1525 some TFTP transfers. The bug only occurs with netascii
1526 transfers and needs an unfortunate relationship between
1527 file size, blocksize and the number of newlines in the
1528 last block before it manifests itself. Many thanks to
1529 Alkis Georgopoulos for spotting the problem and providing
1530 a comprehensive test-case.
Simon Kelley7de060b2011-08-26 17:24:52 +01001531
Simon Kelley32be32e2017-06-25 21:33:28 +01001532 Fix regression in TFTP server on *BSD platforms introduced
1533 in version 2.56, due to confusion with sockaddr
1534 length. Many thanks to Loic Pefferkorn for finding this.
Simon Kelley7de060b2011-08-26 17:24:52 +01001535
Simon Kelley32be32e2017-06-25 21:33:28 +01001536 Support scope-ids in IPv6 addresses of nameservers from
1537 /etc/resolv.conf and in --server options. Eg
1538 nameserver fe80::202:a412:4512:7bbf%eth0 or
1539 server=fe80::202:a412:4512:7bbf%eth0. Thanks to
1540 Michael Stapelberg for the suggestion.
Simon Kelley7de060b2011-08-26 17:24:52 +01001541
Simon Kelley32be32e2017-06-25 21:33:28 +01001542 Update Polish translation, thanks to Jan Psota.
Simon Kelley7de060b2011-08-26 17:24:52 +01001543
Simon Kelley32be32e2017-06-25 21:33:28 +01001544 Update French translation. Thanks to Gildas Le Nadan.
Simon Kelley7de060b2011-08-26 17:24:52 +01001545
1546
Simon Kelley572b41e2011-02-18 18:11:18 +00001547version 2.57
Simon Kelley32be32e2017-06-25 21:33:28 +01001548 Add patches to allow build under Android.
Simon Kelley572b41e2011-02-18 18:11:18 +00001549
Simon Kelley32be32e2017-06-25 21:33:28 +01001550 Provide our own header for the DNS protocol, rather than
1551 relying on arpa/nameser.h. This has proved more or less
1552 defective over the years and the final straw is that it's
1553 effectively empty on Android.
Simon Kelley572b41e2011-02-18 18:11:18 +00001554
Simon Kelley32be32e2017-06-25 21:33:28 +01001555 Fix regression in 2.56 which caused hex constants in
1556 configuration to be rejected if they contain the '*'
1557 wildcard.
Simon Kelley572b41e2011-02-18 18:11:18 +00001558
Simon Kelley32be32e2017-06-25 21:33:28 +01001559 Correct wrong casts of arguments to ctype.h functions,
1560 isdigit(), isxdigit() etc. Thanks to Matthias Andree for
1561 spotting this.
Simon Kelley572b41e2011-02-18 18:11:18 +00001562
Simon Kelley32be32e2017-06-25 21:33:28 +01001563 Allow build with IDN support independently from i18n.
1564 IDN support continues to be included automatically
1565 when i18n is included.
1566 'make COPTS=-DHAVE_IDN' is the magic incantation.
Simon Kelley572b41e2011-02-18 18:11:18 +00001567
Simon Kelley32be32e2017-06-25 21:33:28 +01001568 Modify check on extraneous command line junk (added in
1569 2.56) so that it doesn't complain about extra _empty_
1570 arguments. Otherwise this breaks libvirt.
Simon Kelley572b41e2011-02-18 18:11:18 +00001571
1572
Simon Kelley28866e92011-02-14 20:19:14 +00001573version 2.56
Simon Kelley32be32e2017-06-25 21:33:28 +01001574 Add a patch to allow dnsmasq to get interface names right in a
1575 Solaris zone. Thanks to Dj Padzensky for this.
Simon Kelley28866e92011-02-14 20:19:14 +00001576
Simon Kelley32be32e2017-06-25 21:33:28 +01001577 Improve data-type parsing heuristics so that
1578 --dhcp-option=option:domain-search,.
1579 treats the value as a string and not an IP address.
1580 Thanks to Clemens Fischer for spotting that.
Simon Kelley28866e92011-02-14 20:19:14 +00001581
Simon Kelley32be32e2017-06-25 21:33:28 +01001582 Add IPv6 support to the TFTP server. Many thanks to Jan
1583 'RedBully' Seiffert for the patches.
Simon Kelley28866e92011-02-14 20:19:14 +00001584
Simon Kelley32be32e2017-06-25 21:33:28 +01001585 Log DNS queries at level LOG_INFO, rather then
1586 LOG_DEBUG. This makes things consistent with DHCP
1587 logging. Thanks to Adam Pribyl for spotting the problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001588
Simon Kelley32be32e2017-06-25 21:33:28 +01001589 Ensure that dnsmasq terminates cleanly when using
1590 --syslog-async even if it cannot make a connection to the
1591 syslogd.
Simon Kelley28866e92011-02-14 20:19:14 +00001592
Simon Kelley32be32e2017-06-25 21:33:28 +01001593 Add --add-mac option. This is to support currently
1594 experimental DNS filtering facilities. Thanks to Benjamin
1595 Petrin for the original patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001596
Simon Kelley32be32e2017-06-25 21:33:28 +01001597 Fix bug which meant that tags were ignored in dhcp-range
1598 configuration specifying PXE-proxy service. Thanks to
1599 Cristiano Cumer for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001600
Simon Kelley32be32e2017-06-25 21:33:28 +01001601 Raise an error if there is extra junk, not part of an
1602 option, on the command line.
Simon Kelley28866e92011-02-14 20:19:14 +00001603
Simon Kelley32be32e2017-06-25 21:33:28 +01001604 Flag a couple of log messages in cache.c as coming from
1605 the DHCP subsystem. Thanks to Olaf Westrik for the patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001606
Simon Kelley32be32e2017-06-25 21:33:28 +01001607 Omit timestamps from logs when a) logging to stderr and
1608 b) --keep-in-foreground is set. The logging facility on the
1609 other end of stderr can be assumed to supply them. Thanks
1610 to John Hallam for the patch.
Simon Kelley28866e92011-02-14 20:19:14 +00001611
Simon Kelley32be32e2017-06-25 21:33:28 +01001612 Don't complain about strings longer than 255 characters in
1613 --txt-record, just split the long strings into 255
1614 character chunks instead.
Simon Kelley28866e92011-02-14 20:19:14 +00001615
Simon Kelley32be32e2017-06-25 21:33:28 +01001616 Fix crash on double-free. This bug can only happen when
1617 dhcp-script is in use and then only in rare circumstances
1618 triggered by high DHCP transaction rate and a slow
1619 script. Thanks to Ferenc Wagner for finding the problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001620
Simon Kelley32be32e2017-06-25 21:33:28 +01001621 Only log that a file has been sent by TFTP after the
1622 transfer has completed successfully.
Simon Kelley28866e92011-02-14 20:19:14 +00001623
Simon Kelley32be32e2017-06-25 21:33:28 +01001624 A good suggestion from Ferenc Wagner: extend
1625 the --domain option to allow this sort of thing:
1626 --domain=thekelleys.org.uk,192.168.0.0/24,local
1627 which automatically creates
1628 --local=/thekelleys.org.uk/
1629 --local=/0.168.192.in-addr.arpa/
Simon Kelley28866e92011-02-14 20:19:14 +00001630
Simon Kelley32be32e2017-06-25 21:33:28 +01001631 Tighten up syntax checking of hex constants in the config
1632 file. Thanks to Fred Damen for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001633
Simon Kelley32be32e2017-06-25 21:33:28 +01001634 Add dnsmasq logo/icon, contributed by Justin Swift. Many
1635 thanks for that.
Simon Kelley28866e92011-02-14 20:19:14 +00001636
Simon Kelley32be32e2017-06-25 21:33:28 +01001637 Never cache DNS replies which have the 'cd' bit set, or
1638 which result from queries forwarded with the 'cd' bit
1639 set. The 'cd' bit instructs a DNSSEC validating server
1640 upstream to ignore signature failures and return replies
1641 anyway. Without this change it's possible to pollute the
1642 dnsmasq cache with bad data by making a query with the
1643 'cd' bit set and subsequent queries would return this data
1644 without its being marked as suspect. Thanks to Anders
1645 Kaseorg for pointing out this problem.
Simon Kelley28866e92011-02-14 20:19:14 +00001646
Simon Kelley32be32e2017-06-25 21:33:28 +01001647 Add --proxy-dnssec flag, for compliance with RFC
1648 4035. Dnsmasq will now clear the 'ad' bit in answers returned
1649 from upstream validating nameservers unless this option is
1650 set.
Simon Kelley28866e92011-02-14 20:19:14 +00001651
Simon Kelley32be32e2017-06-25 21:33:28 +01001652 Allow a filename of "-" for --conf-file to read
1653 stdin. Suggestion from Timothy Redaelli.
Simon Kelley28866e92011-02-14 20:19:14 +00001654
Simon Kelley32be32e2017-06-25 21:33:28 +01001655 Rotate the order of SRV records in replies, to provide
1656 round-robin load balancing when all the priorities are
1657 equal. Thanks to Peter McKinney for the suggestion.
Simon Kelley28866e92011-02-14 20:19:14 +00001658
Simon Kelley32be32e2017-06-25 21:33:28 +01001659 Edit
1660 contrib/MacOSX-launchd/uk.org.thekelleys.dnsmasq.plist
1661 so that it doesn't log all queries to a file by
1662 default. Thanks again to Peter McKinney.
Simon Kelley28866e92011-02-14 20:19:14 +00001663
Simon Kelley32be32e2017-06-25 21:33:28 +01001664 By default, setting an IPv4 address for a domain but not
1665 an IPv6 address causes dnsmasq to return
Ville Skyttäfaaf3062018-01-14 17:32:52 +00001666 a NODATA reply for IPv6 (or vice-versa). So
Simon Kelley32be32e2017-06-25 21:33:28 +01001667 --address=/google.com/1.2.3.4 stops IPv6 queries for
1668 *google.com from being forwarded. Make it possible to
1669 override this behaviour by defining the semantics if the
1670 same domain appears in both --server and --address.
1671 In that case, the --address has priority for the address
1672 family in which is appears, but the --server has priority
1673 of the address family which doesn't appear in --address
1674 So:
1675 --address=/google.com/1.2.3.4
1676 --server=/google.com/#
1677 will return 1.2.3.4 for IPv4 queries for *.google.com but
1678 forward IPv6 queries to the normal upstream nameserver.
1679 Similarly when setting an IPv6 address
1680 only this will allow forwarding of IPv4 queries. Thanks to
1681 William for pointing out the need for this.
Simon Kelley28866e92011-02-14 20:19:14 +00001682
Simon Kelley32be32e2017-06-25 21:33:28 +01001683 Allow more than one --dhcp-optsfile and --dhcp-hostsfile
1684 and make them understand directories as arguments in the
1685 same way as --addn-hosts. Suggestion from John Hanks.
Simon Kelley28866e92011-02-14 20:19:14 +00001686
Simon Kelley32be32e2017-06-25 21:33:28 +01001687 Ignore rebinding requests for leases we don't know
1688 about. Rebind is broadcast, so we might get to overhear a
1689 request meant for another DHCP server. NAKing this is
1690 wrong. Thanks to Brad D'Hondt for assistance with this.
1691
1692 Fix cosmetic bug which produced strange output when
1693 dumping cache statistics with some configurations. Thanks
1694 to Fedor Kozhevnikov for spotting this.
Simon Kelley28866e92011-02-14 20:19:14 +00001695
1696
Simon Kelleyc52e1892010-06-07 22:01:39 +01001697version 2.55
Simon Kelley32be32e2017-06-25 21:33:28 +01001698 Fix crash when /etc/ethers is in use. Thanks to
1699 Gianluigi Tiesi for finding this.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001700
Simon Kelley32be32e2017-06-25 21:33:28 +01001701 Fix crash in netlink_multicast(). Thanks to Arno Wald for
1702 finding this one.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001703
Simon Kelley32be32e2017-06-25 21:33:28 +01001704 Allow the empty domain "." in dhcp domain-search (119)
1705 options.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001706
1707
1708version 2.54
Simon Kelley32be32e2017-06-25 21:33:28 +01001709 There is no version 2.54 to avoid confusion with 2.53,
1710 which incorrectly identifies itself as 2.54.
Simon Kelleyc52e1892010-06-07 22:01:39 +01001711
1712
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001713version 2.53
Simon Kelley32be32e2017-06-25 21:33:28 +01001714 Fix failure to compile on Debian/kFreeBSD. Thanks to
1715 Axel Beckert and Petr Salinger.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001716
Simon Kelley32be32e2017-06-25 21:33:28 +01001717 Fix code to avoid scary strict-aliasing warnings
1718 generated by gcc 4.4.
1719
1720 Added FAQ entry warning about DHCP failures with Vista
1721 when firewalls block 255.255.255.255.
1722
1723 Fixed bug which caused bad things to happen if a
1724 resolv.conf file which exists is subsequently removed.
1725 Thanks to Nikolai Saoukh for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001726
Simon Kelley32be32e2017-06-25 21:33:28 +01001727 Rationalised the DHCP tag system. Every configuration item
1728 which can set a tag does so by adding "set:<tag>" and
1729 every configuration item which is conditional on a tag is
1730 made so by "tag:<tag>". The NOT operator changes to '!',
1731 which is a bit more intuitive too. Dhcp-host directives
1732 can set more than one tag now. The old '#' NOT,
1733 "net:" prefix and no-prefixes are still honoured, so
1734 no existing config file needs to be changed, but
1735 the documentation and new-style config files should be
1736 much less confusing.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001737
Simon Kelley32be32e2017-06-25 21:33:28 +01001738 Added --tag-if to allow boolean operations on tags.
1739 This allows complicated logic to be clearer and more
1740 general. A great suggestion from Richard Voigt.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001741
Simon Kelley32be32e2017-06-25 21:33:28 +01001742 Add broadcast/unicast information to DHCP logging.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001743
Simon Kelley32be32e2017-06-25 21:33:28 +01001744 Allow --dhcp-broadcast to be unconditional.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001745
Simon Kelley32be32e2017-06-25 21:33:28 +01001746 Fixed incorrect behaviour with NOT <tag> conditionals in
1747 dhcp-options. Thanks to Max Turkewitz for assistance
1748 finding this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001749
Simon Kelley32be32e2017-06-25 21:33:28 +01001750 If we send vendor-class encapsulated options based on the
1751 vendor-class supplied by the client, and no explicit
1752 vendor-class option is given, echo back the vendor-class
1753 from the client.
1754
1755 Fix bug which stopped dnsmasq from matching both a
1756 circuitid and a remoteid. Thanks to Ignacio Bravo for
1757 finding this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001758
Simon Kelley32be32e2017-06-25 21:33:28 +01001759 Add --dhcp-proxy, which makes it possible to configure
1760 dnsmasq to use a DHCP relay agent as a full proxy, with
1761 all DHCP messages passing through the proxy. This is
1762 useful if the relay adds extra information to the packets
1763 it forwards, but cannot be configured with the RFC 5107
1764 server-override option.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001765
Simon Kelley32be32e2017-06-25 21:33:28 +01001766 Added interface:<iface name> part to dhcp-range. The
1767 semantics of this are very odd at first sight, but it
1768 allows a single line of the form
1769 dhcp-range=interface:virt0,192.168.0.4,192.168.0.200
1770 to be added to dnsmasq configuration which then supplies
1771 DHCP and DNS services to that interface, without affecting
1772 what services are supplied to other interfaces and
1773 irrespective of the existence or lack of
1774 interface=<interface>
1775 lines elsewhere in the dnsmasq configuration. The idea is
1776 that such a line can be added automatically by libvirt
1777 or equivalent systems, without disturbing any manual
1778 configuration.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001779
Simon Kelley32be32e2017-06-25 21:33:28 +01001780 Similarly to the above, allow --enable-tftp=<interface>
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001781
Simon Kelley32be32e2017-06-25 21:33:28 +01001782 Allow a TFTP root to be set separately for requests via
1783 different interfaces, --tftp-root=<path>,<interface>
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001784
Simon Kelley32be32e2017-06-25 21:33:28 +01001785 Correctly handle and log clashes between CNAMES and
1786 DNS names being given to DHCP leases. This fixes a bug
1787 which caused nonsense IP addresses to be logged. Thanks to
1788 Sergei Zhirikov for finding and analysing the problem.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001789
Simon Kelley32be32e2017-06-25 21:33:28 +01001790 Tweak flush_log so as to avoid leaving the log
1791 file in non-blocking mode. O_NONBLOCK is a property of the
1792 file, not the process/descriptor.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001793
Simon Kelley32be32e2017-06-25 21:33:28 +01001794 Fix contrib/Solaris10/create_package
1795 (/usr/man -> /usr/share/man) Thanks to Vita Batrla.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001796
Simon Kelley32be32e2017-06-25 21:33:28 +01001797 Fix a problem where, if a client got a lease, then went
1798 to another subnet and got another lease, then moved back,
1799 it couldn't resume the old lease, but would instead get
1800 a new address. Thanks to Leonardo Rodrigues for spotting
1801 this and testing the fix.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001802
Simon Kelley32be32e2017-06-25 21:33:28 +01001803 Fix weird bug which sometimes omitted certain characters
1804 from the start of quoted strings in dhcp-options. Thanks
1805 to Dayton Turner for spotting the problem.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001806
Simon Kelley32be32e2017-06-25 21:33:28 +01001807 Add facility to redirect some domains to the standard
1808 upstream servers: this allows something like
1809 --server=/google.com/1.2.3.4 --server=/www.google.com/#
1810 which will send queries for *.google.com to 1.2.3.4,
1811 except *www.google.com which will be forwarded as usual.
1812 Thanks to AJ Weber for prompting this addition.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001813
Simon Kelley32be32e2017-06-25 21:33:28 +01001814 Improve the hash-algorithm used to generate IP addresses
1815 from MAC addresses during initial DHCP address
1816 allocation. This improves performance when large numbers
1817 of hosts with similar MAC addresses all try and get an IP
1818 address at the same time. Thanks to Paul Smith for his
1819 work on this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001820
Simon Kelley32be32e2017-06-25 21:33:28 +01001821 Tweak DHCP code so that --bridge-interface can be used to
1822 select which IP alias of an interface should be used for
1823 DHCP purposes on Linux. If eth0 has an alias eth0:dhcp
1824 then adding --bridge-interface=eth0:dhcp,eth0 will use
1825 the address of eth0:dhcp to determine the correct subnet
1826 for DHCP address allocation. Thanks to Pawel Golaszewski
1827 for prompting this and Eric Cooper for further testing.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001828
Simon Kelley32be32e2017-06-25 21:33:28 +01001829 Add --dhcp-generate-names. Suggestion by Ferenc Wagner.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001830
Simon Kelley32be32e2017-06-25 21:33:28 +01001831 Tweak DNS server selection algorithm when there is more
1832 than one server available for a domain, eg.
1833 --server=/mydomain/1.1.1.1
1834 --server=/mydomain/2.2.2.2
1835 Thanks to Alberto Cuesta-Canada for spotting a weakness
1836 here.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001837
Simon Kelley32be32e2017-06-25 21:33:28 +01001838 Add --max-ttl. Thanks to Fredrik Ringertz for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001839
Simon Kelley32be32e2017-06-25 21:33:28 +01001840 Allow --log-facility=- to force all logging to
1841 stderr. Suggestion from Clemens Fischer.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001842
Simon Kelley32be32e2017-06-25 21:33:28 +01001843 Fix regression which caused configuration like
1844 --address=/.domain.com/1.2.3.4 to be rejected. The dot to the
1845 left of the domain has been implied and not required for a
1846 long time, but it should be accepted for backward
1847 compatibility. Thanks to Andrew Burcin for spotting this.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001848
Simon Kelley32be32e2017-06-25 21:33:28 +01001849 Add --rebind-domain-ok and --rebind-localhost-ok.
1850 Suggestion from Clemens Fischer.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001851
Simon Kelley32be32e2017-06-25 21:33:28 +01001852 Log replies to queries of type TXT, when --log-queries
1853 is set.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001854
Simon Kelley32be32e2017-06-25 21:33:28 +01001855 Fix compiler warnings when compiled with -DNO_DHCP. Thanks
1856 to Shantanu Gadgil for the patch.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001857
Simon Kelley32be32e2017-06-25 21:33:28 +01001858 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001859
Simon Kelley32be32e2017-06-25 21:33:28 +01001860 Updated Polish translation. Thanks to Jan Psota.
1861
1862 Updated German translation. Thanks to Matthias Andree.
1863
1864 Added contrib/static-arp, thanks to Darren Hoo.
1865
1866 Fix corruption of the domain when a name from /etc/hosts
1867 overrides one supplied by a DHCP client. Thanks to Fedor
1868 Kozhevnikov for spotting the problem.
1869
1870 Updated Spanish translation. Thanks to Chris Chatham.
Simon Kelley8ef5ada2010-06-03 19:42:45 +01001871
1872
Simon Kelley316e2732010-01-22 20:16:09 +00001873version 2.52
Simon Kelley32be32e2017-06-25 21:33:28 +01001874 Work around a Linux kernel bug which insists that the
1875 length of the option passed to setsockopt must be at least
1876 sizeof(int) bytes, even if we're calling SO_BINDTODEVICE
1877 and the device name is "lo". Note that this is fixed
1878 in kernel 2.6.31, but the workaround is harmless and
1879 allows earlier kernels to be used. Also fix dnsmasq
1880 bug which reported the wrong address when this failed.
1881 Thanks to Fedor for finding this.
Simon Kelley316e2732010-01-22 20:16:09 +00001882
Simon Kelley32be32e2017-06-25 21:33:28 +01001883 The API for IPv6 PKTINFO changed around Linux kernel
1884 2.6.14. Workaround the case where dnsmasq is compiled
1885 against newer headers, but then run on an old kernel:
1886 necessary for some *WRT distros.
Simon Kelley316e2732010-01-22 20:16:09 +00001887
Simon Kelley32be32e2017-06-25 21:33:28 +01001888 Re-read the set of network interfaces when re-loading
1889 /etc/resolv.conf if --bind-interfaces is not set. This
1890 handles the case that loopback interfaces do not exist
1891 when dnsmasq is first started.
Simon Kelley316e2732010-01-22 20:16:09 +00001892
Simon Kelley32be32e2017-06-25 21:33:28 +01001893 Tweak the PXE code to support port 4011. This should
1894 reduce broadcasts and make things more reliable when other
1895 servers are around. It also improves inter-operability
1896 with certain clients.
Simon Kelley316e2732010-01-22 20:16:09 +00001897
Simon Kelley32be32e2017-06-25 21:33:28 +01001898 Make a pxe-service configuration with no filename or boot
1899 service type legal: this does a local boot. eg.
1900 pxe-service=x86PC, "Local boot"
Simon Kelley316e2732010-01-22 20:16:09 +00001901
Simon Kelley32be32e2017-06-25 21:33:28 +01001902 Be more conservative in detecting "A for A"
1903 queries. Dnsmasq checks if the name in a type=A query looks
1904 like a dotted-quad IP address and answers the query itself
1905 if so, rather than forwarding it. Previously dnsmasq
1906 relied in the library function inet_addr() to convert
1907 addresses, and that will accept some things which are
1908 confusing in this context, like 1.2.3 or even just
1909 1234. Now we only do A for A processing for four decimal
1910 numbers delimited by dots.
Simon Kelley316e2732010-01-22 20:16:09 +00001911
Simon Kelley32be32e2017-06-25 21:33:28 +01001912 A couple of tweaks to fix compilation on Solaris. Thanks
1913 to Joel Macklow for help with this.
Simon Kelley316e2732010-01-22 20:16:09 +00001914
Simon Kelley32be32e2017-06-25 21:33:28 +01001915 Another Solaris compilation tweak, needed for Solaris
1916 2009.06. Thanks to Lee Essen for that.
Simon Kelley316e2732010-01-22 20:16:09 +00001917
Simon Kelley32be32e2017-06-25 21:33:28 +01001918 Added extract packaging stuff from Lee Essen to
1919 contrib/Solaris10.
Simon Kelley316e2732010-01-22 20:16:09 +00001920
Simon Kelley32be32e2017-06-25 21:33:28 +01001921 Increased the default limit on number of leases to 1000
1922 (from 150). This is mainly a defence against DoS attacks,
1923 and for the average "one for two class C networks"
1924 installation, IP address exhaustion does that just as
1925 well. Making the limit greater than the number of IP
1926 addresses available in such an installation removes a
1927 surprise which otherwise can catch people out.
Simon Kelley316e2732010-01-22 20:16:09 +00001928
Simon Kelley32be32e2017-06-25 21:33:28 +01001929 Removed extraneous trailing space in the value of the
1930 DNSMASQ_TIME_REMAINING DNSMASQ_LEASE_LENGTH and
1931 DNSMASQ_LEASE_EXPIRES environment variables. Thanks to
1932 Gildas Le Nadan for spotting this.
Simon Kelley316e2732010-01-22 20:16:09 +00001933
Simon Kelley32be32e2017-06-25 21:33:28 +01001934 Provide the network-id tags for a DHCP transaction to
1935 the lease-change script in the environment variable
1936 DNSMASQ_TAGS. A good suggestion from Gildas Le Nadan.
Simon Kelley316e2732010-01-22 20:16:09 +00001937
Simon Kelley32be32e2017-06-25 21:33:28 +01001938 Add support for RFC3925 "Vendor-Identifying Vendor
1939 Options". The syntax looks like this:
1940 --dhcp-option=vi-encap:<enterprise number>, .........
Simon Kelley316e2732010-01-22 20:16:09 +00001941
Simon Kelley32be32e2017-06-25 21:33:28 +01001942 Add support to --dhcp-match to allow matching against
1943 RFC3925 "Vendor-Identifying Vendor Classes". The syntax
1944 looks like this:
1945 --dhcp-match=tag,vi-encap<enterprise number>, <value>
Simon Kelley316e2732010-01-22 20:16:09 +00001946
Simon Kelley32be32e2017-06-25 21:33:28 +01001947 Add some application specific code to assist in
1948 implementing the Broadband forum TR069 CPE-WAN
1949 specification. The details are in contrib/CPE-WAN/README
Simon Kelley316e2732010-01-22 20:16:09 +00001950
Simon Kelley32be32e2017-06-25 21:33:28 +01001951 Increase the default DNS packet size limit to 4096, as
1952 recommended by RFC5625 section 4.4.3. This can be
1953 reconfigured using --edns-packet-max if needed. Thanks to
1954 Francis Dupont for pointing this out.
Simon Kelley316e2732010-01-22 20:16:09 +00001955
Simon Kelley32be32e2017-06-25 21:33:28 +01001956 Rewrite query-ids even for TSIG signed packets, since
1957 this is allowed by RFC5625 section 4.5.
Simon Kelley316e2732010-01-22 20:16:09 +00001958
Simon Kelley32be32e2017-06-25 21:33:28 +01001959 Use getopt_long by default on OS X. It has been supported
1960 since version 10.3.0. Thanks to Arek Dreyer for spotting
1961 this.
Simon Kelley316e2732010-01-22 20:16:09 +00001962
Simon Kelley32be32e2017-06-25 21:33:28 +01001963 Added up-to-date startup configuration for MacOSX/launchd
1964 in contrib/MacOSX-launchd. Thanks to Arek Dreyer for
1965 providing this.
Simon Kelley316e2732010-01-22 20:16:09 +00001966
Simon Kelley32be32e2017-06-25 21:33:28 +01001967 Fix link error when including Dbus but excluding DHCP.
1968 Thanks to Oschtan for the bug report.
Simon Kelley316e2732010-01-22 20:16:09 +00001969
Simon Kelley32be32e2017-06-25 21:33:28 +01001970 Updated French translation. Thanks to Gildas Le Nadan.
1971
1972 Updated Polish translation. Thanks to Jan Psota.
1973
1974 Updated Spanish translation. Thanks to Chris Chatham.
1975
1976 Fixed confusion about domains, when looking up DHCP hosts
1977 in /etc/hosts. This could cause spurious "Ignoring
1978 domain..." messages. Thanks to Fedor Kozhevnikov for
1979 finding and analysing the problem.
1980
1981
Simon Kelley1f15b812009-10-13 17:49:32 +01001982version 2.51
Simon Kelley32be32e2017-06-25 21:33:28 +01001983 Add support for internationalised DNS. Non-ASCII characters
1984 in domain names found in /etc/hosts, /etc/ethers and
1985 /etc/dnsmasq.conf will be correctly handled by translation to
1986 punycode, as specified in RFC3490. This function is only
1987 available if dnsmasq is compiled with internationalisation
1988 support, and adds a dependency on GNU libidn. Without i18n
1989 support, dnsmasq continues to be compilable with just
1990 standard tools. Thanks to Yves Dorfsman for the
1991 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01001992
Simon Kelley32be32e2017-06-25 21:33:28 +01001993 Add two more environment variables for lease-change scripts:
1994 First, DNSMASQ_SUPPLIED_HOSTNAME; this is set to the hostname
1995 supplied by a client, even if the actual hostname used is
1996 over-ridden by dhcp-host or dhcp-ignore-names directives.
1997 Also DNSMASQ_RELAY_ADDRESS which gives the address of
1998 a DHCP relay, if used.
1999 Suggestions from Michael Rack.
Simon Kelley1f15b812009-10-13 17:49:32 +01002000
Simon Kelley32be32e2017-06-25 21:33:28 +01002001 Fix regression which broke echo of relay-agent
2002 options. Thanks to Michael Rack for spotting this.
Simon Kelley1f15b812009-10-13 17:49:32 +01002003
Simon Kelley32be32e2017-06-25 21:33:28 +01002004 Don't treat option 67 as being interchangeable with
2005 dhcp-boot parameters if it's specified as
2006 dhcp-option-force.
Simon Kelley1f15b812009-10-13 17:49:32 +01002007
Simon Kelley32be32e2017-06-25 21:33:28 +01002008 Make the code to call scripts on lease-change compile-time
2009 optional. It can be switched off by editing src/config.h
2010 or building with "make COPTS=-DNO_SCRIPT".
Simon Kelley1f15b812009-10-13 17:49:32 +01002011
Simon Kelley32be32e2017-06-25 21:33:28 +01002012 Make the TFTP server cope with filenames from Windows/DOS
2013 which use '\' as pathname separator. Thanks to Ralf for
2014 the patch.
Simon Kelley1f15b812009-10-13 17:49:32 +01002015
Simon Kelley32be32e2017-06-25 21:33:28 +01002016 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley1f15b812009-10-13 17:49:32 +01002017
Simon Kelley32be32e2017-06-25 21:33:28 +01002018 Warn if an IP address is duplicated in /etc/ethers. Thanks
2019 to Felix Schwarz for pointing this out.
Simon Kelley1f15b812009-10-13 17:49:32 +01002020
Simon Kelley32be32e2017-06-25 21:33:28 +01002021 Teach --conf-dir to take an option list of file suffices
2022 which will be ignored when scanning the directory. Useful
2023 for backup files etc. Thanks to Helmut Hullen for the
2024 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01002025
Simon Kelley32be32e2017-06-25 21:33:28 +01002026 Add new DHCP option named tftpserver-address, which
2027 corresponds to the third argument of dhcp-boot. This
2028 allows the complete functionality of dhcp-boot to be
2029 replicated with dhcp-option. Useful when using
2030 dhcp-optsfile.
Simon Kelley1f15b812009-10-13 17:49:32 +01002031
Simon Kelley32be32e2017-06-25 21:33:28 +01002032 Test which upstream nameserver to use every 10 seconds
2033 or 50 queries and not just when a query times out and
2034 is retried. This should improve performance when there
2035 is a slow nameserver in the list. Thanks to Joe for the
2036 suggestion.
Simon Kelley1f15b812009-10-13 17:49:32 +01002037
Simon Kelley32be32e2017-06-25 21:33:28 +01002038 Don't do any PXE processing, even for clients with the
2039 correct vendorclass, unless at least one pxe-prompt or
2040 pxe-service option is given. This stops dnsmasq
2041 interfering with proxy PXE subsystems when it is just
2042 the DHCP server. Thanks to Spencer Clark for spotting this.
2043
2044 Limit the blocksize used for TFTP transfers to a value
2045 which avoids packet fragmentation, based on the MTU of the
2046 local interface. Many netboot ROMs can't cope with
2047 fragmented packets.
2048
2049 Honour dhcp-ignore configuration for PXE and proxy-PXE
2050 requests. Thanks to Niels Basjes for the bug report.
2051
2052 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01002053
2054
Simon Kelley77e94da2009-08-31 17:32:17 +01002055version 2.50
Simon Kelley32be32e2017-06-25 21:33:28 +01002056 Fix security problem which allowed any host permitted to
2057 do TFTP to possibly compromise dnsmasq by remote buffer
2058 overflow when TFTP enabled. Thanks to Core Security
2059 Technologies and Iván Arce, Pablo Hernán Jorge, Alejandro
2060 Pablo Rodriguez, Martín Coco, Alberto Soliño Testa and
2061 Pablo Annetta. This problem has Bugtraq id: 36121
2062 and CVE: 2009-2957
Simon Kelley77e94da2009-08-31 17:32:17 +01002063
Simon Kelley32be32e2017-06-25 21:33:28 +01002064 Fix a problem which allowed a malicious TFTP client to
2065 crash dnsmasq. Thanks to Steve Grubb at Red Hat for
2066 spotting this. This problem has Bugtraq id: 36120 and
2067 CVE: 2009-2958
Simon Kelley77e94da2009-08-31 17:32:17 +01002068
2069
Simon Kelley03a97b62009-06-10 20:55:49 +01002070version 2.49
Simon Kelley32be32e2017-06-25 21:33:28 +01002071 Fix regression in 2.48 which disables the lease-change
2072 script. Thanks to Jose Luis Duran for spotting this.
Simon Kelley03a97b62009-06-10 20:55:49 +01002073
Simon Kelley32be32e2017-06-25 21:33:28 +01002074 Log TFTP "file not found" errors. These were not logged,
2075 since a normal PXELinux boot generates many of them, but
2076 the lack of the messages seems to be more confusing than
2077 routinely seeing them when there is no real error.
Simon Kelley03a97b62009-06-10 20:55:49 +01002078
Simon Kelley32be32e2017-06-25 21:33:28 +01002079 Update Spanish translation. Thanks to Chris Chatham.
2080
Simon Kelley03a97b62009-06-10 20:55:49 +01002081
Simon Kelley7622fc02009-06-04 20:32:05 +01002082version 2.48
Simon Kelley32be32e2017-06-25 21:33:28 +01002083 Archived the extensive, backwards, changelog to
2084 CHANGELOG.archive. The current changelog now runs from
2085 version 2.43 and runs conventionally.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002086
Simon Kelley32be32e2017-06-25 21:33:28 +01002087 Fixed bug which broke binding of servers to physical
2088 interfaces when interface names were longer than four
2089 characters. Thanks to MURASE Katsunori for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002090
Simon Kelley32be32e2017-06-25 21:33:28 +01002091 Fixed netlink code to check that messages come from the
2092 correct source, and not another userspace process. Thanks
2093 to Steve Grubb for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002094
Simon Kelley32be32e2017-06-25 21:33:28 +01002095 Maintainability drive: removed bug and missing feature
2096 workarounds for some old platforms. Solaris 9, OpenBSD
2097 older than 4.1, Glibc older than 2.2, Linux 2.2.x and
2098 DBus older than 1.1.x are no longer supported.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002099
Simon Kelley32be32e2017-06-25 21:33:28 +01002100 Don't read included configuration files more than once:
2101 allows complex configuration structures without problems.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002102
Simon Kelley32be32e2017-06-25 21:33:28 +01002103 Mark log messages from the various subsystems in dnsmasq:
2104 messages from the DHCP subsystem now have the ident string
2105 "dnsmasq-dhcp" and messages from TFTP have ident
2106 "dnsmasq-tftp". Thanks to Olaf Westrik for the patch.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002107
Simon Kelley32be32e2017-06-25 21:33:28 +01002108 Fix possible infinite DHCP protocol loop when an IP
2109 address nailed to a hostname (not a MAC address) and a
2110 host sometimes provides the name, sometimes not.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002111
Simon Kelley32be32e2017-06-25 21:33:28 +01002112 Allow --addn-hosts to take a directory: all the files
2113 in the directory are read. Thanks to Phil Cornelius for
2114 the suggestion.
Simon Kelley9e4abcb2004-01-22 19:47:41 +00002115
Simon Kelley32be32e2017-06-25 21:33:28 +01002116 Support --bridge-interface on all platforms, not just BSD.
Simon Kelley1ab84e22004-01-29 16:48:35 +00002117
Simon Kelley32be32e2017-06-25 21:33:28 +01002118 Added support for advanced PXE functions. It's now
2119 possible to define a prompt and menu options which will
2120 be displayed when a client PXE boots. It's also possible to
2121 hand-off booting to other boot servers. Proxy-DHCP, where
2122 dnsmasq just supplies the PXE information and another DHCP
2123 server does address allocation, is also allowed. See the
2124 --pxe-prompt and --pxe-service keywords. Thanks to
2125 Alkis Georgopoulos for the suggestion and Guilherme Moro
2126 and Michael Brown for assistance.
2127
2128 Improvements to DHCP logging. Thanks to Tom Metro for
2129 useful suggestions.
2130
2131 Add ability to build dnsmasq without DHCP support. To do
2132 this, edit src/config.h or build with
2133 "make COPTS=-DNO_DHCP". Thanks to Mahavir Jain for the patch.
2134
2135 Added --test command-line switch - syntax check
2136 configuration files only.
2137
2138 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley9009d742008-11-14 20:04:27 +00002139
Simon Kelley73a08a22009-02-05 20:28:08 +00002140
2141version 2.47
Simon Kelley32be32e2017-06-25 21:33:28 +01002142 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley73a08a22009-02-05 20:28:08 +00002143
Simon Kelley32be32e2017-06-25 21:33:28 +01002144 Fixed interface enumeration code to work on NetBSD
2145 5.0. Thanks to Roy Marples for the patch.
Simon Kelley73a08a22009-02-05 20:28:08 +00002146
Simon Kelley32be32e2017-06-25 21:33:28 +01002147 Updated config.h to use the same location for the lease
2148 file on NetBSD as the other *BSD variants. Also allow
2149 LEASEFILE and CONFFILE symbols to be overridden in CFLAGS.
Simon Kelley73a08a22009-02-05 20:28:08 +00002150
Simon Kelley32be32e2017-06-25 21:33:28 +01002151 Handle duplicate address detection on IPv6 more
2152 intelligently. In IPv6, an interface can have an address
2153 which is not usable, because it is still undergoing DAD
2154 (such addresses are marked "tentative"). Attempting to
2155 bind to an address in this state returns an error,
2156 EADDRNOTAVAIL. Previously, on getting such an error,
2157 dnsmasq would silently abandon the address, and never
2158 listen on it. Now, it retries once per second for 20
2159 seconds before generating a fatal error. 20 seconds should
2160 be long enough for any DAD process to complete, but can be
2161 adjusted in src/config.h if necessary. Thanks to Martin
2162 Krafft for the bug report.
Simon Kelley73a08a22009-02-05 20:28:08 +00002163
Simon Kelley32be32e2017-06-25 21:33:28 +01002164 Add DBus introspection. Patch from Jeremy Laine.
Simon Kelley73a08a22009-02-05 20:28:08 +00002165
Simon Kelley32be32e2017-06-25 21:33:28 +01002166 Update Dbus configuration file. Patch from Colin Walters.
2167 Fix for this bug:
2168 http://bugs.freedesktop.org/show_bug.cgi?id=18961
Simon Kelley73a08a22009-02-05 20:28:08 +00002169
Simon Kelley32be32e2017-06-25 21:33:28 +01002170 Support arbitrarily encapsulated DHCP options, suggestion
2171 and initial patch from Samium Gromoff. This is useful for
Geert Stappersc7e6aea2018-01-13 17:56:37 +00002172 (eg) iPXE, which expect all its private options to be
Simon Kelley32be32e2017-06-25 21:33:28 +01002173 encapsulated inside a single option 175. So, eg,
Simon Kelley73a08a22009-02-05 20:28:08 +00002174
Simon Kelley32be32e2017-06-25 21:33:28 +01002175 dhcp-option = encap:175, 190, "iscsi-client0"
2176 dhcp-option = encap:175, 191, "iscsi-client0-secret"
Simon Kelley73a08a22009-02-05 20:28:08 +00002177
Geert Stappersc7e6aea2018-01-13 17:56:37 +00002178 will provide iSCSI parameters to iPXE.
Simon Kelley73a08a22009-02-05 20:28:08 +00002179
Simon Kelley32be32e2017-06-25 21:33:28 +01002180 Enhance --dhcp-match to allow testing of the contents of a
2181 client-sent option, as well as its presence. This
2182 application in mind for this is RFC 4578
2183 client-architecture specifiers, but it's generally useful.
2184 Joey Korkames suggested the enhancement.
Simon Kelley73a08a22009-02-05 20:28:08 +00002185
Simon Kelley32be32e2017-06-25 21:33:28 +01002186 Move from using the IP_XMIT_IF ioctl to IP_BOUND_IF on
2187 OpenSolaris. Thanks to Bastian Machek for the heads-up.
Simon Kelley73a08a22009-02-05 20:28:08 +00002188
Simon Kelley32be32e2017-06-25 21:33:28 +01002189 No longer complain about blank lines in
2190 /etc/ethers. Thanks to Jon Nelson for the patch.
Simon Kelley73a08a22009-02-05 20:28:08 +00002191
Simon Kelley32be32e2017-06-25 21:33:28 +01002192 Fix binding of servers to physical devices, eg
2193 --server=/domain/1.2.3.4@eth0 which was broken from 2.43
2194 onwards unless --query-port=0 set. Thanks to Peter Naulls
2195 for the bug report.
Simon Kelley73a08a22009-02-05 20:28:08 +00002196
Simon Kelley32be32e2017-06-25 21:33:28 +01002197 Reply to DHCPINFORM requests even when the supplied ciaddr
2198 doesn't fall in any dhcp-range. In this case it's not
2199 possible to supply a complete configuration, but
2200 individually-configured options (eg PAC) may be useful.
Simon Kelley73a08a22009-02-05 20:28:08 +00002201
Simon Kelley32be32e2017-06-25 21:33:28 +01002202 Allow the source address of an alias to be a range:
2203 --alias=192.168.0.0,10.0.0.0,255.255.255.0 maps the whole
2204 subnet 192.168.0.0->192.168.0.255 to 10.0.0.0->10.0.0.255,
2205 as before.
2206 --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
2207 maps only the 192.168.0.10->192.168.0.40 region. Thanks to
2208 Ib Uhrskov for the suggestion.
Simon Kelley73a08a22009-02-05 20:28:08 +00002209
Simon Kelley32be32e2017-06-25 21:33:28 +01002210 Don't dynamically allocate DHCP addresses which may break
2211 Windows. Addresses which end in .255 or .0 are broken in
2212 Windows even when using supernetting.
2213 --dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0 means
2214 192.168.0.255 is a valid IP address, but not for Windows.
2215 See Microsoft KB281579. We therefore no longer allocate
2216 these addresses to avoid hard-to-diagnose problems.
Simon Kelley73a08a22009-02-05 20:28:08 +00002217
Simon Kelley32be32e2017-06-25 21:33:28 +01002218 Update Polish translation. Thanks to Jan Psota.
2219
2220 Delete the PID-file when dnsmasq shuts down. Note that by
2221 this time, dnsmasq is normally not running as root, so
2222 this will fail if the PID-file is stored in a root-owned
2223 directory; such failure is silently ignored. To take
2224 advantage of this feature, the PID-file must be stored in a
2225 directory owned and write-able by the user running
2226 dnsmasq.
Simon Kelley7622fc02009-06-04 20:32:05 +01002227
2228
2229version 2.46
Simon Kelley32be32e2017-06-25 21:33:28 +01002230 Allow --bootp-dynamic to take a netid tag, so that it may
2231 be selectively enabled. Thanks to Olaf Westrik for the
2232 suggestion.
Simon Kelley7622fc02009-06-04 20:32:05 +01002233
Simon Kelley32be32e2017-06-25 21:33:28 +01002234 Remove ISC-leasefile reading code. This has been
2235 deprecated for a long time, and last time I removed it, it
2236 ended up going back by request of one user. This time,
2237 it's gone for good; otherwise it would need to be
2238 re-worked to support multiple domains (see below).
Simon Kelley7622fc02009-06-04 20:32:05 +01002239
Simon Kelley32be32e2017-06-25 21:33:28 +01002240 Support DHCP clients in multiple DNS domains. This is a
2241 long-standing request. Clients are assigned to a domain
2242 based in their IP address.
Simon Kelley7622fc02009-06-04 20:32:05 +01002243
Simon Kelley32be32e2017-06-25 21:33:28 +01002244 Add --dhcp-fqdn flag, which changes behaviour if DNS names
2245 assigned to DHCP clients. When this is set, there must be
2246 a domain associated with each client, and only
2247 fully-qualified domain names are added to the DNS. The
2248 advantage is that the only the FQDN needs to be unique,
2249 so that two or more DHCP clients can share a hostname, as
2250 long as they are in different domains.
Simon Kelley7622fc02009-06-04 20:32:05 +01002251
Simon Kelley32be32e2017-06-25 21:33:28 +01002252 Set environment variable DNSMASQ_DOMAIN when invoking
2253 lease-change script. This may be useful information to
2254 have now that it's variable.
Simon Kelley7622fc02009-06-04 20:32:05 +01002255
Simon Kelley32be32e2017-06-25 21:33:28 +01002256 Tighten up data-checking code for DNS packet
2257 handling. Thanks to Steve Dodd who found certain illegal
2258 packets which could crash dnsmasq. No memory overwrite was
2259 possible, so this is not a security issue beyond the DoS
2260 potential.
Simon Kelley7622fc02009-06-04 20:32:05 +01002261
Simon Kelley32be32e2017-06-25 21:33:28 +01002262 Update example config dhcp option 47, the previous
2263 suggestion generated an illegal, zero-length,
2264 option. Thanks to Matthias Andree for finding this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002265
Simon Kelley32be32e2017-06-25 21:33:28 +01002266 Rewrite hosts-file reading code to remove the limit of
2267 1024 characters per line. John C Meuser found this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002268
Simon Kelley32be32e2017-06-25 21:33:28 +01002269 Create a net-id tag with the name of the interface on
2270 which the DHCP request was received.
Simon Kelley7622fc02009-06-04 20:32:05 +01002271
Simon Kelley32be32e2017-06-25 21:33:28 +01002272 Fixed minor memory leak in DBus code, thanks to Jeremy
2273 Laine for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002274
Simon Kelley32be32e2017-06-25 21:33:28 +01002275 Emit DBus signals as the DHCP lease database
2276 changes. Thanks to Jeremy Laine for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002277
Simon Kelley32be32e2017-06-25 21:33:28 +01002278 Allow for more that one MAC address in a dhcp-host
2279 line. This configuration tells dnsmasq that it's OK to
2280 abandon a DHCP lease of the fixed address to one MAC
2281 address, if another MAC address in the dhcp-host statement
2282 asks for an address. This is useful to give a fixed
2283 address to a host which has two network interfaces
2284 (say, a laptop with wired and wireless interfaces.)
2285 It's very important to ensure that only one interface
2286 at a time is up, since dnsmasq abandons the first lease
2287 and re-uses the address before the leased time has
2288 elapsed. John Gray suggested this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002289
Simon Kelley32be32e2017-06-25 21:33:28 +01002290 Tweak the response to a DHCP request packet with a wrong
2291 server-id when --dhcp-authoritative is set; dnsmasq now
2292 returns a DHCPNAK, rather than silently ignoring the
2293 packet. Thanks to Chris Marget for spotting this
2294 improvement.
Simon Kelley7622fc02009-06-04 20:32:05 +01002295
Simon Kelley32be32e2017-06-25 21:33:28 +01002296 Add --cname option. This provides a limited alias
2297 function, usable for DHCP names. Thanks to AJ Weber for
2298 suggestions on this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002299
Simon Kelley32be32e2017-06-25 21:33:28 +01002300 Updated contrib/webmin with latest version from Neil
2301 Fisher.
Simon Kelley7622fc02009-06-04 20:32:05 +01002302
Simon Kelley32be32e2017-06-25 21:33:28 +01002303 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley7622fc02009-06-04 20:32:05 +01002304
Simon Kelley32be32e2017-06-25 21:33:28 +01002305 Correct the text names for DHCP options 64 and 65 to be
2306 "nis+-domain" and "nis+-servers".
Simon Kelley7622fc02009-06-04 20:32:05 +01002307
Simon Kelley32be32e2017-06-25 21:33:28 +01002308 Updated Spanish translation. Thanks to Chris Chatham.
2309
2310 Force re-reading of /etc/resolv.conf when an "interface
2311 up" event occurs.
Simon Kelley7622fc02009-06-04 20:32:05 +01002312
2313
2314version 2.45
Simon Kelley32be32e2017-06-25 21:33:28 +01002315 Fix total DNS failure in release 2.44 unless --min-port
2316 specified. Thanks to Steven Barth and Grant Coady for
2317 bugreport. Also reject out-of-range port spec, which could
2318 break things too: suggestion from Gilles Espinasse.
2319
Simon Kelley7622fc02009-06-04 20:32:05 +01002320
2321version 2.44
Simon Kelley32be32e2017-06-25 21:33:28 +01002322 Fix crash when unknown client attempts to renew a DHCP
2323 lease, problem introduced in version 2.43. Thanks to
2324 Carlos Carvalho for help chasing this down.
Simon Kelley7622fc02009-06-04 20:32:05 +01002325
Simon Kelley32be32e2017-06-25 21:33:28 +01002326 Fix potential crash when a host which doesn't have a lease
2327 does DHCPINFORM. Again introduced in 2.43. This bug has
2328 never been reported in the wild.
Simon Kelley7622fc02009-06-04 20:32:05 +01002329
Simon Kelley32be32e2017-06-25 21:33:28 +01002330 Fix crash in netlink code introduced in 2.43. Thanks to
2331 Jean Wolter for finding this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002332
Simon Kelley32be32e2017-06-25 21:33:28 +01002333 Change implementation of min_port to work even if min-port
2334 is large.
Simon Kelley7622fc02009-06-04 20:32:05 +01002335
Simon Kelley32be32e2017-06-25 21:33:28 +01002336 Patch to enable compilation of latest Mac OS X. Thanks to
2337 David Gilman.
Simon Kelley7622fc02009-06-04 20:32:05 +01002338
Simon Kelley32be32e2017-06-25 21:33:28 +01002339 Update Spanish translation. Thanks to Christopher Chatham.
Simon Kelley7622fc02009-06-04 20:32:05 +01002340
2341
2342version 2.43
Simon Kelley32be32e2017-06-25 21:33:28 +01002343 Updated Polish translation. Thanks to Jan Psota.
Simon Kelley7622fc02009-06-04 20:32:05 +01002344
Simon Kelley32be32e2017-06-25 21:33:28 +01002345 Flag errors when configuration options are repeated
2346 illegally.
Simon Kelley7622fc02009-06-04 20:32:05 +01002347
Simon Kelley32be32e2017-06-25 21:33:28 +01002348 Further tweaks for GNU/kFreeBSD
Simon Kelley7622fc02009-06-04 20:32:05 +01002349
Simon Kelley32be32e2017-06-25 21:33:28 +01002350 Add --no-wrap to msgmerge call - provides nicer .po file
2351 format.
Simon Kelley7622fc02009-06-04 20:32:05 +01002352
Simon Kelley32be32e2017-06-25 21:33:28 +01002353 Honour lease-time spec in dhcp-host lines even for
2354 BOOTP. The user is assumed to known what they are doing in
2355 this case. (Hosts without the time spec still get infinite
2356 leases for BOOTP, over-riding the default in the
2357 dhcp-range.) Thanks to Peter Katzmann for uncovering this.
Simon Kelley7622fc02009-06-04 20:32:05 +01002358
Simon Kelley32be32e2017-06-25 21:33:28 +01002359 Fix problem matching relay-agent ids. Thanks to Michael
2360 Rack for the bug report.
Simon Kelley7622fc02009-06-04 20:32:05 +01002361
Simon Kelley32be32e2017-06-25 21:33:28 +01002362 Add --naptr-record option. Suggestion from Johan
2363 Bergquist.
Simon Kelley7622fc02009-06-04 20:32:05 +01002364
Simon Kelley32be32e2017-06-25 21:33:28 +01002365 Implement RFC 5107 server-id-override DHCP relay agent
2366 option.
Simon Kelley7622fc02009-06-04 20:32:05 +01002367
Simon Kelley32be32e2017-06-25 21:33:28 +01002368 Apply patches from Stefan Kruger for compilation on
2369 Solaris 10 under Sun studio.
Simon Kelley7622fc02009-06-04 20:32:05 +01002370
Simon Kelley32be32e2017-06-25 21:33:28 +01002371 Yet more tweaking of Linux capability code, to suppress
2372 pointless wingeing from kernel 2.6.25 and above.
Simon Kelley7622fc02009-06-04 20:32:05 +01002373
Simon Kelley32be32e2017-06-25 21:33:28 +01002374 Improve error checking during startup. Previously, some
2375 errors which occurred during startup would be worked
2376 around, with dnsmasq still starting up. Some were logged,
2377 some silent. Now, they all cause a fatal error and dnsmasq
2378 terminates with a non-zero exit code. The errors are those
2379 associated with changing uid and gid, setting process
2380 capabilities and writing the pidfile. Thanks to Uwe
2381 Gansert and the Suse security team for pointing out
2382 this improvement, and Bill Reimers for good implementation
2383 suggestions.
Simon Kelley7622fc02009-06-04 20:32:05 +01002384
Simon Kelley32be32e2017-06-25 21:33:28 +01002385 Provide NO_LARGEFILE compile option to switch off largefile
2386 support when compiling against versions of uclibc which
2387 don't support it. Thanks to Stephane Billiart for the patch.
Simon Kelley7622fc02009-06-04 20:32:05 +01002388
Simon Kelley32be32e2017-06-25 21:33:28 +01002389 Implement random source ports for interactions with
2390 upstream nameservers. New spoofing attacks have been found
2391 against nameservers which do not do this, though it is not
2392 clear if dnsmasq is vulnerable, since to doesn't implement
2393 recursion. By default dnsmasq will now use a different
2394 source port (and socket) for each query it sends
2395 upstream. This behaviour can suppressed using the
2396 --query-port option, and the old default behaviour
2397 restored using --query-port=0. Explicit source-port
2398 specifications in --server configs are still honoured.
Simon Kelley7622fc02009-06-04 20:32:05 +01002399
Simon Kelley32be32e2017-06-25 21:33:28 +01002400 Replace the random number generator, for better
2401 security. On most BSD systems, dnsmasq uses the
2402 arc4random() RNG, which is secure, but on other platforms,
2403 it relied on the C-library RNG, which may be
2404 guessable and therefore allow spoofing. This release
2405 replaces the libc RNG with the SURF RNG, from Daniel
2406 J. Berstein's DJBDNS package.
Simon Kelley7622fc02009-06-04 20:32:05 +01002407
Simon Kelley32be32e2017-06-25 21:33:28 +01002408 Don't attempt to change user or group or set capabilities
2409 if dnsmasq is run as a non-root user. Without this, the
2410 change from soft to hard errors when these fail causes
2411 problems for non-root daemons listening on high
2412 ports. Thanks to Patrick McLean for spotting this.
2413
2414 Updated French translation. Thanks to Gildas Le Nadan.
Simon Kelley1f15b812009-10-13 17:49:32 +01002415
2416
2417version 2.42
Simon Kelley32be32e2017-06-25 21:33:28 +01002418 The changelog for version 2.42 and earlier is
2419 available in CHANGELOG.archive.