calidns

Synopsis

calidns [OPTIONS] QUERY_FILE DESTINATION INITIAL_QPS HITRATE

Description

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.
--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.