1FLAME(1) Flamethrower FLAME(1)
2
3
4
6 flame – DNS performance and functional testing utility
7
9 flame [options] target [generator-options]
10
11 flame --help
12
13 flame --version
14
16 Flamethrower is a small, fast, configurable tool for functional test‐
17 ing, benchmarking, and stress testing DNS servers and networks. It
18 supports IPv4, IPv6, UDP and TCP, and has a modular system for generat‐
19 ing queries used in the tests.
20
21 It was built as an alternative to dnsperf (https://github.com/DNS-
22 OARC/dnsperf) and many of the command line options are compatible.
23
24 Target
25 Target can be either an IP address or host name which will be resolved
26 first.
27
28 Options
29 -q QCOUNT
30 Number of queries to send every DELAY_MS interval. Default is
31 10.
32
33 -c TCOUNT
34 Number of concurrent traffic generators per process. Default is
35 10.
36
37 -p PORT
38 Which port to flame. Default is 53.
39
40 -d DELAY_MS
41 Delay between each traffic generator’s run in milliseconds. De‐
42 fault is 1.
43
44 -r RECORD
45 The base record to use as the query for generators. Default is
46 test.com.
47
48 -T QTYPE
49 The query type to use for generators. Default is A.
50
51 -o FILE
52 Metrics output file in JSON format.
53
54 -l LIMIT_SECS
55 Traffic generation limit in seconds. 0 for unlimited. Default
56 is 0.
57
58 -t TIMEOUT
59 Query timeout in seconds. Default is 3.
60
61 -F ( inet | inet6 )
62 Internet family. Default is inet.
63
64 -f FILE
65 Read records from a file, one per row, QNAME and QTYPE. Used
66 with the file generator.
67
68 -n LOOP
69 Number of loops in the record list, 0 is unlimited. Default is
70 1.
71
72 -R Randomize the query list before sending. Default is false.
73
74 -P ( udp | tcp )
75 Protocol to use. Default is udp.
76
77 -Q QPS Rate limit to a maximum queries per second, 0 is unlimited. De‐
78 fault is 0.
79
80 -g GENERATOR
81 Query generator to use. The generators and their options are
82 described in a separate section. Default is static.
83
84 -v VERBOSITY
85 Output verbosity, 0 is silent. Default is 1.
86
87 --dnssec
88 Send queries with DNSSEC OK flag set. Default is false.
89
90 --class CLASS
91 Send queries with given DNS class. Default is IN.
92
93 --qps-flow
94 Change rate limit over time, format: QPS,MS;QPS,MS;...
95
97 Flamethrower uses a modular system for generating queries. Each module
98 may include its own list of configuration options which can be set via
99 KEY=VALUE pairs on the command line via generator-options.
100
101 static
102 The generator sends the same query for a QNAME and QTYPE specified via
103 the -r and -t options. It doesn’t use generator options.
104
105 file
106 The generator reads dnsperf-compatible input file containing QNAME and
107 QTYPE pairs on individual lines. The name and type is separated by a
108 space. The input file is specified via the -f option. File generator
109 doesn’t use generator options.
110
111 numberqname
112 The generator sends queries to one-label subdomain with a number for a
113 record specified with -r. The generator uses following generator op‐
114 tions:
115
116 · low - Lowest numeric value to write into the label. Default is 0.
117
118 · high - Highest number value to write into the label. Default is
119 100000.
120
121 randompkt
122 The generator sends random chunks of data and uses following generator
123 options:
124
125 · count - number of chunks (packets) to generate. Default is 1000.
126
127 · size - maximal size of the chunk in bytes. Default is 600.
128
129 randomqname
130 The generator sends queries to random subdomains of the record speci‐
131 fied with -r. The subdomains may contain binary (non-printable charac‐
132 ters) including zero byte. The following generator options are avail‐
133 able:
134
135 · count - number of queries to generate. Default is 100.
136
137 · size - maximum length of the added label(s). Default is 255.
138
139 randomlabel
140 The generator sends queries to random subdomains of the record speci‐
141 fied with -r. The subdomains may contain only characters valid in a
142 DNS names. The following generator options are available:
143
144 · count - number of queries to generate. Default is 1000.
145
146 · lblsize - maximum length of a single added label. Default is 10.
147
148 · lblcount - maximum number of labels to add. Default is 5.
149
151 Flame localhost over IPv4 on UDP port 53, use default static generator
152 sending test.com/A queries, no QPS limit, terminate after 10 seconds:
153
154 $ flame -l 10 localhost
155
156 Flame target.example.test over IPv6 on TCP port 5300 with default gen‐
157 erator and no QPS limit:
158
159 $ flame -p 5300 -P tcp -F inet6 target.example.test
160
161 Flame target.example.test over IPv4 on UDP port 53 with 10 q/s limit,
162 send AAAA type queries for random one-label subdomains of example.test,
163 limit the query speed to 10 q/s, terminate after 1000 queries:
164
165 $ flame -Q 10 -r example.test -t AAAA -g randomlabel target.example.test lblsize=10 lblcount=1 count=1000
166
168 NS1 (https://ns1.com)
169
171 Flamethrower at GitHub (https://github.com/DNS-OARC/flamethrower/is‐
172 sues)
173
175 Copyright 2019, NSONE, Inc.
176
177
178
1790.9 Februrary 6, 2019 FLAME(1)