FLAME(1)
π FLAME(1) β the flamethrower era π
okay bestie, sit down, hydrate, because we're about to talk about flame from the Flamethrower manual page (section 1, obviously, it's a user command) and it is lowkey iconic. π¦
β¨ NAME β¨
flame β a DNS performance and functional testing utility. that's it, that's the vibe. π
πΈ SYNOPSIS πΈ
flame [options] target [generator-options]
flame --help
flame --version
like. that's the whole thing. target goes in, chaos comes out. π
π DESCRIPTION π
Flamethrower is a small, fast, configurable tool for functional testing, benchmarking, and stress testing DNS servers and networks. no cap. it supports IPv4, IPv6, UDP, TCP, and DoT, and it has a modular system for generating the queries you use in your tests. it's giving β¨lego but for DNS abuseβ¨.
Originally built as an alternative to dnsperf (https://github.com/DNS-OARC/dnsperf), and ngl many of the command line options are compatible with it. so if you're migrating, your muscle memory is safe. π«Ά
π― Target π―
Target can be either an IP address or a host name which will be resolved first. simple as that, bestie. β¨
ποΈ Options ποΈ
okay this is the part where I need you to lock in. every single one of these matters. π
-bBIND_IP β the IP address to bind to. default is0.0.0.0forinetor::0forinet6. π-qQCOUNT β how many queries to send everyDELAY_MSinterval. default is10. for DoH this specifies the number of concurrent HTTP/2 streams. > β οΈ and listen: if this number is larger than the maximum number of concurrent streams supported by the DoH server (100for most), timeouts will happen. not a drill, bestie. π-cTCOUNT β number of concurrent traffic generators per process. default is10. π₯-pPORT β which port to flame. default is53for UDP/TCP,443for DoH and853for DoT. π-dDELAY_MS β delay between each traffic generator's run, in milliseconds. default is1. β±οΈ-rRECORD β the base record to use as the query for generators. default istest.com. πΈ-TQTYPE β the query type to use for generators. default isA. π-oFILE β metrics output file in JSON format. ποΈ-lLIMIT_SECS β traffic generation limit in seconds.0for unlimited. default is0. βΎοΈ-tTIMEOUT β query timeout in seconds. default is3. β³-F(inet|inet6) β internet family. default isinet. π-fFILE β read records from a file, one per row,QNAMEandQTYPE. used with thefilegenerator. π-nLOOP β number of loops in the record list,0is unlimited. default is1. π-Rβ randomize the query list before sending. default isfalse. π-P(udp|tcp|dot|doh) β protocol to use. default isudp. π-M(GET|POST) β HTTP method to use for DNS over HTTPS. default isGET. π¬-QQPS β rate limit to a maximum queries per second,0is unlimited. default is0. π¦-gGENERATOR β query generator to use. the generators and their options are described in a separate section. default isstatic. π§-vVERBOSITY β output verbosity,0is silent. default is1. π€«--dnssecβ send queries with the DNSSEC OK flag set. default isfalse. π--classCLASS β send queries with given DNS class. default isIN. π·οΈ--qps-flowβ change rate limit over time, format:QPS,MS;QPS,MS;...π
π§© Generators π§©
Flamethrower uses a modular system for generating queries. each module may include its own list of configuration options, which you can set via KEY=VALUE pairs on the command line via generator-options. yes, KEY=VALUE pairs. on the command line. we love a flexible queen. π
π static π
The generator sends the same query for a QNAME and QTYPE specified via the -r and -t options. It doesn't use generator options. boring? no. consistent. π
π file π
The generator reads a dnsperf-compatible input file containing QNAME and QTYPE pairs on individual lines. the name and type is separated by a space. the input file is specified via the -f option. File generator doesn't use generator options. π
π numberqname π
The generator sends queries to a one-label subdomain with a number for a record specified with -r. the generator uses the following generator options:
lowβ lowest numeric value to write into the label. default is0. π’highβ highest number value to write into the label. default is100000. π’
π randompkt π
The generator sends random chunks of data and uses the following generator options:
countβ number of chunks (packets) to generate. default is1000. π¦sizeβ maximal size of the chunk in bytes. default is600. π
π randomqname π
The generator sends queries to random subdomains of the record specified with -r. the subdomains may contain binary (non-printable characters) including zero byte. the following generator options are available:
countβ number of queries to generate. default is100. π’sizeβ maximum length of the added label(s). default is255. π
π randomlabel π
The generator sends queries to random subdomains of the record specified with -r. the subdomains may contain only characters valid in DNS names. the following generator options are available:
countβ number of queries to generate. default is1000. π’lblsizeβ maximum length of a single added label. default is10. πlblcountβ maximum number of labels to add. default is5. π’
π₯ EXAMPLES π₯
Flame localhost over IPv4 on UDP port 53, use default static generator sending test.com/A queries, no QPS limit, terminate after 10 seconds:
$ flame -l 10 localhost
Flame target.example.test over IPv6 on TCP port 5300 with default generator and no QPS limit:
$ flame -p 5300 -P tcp -F inet6 target.example.test
Flame target.example.test over IPv4 on UDP port 53 with 10 q/s limit, send AAAA type queries for random one-label subdomains of example.test, limit the query speed to 10 q/s, terminate after 1000 queries:
$ flame -Q 10 -r example.test -t AAAA -g randomlabel target.example.test lblsize=10 lblcount=1 count=1000
not me putting all three of these in my notes app for later π these are literally the cheat codes.
π AUTHORS π
NS1 (https://ns1.com) β icons, honestly. π
π BUGS π
Flamethrower at GitHub (https://github.com/DNS-OARC/flamethrower/issues) β go report it bestie, they're nice. π«Ά
π COPYRIGHT π
Copyright 2019, NSONE, Inc.
and that's the whole page, pookie!! πβ¨ this is version 0.9, dated Februrary 6, 2019 (yes that's how it's spelled on the page, I don't make the rules π), and it's the FLAME(1) page from the Flamethrower manual. go forth and flame responsibly, queen. π
π₯π
π¦ where this page comes from
- epel 10: flamethrower 0.12.0-3.el10_2 Β· Apache-2.0
- fedora 43: flamethrower 0.11.0-31.fc43 Β· Apache-2.0
- fedora 43: flamethrower 0.12.0-3.fc43 Β· Apache-2.0
- fedora 44: flamethrower 0.12.0-3.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms