61 lines
1.4 KiB
Bash
61 lines
1.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
IFS=$'\n'
|
||
|
set -eu -o pipefail
|
||
|
|
||
|
cleanup () {
|
||
|
echo
|
||
|
echo '==> Stopping Unbound'
|
||
|
[ -v unbound_pid ] && kill -INT "$unbound_pid"
|
||
|
echo
|
||
|
}
|
||
|
|
||
|
trap cleanup EXIT
|
||
|
|
||
|
echo
|
||
|
echo '==> Checking deps'
|
||
|
echo 'Note: dig is installed from package usually named "bind-utils"'
|
||
|
echo ' drill -- package "ldns"'
|
||
|
echo " and hickory's resolve can be built with ./build_hr.sh"
|
||
|
echo ' (this script will find it in subdir, no need to install)'
|
||
|
which unbound
|
||
|
which hyperfine
|
||
|
which dig
|
||
|
which drill
|
||
|
hr="hickory-dns/target/release/resolve"
|
||
|
[ -e "$hr" ] || hr=$(which resolve)
|
||
|
|
||
|
echo
|
||
|
echo '==> Starting Unbound'
|
||
|
unbound -c ./unbound.conf -dp 2>unbound.log &
|
||
|
unbound_pid=$!
|
||
|
sleep 2
|
||
|
|
||
|
echo
|
||
|
echo '==> Benchmarks for A domain.tld.'
|
||
|
hyperfine -N \
|
||
|
"dig -p 2253 domain.tld @127.0.0.1" \
|
||
|
"drill -p 2253 domain.tld @127.0.0.1" \
|
||
|
"$hr -n 127.0.0.1:2253 domain.tld"
|
||
|
|
||
|
echo
|
||
|
echo '==> Benchmarks for AAAA domain.tld.'
|
||
|
hyperfine -N \
|
||
|
"dig -p 2253 aaaa domain.tld @127.0.0.1" \
|
||
|
"drill -p 2253 aaaa domain.tld @127.0.0.1" \
|
||
|
"$hr -n 127.0.0.1:2253 -t AAAA domain.tld"
|
||
|
|
||
|
echo
|
||
|
echo '==> Benchmarks for MX domain.tld.'
|
||
|
hyperfine -N \
|
||
|
"dig -p 2253 mx domain.tld @127.0.0.1" \
|
||
|
"drill -p 2253 mx domain.tld @127.0.0.1" \
|
||
|
"$hr -n 127.0.0.1:2253 -t MX domain.tld"
|
||
|
|
||
|
echo
|
||
|
echo '==> Benchmarks for CNAME mail.domain.tld.'
|
||
|
hyperfine -N \
|
||
|
"dig -p 2253 mail.domain.tld @127.0.0.1" \
|
||
|
"drill -p 2253 mail.domain.tld @127.0.0.1" \
|
||
|
"$hr -n 127.0.0.1:2253 mail.domain.tld"
|