CLI benchmark tool for load and performance testing DMARC DNS nameserver queries.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nyaaan f0db94f8a3
All checks were successful
Bump Tag on Main / bump-tag (push) Successful in 9s
Go lint / lint (push) Successful in 47s
fix: push tags via a credential-injected remote, not a reconstructed URL
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.
2026-08-28 04:26:36 +10:00
.forgejo/workflows fix: push tags via a credential-injected remote, not a reconstructed URL 2026-08-28 04:26:36 +10:00
cmd/benchmark Replace interface{} with any in exitf 2026-08-24 00:17:46 +10:00
docs Add backstage 2026-05-18 20:10:07 +10:00
instructions inital commit 2026-05-10 02:05:01 +10:00
.gitignore inital commit 2026-05-10 02:05:01 +10:00
catalog-info.yaml Add Backstage catalog metadata 2026-05-18 20:56:56 +10:00
go.mod inital commit 2026-05-10 02:05:01 +10:00
go.sum inital commit 2026-05-10 02:05:01 +10:00
README.md docs: drop build-and-push badge, no longer built as a container 2026-08-28 02:56:02 +10:00
renovate.json refactor: extend shared Renovate preset instead of duplicating config 2026-08-28 04:02:54 +10:00

cli-benchmark-dns

lint

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 IP
  • spf-macro - test SPF macro coverage by randomizing IPs from good/bad CIDR lists
  • dkim - stress test DKIM CNAME lookups for a selector/domain
  • dmarc - 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

  • spf uses the query form: IP._ip.IP._ehlo.HELO._spf.DOMAIN.ZONE.
  • spf-macro randomizes the IP address from supplied good/bad CIDRs and uses the same query form
  • dkim uses the query form: selector._domainkey.DOMAIN._dkim.ZONE.
  • dmarc uses the query form: _dmarc.DOMAIN._dmarc.ZONE.