Unbound 1.5.0 release

Hi,

Unbound 1.5.0 is available
http://www.unbound.net/downloads/unbound-1.5.0.tar.gz
sha1: 6eb6d783b7376a48dc0b3dccfd8723d7074b4279
sha256: 9fde4aeb8258bc864cd5e5d6d9b8bcf8fa12a57059424fece1c6adcc6387b876

The 1.5.0 release for unbound has the usual list of bugfixes, as well
as a couple of features: a DNS64 module for dns64 support and DNSTAP
support (for information gathering). Additionally, it has better
random number generation on many platforms with better entropy.
Libunbound has a new routine ub_ctx_add_ta_autr() to add an RFC5011
tracked anchor while using the library. Statistics prints number of
tcp outgoing traffic. Unbound-control can flush_negative all error
and nonexist responses for use when a validating-end-host changes
networks. Unbound.conf has unblock-lan-zones for use when unbound is
running in a LAN.

The libunbound API version is incremented, it is binary compatible with
the previous one (an extra function is available in the dynamic library).

Features
- - This release has DNS64, DNSTAP, better random numbers and
ub_ctx_add_ta_autr(), num.query.tcpout=value, flush_negative,
unblock-lan-zones conf.
- - C.ROOT-SERVERS.NET has an IPv6 address, and we updated the root
hints (patch from Anand Buddhdev).
- - Patch from Hannes Frederic Sowa for Linux 3.15 fragmentation
option for DNS fragmentation defense.
- - unbound-control stats prints num.query.tcpout with number of TCP
outgoing queries made in the previous statistics interval.
- - Patch from Jeremie Courreges-Anglas to use arc4random_uniform if
available on the OS, it gets entropy from the OS.
- - Add unbound-control flush_negative that flushed nxdomains, nodata,
and errors from the cache. For dnssec-trigger and NetworkManager,
fixes cases where network changes have localdata that was already
negatively cached from the previous network.
- - Contrib windows scripts from Yuri Voinov added to src/contrib:
create_unbound_ad_servers.cmd: enters anti-ad server lists.
unbound_cache.cmd: saves and loads the cache. Also warmup.cmd (and
.sh): warm up the DNS cache with your MRU domains.
- - Added unbound-control-setup.cmd from Yuri Voinov to the windows
unbound distribution set. It requires openssl installed in %PATH%.
- - Implement draft-ietf-dnsop-rfc6598-rfc6303-01.
- - Feature, unblock-lan-zones: yesno that you can use to make unbound
perform 10.0.0.0/8 and other reverse lookups normally, for use if
unbound is running service for localhost on localhost.
- - unbound-host -D enabled dnssec and reads root trust anchor from
the default root key file that was compiled in.
- - Add AAAA for B root server to default root hints.
- - unbound-control status reports if so-reuseport was successful.
- - so-reuseport is available on BSDs(such as FreeBSD 10) and OS/X.
- - arc4random in compat/ and getentropy, explicit_bzero, chacha for
dependencies, from OpenBSD. arc4_lock and sha512 in compat. This makes
arc4random available on all platforms, except when compiled with
LIBNSS (it uses libNSS crypto random).
- - Patch from Dag-Erling Smorgrav that implements that: unbound -dd
does not fork in the background and also logs to stderr.
- - DNS64 from Viagenie (BSD Licensed), written by Simon Perrault.
Initial commit of the patch from the FreeBSD base (with its fixes).
This adds a module (for module-config in unbound.conf) dns64 that
performs DNS64 processing, see README.DNS64.
- - Patch add msg, rrset, infra and key cache sizes to stats command
from Maciej Soltysiak.
- - DNSTAP support, with a patch from Farsight Security, written by
Robert Edmonds. The --enable-dnstap needs libfstrm and protobuf-c. It
is BSD licensed (see dnstap/dnstap.c). Also --with-libfstrm and
- --with-protobuf-c configure options.
- - type CDS and CDNSKEY types.
- - Updated the TCP_BACLOG from 5 to 256, so that the tcp accept queue
is longer and more tcp connections can be handled.
- - Add ub_ctx_add_ta_autr function to add a RFC5011 automatically
tracked trust anchor to libunbound.

Bug Fixes
- - Fix print filename of encompassing config file on read failure.
- - Patch from Stuart Henderson to build unbound-host man from .1.in.
- - [bugzilla: 569 ] Fix do_tcp is do-tcp in unbound.conf man page.
- - [bugzilla: 572 ] Fix unit test failure for systems with different
/etc/services.
- - iana portlist updated.
- - [bugzilla: 574 ] Fix make test fails on Ubuntu 14.04. Disabled
remote-control in testbound scripts.
- - Documented that dump_requestlist only prints queries from thread 0.
- - [bugzilla: 567 ] Fix unbound lists if forward zone is secure or
insecure with +i annotation in output of list_forwards, also for
list_stubs (for NetworkManager integration). And remove ':' from
output of stub and forward lists, this is easier to parse.
- - [bugzilla: 554 ] Fix use unsigned long to print 64bit statistics
counters on 64bit systems.
- - [bugzilla: 558 ] Fix failed prefetch lookup does not remove cached
response but delays next prefetch (in lieu of caching a SERVFAIL).
- - [bugzilla: 545 ] Fix improved logging, the ip address of the error
is printed on the same log-line as the error.
- - [bugzilla: 502 ] Fix explain that do-ip6 disable does not stop
AAAA lookups, but it stops the use of the ipv6 transport layer for DNS
traffic.
- - Fix compile with libevent2 on FreeBSD.
- - Change MAX_SENT_COUNT from 16 to 32 to resolve some cases easier.
- - Fixup out-of-directory compile with unbound-control-setup.sh.in.
- - Code cleanup patch from Dag-Erling Smorgrav, with compiler issue
fixes from FreeBSD's copy of Unbound, he notes: Generate
unbound-control-setup.sh at build time so it respects prefix and
sysconfdir from the configure script. Also fix the umask to match the
comment, and the comment to match the umask. Add const and static
where needed. Use unions instead of playing pointer poker. Move
declarations that are needed in multiple source files into a shared
header. Move sldns_bgetc() from parse.c to buffer.c where it belongs.
Introduce a new header file, worker.h, which declares the callbacks
that all workers must define. Remove those declarations from
libworker.h. Include the correct headers in the correct places. Fix a
few dummy callbacks that don't match their prototype. Fix some casts.
Hide the sbrk madness behind #ifdef HAVE_SBRK. Remove a useless printf
which breaks reproducible builds. Get rid of
CONFIGURE_{TARGET,DATE,BUILD_WITH} now that they're no longer used.
Add unbound-control-setup.sh to the list of generated files. The
prototype for libworker_event_done_cb() needs to be moved from
libunbound/libworker.h to libunbound/worker.h.
- - Fix caps-for-id fallback, and added fallback attempt when servers
drop 0x20 perturbed queries.
- - [bugzilla: 593 ] Fix segfault or crash upon rotating logfile.
- - fake-rfc2553 patch (thanks Benjamin Baier).
- - LibreSSL provides compat items, check for that in configure.
- - [bugzilla: 596 ] Bail out of unbound-control list_local_zones when
ssl write fails.
- - Fix endian.h include for OpenBSD.
- - [bugzilla: 603 ] Fix unbound-checkconf -o option should skip
verification checks.
- - Fixup doc/unbound.doxygen to remove obsolete 1.8.7 settings.
- - Update unbound manpage with more explanation (from Florian Obser).
- - Fix tcp timer waiting list removal code.
- - patches to also build with Python 3.x (from Pavel Simerda).
- - improve python configuration detection to build on Fedora 22.
- - Fix swig and python examples for Python 3.x.
- - Fix for mingw compile with openssl-1.0.1i.
- - [bugzilla: 612 ] Fix create service with service.conf in present
directory and auto load it.
- - [bugzilla: 613 ] Allow tab ws in var length last rdfs (in ldns
str2wire).
- - [bugzilla: 614 ] Fix man page variable substitution bug.
- - Whitespaces after $ORIGIN are not part of the origin dname (ldns).
- - $TTL's value starts at position 5 (ldns).
- - Fix unbound-checkconf check for module config with dns64 module.
- - Fix unbound capsforid fallback, it ignores TTLs in comparison.
- - [bugzilla: 617 ] Fix in ldns in unbound, lowercase WKS services.
- - Fix ctype invocation casts.
- - Disabled use of SSLv3 in remote-control and ssl-upstream.
- - Redefine internal minievent symbols to unique symbols that helps
linking on platforms where the linker leaks names across modules.
- - Fix bug where forward or stub addresses with same address but
different port number were not tried.

Best regards,
   Wouter

Hello,

Dne 18.11.2014 10:07, W.C.A. Wijngaards napsal(a):

- DNS64 from Viagenie (BSD Licensed), written by Simon Perrault.
Initial commit of the patch from the FreeBSD base (with its fixes).
This adds a module (for module-config in unbound.conf) dns64 that
performs DNS64 processing, see README.DNS64.

Thank you, this is a long time anticipated feature. However, I'd like to
point out that the implementation is NOT compliant with RFC 6147 when it
comes to a query with CD and DO flags:

$ dig ipv4only.arpa aaaa @::1 +dnssec +cdflag +noadflag

; <<>> DiG 9.9.5 <<>> ipv4only.arpa aaaa @::1 +dnssec +cdflag +noadflag
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37682
;; flags: qr rd ra ad cd; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;ipv4only.arpa. IN AAAA

;; ANSWER SECTION: ** notice that synthetised records are present **
ipv4only.arpa. 86306 IN AAAA 64:ff9b::c000:aa
ipv4only.arpa. 86306 IN AAAA 64:ff9b::c000:ab

;; AUTHORITY SECTION: ** notice that NSEC records are not present **
ipv4only.arpa. 86306 IN NS a.iana-servers.net.
ipv4only.arpa. 86306 IN NS b.iana-servers.net.
ipv4only.arpa. 86306 IN NS ns.icann.org.
ipv4only.arpa. 86306 IN NS c.iana-servers.net.
ipv4only.arpa. 86306 IN RRSIG NS 8 2 86400
20141125110729 20141118093346 54055 ipv4only.arpa.
eAkkdnmWNJVRBGr62xlhwPYr3O8eTHoB+fwLJHy5PiAAAJj2Av/hJeb5
UjHMakk7nUriLZ0FNlZoP/XWDJbV0SNdjow3AXWrPsO42fVsMGT35Ira
Qx+FI3G7mrDBPKgL7jIAZ33DOcqFej9VDAagyvmXi8dknyT0qWkJ/ta2 aKE=

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Út lis 18 13:35:41 CET 2014
;; MSG SIZE rcvd: 361

That means the DNS64 module will break any attempt to do further DNSSEC
validation behind DNS64 resolver making endpoint DNSSEC validation
virtually impossible. I think this should be fixed before this module
gets any wider adoption.

Cheers,
Ondřej Caletka

Ondřej Caletka:

However, I'd like to point out that the implementation is NOT compliant with RFC 6147

Hello,

I'm also a little bit surprised about the release. I did not notice any Aanouncements
about an upcoming version or a call for testing a beta-release. So that's what I suggest
for the future.

this is an example from opendkim development:
http://lists.opendkim.org/archive/opendkim/users/2014/03/3135.html

Andreas

My surprise was that on a fully updated windows 7 (build 7601) the unbound service aborts at startup with an "unexpected error" ; such helpfull information is to be expected from MS, but could have been avoided by beta-testing. Luckily unbound 1.4.22 is running as good as ever, so no harm done.

Mees

Hi Wouter and NLLabs team,

Thank you for adding DNS64 support that will simplify a lot our packaging, no need to maintain this 3rd party patch anymore.

Some people on the mailing list seem to forget that in OSS everything is free and a simple thank you _before_ whinging would always be appreciated for the effort spent. Yes, maybe a RC would help to test the code but still code has been released with new features and bugfixes and obviously new bugs, like any other OSS. They are people on the other side working for you, be respectful, they owe you nothing.

Anyway, thank you for this release, even if I will wait for 1.5.1 :wink: Then I tend to agree even if unbound has always been rock solid and seem to undergo a good test suite, maybe you could have at least one RC to outsource some of this testing work to the community. BTW, nice find Ondřej.

Again, great software :wink:

Cheers,
Thomas

Thomas:

Some people on the mailing list seem to forget that in OSS everything is free and a simple thank you _before_ whinging would always be appreciated for the effort spent.

Thomas,

that's right. Thanks for writing that.
and: Wouter, thank you, too!

Andreas

Hi Unbound team,

Thanks for your good job. Unbound is one of the best pieces sw I have ever met.

Ales

Hi Mees,

The bug is fixed, it was the change to getentropy in 1.5.0 that caused
the issue on windows.

There was a release candidate a week before, but it was mailed to the
nlnetlabs maintainers mailing list and not to the unbound-users
mailing list...

Best regards,
   Wouter

My surprise was that on a fully updated windows 7 (build 7601) the
unbound service aborts at startup with an "unexpected error" ;
such helpfull information is to be expected from MS, but could have
been avoided by beta-testing. Luckily unbound 1.4.22 is running as
good as ever, so no harm done.

Mees

<sca@andreasschulze.de> To: <unbound-users@unbound.net> Sent:
Tuesday, November 18, 2014 2:16 PM Subject: Re: [Unbound-users]
Unbound 1.5.0 release

Ondřej Caletka:

However, I'd like to point out that the implementation is NOT
compliant with RFC 6147

Hello,

I'm also a little bit surprised about the release. I did not
notice any Aanouncements about an upcoming version or a call for
testing a beta-release. So that's what I suggest for the future.

this is an example from opendkim development:
http://lists.opendkim.org/archive/opendkim/users/2014/03/3135.html

Andreas