回答:
また、GoogleのオープンソースDNSベンチマークユーティリティであるnamebenchも調べました。非常に包括的でした。
OpenDNSとGoogleDNSの間でいくつかの基本的なベンチマークを行いました。結果は、OpenDNSオファリングがGoogleのDNSサービスより一貫して高速であることを示唆しています。
http://ajclark.wordpress.com/2009/12/04/google-dns-vs-opendns-performance-comparison/
FirebugプラグインFirefoxおよびIE用のには、「net」タブがあり、すべてのファイル要求の読み込み時間をグラフィカルに表示します。
DNSルックアップを含むアクティビティに分類され、緑色で表示されます。
単純なシェルスクリプトqtest.shを使用できます。
%qtest -n3 "A a.gtld-servers.net" 172.19.1.1 62.4.16.70 62.4.17.69 208.67.222.222 208.67.220.220 156.154.70.1 156.154.71.1 3 172.19.1.1/172.19.1.1 49 62.4.17.69/62.4.17.69 61 208.67.222.222/208.67.222.222
ここで172.19.1.1
は、ローカルリゾルバであるISPが高速であり、次にISPリゾルバ、OpenDNSが続きます。
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
pingを使用して、サーバーとDNSサーバー間でパケットが往復するのにかかる時間を把握できます。原則として、動作するものを変更しないでください。
OpenDNSの欠点は、存在しないドメインがOpenDNSの検索ページを指すAレコードで応答する場合があることです。Googleは現在それをしていませんが、単にDNSリゾルバにそれから得られるものを何も提供していないと考えるのは愚かでしょう。
dnseval
dnsdiagからは、Windows LinuxおよびMacで魅力のように機能します。(時代遅れのネームベンチよりもはるかに良い)githubでダウンロード
それを使用するには、まず、テストする各DNSにIPアドレスの行が含まれるテキストファイルを記述します
mylist.txt
。
8.8.8.8
192.168.178.1
そして、実行します
./dnseval -f mylist.txt yahoo.com # latency for cached sites
./dnseval -m -f mylist.txt yahoo.com # latency for sites not in cache
これはサーバーのキャッシュサイズを検査しませんが、はるかに簡単で高速なアプローチであり、実際のパフォーマンスとよく相関すると予想されます。