305 lines
11 KiB
RPMSpec
305 lines
11 KiB
RPMSpec
|
Name: dnsperf
|
||
|
Version: 2.4.2
|
||
|
Release: 1%{?dist}
|
||
|
Summary: DNS Performance Testing Tool
|
||
|
Group: Productivity/Networking/DNS/Utilities
|
||
|
|
||
|
License: Apache-2.0
|
||
|
URL: https://www.dns-oarc.net/tools/dnsperf
|
||
|
# Source needs to be generated by dist-tools/create-source-packages, see
|
||
|
# https://github.com/jelu/dist-tools
|
||
|
Source0: https://www.dns-oarc.net/files/dnsperf/%{name}-%{version}.tar.gz?/%{name}_%{version}.orig.tar.gz
|
||
|
|
||
|
BuildRequires: autoconf
|
||
|
BuildRequires: automake
|
||
|
BuildRequires: libtool
|
||
|
BuildRequires: openssl-devel
|
||
|
BuildRequires: pkgconfig
|
||
|
BuildRequires: ldns-devel
|
||
|
|
||
|
%description
|
||
|
dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018)
|
||
|
and DNS-OARC (since 2019) that make it simple to gather accurate latency and
|
||
|
throughput metrics for Domain Name Service (DNS). These tools are easy-to-use
|
||
|
and simulate typical Internet, so network operators can benchmark their naming
|
||
|
and addressing infrastructure and plan for upgrades. The latest version of
|
||
|
the dnsperf and resperf can be used with test files that include IPv6
|
||
|
queries.
|
||
|
|
||
|
dnsperf "self-paces" the DNS query load to simulate network conditions.
|
||
|
|
||
|
New features in dnsperf improve the precision of latency measurements and
|
||
|
allow for per packet per-query latency reporting is possible. dnsperf is
|
||
|
now multithreaded, multiple dnsperf clients can be supported in multicore
|
||
|
systems (each client requires two cores). The output of dnsperf has also
|
||
|
been improved so it is more concise and useful. Latency data can be used to
|
||
|
make detailed graphs, so it is simple for network operators to take advantage
|
||
|
of the data.
|
||
|
|
||
|
|
||
|
%package -n resperf
|
||
|
Summary: DNS Resolution Performance Testing Tool
|
||
|
Group: Productivity/Networking/DNS/Utilities
|
||
|
|
||
|
|
||
|
%description -n resperf
|
||
|
dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018)
|
||
|
and DNS-OARC (since 2019) that make it simple to gather accurate latency and
|
||
|
throughput metrics for Domain Name Service (DNS). These tools are easy-to-use
|
||
|
and simulate typical Internet, so network operators can benchmark their naming
|
||
|
and addressing infrastructure and plan for upgrades. The latest version of
|
||
|
the dnsperf and resperf can be used with test files that include IPv6
|
||
|
queries.
|
||
|
|
||
|
resperf systematically increases the query rate and monitors the response
|
||
|
rate to simulate caching DNS services.
|
||
|
|
||
|
|
||
|
%prep
|
||
|
%setup -q -n %{name}_%{version}
|
||
|
|
||
|
|
||
|
%build
|
||
|
sh autogen.sh
|
||
|
%configure "--with-extra-cflags=-I /usr/include/bind"
|
||
|
make %{?_smp_mflags}
|
||
|
|
||
|
|
||
|
%check
|
||
|
make test
|
||
|
|
||
|
|
||
|
%install
|
||
|
rm -rf $RPM_BUILD_ROOT
|
||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||
|
|
||
|
|
||
|
%clean
|
||
|
rm -rf $RPM_BUILD_ROOT
|
||
|
|
||
|
|
||
|
%files
|
||
|
%defattr(-,root,root)
|
||
|
%{_bindir}/dnsperf
|
||
|
%{_datadir}/doc/*
|
||
|
%{_mandir}/man1/dnsperf.*
|
||
|
|
||
|
|
||
|
%files -n resperf
|
||
|
%defattr(-,root,root)
|
||
|
%{_bindir}/resperf
|
||
|
%{_bindir}/resperf-report
|
||
|
%{_mandir}/man1/resperf.*
|
||
|
|
||
|
|
||
|
%changelog
|
||
|
* Tue Feb 23 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.2-1
|
||
|
- Release 2.4.2
|
||
|
* This release fixes a few issues with reading of the datafile which
|
||
|
could lead to "ran out of data" errors.
|
||
|
* 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.
|
||
|
* Commits:
|
||
|
9937287 resperf TLS
|
||
|
6736956 datafile
|
||
|
55faec6 ran out of data
|
||
|
* Tue Feb 09 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.1-1
|
||
|
- Release 2.4.1
|
||
|
* 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.
|
||
|
* 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.
|
||
|
* Commits:
|
||
|
24e5bee poll
|
||
|
7dceca7 Handle only common exceptions
|
||
|
5603294 Fix error on python3
|
||
|
48fa517 TSIG
|
||
|
* Wed Dec 09 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.0-1
|
||
|
- Release 2.4.0
|
||
|
* 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.
|
||
|
* 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
|
||
|
* Commits:
|
||
|
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
|
||
|
* Fri May 15 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.4-1
|
||
|
- Release 2.3.4
|
||
|
* This release adds a workaround, thanks to patch from Petr Menšík, for
|
||
|
building on systems with BIND 9.16. Also improves error handling by
|
||
|
using thread-safe `strerror_r()` instead of `strerror()`.
|
||
|
* Commits:
|
||
|
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
|
||
|
* Wed May 06 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.3-1
|
||
|
- Release 2.3.3
|
||
|
* This release changes the behavior of `dnsperf` and `resperf` when it
|
||
|
comes to TCP and TLS connections, and updates package building using
|
||
|
COPR (thanks to patch from Petr Menšík (Red Hat)).
|
||
|
* Connection reset or close are now treated as "try again" so that the
|
||
|
run is finished and not aborted. As SIGPIPE might be received on usage
|
||
|
of closed connections it's now blocked in `dnsperf` and handled as
|
||
|
a fatal action in `resperf`.
|
||
|
* Commits:
|
||
|
62885ad SIGPIPE
|
||
|
106c50e connection
|
||
|
3ef0899 README
|
||
|
61a3b1c COPR
|
||
|
35efa27 COPR
|
||
|
46b37a1 COPR
|
||
|
5c126ae COPR
|
||
|
1c51b76 Provide full URL in spec
|
||
|
2a4dd0e Allow recreation of source archive
|
||
|
931d6cc Do not require root for archive creation
|
||
|
* Fri Aug 23 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.2-1
|
||
|
- Release 2.3.2
|
||
|
* This release fixes a buffer overflow when using TSIG and algorithms
|
||
|
with digests larger then SHA256, reported by Mukund Sivaraman. Also
|
||
|
fix build dependencies for `sqrt()`.
|
||
|
* Commits:
|
||
|
e54aa58 Digest
|
||
|
bca5d8d sqrt
|
||
|
d9eaa5b Package
|
||
|
* Wed Jul 24 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.1-1
|
||
|
- Release 2.3.1
|
||
|
* After a report and additional confirming results the use of `poll()` in
|
||
|
the network receive code for TCP and TLS has been removed. This `poll()`
|
||
|
initially gave better results while testing in a docker container on
|
||
|
it's loopback interface but when on physical networks it reduced
|
||
|
performance to 1/12th, so it had to go.
|
||
|
* Thanks to Brian Wellington (Akamai/Nominum) for the initial report and
|
||
|
testing, and to Jan Hák (CZ.NIC) for testing and confirming the results.
|
||
|
* Bugfix:
|
||
|
- Fix check for having more DNS messages in the receive buffer for TCP
|
||
|
and TLS
|
||
|
* Commits:
|
||
|
670db9c TCP/TLS receive
|
||
|
b8925b2 recvbuf have more
|
||
|
* Wed Jul 17 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.0-1
|
||
|
- Release 2.3.0
|
||
|
* This release adds support for DNS over TCP and TLS which can be selected
|
||
|
by using the mode option for `dnsperf` and `resperf`. The default server
|
||
|
port used is now determined by the transport mode, udp/tcp port 53 and
|
||
|
tls port 853.
|
||
|
* Note that the mode option is different between the program because it was
|
||
|
already taken for `resperf`.
|
||
|
* `dnsperf` changes:
|
||
|
- Add `-m` for setting transport mode, `udp` (default), `tcp` or `tls`
|
||
|
- Add verbose messages about network readiness and congestion
|
||
|
* `resperf` changes:
|
||
|
- Add `-M` for setting transport mode, `udp` (default), `tcp` or `tls`
|
||
|
- Add `-v` for verbose mode to report about network readiness and
|
||
|
congestion
|
||
|
* Commits:
|
||
|
ffa49cf LGTM, SonarCloud
|
||
|
4cd5441 TLS
|
||
|
35624d1 TCP send, socket ready loop
|
||
|
fbf76aa TCP support
|
||
|
5988b06 Funding
|
||
|
* Mon Jan 28 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.1-1
|
||
|
- Release 2.2.1
|
||
|
* The commit pulled from a fork that used `inttypes.h`, instead of ISC
|
||
|
internal types, missed to remove the old conversion specifier.
|
||
|
This was reported and fixed by Vladimír Čunát.
|
||
|
* Commits:
|
||
|
9534ce1 remove visible "u" characters after numbers
|
||
|
* Mon Dec 03 2018 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.0-1
|
||
|
- Release 2.2.0
|
||
|
* First release by DNS-OARC with a rework of the code to use autotools,
|
||
|
semantic versioning 2.0 and bugfixes pulled from other's forks.
|
||
|
* Bugfixes:
|
||
|
- Fix infinite loop in argument parsing
|
||
|
- Fix min/max latency summing for multithreaded runs
|
||
|
- Fix calculation of per_thread socket counts
|
||
|
- Fixes to queryparse
|
||
|
- Mark correctly end of file
|
||
|
- Support python3
|
||
|
- Stop looping on end of file undefinitely
|
||
|
- Fix compilation issues and work around missing `dns_fixedname_initname()`
|
||
|
- Clang `scan-build` fixes
|
||
|
* Other changes:
|
||
|
- add "configure --with-bind" option
|
||
|
- Handle bind library changes to HMAC (see #22) and other differences
|
||
|
between versions
|
||
|
- Workaround issue on FreeBSD (see #23)
|
||
|
- Use `snprintf()` and OpenBSD's `strlcat()`
|
||
|
- Add/update build dependencies for Debia, Ubuntu, CentOS, FreeBSD
|
||
|
and OpenBSD
|
||
|
* Commits:
|
||
|
ae9bc91 Clang format
|
||
|
b9bb085 CI, buildbot
|
||
|
b84e41b Autotools, README, changelog
|
||
|
a2e1732 License
|
||
|
9dcb661 Remove $Id markers, Principal Author and Reviewed tags from the
|
||
|
full source tree
|
||
|
0677bf0 Use dns_fixedname_initname() where possible
|
||
|
d8d4696 [master] add "configure --with-bind" option to dnsperf
|
||
|
b71a280 Add deb based distros dependencies
|
||
|
439c614 Replace custom isc_boolean_t with C standard bool type
|
||
|
407ae7c Replace custom isc_u?intNN_t types with C99 u?intNN_t types
|
||
|
c27afd4 Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants
|
||
|
6fdb2f7 Fix queryparse
|
||
|
4909b78 README
|
||
|
2782d50 README.md: Rectify link to software
|
||
|
e31ddf4 fix calculation of per_thread socket counts
|
||
|
3bd7fb4 Fix min/max latency summing for multithreaded runs
|
||
|
2207e27 Fix infinite loop in argument parsing.
|
||
|
3bfe97a Include the github URL; remove the bug reports section.
|
||
|
0cee04a Add note about bug reports.
|
||
|
62c4b32 add .gitignore
|
||
|
c45f0be Initial import.
|
||
|
149172b Initial commit
|