Skip to content

Releases: DNS-OARC/dnsperf

Release 2.7.1

17 Sep 14:17
Compare
Choose a tag to compare

This release fixes issues with constructing wire-format DNS when the domain names includes escaped characters such as \123 or \..

Packages are available at: https://dev.dns-oarc.net/packages/

Other changes:

  • Bump Debian package compat level to 10

4873f02 DNS encoding
c4eccc0 debhelper

Release 2.7.0

09 Aug 12:27
Compare
Choose a tag to compare

This release adds DNS-over-HTTPS support!

Packages are available at: https://dev.dns-oarc.net/packages/

DNS-over-HTTPS can be used by specifying transport mode doh and you should also look at the dnsperf(1) man-page (or -H) for the extended options doh-uri and doh-method, which controls aspects of DoH/HTTP/2 that you might want to set.

Other fixes:

  • Add check when constructing DNS packet so that total length of labels does not exceed 255 bytes
  • Fix connection/reconnection state handling for DoT transport
  • Fix event handling by initializing them directly when opening the sockets, otherwise events could have been missed which would give incorrect statistics

61b5eac Tests with dumdumd
d71071c Tests with dumdumd
b42f92e DoH sending
2fa40bb Net stats
f7f8692 DoH fixes
ea62b49 DoH concurrent streams
91929f1 DoH reconnect
17660e6 DoH fixes
5276aa6 resperf buckets
585860e Packages
3ffc601 Fixes
1570609 Man-page
6bcadc7 README
f81adf1 Fixes
1acd71f Code structure
6c47876 Fixes
2d379f4 Fixes
4d5384b Fixes
cee93b3 Initial DNS-over-HTTPS support implementation
4ff3ebc Events
8b24bbf DoT state
6a5b5ef Fix too long name
71fa09f long opts

Release 2.6.0

31 May 09:55
Compare
Choose a tag to compare

This release adds EDNS options parameter -E to resperf and a script for generating EDNS Client Subnet options (see contrib/ecs-gen).

Packages are available at: https://dev.dns-oarc.net/packages/

d29d880 ECS opt
877f31e edns option

Release 2.5.2

25 Mar 12:45
Compare
Choose a tag to compare

This release tweaks the reconnect code for TCP and DoT.

Packages are available at: https://dev.dns-oarc.net/packages/

For TCP, atomic operations are used to signal the need to reconnect from the receiving thread to the sending, as the sending is the one in charge of reconnecting.
This speeds up detection of connection lost which reduces the amount of lost queries on a disconnect.

This change does not affect DoT as much, as the SSL context shared between the threads are protected by a mutex.
But a bug was found in sendto() for DoT that could drop a query if the socket was busy sending.

The connect and reconnect socket events has been split into connecting, connected and reconnecting, reconnected. This is to report more correct reconnect events when it comes to DoT, because the connection can be lost while negotiating TLS.

Lastly, additional tests has been added for the network code.

d9e5663 net test
22f49df network tests
8e5b56e reconnect

Release 2.5.1

22 Mar 13:46
Compare
Choose a tag to compare

This release re-adds support for TYPEnnn and ANY in the datafile, this was missed during the removal of the dependency on BINDs development libraries in v2.4.0.

Packages are available at: https://dev.dns-oarc.net/packages/

Also note that with v2.5.0, this software now depends on Concurrency Kit (ck) for atomic operations.

924e6ea ANY
0a444c0 TYPEnnn

Release 2.5.0

12 Mar 13:10
Compare
Choose a tag to compare

This release adds re-connection support for TCP and DoT protocol, new options to resperf and fixes a few bugs.

Packages are available at: https://dev.dns-oarc.net/packages/

dnsperf and resperf will now try to re-connect when they lose a TCP or DoT connection, and with that comes a few new statistics metrics.
For dnsperf, if a connection oriented protocol is used, it will now show the total number of re-connections made and the connection latency.
For resperf it also shows the total number of re-connections made and the gnuplot data now contains the total number of connections made and the connection latency for each interval.
Beside re-connection support, improvements have been made when it comes to tracking socket readiness while connections are established which should generate less warnings about "socket not ready".

New resperf options:

  • -R: Reopen the datafile if it runs out of data before the testing is completed. This allows for long running tests on very small and simple query datafile.
  • -F <fall_behind>: Sets the maximum number of queries that can fall behind being sent. resperf will stop when this many queries should have been sent and it can be relative easy to hit if -m <max_qps> is set too high.
    The default is 1000 and setting it to zero (0) disables the check.

Bugfixes:

  • Fixed port handling for host/network format when setting client side port with -x
  • Fix support for quoted characters, \000 and \., in domain names, this was lost when removing BIND's internal development libraries
  • Fix issue in dnsperf, it would loop forever if no connection could be established
  • Fix potential buffer overrun in resperf when using response id for queries[]
  • DoT: Fix bug when sending from buffer

Other changes:

  • Always use IPV6_V6ONLY socket option for IPv6
  • Add man-page on -W option added in v2.4.0
  • Reformat man-pages
  • resperf:
    • Try and process more request each run to hopefully not hit max outstanding so easy when high QPS
    • Add default value to -C so it shows in help

9308361 man-page format
0e52fb4 man-page, opts, tuneups
e36211d stats
d9b9ba3 Response qid to index
2b2c37e fixes, reconnection
acd31e5 dname quote
de8f049 net

Release 2.4.2

23 Feb 13:44
Compare
Choose a tag to compare

This release fixes a few issues with reading of the datafile which could lead to "ran out of data" errors.

Packages are available at: https://dev.dns-oarc.net/packages/

The problem was that reading from the datafile was done before finding a socket to send it on, or socket readyness, and that lead to progressing the queries without really doing anything.
Another issues that's been fixed was that if the read lines perfectly aligned with the buffer, it would be treated like EOF and caused an exit.

9937287 resperf TLS
6736956 datafile
55faec6 ran out of data

Release 2.4.1

09 Feb 12:27
Compare
Choose a tag to compare

This release fixes an issue with the socket readiness function that could cause a buffer overflow (-T 10 -c 2000) due to select() being limited to check 1023 sockets. poll() is now used which has no limit.

Packages are available at: https://dev.dns-oarc.net/packages/

There has also been a few fixes to the contrib script queryparse that has to do with python v2 and v3 compatibility and better exception handling.

24e5bee poll
7dceca7 Handle only common exceptions
5603294 Fix error on python3
48fa517 TSIG

Release 2.4.0

09 Dec 11:40
Compare
Choose a tag to compare

This release removes the dependency on BIND's internal development libraries! This make building and packaging a lot easier and less troublesome in the future.

Packages are available at: https://dev.dns-oarc.net/packages/

This software now depends only on OpenSSL (for TSIG feature) with an optional depend on LDNS (for dynamic updates feature).

New option:

  • Transport mode option -m/-M now recognizes dot alongside tls for encrypted DNS
  • Added -W for outputting warnings and errors to stdout

Other changes / bugfixes:

  • Fix potential memory leak of query descriptions when using verbose
  • Only use TLS v1.2 and above for DoT/TLS
  • Add a lot of tests
  • Add coverage testing

d17743b datafile
434bbf2 Checks, coverage, log, test IPv6
9fb305f Coverage
123ebf1 DOT, TLS version, Sonarcloud
26df0bd BIND dependency
ee660e7 Sonarcloud
c9ea0ab base64
4e9be82 TSIG
4275045 EDNS, https
7c3f51c BIND dependency
6e1be5d ISC dependencies
e36f19d Buffer
485cdd2 ISC mem, tests
663dc24 Namespace clash
2c44987 dynamic updates, edns, headers
5d109b2 Disable HMAC
79cae93 datafile, query desc
663d814 net
c867de6 isc_result_t
651ee5d opt
7d30804 isc_result_t
58ad313 ISC linked list
7b4da6d Info
8079ebc Tests
e3fb685 Tests
2bb603a Tests
297b23b Test
c4e244b Test
1caac35 Makefile
e9f2aaa Coverage
27af853 Fix typo in configure.ac
521faa6 Badges
8fa2ec4 LGTM
75c89e5 COPR

Release 2.3.4

15 May 08:47
Compare
Choose a tag to compare

This release adds a workaround, thanks to patch from Petr Menšík (@pemensik), for building on systems with BIND 9.16. Also improves error handling by using thread-safe strerror_r() instead of strerror().

Packages are available at: https://dev.dns-oarc.net/packages/

88c3ef4 strerror
1917f67 openSUSE Tumbleweed
fd39641 AS_VAR_APPEND
aeeef74 bind 9.16
07732cd BIND, libcrypto, clang format
08146e3 Add crypto library to checks
e4307c2 Add checks to pass with BIND 9.16
3f9aed3 Prepare check for bind 9.11/9.16 return types