7f30a00710
5404. [bug] 'named-checkconf -z' could incorrectly indicate success if errors were found in one view but not in a subsequent one. [GL #1807] 5403. [func] Do not set UDP receive/send buffer sizes - use system defaults. [GL #1713] 5402. [bug] On FreeBSD, use SO_REUSEPORT_LB instead of SO_REUSEPORT. Enable use of SO_REUSEADDR on all platforms which support it. [GL !3365] 5401. [bug] The number of input queues allocated during dnstap initialization was too low, which could prevent some dnstap data from being logged. [GL #1795] 5400. [func] Add engine support to OpenSSL EdDSA implementation. [GL #1763] 5399. [func] Add engine support to OpenSSL ECDSA implementation. [GL #1534] 5398. [bug] Named could fail to restart if a zone with a double quote (") in its name was added with 'rndc addzone'. [GL #1695] 5397. [func] Update PKCS#11 EdDSA implementation to PKCS#11 v3.0. Thanks to Aaron Thompson. [GL !3326] 5396. [func] When necessary (i.e. in libuv >= 1.37), use the UV_UDP_RECVMMSG flag to enable recvmmsg() support in libuv. [GL #1797] 5395. [security] Further limit the number of queries that can be triggered from a request. Root and TLD servers are no longer exempt from max-recursion-queries. Fetches for missing name server address records are limited to 4 for any domain. (CVE-2020-8616) [GL #1388] 5394. [cleanup] Named formerly attempted to change the effective UID and GID in named_os_openfile(), which could trigger a spurious log message if they were already set to the desired values. This has been fixed. [GL #1042] [GL #1090] 5392. [bug] It was possible for named to crash during shutdown or reconfiguration if an RPZ zone was still being updated. [GL #1779] 5390. [security] Replaying a TSIG BADTIME response as a request could trigger an assertion failure. (CVE-2020-8617) [GL #1703] 5389. [bug] Finish PKCS#11 code cleanup, fix a couple of smaller bugs and use PKCS#11 v3.0 EdDSA macros and constants. Thanks to Aaron Thompson. [GL !3391] 5387. [func] Warn about AXFR streams with inconsistent message IDs. [GL #1674] 5386. [cleanup] Address Coverity warnings in lib/dns/keymgr.c. [GL #1737] 5385. [func] Make ISC rwlock implementation the default again. [GL #1753] 5384. [bug] With "dnssec-policy" in effect, "inline-signing" was implicitly set to "yes". Now "inline-signing" is only set to "yes" if the zone is not dynamic. [GL #1709] --- 9.16.2 released --- 5383. [func] Add a quota attach function with a callback and clean up the isc_quota API. [GL !3280] 5382. [bug] Use clock_gettime() instead of gettimeofday() for isc_stdtime() function. [GL #1679] 5381. [bug] Fix logging API data race by adding rwlock and caching logging levels in stdatomic variables to restore performance to original levels. [GL #1675] [GL #1717] 5380. [contrib] Fix building MySQL DLZ modules against MySQL 8 libraries. [GL #1678] 5378. [bug] Receiving invalid DNS data was triggering an assertion failure in nslookup. [GL #1652] 5376. [bug] Fix ineffective DNS rebinding protection when BIND is configured as a forwarding DNS server. Thanks to Tobias Klein. [GL #1574] 5375. [test] Fix timing issues in the "kasp" system test. [GL #1669] 5374. [bug] Statistics counters tracking recursive clients and active connections could underflow. [GL #1087] 5373. [bug] Collecting statistics for DNSSEC signing operations (change 5254) caused an array of significant size (over 100 kB) to be allocated for each configured zone. Each of these arrays is tracking all possible key IDs; this could trigger an out-of-memory condition on servers with a high enough number of zones configured. Fixed by tracking up to four keys per zone and rotating counters when keys are replaced. This fixes the immediate problem of high memory usage, but should be improved in a future release by growing or shrinking the number of keys to track upon key rollover events. [GL #1179] 5372. [bug] Fix migration from existing DNSSEC key files ("auto-dnssec maintain") to "dnssec-policy". [GL #1706] 5371. [bug] Improve incremental updates of the RPZ summary database to reduce delays that could occur when a policy zone update included a large number of record deletions. [GL #1447] 5370. [bug] Deactivation of a netmgr handle associated with a socket could be skipped in some circumstances. Fixed by deactivating the netmgr handle before scheduling the asynchronous close routine. [GL #1700] 5368. [bug] Named failed to restart if 'rndc addzone' names contained special characters (e.g. '/'). [GL #1655] 5367. [bug] Fixed a flaw in the calculation of the zone database size so that "max-journal-size default" uses the correct limit. [GL #1661] --- 9.16.1 released --- 5366. [bug] Fix a race condition with the keymgr when the same zone plus dnssec-policy is configured in multiple views. [GL #1653] 5365. [bug] Algorithm rollover was stuck on submitting DS because keymgr thought it would move to an invalid state. Fixed by checking the current key against the desired state, not the existing state. [GL #1626] 5364. [bug] Algorithm rollover waited too long before introducing zone signatures. It waited to make sure all signatures were regenerated, but when introducing a new algorithm, all signatures are regenerated immediately. Only add the sign delay if there is a predecessor key. [GL #1625] 5363. [bug] When changing a dnssec-policy, existing keys with properties that no longer match were not being retired. [GL #1624] 5361. [bug] named might not accept new connections after hitting tcp-clients quota. [GL #1643] 5360. [bug] delv could fail to load trust anchors in DNSKEY format. [GL #1647] 5358. [bug] Inline master zones whose master files were touched but otherwise unchanged and were subsequently reloaded may have stopped re-signing. [GL !3135] 5357. [bug] Newly added RRSIG records with expiry times before the previous earliest expiry times might not be re-signed in time. This was a side effect of 5315. [GL !3137] --- 9.16.0 released --- 5356. [func] Update dnssec-policy configuration statements: - Rename "zone-max-ttl" dnssec-policy option to "max-zone-ttl" for consistency with the existing zone option. - Allow for "lifetime unlimited" as a synonym for "lifetime PT0S". - Make "key-directory" optional. - Warn if specifying a key length does not make sense; fail if key length is out of range for the algorithm. - Allow use of mnemonics when specifying key algorithm (e.g. "rsasha256", "ecdsa384", etc.). - Make ISO 8601 durations case-insensitive. [GL #1598] 5355. [func] What was set with --with-tuning=large option in older BIND9 versions is now a default, and a --with-tuning=small option was added for small (e.g. OpenWRT) systems. [GL !2989] 5354. [bug] dnssec-policy created new KSK keys for zones in the initial stage of signing (with the DS not yet in the rumoured or omnipresent states). Fix by checking the key goals rather than the active state when determining whether new keys are needed. [GL #1593] 5353. [doc] Document port and dscp parameters in forwarders configuration option. [GL #914] 5352. [bug] Correctly handle catalog zone entries containing characters that aren't legal in filenames. [GL #1592] 5351. [bug] CDS / CDNSKEY consistency checks failed to handle removal records. [GL #1554] 5350. [bug] When a view was configured with class CHAOS, the server could crash while processing a query for a non-existent record. [GL #1540] 5349. [bug] Fix a race in task_pause/unpause. [GL #1571] 5348. [bug] dnssec-settime -Psync was not being honoured. [GL !2925] --- 9.15.8 released --- 5347. [bug] Fixed a bug that could cause an intermittent crash in validator.c when validating a negative cache entry. [GL #1561] 5346. [bug] Make hazard pointer array allocations dynamic, fixing a bug that caused named to crash on machines with more than 40 cores. [GL #1493] 5345. [func] Key-style trust anchors and DS-style trust anchors can now both be used for the same name. [GL #1237] 5344. [bug] Handle accept() errors properly in netmgr. [GL !2880] 5343. [func] Add statistics counters to the netmgr. [GL #1311] 5342. [bug] Disable pktinfo for IPv6 and bind to each interface explicitly instead, because libuv doesn't support pktinfo control messages. [GL #1558] 5341. [func] Simplify passing the bound TCP socket to child threads by using isc_uv_export/import functions. [GL !2825] 5340. [bug] Don't deadlock when binding to a TCP socket fails. [GL #1499] 5339. [bug] With some libmaxminddb versions, named could erroneously match an IP address not belonging to any subnet defined in a given GeoIP2 database to one of the existing entries in that database. [GL #1552] 5338. [bug] Fix line spacing in `rndc secroots`. Thanks to Tony Finch. [GL !2478] 5337. [func] 'named -V' now reports maxminddb and protobuf-c versions. [GL !2686] --- 9.15.7 released --- 5336. [bug] The TCP high-water statistic could report an incorrect value on startup. [GL #1392] 5335. [func] Make TCP listening code multithreaded. [GL !2659] 5334. [doc] Update documentation with dnssec-policy clarifications. Also change some defaults. [GL !2711] 5333. [bug] Fix duration printing on Solaris when value is not an ISO 8601 duration. [GL #1460] 5332. [func] Renamed "dnssec-keys" configuration statement to the more descriptive "trust-anchors". [GL !2702] 5331. [func] Use compiler-provided mechanisms for thread local storage, and make the requirement for such mechanisms explicit in configure. [GL #1444] 5330. [bug] 'configure --without-python' was ineffective if PYTHON was set in the environment. [GL #1434] 5329. [bug] Reconfiguring named caused memory to be leaked when any GeoIP2 database was in use. [GL #1445] 5328. [bug] rbtdb.c:rdataset_{get,set}ownercase failed to obtain a node lock. [GL #1417] 5327. [func] Added a statistics counter to track queries dropped because the recursive-clients quota was exceeded. [GL #1399] 5326. [bug] Add Python dependency on 'distutils.core' to configure. 'distutils.core' is required for installation. [GL #1397] 5325. [bug] Addressed several issues with TCP connections in the netmgr: restored support for TCP connection timeouts, restored TCP backlog support, actively close all open sockets during shutdown. [GL #1312] 5324. [bug] Change the category of some log messages from general to the more appropriate catergory of xfer-in. [GL #1394] 5323. [bug] Fix a bug in DNSSEC trust anchor verification. [GL !2609] 5322. [placeholder] 5321. [bug] Obtain write lock before updating version->records and version->bytes. [GL #1341] 5320. [cleanup] Silence TSAN on header->count. [GL #1344] --- 9.15.6 released --- 5319. [func] Trust anchors can now be configured using DS format to represent a key digest, by using the new "initial-ds" or "static-ds" keywords in the "dnssec-keys" statement. Note: DNSKEY-format and DS-format trust anchors cannot both be used for the same domain name. [GL #622] 5318. [cleanup] The DNSSEC validation code has been refactored for clarity and to reduce code duplication. [GL #622] 5317. [func] A new asynchronous network communications system based on libuv is now used for listening for incoming requests and responding to them. (The old isc_socket API remains in use for sending iterative queries and processing responses; this will be changed too in a later release.) This change will make it easier to improve performance and implement new protocol layers (e.g., DNS over TLS) in the future. [GL #29] 5316. [func] A new "dnssec-policy" option has been added to named.conf to implement a key and signing policy (KASP) for zones. When this option is in use, named can generate new keys as needed and automatically roll both ZSK and KSK keys. (Note that the syntax for this statement differs from the dnssec policy used by dnssec-keymgr.) See the ARM for configuration details. [GL #1134] 5315. [bug] Apply the initial RRSIG expiration spread fixed to all dynamically created records in the zone including NSEC3. Also fix the signature clusters when the server has been offline for prolonged period of times. [GL #1256] 5314. [func] Added a new statistics variable "tcp-highwater" that reports the maximum number of simultaneous TCP clients BIND has handled while running. [GL #1206] 5313. [bug] The default GeoIP2 database location did not match the ARM. 'named -V' now reports the default location. [GL #1301] 5312. [bug] Do not flush the cache for `rndc validation status`. Thanks to Tony Finch. [GL !2462] 5311. [cleanup] Include all views in output of `rndc validation status`. Thanks to Tony Finch. [GL !2461] 5310. [bug] TCP failures were affecting EDNS statistics. [GL #1059] 5309. [placeholder] 5308. [bug] Don't log DNS_R_UNCHANGED from sync_secure_journal() at ERROR level in receive_secure_serial(). [GL #1288] 5307. [bug] Fix hang when named-compilezone output is sent to pipe. Thanks to Tony Finch. [GL !2481] 5306. [security] Set a limit on number of simultaneous pipelined TCP queries. (CVE-2019-6477) [GL #1264] 5305. [bug] NSEC Aggressive Cache ("synth-from-dnssec") has been disabled by default because it was found to have a significant performance impact on the recursive service. [GL #1265] 5304. [bug] "dnskey-sig-validity 0;" was not being accepted. [GL #876] 5303. [placeholder] 5302. [bug] Fix checking that "dnstap-output" is defined when "dnstap" is specified in a view. [GL #1281] 5301. [bug] Detect partial prefixes / incomplete IPv4 address in acls. [GL #1143] 5300. [bug] dig/mdig/delv: Add a colon after EDNS option names, even when the option is empty, to improve readability and allow correct parsing of YAML output. [GL #1226] --- 9.15.5 released --- 5299. [security] A flaw in DNSSEC verification when transferring mirror zones could allow data to be incorrectly marked valid. (CVE-2019-6475) [GL #1252] 5298. [security] Named could assert if a forwarder returned a referral, rather than resolving the query, when QNAME minimization was enabled. (CVE-2019-6476) [GL #1051] 5297. [bug] Check whether a previous QNAME minimization fetch is still running before starting a new one; return SERVFAIL and log an error if so. [GL #1191] 5296. [placeholder] 5295. [cleanup] Split dns_name_copy() calls into dns_name_copy() and dns_name_copynf() for those calls that can potentially fail and those that should not fail respectively. [GL !2265] 5294. [func] Fallback to ACE name on output in locale, which does not support converting it to unicode. [GL #846] 5293. [bug] On Windows, named crashed upon any attempt to fetch XML statistics from it. [GL #1245] 5292. [bug] Queue 'rndc nsec3param' requests while signing inline zone changes. [GL #1205] --- 9.15.4 released --- 5291. [placeholder] 5290. [placeholder] 5289. [bug] Address NULL pointer dereference in rpz.c:rpz_detach. [GL #1210] 5288. [bug] dnssec-must-be-secure was not always honored. [GL #1209] 5287. [placeholder] 5286. [contrib] Address potential NULL pointer dereferences in dlz_mysqldyn_mod.c. [GL #1207] 5285. [port] win32: implement "-T maxudpXXX". [GL #837] 5284. [func] Added +unexpected command line option to dig. By default, dig won't accept a reply from a source other than the one to which it sent the query. Invoking dig with +unexpected argument will allow it to process replies from unexpected sources. 5283. [bug] When a response-policy zone expires, ensure that its policies are removed from the RPZ summary database. [GL #1146] 5282. [bug] Fixed a bug in searching for possible wildcard matches for query names in the RPZ summary database. [GL #1146] 5281. [cleanup] Don't escape commas when reporting named's command line. [GL #1189] 5280. [protocol] Add support for displaying EDNS option LLQ. [GL #1201] 5279. [bug] When loading, reject zones containing CDS or CDNSKEY RRsets at the zone apex if they would cause DNSSEC validation failures if published in the parent zone as the DS RRset. [GL #1187] 5278. [func] Add YAML output formats for dig, mdig and delv; use the "+yaml" option to enable. [GL #1145] --- 9.15.3 released --- 5277. [bug] Cache DB statistics could underflow when serve-stale was in use, because of a bug in counter maintenance when RRsets become stale. Functions for dumping statistics have been updated to dump active, stale, and ancient statistic counters. Ancient RRset counters are prefixed with '~'; stale RRset counters are still prefixed with '#'. [GL #602] 5276. [func] DNSSEC Lookaside Validation (DLV) is now obsolete; all code enabling its use has been removed from the validator, "delv", and the DNSSEC tools. [GL #7] 5275. [bug] Mark DS records included in referral messages with trust level "pending" so that they can be validated and cached immediately, with no need to re-query. [GL #964] 5274. [bug] Address potential use after free race when shutting down rpz. [GL #1175] 5273. [bug] Check that bits [64..71] of a dns64 prefix are zero. [GL #1159] 5272. [cleanup] Remove isc-config.sh script as the BIND 9 libraries are now purely internal. [GL #1123] 5271. [func] The normal (non-debugging) output of dnssec-signzone and dnssec-verify tools now goes to stdout, instead of the combination of stderr and stdout. 5270. [bug] 'dig +expandaaaa +short' did not work. [GL #1152] 5269. [port] cygwin: can return ETIMEDOUT on connect() with a non-blocking socket. [GL #1133] 5268. [placeholder] 5267. [func] Allow statistics groups display to be toggle-able. [GL #1030] 5266. [bug] named-checkconf failed to report dnstap-output missing from named.conf when dnstap was specified. [GL #1136] 5265. [bug] DNS64 and RPZ nodata (CNAME *.) rules interacted badly [GL #1106] 5264. [func] New DNS Cookie algorithm - siphash24 - has been added to BIND 9, and the old HMAC-SHA DNS Cookie algorithms have been removed. [GL #605] --- 9.15.2 released --- 5263. [cleanup] Use atomics and isc_refcount_t wherever possible. [GL #1038] 5262. [func] Removed support for the legacy GeoIP API. [GL #1112] 5261. [cleanup] Remove SO_BSDCOMPAT socket option usage. 5260. [bug] dnstap-read was producing malformed output for large packets. [GL #1093] 5259. [func] New option '-i' for 'named-checkconf' to ignore warnings about deprecated options. [GL #1101] 5258. [func] Added support for the GeoIP2 API from MaxMind. This will be compiled in by default if the "libmaxminddb" library is found at compile time, but can be suppressed using "configure --disable-geoip". Certain geoip ACL settings that were available with legacy GeoIP are not available when using GeoIP2. [GL #182] 5257. [bug] Some statistics data was not being displayed. Add shading to the zone tables. [GL #1030] 5256. [bug] Ensure that glue records are included in root priming responses if "minimal-responses" is not set to "yes". [GL #1092] 5255. [bug] Errors encountered while reloading inline-signing zones could be ignored, causing the zone content to be left in an incompletely updated state rather than reverted. [GL #1109] 5254. [func] Collect metrics to report to the statistics-channel DNSSEC signing operations (dnssec-sign) and refresh operations (dnssec-refresh) per zone and per keytag. [GL #513] 5253. [port] Support platforms that don't define ULLONG_MAX. [GL #1098] 5252. [func] Report if the last 'rndc reload/reconfig' failed in rndc status. [GL !2040] 5251. [bug] Statistics were broken in x86 Windows builds. [GL #1081] 5250. [func] The default size for RSA keys is now 2048 bits, for both ZSKs and KSKs. [GL #1097] 5249. [bug] Fix a possible underflow in recursion clients statistics when hitting recursive clients soft quota. [GL #1067] --- 9.15.1 released --- 5248. [func] To clarify the configuration of DNSSEC keys, the "managed-keys" and "trusted-keys" options have both been deprecated. The new "dnssec-keys" statement can now be used for all trust anchors, with the keywords "iniital-key" or "static-key" to indicate whether the configured trust anchor should be used for initialization of RFC 5011 key management, or as a permanent trust anchor. The "static-key" keyword will generate a warning if used for the root zone. Configurations using "trusted-keys" or "managed-keys" will continue to work with no changes, but will generate warnings in the log. In a future release, these options will be marked obsolete. [GL #6] 5247. [cleanup] The 'cleaning-interval' option has been removed. [GL !1731] 5246. [func] Log TSIG if appropriate in 'sending notify to' message. [GL #1058] 5245. [cleanup] Reduce logging level for IXFR up-to-date poll responses. [GL #1009] 5244. [security] Fixed a race condition in dns_dispatch_getnext() that could cause an assertion failure if a significant number of incoming packets were rejected. (CVE-2019-6471) [GL #942] 5243. [bug] Fix a possible race between dispatcher and socket code in a high-load cold-cache resolver scenario. [GL #943] 5242. [bug] In relaxed qname minimization mode, fall back to normal resolution when encountering a lame delegation, and use _.domain/A queries rather than domain/NS. [GL #1055] 5241. [bug] Fix Ed448 private and public key ASN.1 prefix blobs. [GL #225] 5240. [bug] Remove key id calculation for RSAMD5. [GL #996] 5239. [func] Change the json-c detection to pkg-config. [GL #855] 5238. [bug] Fix a possible deadlock in TCP code. [GL #1046] 5237. [bug] Recurse to find the root server list with 'dig +trace'. [GL #1028] 5236. [func] Add SipHash 2-4 implementation in lib/isc/siphash.c and switch isc_hash_function() to use SipHash 2-4. [GL #605] 5235. [cleanup] Refactor lib/isc/app.c to be thread-safe, unused parts of the API has been removed and the isc_appctx_t data type has been changed to be fully opaque. [GL #1023] 5234. [port] arm: just use the compiler's default support for yield. [GL #981] --- 9.15.0 released --- 5233. [bug] Negative trust anchors did not work with "forward only;" to validating resolvers. [GL #997] 5232. [placeholder] 5231. [protocol] Add support for displaying CLIENT-TAG and SERVER-TAG. [GL #960] 5230. [protocol] The SHA-1 hash algorithm is no longer used when generating DS and CDS records. [GL #1015] 5229. [protocol] Enforce known SSHFP fingerprint lengths. [GL #852] 5228. [func] If trusted-keys and managed-keys were configured simultaneously for the same name, the key could not be be rolled automatically. This is now a fatal configuration error. [GL #868] 5227. [placeholder] 5226. [placeholder] 5225. [func] Allow dig to print out AAAA record fully expanded. with +[no]expandaaaa. [GL #765] 5224. [bug] Only test provide-ixfr on TCP streams. [GL #991] 5223. [bug] Fixed a race in the filter-aaaa plugin accessing the hash table. [GL #1005] 5222. [bug] 'delv -t ANY' could leak memory. [GL #983] 5221. [test] Enable parallel execution of system tests on Windows. [GL !4101] 5220. [cleanup] Refactor the isc_stat structure to take advantage of stdatomic. [GL !1493] 5219. [bug] Fixed a race in the filter-aaaa plugin that could trigger a crash when returning an instance object to the memory pool. [GL #982] 5218. [bug] Conditionally include <dlfcn.h>. [GL #995] 5217. [bug] Restore key id calculation for RSAMD5. [GL #996] 5216. [bug] Fetches-per-zone counter wasn't updated correctly when doing qname minimization. [GL #992] 5215. [bug] Change #5124 was incomplete; named could still return FORMERR instead of SERVFAIL in some cases. [GL #990] 5214. [bug] win32: named now removes its lock file upon shutdown. [GL #979] 5213. [bug] win32: Eliminated a race which allowed named.exe running as a service to be killed prematurely during shutdown. [GL #978] 5212. [placeholder] 5211. [bug] Allow out-of-zone additional data to be included in authoritative responses if recursion is allowed and "minimal-responses" is disabled. This behavior was inadvertently removed in change #4605. [GL #817] 5210. [bug] When dnstap is enabled and recursion is not available, incoming queries are now logged as "auth". Previously, this depended on whether recursion was requested by the client, not on whether recursion was available. [GL #963] 5209. [bug] When update-check-ksk is true, add_sigs was not considering offline keys, leaving record sets signed with the incorrect type key. [GL #763] 5208. [test] Run valid rdata wire encodings through totext+fromtext and tofmttext+fromtext methods to check these methods. [GL #899] 5207. [test] Check delv and dig TTL values. [GL #965] 5206. [bug] Delv could print out bad TTLs. [GL #965] 5205. [bug] Enforce that a DS hash exists. [GL #899] 5204. [test] Check that dns_rdata_fromtext() produces a record that will be accepted by dns_rdata_fromwire(). [GL #852] 5203. [bug] Enforce whether key rdata exists or not in KEY, DNSKEY, CDNSKEY and RKEY. [GL #899] 5202. [bug] <dns/ecs.h> was missing ISC_LANG_ENDDECLS. [GL #976] 5201. [bug] Fix a possible deadlock in RPZ update code. [GL #973] 5200. [security] tcp-clients settings could be exceeded in some cases, which could lead to exhaustion of file descriptors. (CVE-2018-5743) [GL #615] 5199. [security] In certain configurations, named could crash if nxdomain-redirect was in use and a redirected query resulted in an NXDOMAIN from the cache. (CVE-2019-6467) [GL #880] 5198. [bug] If a fetch context was being shut down and, at the same time, we returned from qname minimization, an INSIST could be hit. [GL #966] 5197. [bug] dig could die in best effort mode on multiple SIG(0) records. Similarly on multiple OPT and multiple TSIG records. [GL #920] 5196. [bug] make install failed with --with-dlopen=no. [GL #955] 5195. [bug] "allow-update" and "allow-update-forwarding" were treated as configuration errors if used at the options or view level. [GL #913] 5194. [bug] Enforce non empty ZOMEMD hash. [GL #899] 5193. [bug] EID and NIMLOC failed to do multi-line output correctly. [GL #899] 5192. [placeholder] 5191. [placeholder] 5190. [bug] Ignore trust anchors using disabled algorithms. [GL #806] 5189. [cleanup] Remove revoked root DNSKEY from bind.keys. [GL #945] 5188. [func] The "dnssec-enable" option is deprecated and no longer has any effect; DNSSEC responses are always enabled. [GL #866] 5187. [test] Set time zone before running any tests in dnstap_test. [GL #940] 5186. [cleanup] More dnssec-keygen manual tidying. [GL !1678] 5185. [placeholder] 5184. [bug] Missing unlocks in sdlz.c. [GL #936] 5183. [bug] Reinitialize ECS data before reusing client structures. [GL #881] 5182. [bug] Fix a high-load race/crash in handling of isc_socket_close() in resolver. [GL #834] 5181. [func] Add a mechanism for a DLZ module to signal that the view's allow-transfer ACL should be used to determine whether transfers are allowed. [GL #803] 5180. [bug] delv now honors the operating system's preferred ephemeral port range. [GL #925] 5179. [cleanup] Replace some vague type declarations with the more specific dns_secalg_t and dns_dsdigest_t. Thanks to Tony Finch. [GL !1498] 5178. [bug] Handle EDQUOT (disk quota) and ENOSPC (disk full) errors when writing files. [GL #902] 5177. [func] Add the ability to specify in named.conf whether a response-policy zone's SOA record should be added to the additional section (add-soa yes/no). [GL #865] 5176. [tests] Remove a dependency on libxml in statschannel system test. [GL #926] 5175. [bug] Fixed a problem with file input in dnssec-keymgr, dnssec-coverage and dnssec-checkds when using python3. [GL #882] 5174. [doc] Tidy dnssec-keygen manual. [GL !1557] 5173. [bug] Fixed a race in socket code that could occur when accept, send, or recv were called from an event loop but the socket had been closed by another thread. [RT #874] 5172. [bug] nsupdate now honors the operating system's preferred ephemeral port range. [GL #905] 5171. [func] named plugins are now installed into a separate directory. Supplying a filename (a string without path separators) in a "plugin" configuration stanza now causes named to look for that plugin in that directory. [GL #878] 5170. [test] Added --with-dlz-filesystem to feature-test. [GL !1587] 5169. [bug] The presence of certain types in an otherwise empty node could cause a crash while processing a type ANY query. [GL #901] 5168. [bug] Do not crash on shutdown when RPZ fails to load. Also, keep previous version of the database if RPZ fails to load. [GL #813] 5167. [bug] nxdomain-redirect could sometimes lookup the wrong redirect name. [GL #892] 5166. [placeholder] 5165. [contrib] Removed SDB drivers from contrib; they're obsolete. [GL #428] 5164. [bug] Correct errno to result translation in dlz filesystem modules. [GL #884] 5163. [cleanup] Out-of-tree builds failed --enable-dnstap. [GL #836] 5162. [cleanup] Improve dnssec-keymgr manual. Thanks to Tony Finch. [GL !1518] 5161. [bug] Do not require the SEP bit to be set for mirror zone trust anchors. [GL #873] 5160. [contrib] Added DNAME support to the DLZ LDAP schema. Also fixed a compilation bug affecting several DLZ modules. [GL #872] 5159. [bug] dnssec-coverage was incorrectly ignoring names specified on the command line without trailing dots. [GL !1478] 5158. [protocol] Add support for AMTRELAY and ZONEMD. [GL #867] 5157. [bug] Nslookup now errors out if there are extra command line arguments. [GL #207] 5156. [doc] Extended and refined the section of the ARM describing mirror zones. [GL #774] 5155. [func] "named -V" now outputs the default paths to named.conf, rndc.conf, bind.keys, and other files used or created by named and other tools, so that the correct paths to these files can quickly be determined regardless of the configure settings used when BIND was built. [GL #859] 5154. [bug] dig: process_opt could be called twice on the same message leading to a assertion failure. [GL #860] 5153. [func] Zone transfer statistics (size, number of records, and number of messages) are now logged for outgoing transfers as well as incoming ones. [GL #513] 5152. [func] Improved logging of DNSSEC key events: - Zone signing and DNSKEY maintenance events are now logged to the "dnssec" category - Messages are now logged when DNSSEC keys are published, activated, inactivated, deleted, or revoked. [GL #714] 5151. [func] Options that have been been marked as obsolete in named.conf for a very long time are now fatal configuration errors. [GL #358] 5150. [cleanup] Remove the ability to compile BIND with assertions disabled. [GL #735] 5149. [func] "rndc dumpdb" now prints a line above a stale RRset indicating how long the data will be retained in the cache for emergency use. [GL #101] 5148. [bug] named did not sign the TKEY response. [GL #821] 5147. [bug] dnssec-keymgr: Add a five-minute margin to better handle key events close to 'now'. [GL #848] 5146. [placeholder] 5145. [func] Use atomics instead of locked variables for isc_quota and isc_counter. [GL !1389] 5144. [bug] dig now returns a non-zero exit code when a TCP connection is prematurely closed by a peer more than once for the same lookup. [GL #820] 5143. [bug] dnssec-keymgr and dnssec-coverage failed to find key files for zone names ending in ".". [GL #560] 5142. [cleanup] Removed "configure --disable-rpz-nsip" and "--disable-rpz-nsdname" options. "nsip-enable" and "nsdname-enable" both now default to yes, regardless of compile-time settings. [GL #824] 5141. [security] Zone transfer controls for writable DLZ zones were not effective as the allowzonexfr method was not being called for such zones. (CVE-2019-6465) [GL #790] 5140. [bug] Don't immediately mark existing keys as inactive and deleted when running dnssec-keymgr for the first time. [GL #117] 5139. [bug] If possible, don't use forwarders when priming. This ensures we can get root server IP addresses from priming query response glue, which may not be present if the forwarding server is returning minimal responses. [GL #752] 5138. [bug] Under some circumstances named could hit an assertion failure when doing qname minimization when using forwarders. [GL #797] 5137. [func] named now logs messages whenever a mirror zone becomes usable or unusable for resolution purposes. [GL #818] 5136. [cleanup] Check in named-checkconf that allow-update and allow-update-forwarding are not set at the view/options level; fix documentation. [GL #512] 5135. [port] sparc: Use smt_pause() instead of pause. [GL #816] 5134. [bug] win32: WSAStartup was not called before getservbyname was called. [GL #590] 5133. [bug] 'rndc managed-keys' didn't handle class and view correctly and failed to add new lines between each view. [GL !1327] 5132. [bug] Fix race condition in cleanup part of dns_dt_create(). [GL !1323] 5131. [cleanup] Address Coverity warnings. [GL #801] 5130. [cleanup] Remove support for l10n message catalogs. [GL #709] 5129. [contrib] sdlz_helper.c:build_querylist was not properly splitting the query string. [GL #798] 5128. [bug] Refreshkeytime was not being updated for managed keys zones. [GL #784] 5127. [bug] rcode.c:maybe_numeric failed to handle NUL in text regions. [GL #807] 5126. [bug] Named incorrectly accepted empty base64 and hex encoded fields when reading master files. [GL #807] 5125. [bug] Allow for up to 100 records or 64k of data when caching a negative response. [GL #804] 5124. [bug] Named could incorrectly return FORMERR rather than SERVFAIL. [GL #804] 5123. [bug] dig could hang indefinitely after encountering an error before creating a TCP socket. [GL #692] 5122. [bug] In a "forward first;" configuration, a forwarder timeout did not prevent that forwarder from being queried again after falling back to full recursive resolution. [GL #315] 5121. [contrib] dlz_stub_driver.c fails to return ISC_R_NOTFOUND on none matching zone names. [GL !1299] 5120. [placeholder] 5119. [placeholder] 5118. [security] Named could crash if it is managing a key with `managed-keys` and the authoritative zone is rolling the key to an unsupported algorithm. (CVE-2018-5745) [GL #780] 5117. [placeholder] 5116. [bug] Named/named-checkconf triggered a assertion when a mirror zone's name is bad. [GL #778] 5115. [bug] Allow unsupported algorithms in zone when not used for signing with dnssec-signzone. [GL #783] 5114. [func] Include a 'reconfig/reload in progress' status line in rndc status, use it in tests. 5113. [port] Fixed a Windows build error. 5112. [bug] Named/named-checkconf could dump core if there was a missing masters clause and a bad notify clause. [GL #779] 5111. [bug] Occluded DNSKEY records could make it into the delegating NSEC/NSEC3 bitmap. [GL #742] 5110. [security] Named leaked memory if there were multiple Key Tag EDNS options present. (CVE-2018-5744) [GL #772] 5109. [cleanup] Remove support for RSAMD5 algorithm. [GL #628]
282 lines
11 KiB
Plaintext
282 lines
11 KiB
Plaintext
Building BIND 9 on Windows has the following prerequisites:
|
|
|
|
1) You need to install Perl for Windows. ActivePerl
|
|
(http://www.activestate.com/) and Strawberry Perl
|
|
(http://www.strawberryperl.com) have both been tested and found
|
|
to work.
|
|
|
|
2) libuv (https://libuv.org/) must be downloaded and built on the
|
|
system on which you are building BIND 9.
|
|
|
|
3) OpenSSL (https://www.openssl.org) must be downloaded and built on
|
|
the system on which you are building BIND 9.
|
|
|
|
4) If you wish to use the statistics channel, LibXML2
|
|
(ftp://xmlsoft.org/libxml2) must be downloaded and built on
|
|
the system on which you are building BIND 9.
|
|
|
|
5) Optional external packages (not used by default)
|
|
|
|
If you wish to use IP geolocation, GeoIP API and database must be
|
|
downloaded, patched and built on the system on which you are building
|
|
BIND 9.
|
|
|
|
If you wish to use zlib/deflate on the statistics channel, zlib
|
|
must be downloaded and built on the system on which you are building
|
|
BIND 9.
|
|
|
|
If you wish to use python tools, you need a python (version 2 or 3)
|
|
interpreter with its standard libraries.
|
|
|
|
If you wish to use readline, the readline library must be downloaded
|
|
and built on the system on which you are building BIND 9.
|
|
|
|
6) The BIND 9 Installer (BINDInstall) includes a copy of the
|
|
redistributable runtime object vcredist_x86.exe (or vcredist_x64.exe),
|
|
which is included with Visual Studio and can be downloaded from
|
|
Microsoft. This file must be in place prior to running Configure.
|
|
|
|
Step 1: Download and build libuv
|
|
|
|
Download and untar the libuv sources from https://libuv.org/ in the same
|
|
directory in which you extracted the BIND 9 source: if BIND 9 is in
|
|
\build\bind-9.16.0, for instance, libuv should be in \build\libuv-v1.34.2
|
|
(subject to version number changes).
|
|
|
|
As of this writing, a patch (win32utils/libuv.diff) needs to be applied
|
|
to the libuv source code in order for it to work with BIND on Windows. A
|
|
pull request including the changes from this patch has been submitted to
|
|
the libuv maintainers:
|
|
|
|
https://github.com/libuv/libuv/pull/2653
|
|
|
|
Applying the win32utils/libuv.diff patch will no longer be necessary
|
|
for libuv versions released after this pull request has been merged.
|
|
|
|
To build libuv, use the vcbuild.bat script in the root directory of
|
|
libuv's source tree. Here is a sample command which builds a 64-bit
|
|
shared libuv library:
|
|
|
|
cd libuv-v1.34.2
|
|
vcbuild.bat x64 shared
|
|
|
|
The vcbuild.bat script supports several command line switches which can
|
|
be listed by running "vcbuild.bat --help".
|
|
|
|
Step 2: Download and build OpenSSL
|
|
|
|
Download and untar the OpenSSL sources from https://www.openssl.org/ in
|
|
the same directory in which you extracted the BIND 9 source: if BIND 9 is
|
|
in \build\bind-9.16.0, for instance, OpenSSL should be in
|
|
\build\openssl-1.1.1d (subject to version number changes).
|
|
|
|
Note: Building OpenSSL requires that you install Perl and NASM as it
|
|
uses these during its build process. The following commands work as of
|
|
openssl-1.1.1d, but you should check the OpenSSL distribution to see
|
|
if the build instructions in the INSTALL file have changed:
|
|
|
|
(In an x64 Visual Studio Command Prompt window)
|
|
cd openssl-1.1.1d
|
|
perl Configure VC-WIN64A
|
|
nmake
|
|
|
|
Step 3: Download and build LibXML2
|
|
|
|
LibXML2 is required to use the statistics channel. If you wish to
|
|
build BIND 9 without support for this feature, skip to step 4.
|
|
|
|
Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2 in
|
|
the same directory in which you extracted the BIND 9 source: if BIND 9 is
|
|
in \build\bind-9.16.0, for instance, libxml2 should be in
|
|
\build\libxml2-2.9.2 (subject to version number changes).
|
|
|
|
Now build libxml2:
|
|
|
|
cd libxml2-2.9.2\win32
|
|
cscript configure.js iconv=no
|
|
nmake /f Makefile.msvc
|
|
|
|
Step 4: Download and build zlib
|
|
|
|
The statistics channel (aka internal HTTP server) can support
|
|
zlib "deflate" compression method. If you don't want to this
|
|
feature, skip to step 5.
|
|
|
|
Download and untar the zlib sources from https://www.zlib.net in the same
|
|
directory in which you extracted the BIND 9 source: if BIND 9 is in
|
|
\build\bind-9.16.0, for instance, zlib should be in \build\zlib-1.2.11
|
|
(subject to version number changes).
|
|
|
|
Read the win32\Makefile.msc for the Usage comment at the beginning of
|
|
this file, then build the zlib1.dll DLL for the intended processor (i.e.,
|
|
win32 aka x86, or x64), e.g.:
|
|
|
|
cd zlib-1.2.11
|
|
nmake /f win32\Makefile.msc
|
|
|
|
Step 5: Download and build GeoIP
|
|
|
|
Geographic ("geoip") ACLs require libGeoIP. If you wish to build BIND 9
|
|
without support for this feature, skip to step 6.
|
|
|
|
The libGeoIP source code is available from:
|
|
|
|
https://github.com/maxmind/geoip-api-c/releases.
|
|
|
|
As of this writing, the current version of libGeoIP is 1.6.0. There
|
|
is a known bug in this and all prior versions which prevents it from
|
|
building a suitable DLL with thread support on Windows. You can apply
|
|
the patch file bind9/win32utils/GeoIP.diff to address the problem.
|
|
This patch has been submitted upstream, and will be included in
|
|
future versions of libGeoIP.
|
|
|
|
Step 6: Enable python tools
|
|
|
|
Some python packages are required: argparse, ply, win32con and win32api.
|
|
Last CPython's (version 2 or 3) from https://www.python.org include
|
|
the pip package manager which can install missing packages, for
|
|
instance for the 2 last packages 'pip install pypiwin32' downloads and
|
|
installs win32con and win32api.
|
|
|
|
Note when the python interpreter is in the command path and
|
|
the required packages available the Configure script will detect
|
|
them and add python tools to the BIND 9 build.
|
|
|
|
To be used a python tool must be invoked with python (e.g.,
|
|
python dnssec-checkds.py <args>) as the shebang doesn't work
|
|
on Windows. The isc package should be installed too, cf step 12.
|
|
Unlike on Unix systems, this isc package uses the Registry to
|
|
learn where BIND 9 was installed in step 11.
|
|
|
|
Step 7: Download and build Readline
|
|
|
|
The readline library adds command-line editing in nslookup and nsupdate.
|
|
If you wish to build BIND 9 without support for this feature, skip to
|
|
step 8.
|
|
|
|
Because the original GNU source for the readline library has no WIN32
|
|
support, it will be necessary to download a version of the static
|
|
readline library source that is ready to be built by Visual Studio. One
|
|
such version is available at:
|
|
|
|
http://gpsim.sourceforge.net/gpsimWin32/gpsimWin32.html#readline_lib
|
|
|
|
Note: Windows command (cmd.exe) provides an integrated line editing
|
|
feature so it is not recommended to configure bind with readline.
|
|
|
|
Step 8: Make the redistributable runtime object available
|
|
|
|
Check that the Microsoft redistributable object (vcredist_x86.exe or
|
|
vcredist_x64.exe) is available to the build. The file may be placed
|
|
in the directory in which the BIND 9 source was extracted (for
|
|
instance, if BIND 9 is in \build\bind-9.16.0, the redistributable
|
|
may be placed in \build\vcredist_x86.exe). Or, the path to the file
|
|
can be specified via the VCREDIST_PATH environment variable, or via
|
|
the "with-vcredist=PATH" option to the configuration script (see
|
|
step 9). If none of these options is used, Configure will attempt to
|
|
find the redistributable based on clues in the build environment.
|
|
|
|
Step 9: Configuring the BIND 9 build
|
|
|
|
From the command prompt, cd to the win32utils directory under
|
|
the BIND 9 root:
|
|
|
|
cd bind-9.16.0\win32utils
|
|
|
|
In this directory, you can prepare the Windows build by running:
|
|
|
|
perl Configure <options> x64
|
|
|
|
This will set up all the files needed for building BIND 9 according
|
|
to the given options. To see the available options, run:
|
|
|
|
perl Configure help
|
|
|
|
To remove all files generated by Configure, run:
|
|
|
|
perl Configure clean
|
|
|
|
Step 10: Building BIND 9
|
|
|
|
Building using 'nmake' or older versions of Visual Studio
|
|
(e.g. VS 2005 or VS 2008) is no longer supported.
|
|
|
|
Building with a version of Visual Studio newer than VS 2010
|
|
requires the solution to first be upgraded by running:
|
|
|
|
devenv bind9.sln /upgrade
|
|
|
|
If the build host only has Visual Studio Build Tools available
|
|
and not a full Visual Studio installation, devenv.exe will not
|
|
be present. In that case, the Configure invocation from step 9
|
|
must be extended with the following parameters set to values
|
|
matching the Visual Studio Build Tools version used:
|
|
|
|
with-tools-version
|
|
with-platform-version
|
|
with-platform-toolset
|
|
|
|
Example use for a 64-bit Visual Studio 2017 build:
|
|
|
|
perl Configure ^
|
|
with-tools-version=15.0 ^
|
|
with-platform-toolset=v141 ^
|
|
with-platform-version=10.0.17763.0 ^
|
|
...
|
|
x64
|
|
|
|
To build using the Visual Studio GUI in VS 2010 or newer:
|
|
open the bind9.sln solution file; this will load the project
|
|
files for all of the BIND 9 libraries and applications. Select
|
|
"Build->Batch Build", click "Select All", then click "Build".
|
|
|
|
To build using MSBuild in VS 2010 or newer: call MSBuild on
|
|
the bind9.sln solution file:
|
|
|
|
msbuild /t:Build /p:Configuration=Release bind9.sln
|
|
msbuild /t:Build /p:Configuration=Debug bind9.sln
|
|
|
|
Note: This mode does not support building for Windows XP.
|
|
|
|
After this step this documentation applies to external or remote
|
|
builds, i.e., is common with installation.
|
|
|
|
Step 11: Install
|
|
|
|
Installation is accomplished by running the BINDInstall program. All
|
|
DLL's are copied to the Program Files area and all applications
|
|
(including BINDInstall which may be necessary for uninstalling BIND
|
|
9) to the bin directory. If BIND 8 has previously been installed on
|
|
the system it must be uninstalled first by running it's own
|
|
BINDInstall program. The BIND 9 installer does not yet do this.
|
|
|
|
Note: BINDInstall.exe requires the MFC (Microsoft Foundation Class).
|
|
This is only distributed with non-free (i.e., not "Express") versions of
|
|
Visual Studio. The other BIND 9 libraries and applications do not have
|
|
this dependency.
|
|
|
|
The very last version of BINDInstall uses two files created by
|
|
the Configure perl script:
|
|
- InstallFlags: 32/64 bit build, and/or should the redistributable
|
|
object be run.
|
|
- InstallFiles: the list of files to install with for each files
|
|
4 flags (destination, importance, check version and part of tools).
|
|
The idea is to be able to use any BINDInstall.exe binary so
|
|
a non-free version of Visual Studio is no longer required.
|
|
|
|
Step 12: Python package install
|
|
|
|
When BIND 9 was built with python support, the isc python package
|
|
must be installed locally by:
|
|
|
|
cd <top-bind9-directory>
|
|
cd bin/python
|
|
python setup.py install
|
|
|
|
(replace 'python' by the path of your python interpreter if needed.)
|
|
|
|
BIND 9 python tools should work with version 2 or 3, 32 or 64 bits.
|
|
|
|
Please report bugs, whether in the process of building the application
|
|
or in BIND 9 itself, at https://gitlab.isc.org/isc-projects/bind9.
|