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?

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.


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

13

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



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.


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.


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

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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.