LinuxCommandLibrary

dnspyre

High QPS DNS benchmark tool

TLDR

Benchmark DNS server with default settings
$ dnspyre [target_server]
copy
Run high QPS test with concurrent connections
$ dnspyre [server] --duration 60s --concurrency 100
copy
Test specific query types
$ dnspyre [server] --query A --query AAAA
copy
Load queries from file
$ dnspyre [server] --file [queries.txt]
copy

SYNOPSIS

dnspyre [options] [targetserver_]

DESCRIPTION

dnspyre is a high-performance DNS benchmarking tool designed to test DNS servers under heavy load. It can simulate thousands of concurrent queries per second and provides detailed statistics on response times, error rates, and throughput.
The tool supports multiple DNS transport protocols including UDP, TCP, DNS over TLS (DoT), and DNS over HTTPS (DoH). It's useful for capacity planning, performance testing, and comparing DNS server configurations.

PARAMETERS

-d, --duration DURATION

Test duration (default: 1m)
-c, --concurrency N
Number of concurrent connections (default: 1)
-r, --rate N
Queries per second per connection
-q, --query TYPE
DNS query type: A, AAAA, MX, TXT, etc.
-f, --file FILE
File containing query names (one per line)
--server ADDR
DNS server address (can also be positional)
--tcp
Use TCP instead of UDP
--tls
Use DNS over TLS
--https
Use DNS over HTTPS
--recurse
Set recursion desired flag
-o, --output FORMAT
Output format: text, json, csv
-v, --verbose
Enable verbose output
-h, --help
Display help and exit
--version
Display version and exit

OUTPUT METRICS

- Queries per second (QPS)
- Latency percentiles (p50, p90, p99, p999)
- Error rate and types
- Connection statistics
- Histogram of response times

CAVEATS

High QPS tests may overwhelm target servers. Requires careful rate limiting to avoid being rate-blocked. Network conditions significantly affect results. DNS caching on intermediate resolvers may skew results.

HISTORY

dnspyre was developed as a modern alternative to traditional DNS benchmarking tools, providing better concurrency control and support for modern DNS protocols like DoT and DoH.

SEE ALSO

dig(1), nslookup(1), dnsperf(1), q(1)

> TERMINAL_GEAR

Curated for the Linux community

Copied to clipboard