Harici DNS aramalarının performansını nasıl kıyaslayabilirim?


14

Google'ın genel DNS sunucularını ağım için harici DNS olarak görüyorum. Şu anda ISS'mdeki DNS sunucularını kullanıyorum. Ayrıca geçmişte OpenDNS'yi de düşündüm, ama nihayetinde zıplamamaya karar verdim.

İlgili sunucuların DNS taleplerimizi ne kadar hızlı sunabildiğini kıyaslamak istiyorum. Nslookup'ta yardımcı olacak hiçbir şey göremiyorum.

Harici olarak sağlanan DNS için gidiş-dönüş sürelerini nasıl test edebilirim?

Yanıtlar:


5

DNS sorgusu \ yanıt sürelerini izlemek için bir paket yakalama programı (DNS için filtreleme) kullanabilirsiniz. Bunu makinenizde veya dahili DNS sunucunuzda (varsa) çalıştırabilirsiniz. Her şey aşağı yukarı eşit olduğunda, bu size Google DNS'in İSS'nizle ne kadar hızlı karşılaştırıldığı hakkında genel bir fikir vermelidir.


5
Wireshark'ın DNS disektörü istek / yanıt takibi yapar. Yanıt süresini bulmak için "dns.time" ekran filtresi kullanılabilir.
Gerald Combs

40

Sadece basitçe digvegrep

$ 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

GRC'nin Alan Adı Hız Kıyaslamasını kullanın .


Bu aracı kontrol ettim ...
Mike L

2
Google'ın namebench'ini çalıştırdıktan sonra GRC'nin Benchmark'ını denedim. Google'ın kendi 8.8.4.4'ünün diğerlerine göre% 21.1 daha hızlı olduğunu söyledi. Bununla birlikte, 8.8.4.4 eklenmiş GRC'nin özelleştirilmiş listesi, Google'ın Comcast tarafından sağlanan mevcut DNS'imden en yavaş ve sadece marjinal olarak daha hızlı olduğunu gösterdi. En hızlısı 3. Seviye İletişim'den geliyordu. Şimdi GRC'nin DNS Benchmark'ı Google'ınkine güveniyorum. Ve GRC'ler montajda yazılır ve tek bir 184k dosyadan çalışır. Etkileyici!
Brian Boatright

ABD'de değilseniz GRC'lere karşı dikkatli olun. ABD'de barındırılmayan birçok sunucuyu (herhangi bir?) Test etmiyor gibi görünüyor.
NickG



2

Firefox ve IE için Firebug eklentisi , her dosya isteği için yükleme süresinin grafiksel bir gösterimini sağlayan bir "net" sekmesine sahiptir.

Yeşil renkte gösterilen DNS aramaları da dahil olmak üzere etkinliğe ayırır.


2

Basit kabuk betiği qtest.sh bunun için kullanılabilir:

% 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

Burada, 172.19.1.1yerel bir çözümleyici daha hızlıdır, bunu ISP çözümleyicisi, ardından OpenDNS izler.


2

DNS sunucularına bağlantıyı değerlendirmek için çok güzel bir senaryo yazdım:

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

Bir paketin sunucunuzla DNS sunucuları arasında ne kadar ileri ve geri hareket edeceğini anlamak için ping komutunu kullanabilirsiniz. Genel bir kural olarak: neyin işe yaradığını asla değiştirmeyin.

OpenDNS'nin bir dezavantajı, mevcut olmayan alanların, bunu yapma eğiliminde oldukları için OpenDNS'in arama sayfasını gösteren A kaydıyla yanıt verebilmeleridir. Google şu anda yapmıyor, ancak DNS çözümleyicilerine bundan kazanç sağlayacak hiçbir şey sağlamadığını varsaymak aptalca olacaktır.


Eğer bir cevabı böleseydim, isterdim. Basitliği nedeniyle ping testini beğendim. Hepsine karşı koşmasına izin verebilirdim, sonra ortalamalara bakabilirim. Burada, paketlerin gidiş-dönüşüne ek olarak sorgunun kendisi için yanıt sürelerine bakmak istedim, bu yüzden paket yakalamayı seçtim. Kurmak ve test etmek için daha fazla çalışma, ancak harici sunucunun gerçek performansı için daha titiz. Teşekkürler!
Mike L

1
Ping kullanmak kötü bir fikir. Tüm sunucular ping'e yanıt vermez ve yanıt süresinin DNS ve ICMP ile aynı olacağına dair sıfır garanti yoktur.
bortzmeyer

0

dnsevaldnsdiag gelen windows linux ve mac bir cazibe gibi çalışır. (eski namebench çok daha iyi) github indir

Kullanmak için, önce test etmek istediğiniz her DNS'nin IP adresiyle bir satır içerdiği bir metin dosyası yazın mylist.txt:

8.8.8.8
192.168.178.1

ve sonra koş

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

Bu, sunucuların önbellek boyutunu denetlemese de, çok daha kolay ve hızlı bir yaklaşımdır ve gerçek dünya performansı ile iyi bir şekilde ilişkili olmasını bekliyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.