Bagaimana cara membandingkan kinerja pencarian DNS eksternal?

14

Saya mempertimbangkan server DNS publik Google sebagai DNS eksternal untuk jaringan saya. Saat ini saya menggunakan server DNS dari ISP saya. Saya juga mempertimbangkan OpenDNS di masa lalu, tetapi akhirnya memutuskan untuk tidak melompat.

Saya ingin dapat mengukur seberapa cepat masing-masing server dapat melayani permintaan DNS kami. Saya tidak melihat apa pun di nslookup yang akan membantu.

Bagaimana saya bisa menguji waktu pulang-pergi untuk DNS yang disediakan secara eksternal?

Mike L
sumber

Jawaban:

5

Anda dapat menggunakan program penangkapan paket (memfilter untuk DNS) untuk melacak waktu respons DNS \ permintaan. Anda dapat menjalankan ini di mesin Anda atau di server DNS internal Anda (jika Anda memilikinya). Semua hal yang kurang lebih sama, ini akan memberi Anda gambaran umum tentang seberapa cepat Google DNS dibandingkan dengan ISP Anda.

joeqwerty
sumber
5
Pembangkang DNS Wireshark melakukan pelacakan permintaan / respons. Filter tampilan "dns.time" dapat digunakan untuk menemukan waktu respons.
Gerald Combs
40

Anda hanya bisa digdangrep

$ 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
Pascal
sumber
13

Gunakan Tolok Ukur Kecepatan Nama Domain GRC .

nrussels
sumber
Saya memeriksa alat ini ... itu batu!
Mike L
2
Saya mencoba Tolok Ukur GRC setelah menjalankan papan nama Google. Google mengatakan itu sendiri 8.8.4.4 adalah 21,1% lebih cepat daripada yang lain. Namun daftar GRC yang disesuaikan dengan tambahan 8.8.4.4 menunjukkan bahwa Google adalah salah satu yang paling lambat dan hanya sedikit lebih cepat daripada DNS saya saat ini yang disediakan oleh Comcast. Yang tercepat semuanya dari Level 3 Communications. Saya percaya Tolok Ukur DNS GRC di atas Google sekarang. Dan GRC ditulis dalam kumpulan dan dijalankan dari satu file 184k. Impresif!
Brian Boatright
Waspadalah terhadap GRC jika Anda tidak berada di AS. Tampaknya tidak menguji banyak (bukan?) Server yang dihosting di luar AS.
NickG
3

Saya juga melihat namebench - Utilitas Benchmark DNS Open Source Google. Itu sangat komprehensif.

Mike L
sumber
tautan kedaluwarsa :-(
Pol Hallen
Versi namebench yang ditautkan (v1.3) sudah cukup tua sekarang. Ada repositori (v2) yang diperbarui di GitHub: github.com/google/namebench yang mendukung DNSSEC, pembandingan CDN, dll.
Patrick
2

Plugin Firebug untuk Firefox dan IE memiliki tab "net" yang memberi Anda representasi grafis dari waktu buka untuk setiap permintaan file.

Ini memecahnya menjadi aktivitas termasuk pencarian DNS, yang ditampilkan dalam warna hijau.

Perhubungan
sumber
2

Script shell sederhana qtest.sh dapat digunakan untuk itu:

% 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

Di sini,, 172.19.1.1resolver lokal, lebih cepat, diikuti oleh resolver ISP, kemudian OpenDNS.

bortzmeyer
sumber
2

Saya menulis sedikit skrip yang bagus untuk mengevaluasi koneksi ke server 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
PeZa
sumber
1

Anda dapat menggunakan ping untuk mencari tahu berapa lama paket akan bergerak bolak-balik antara server Anda dan server DNS. Sebagai aturan umum: jangan pernah mengubah apa yang berhasil.

Kerugian dari OpenDNS adalah bahwa domain yang tidak ada dapat merespons dengan catatan A yang menunjuk ke halaman pencarian OpenDNS, karena mereka cenderung melakukan itu. Google saat ini tidak melakukannya, tetapi akan bodoh untuk menganggap bahwa mereka hanya memberikan resolver DNS tanpa hasil dari itu.

gekkz
sumber
Jika saya dapat membagi jawaban, saya akan melakukannya. Saya menyukai tes ping karena kesederhanaannya. Saya bisa membiarkannya berlari melawan mereka semua, lalu melihat rata-rata. Di sini, saya ingin melihat waktu respons untuk kueri itu sendiri di samping paket perjalanan pulang pergi, jadi saya memilih untuk menangkap paket. Lebih banyak pekerjaan untuk mengatur dan menguji, tetapi lebih menuntut untuk kinerja server eksternal yang sebenarnya. Terima kasih!
Mike L
1
Gagasan buruk untuk menggunakan ping. Tidak semua server merespons ping dan tidak ada jaminan bahwa waktu respons akan sama dengan DNS dan ICMP.
bortzmeyer
0

dnsevaldari dnsdiag bekerja seperti pesona di windows linux dan mac. (jauh lebih baik daripada papan nama yang sudah ketinggalan zaman) unduh di github

Untuk menggunakannya, pertama-tama tulis file teks yang ingin Anda uji setiap DNS yang berisi garis dengan alamat IP-nya mylist.txt::

8.8.8.8
192.168.178.1

dan kemudian jalankan

./dnseval -f mylist.txt yahoo.com     # latency for cached sites
./dnseval -m -f mylist.txt yahoo.com  # latency for sites not in cache

Meskipun ini tidak memeriksa ukuran cache server, itu adalah pendekatan yang jauh lebih mudah dan lebih cepat dan saya berharap itu berkorelasi dengan baik dengan kinerja dunia nyata.

jan-glx
sumber