如何对外部 DNS 查找的性能进行基准测试?

Mik*_*e L 16 domain-name-system performance testing

我正在考虑将 Google 的公共 DNS 服务器作为我网络的外部 DNS。目前我正在使用来自我的 ISP 的 DNS 服务器。我过去也考虑过 OpenDNS,但最终决定不跳。

我希望能够对各个服务器能够为我们的 DNS 请求提供服务的速度进行基准测试。我在 nslookup 中看不到任何有用的东西。

如何测试外部提供的 DNS 的往返时间?

小智 42

你可以简单地diggrep

$ dig @8.8.8.8   www.rimuhosting.com | grep "Query time:"
;; Query time: 15 msec
$ dig @4.2.2.1   www.rimuhosting.com | grep "Query time:"
;; Query time: 289 msec
Run Code Online (Sandbox Code Playgroud)


小智 13

使用 GRC 的域名速度基准

  • 在运行 Google 的 namebench 后,我尝试了 GRC 的 Benchmark。谷歌表示,它自己的 8.8.4.4 比其他的快 21.1%。然而,GRC 的自定义列表添加了 8.8.4.4 显示谷歌是最慢的之一,并且仅比我目前由 Comcast 提供的 DNS 快一点。最快的都来自Level 3 Communications。我现在信任 GRC 的 DNS 基准而不是 Google。GRC 是用汇编编写的,并从单个 184k 文件运行。感人的! (2认同)

joe*_*rty 5

您可以使用数据包捕获程序(DNS 过滤)来跟踪 DNS 查询\响应时间。您可以在您的机器或您的内部 DNS 服务器(如果您有的话)上运行它。所有事情或多或少都相同,这应该让您大致了解 Google DNS 与您的 ISP 相比的速度。

  • Wireshark 的 DNS 解析器进行请求/响应跟踪。“dns.time”显示过滤器可用于查找响应时间。 (5认同)

小智 5

我写了一些不错的脚本来评估与 DNS 服务器的连接:

cat >test_dns_list_speed.sh
#!/usr/bin/env ksh
site="www.google.com"
IPfile="$1"
samples=$2

if [ ! -f "$IPfile" ] || ! echo "$samples"|egrep -q "[0-9]+" ; then
  echo "test_dns_list_speed.sh <file-ip-list> <samples>"
  echo "<file-ip-list>       newline separated list of DNS server IP adresses"
  echo "<samples>            how many DNS resolution samples to take"
  echo "PURPOSE:"
  echo "          collect statistics about response times from list of DNS servers"
  exit 1
fi

typeset -i i

while [ $i -lt $samples ]; do
  i=$i+1
  for IP in `cat $IPfile`; do
    time=`dig @$IP $site| awk '/Query time:/ {print " "$4}'`
    IPtrans=`echo $IP|tr \. _`
    eval `echo result$IPtrans=\"\\$result$IPtrans$time\"`
  done
done

for IP in `cat $IPfile`; do
  IPtrans=`echo $IP|tr \. _`
  printf "%-15s " "$IP"; echo -e `eval "echo \\$result$IPtrans"`|tr ' ' "\n"|awk '/.+/ {rt=$1; rec=rec+1; total=total+rt; if (minn>rt || minn==0) {minn=rt}; if (maxx<rt) {maxx=rt}; }
             END{ if (rec==0) {ave=0} else {ave=total/rec}; printf "average %5i     min %5i     max %5i ms %2i responses\n", ave,minn,maxx,rec}'
done

./test_dns_list_speed server_list 20
202.93.142.10   average   949     min   523     max  2229 ms 20 responses
202.93.142.20   average   897     min   515     max  2017 ms 20 responses
208.67.222.222  average  1235     min   530     max  3362 ms 20 responses
8.8.8.8         average   759     min   529     max  1624 ms 20 responses
Run Code Online (Sandbox Code Playgroud)