Tagged: dnsdist

dnsdist 1.4.0

After five release candidates, we are thrilled to finally announce the release of dnsdist 1.4.0 !

This new major version has been used in production by several large operators since the first release candidate, including the new DNS over HTTPS feature, providing invaluable feedback.

This release has very few changes since the previous release candidate:

  • names blocked by a SMT dynamic block are now lowercased (8524) ;
  • we went back to selecting the cipher suites based on the server preference instead of the client by default (8526) ;
  • some typo, documentation and help messages have been fixed (8531, 8440, 8509).

For those new to the 1.4.0 train, the main changes between 1.3.3 and 1.4.0 are:

  • a new, much more scalable way of handling DNS over TCP and DNS over TLS (DoT) connections, with a lot of new metrics and options like OCSP stapling ;
  • support for DNS over HTTPS (DoH) ;
  • a new experimental feature, the ability to look into a Key-Value store like CDB or LMDB and to route a query based on the result of this lookup ;
  • new rules and actions to deal with unexpected EDNS version (Dmitry Alenichev) ;
  • a new QNameSetRule rule, along with the DNSNameSet object, to match exact qnames instead of doing suffix matching (Andrey Domas) ;
  • a new ContinueAction has been added as well, allowing to keep processing rules even after calling a normally terminal action, like PoolAction ;
  • we also added a few convenience functions to pseudonymize IP addresses, as several users reported that they needed it to be GDPR-compliant ;
  • the health check mechanism has been improved with the new checkInterval, checkTimeout and rise parameters, thanks notably to “1848” ;
  • and, finally, we also improved the existing LogAction to make it much more useful for debugging and accounting purposes.

Please see the upgrade guide before upgrading from 1.3.x to 1.4.0, as a few things have been cleaned up and might require updating your existing configuration.

We want to once again thank everyone that contributed to the testing of the previous release candidates!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available in our repository.

dnsdist 1.4.0-rc5 released

We are happy to announce the fifth release candidate of the 1.4.0 version of dnsdist. This release fixes a regression introduced in DNS over HTTPS handling in 1.4.0-rc4 that could lead to a crash under heavy load, because of a race condition.

The issue was reported during load-testing by one of our users a few hours after the release and we were able to issue a fix during the week-end. We quickly advised DNS over HTTPS users to delay upgrading for a bit, and after exposing the resulting code to various tests during a couple days we are now confident that the issue has been resolved.

We want to thank everyone that contributed to the testing of the previous release candidates, and invite you to contribute to the testing of this hopefully last one!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.

Fourth release candidate for dnsdist 1.4.0

We are very happy to announce the fourth release candidate of the 1.4.0 version of dnsdist. Unless a serious issue is discovered, we plan on releasing the final 1.4.0 release in a couple of weeks with no or very few changes from this release.

This version massively improves the metrics available regarding TLS usage and errors for DNS over HTTPS and DNS over TLS clients, as suggested by several large deployments.

It also fixes several minor issues, and improves the existing LogAction to make it much more useful for debugging and accounting purposes.

We want to thank everyone that contributed to the testing of the previous release candidates, and invite you to contribute to the testing of this hopefully last one!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.

Third release candidate for dnsdist 1.4.0

We are very happy to announce the third, and hopefully last, release candidate of the 1.4.0 version of dnsdist.

This version adds the ability to accept DNS over HTTPS queries over HTTP, in order to be able to use dnsdist behind a TLS-offloading device, and improves the management of TLS session ticket keys for DNS over HTTPS.

It also fixes several minor issues, and improves the DoH-related metrics in our prometheus export.

We want to thank everyone that contributed to the testing of the beta release, and invite you to contribute to the testing of this release candidate!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.

Second release candidate for dnsdist 1.4.0

We are very happy to announce the second release candidate of the 1.4.0 version of dnsdist.

This version adds one experimental feature, the ability to look into a Key-Value store like CDB or LMDB and to route a query based on the result of this lookup.

It also makes it possible to require a minimum TLS version for DNS over TLS and DNS over HTTPS, and to send custom HTTP responses even for queries received on the DoH port that are valid HTTP queries but not necessarily valid DoH queries.

Note that starting with 1.4.0-rc2, our packages are now built against the latest 2.2.6 version of libh2o, fixing several remote denial of service issues (CVE-2019-9512, CVE-2019-9514 and CVE-2019-9515).

We want to thank everyone that contributed to the testing of the beta release, and invite you to contribute to the testing of this release candidate!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.

First release candidate for dnsdist 1.4.0

We are proud to announce the first release candidate of the 1.4.0 version of dnsdist. 1.4.0 brings a much more scalable way of handling DNS over TCP and DNS over TLS connections since the first alpha release. A major new feature since alpha2, and marquee feature of 1.4.0 compared to 1.3.x, is the new DNS-over-HTTPS functionality.

Following a round of testing from several large scale users, this version fixes several issues, most of them related to DNS over HTTPS (7894, 7917, 7927, 8112), DNS over TCP (7974, 7979, 8003, 8030, 8067, 8078, 8079, 8113), or both (7915).

In addition to minor improvements, it also introduces several new features:

  • a new ContinueAction allowing to keep processing rules even after calling a normally terminal action, like PoolAction (8117) ;
  • OCSP stapling for DNS over TLS and DNS over HTTPS (8141) ;
  • custom HTTP headers for DNS over HTTPS responses (contributed by Melissa Voegeli, 8148) ;
  • actions, rules and Lua binding to interact with DNS over HTTPS queries and generate responses from dnsdist (8153).

We want to thank everyone that contributed to the testing of the beta release, and invite you to contribute to the testing of this release candidate!

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.

dnsdist 1.2.1 released

We are very pleased to announce the availability of dnsdist 1.2.1, fixing several issues that were found in 1.2.0:

  • #5647: Make dnsdist dynamic truncate do right thing on TCP/IP
  • #5686: Add missing QPSAction
  • #5847: Don’t create a Remote Logger in client mode
  • #5858: Use libsodium’s CFLAGS, we might need them to find the includes
  • #6012: Keep the TCP connection open on cache hit, generated answers
  • #6041: Add the missing <sys/time.h> include to mplexer.hh for struct timeval
  • #6043: Sort the servers based on their ‘order’ after it has been set
  • #6073: Quiet unused variable warning on macOS (Chris Hofstaedtler)
  • #6094: Fix the outstanding counter when an exception is raised
  • #6164: Do not connect the snmpAgent from a dnsdist client

One new feature has also been added by Dan McCombs, allowing to work around an issue when dnsdist is compiled with IP_BIND_ADDRESS_NO_PORT enabled but run on a kernel that does not support it:

  • #5880: Add configuration option to disable IP_BIND_ADDRESS_NO_PORT

Finally, the handling of bracketed IPv6 addresses without port has been improved by Chris Hofstaedtler:

  • #6057: Handle bracketed IPv6 addresses without ports

Please see the dnsdist website for the more complete changelog and the current documentation.

Release tarballs are available on the downloads website.

Several packages are also available on our repository.