CLI benchmark tool for load and performance testing DMARC DNS nameserver queries.
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
GITHUB_SERVER_URL on this runner is an internal cluster address using http:// (e.g. http://forgejo-http.forgejo.svc.cluster.local:3000), not the public https:// hostname -- stripping only "https://" left it untouched and produced "https://http://...". Instead of guessing at scheme/host, read the remote URL checkout already resolved (proven to work, since fetch/clone succeeded) and inject tag-bot credentials into it directly. Also set persist-credentials: false on checkout so its own token credentials cannot conflict with ours. |
||
| .forgejo/workflows | ||
| cmd/benchmark | ||
| docs | ||
| instructions | ||
| .gitignore | ||
| catalog-info.yaml | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| renovate.json | ||
cli-benchmark-dns
A lightweight CLI benchmark tool for querying DNS nameservers in the DMARC project.
Supported modes
spf- test a static SPF macro query with a single IPspf-macro- test SPF macro coverage by randomizing IPs from good/bad CIDR listsdkim- stress test DKIM CNAME lookups for a selector/domaindmarc- stress test DMARC TXT lookups through the hosted DMARC zone
Usage
cd cli-benchmark-dns
go run ./cmd/benchmark --mode spf --dns-server 127.0.0.1:5533 --zone hosted.spf.com.au --domain kylecooper.me --ip 74.125.0.111 --helo kylecooper.me --count 1000 --concurrency 20
go run ./cmd/benchmark --mode spf-macro --dns-server 127.0.0.1:5533 --zone hosted.spf.com.au --domain kylecooper.me --helo kylecooper.me --good-cidrs "74.125.0.0/24,192.0.2.0/24" --bad-cidrs "203.0.113.0/24" --count 1000 --concurrency 20
Notes
spfuses the query form:IP._ip.IP._ehlo.HELO._spf.DOMAIN.ZONE.spf-macrorandomizes the IP address from supplied good/bad CIDRs and uses the same query formdkimuses the query form:selector._domainkey.DOMAIN._dkim.ZONE.dmarcuses the query form:_dmarc.DOMAIN._dmarc.ZONE.