SG dnsperf Command Generator

SanchitGurukul Networking Utility

dnsperf Command Generator

Build controlled dnsperf commands and repeatable lab scenarios for UDP, TCP, DNS-over-TLS, and DNS-over-HTTPS.

SG
Authorized lab use only. Run load tests only against DNS infrastructure you own or are explicitly permitted to test. Start with a low QPS limit and increase gradually while monitoring the server and network. Commands are generated locally in your browser and are never executed or stored by this plugin.

Test configuration

Target and transport

Load controls

DNS and reporting options

Advanced options
Secrets stay in this browser page. Prefer a temporary lab key and remove it from shell history afterward.

Predefined commands and testing scenarios

Step-by-step dnsperf guide

1. Prepare an isolated test environment

Place the dnsperf client and DNS server on separate machines or VMs where possible. Use a controlled network and monitor both systems. Avoid testing through uncontrolled routers, firewalls, VPNs, or Internet paths because they distort results.

2. Install dnsperf

# Debian/Ubuntu
sudo apt update && sudo apt install dnsperf

# Fedora/RHEL family (repository availability varies)
sudo dnf install dnsperf

# macOS with Homebrew
brew install dnsperf

3. Create a realistic query file

www.example.test A
www.example.test AAAA
example.test MX
example.test SOA
missing-001.example.test A

Save it as queries.txt. For meaningful performance tests, use a much larger, representative, authorized dataset.

4. Confirm basic connectivity

dig @192.0.2.53 example.test A

dnsperf -s 192.0.2.53 -d queries.txt -Q 10 -q 5 -l 10

5. Establish a baseline

Start with low QPS, low concurrency, and a short duration. Repeat the same test several times. Record server configuration, client hardware, software version, query file checksum, transport, and network conditions.

6. Increase one variable at a time

Increase QPS gradually while keeping the dataset, duration, outstanding requests, and server configuration unchanged. Then test concurrency, transport, DNSSEC, cache state, or response size independently.

7. Read the results correctly

  • Queries sent/completed: request and response volume.
  • Queries lost: requests without corresponding responses; investigate any unexpected loss.
  • QPS: completed query rate, not simply the requested cap.
  • Latency: average, minimum, maximum, and standard deviation.
  • Connection statistics: especially relevant for TCP, DoT, and DoH.
  • HTTP status codes: relevant to DoH tests.

8. Common mistakes

  • Running dnsperf on the same overloaded host as the DNS service.
  • Starting without a QPS cap.
  • Using a tiny or unrealistic query file.
  • Comparing warm-cache and cold-cache runs as if they were equivalent.
  • Changing several variables between test runs.
  • Ignoring packet loss, CPU saturation, file-descriptor limits, TLS setup, or network bottlenecks.

9. Safe test sequence

10 QPS → 50 QPS → 100 QPS → 250 QPS → 500 QPS

Stop increasing when latency, loss, CPU, memory, connections, or service health reaches your agreed threshold.
Version note: option availability can depend on the dnsperf build. Check dnsperf -h and dnsperf --version on the test client before relying on JSON, DoT, DoH, or histogram features.

Your feedback matters

Was this post helpful?

0 reactions

SanchitGurukul — Technology • Education • Innovation

Discussion

0 approved comments

No approved comments yet. You can start the discussion below.

Leave a Comment

No login is required. Name and email are used for moderation/security. Your email is never displayed publicly. All comments require administrator approval.

This field is not used to determine whether a comment is safe.

Plain text only. File uploads, scripts, executable code, abuse and spam are not accepted.