Make a lot of DNS requests and count the results! Useful for testing complex dynamic DNS records.
Pass multiple qnames, nameservers, record types, and client subnets, either via command line flags, a config, or a combo of both. shovel will dig all combinations of those and show you the results.
shovel
works well, but I don't use it anymore. I'm watching issues; please open one for any questions and especially BEFORE submitting a Pull Request.
Also see examples.md
You can save these flags to a config:
# tmp.yaml
# see config paths with `shovel dig combine -h`
dig:
combine:
count: 10
qnames:
- example.com
- www.example.com
nameservers:
- 1.1.1.1:53
rtypes:
- A
Run with:
shovel dig combine --config ./tmp.yaml
Proxy DNS Traffic through a separate server with sshuttle
In one tab:
sshuttle --dns -r username@host --ns-hosts=8.8.8.8 0/0:53 ::/0:53
In another tab:
shovel dig combine -q example.com -r TXT -p tcp4 -n 8.8.8.8:53
scoop bucket add bbkane https://github.com/bbkane/scoop-bucket
scoop install bbkane/shovel
- Download Mac/Linux/Windows executable: GitHub releases
- Go:
go install go.bbkane.com/shovel@latest
- Build with goreleaser after cloning:
goreleaser --snapshot --skip-publish --clean
See Go Developer Tooling for notes on development tooling.
Run the webapp locally with OpenObserve
Export env vars:
export SHOVEL_SERVE_OPENOBSERVE_PASS='...';
export SHOVEL_SERVE_OPENOBSERVE_USER='...';
export ZO_ROOT_USER_EMAIL='...';
export ZO_ROOT_USER_PASSWORD='...';
Run OpenObserve (in another terminal) after downloading:
./openobserve
Open OpenObserve at: http://localhost:5080/web/traces?period=15m&query=&org_identifier=default
Run shovel. Check go run . serve --help
to see all flags available. Also see [format_jsonl.py]https://github.com/bbkane/dotfiles/blob/master/bin_common/bin_common/format_jsonl.py)
go run . serve | format_jsonl.py fmt
Install shovel + OpenObserve as systemd services, on a local dev VM or production VM with shovel_ansible
- Go doc: https://pkg.go.dev/github.com/miekg/dns
miekg/dns
exmple: https://github.com/miekg/exdns/blob/master/q/q.go- Look up IP subnets for a country: http://www.nirsoft.net/countryip/ or https://ipinfo.io/countries