calidns1
A dns recursor testing tool
Usage
calidns [OPTIONS]
QUERY_FILE
DESTINATION
INITIAL_QPS
HITRATE
Overview
calidns reads queries from QUERY_FILE and sends them as a recursive query to DESTINATION (an IPv4 or IPv6 address, optionally with a port number), starting at INITIAL_QPS queries per second and aims to have a cache hitrate of HITRATE percent.
It will then try to determine the maximum amount of queries per second the recursor can handle with the aforementioned HITRATE.
Query_file format
The format of the QUERY_FILE is very simple, it should contain "QNAME QTYPE" tuples, one per line. For example:
powerdns.com A powerdns.com AAAA google.com A
This is similar to Alexa top 1 million list.
Options
--ecs<SUBNET>-
Add EDNS Client Subnet option to outgoing queries using random addresses from the specified SUBNET range (IPv4 only).
-
--ecs-from-file -
Read IP or subnet values from the query file and add them as EDNS Client Subnet option to outgoing queries.
--increment<NUM>-
On every subsequent run, multiply the number of queries per second by NUM. By default, this is 1.1.
--maximum-qps<NUM>-
Stop incrementing once this rate has been reached, to provide a stable load.
--minimum-success-rate<NUM>-
Stop the test as soon as the success rate drops below this value, in percent.
--plot-file<FILE>-
Write results to the specified file.
-
--proxy-protocol -
Send a Proxy Protocol payload in front of outgoing queries using random addresses from the specified range (IPv4 only) as the initial source IP.
-
--proxy-protocol-from-file -
Read IP or subnet values from the query file and use them as the source IP in Proxy Protocol payloads in front of outgoing queries.
-
--quiet -
Whether to run quietly, outputting only the maximum QPS reached. This option is mostly useful when used with
--minimum-success-rate.
-
--want-recursion -
Set this flag to send queries with the Recursion Desired flag set.
Releases
6 releases since Debian 9 (Stretch); the text changed 5 times.
--ecs-from-file since Debian 11 (Bullseye);
--proxy-protocol since Arch Linux 2026-11-01;
--proxy-protocol-from-file since Arch Linux 2026-11-01;
--quiet since Debian 11 (Bullseye);
--want-recursion since Debian 10 (Buster).