Jak sprawdzić wydajność zewnętrznych wyszukiwań DNS?

14

Rozważam publiczne serwery DNS Google jako zewnętrzny DNS dla mojej sieci. Obecnie używam serwerów DNS od mojego ISP. W przeszłości rozważałem też OpenDNS, ale ostatecznie zdecydowałem się nie skakać.

Chciałbym móc porównać, jak szybko odpowiednie serwery są w stanie obsłużyć nasze żądania DNS. W nslookup nie widzę nic, co by pomogło.

Jak mogę przetestować czasy podróży w obie strony dla DNS dostarczonego zewnętrznie?

Mike L.
źródło

Odpowiedzi:

5

Możesz użyć programu do przechwytywania pakietów (filtrowania DNS), aby śledzić czasy zapytania / odpowiedzi DNS. Możesz uruchomić to na swoim komputerze lub na wewnętrznym serwerze DNS (jeśli taki masz). Wszystkie rzeczy są mniej więcej równe, powinno to dać ogólny obraz tego, jak szybko Google DNS jest porównywany z twoim dostawcą usług internetowych.

joeqwerty
źródło
5
Dysktor DNS Wireshark wykonuje śledzenie żądań / odpowiedzi. Do wyświetlenia czasu odpowiedzi można użyć filtru wyświetlania „dns.time”.
Gerald Combs,
40

Możesz po prostu digigrep

$ 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
źródło
13

Użyj testu prędkości nazw domen GRC .

nrgyz
źródło
Sprawdziłem to narzędzie ... kołysze się!
Mike L,
2
Wypróbowałem test GRC po uruchomieniu Benchmark nazw Google. Google powiedział, że jego własne 8.8.4.4 było o 21,1% szybsze niż inne. Jednak spersonalizowana lista GRC z dodaną wersją 8.8.4.4 pokazała, że ​​Google był jednym z najwolniejszych i tylko nieznacznie szybszych niż mój obecny DNS dostarczony przez Comcast. Najszybsze były wszystkie z poziomu komunikacji 3. Ufam Benchmark DNS GRC w porównaniu z Google. GRC jest napisane w asemblerze i działa z jednego pliku 184k. Imponujący!
Brian Boatright,
Uważaj na GRC, jeśli nie jesteś w USA. Wydaje się, że nie testuje wielu (żadnych?) Serwerów hostowanych poza USA.
NickG
3

Spojrzałem również na namebench - Narzędzie Google Benchmark Open Source DNS. To było bardzo obszerne.

Mike L.
źródło
link wygasa :-(
Pol Hallen
Wersja namebench powiązana z (v1.3) jest teraz dość stara. W GitHub znajduje się zaktualizowane repozytorium (v2): github.com/google/namebench, które obsługuje testy DNSSEC, CDN itp.
Patrick
2

Wtyczka Firebug dla Firefoksa i IE ma zakładkę „net”, która daje graficzną reprezentację czasu ładowania dla każdego żądania pliku.

Dzieli to na aktywność, w tym wyszukiwania DNS, które są wyświetlane na zielono.

Ogniwo
źródło
2

Można do tego użyć prostego skryptu powłoki 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

Tutaj 172.19.1.1lokalny przelicznik jest szybszy, następnie następuje przelicznik ISP, a następnie OpenDNS.

bortzmeyer
źródło
2

Napisałem mały fajny skrypt do oceny połączenia z serwerami 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
źródło
1

Możesz użyć polecenia ping, aby dowiedzieć się, ile czasu zajmie przejście pakietu w obie strony między serwerem a serwerami DNS. Zasadniczo: nigdy nie zmieniaj tego, co działa.

Wadą OpenDNS jest to, że domeny, które nie istnieją, mogą odpowiadać rekordem A wskazującym stronę wyszukiwania OpenDNS, jak to zwykle robią. Google obecnie tego nie robi, ale głupotą byłoby zakładać, że po prostu zapewniają usługi rozpoznawania nazw DNS, nie mając z tego nic do zyskania.

gekkz
źródło
Gdybym mógł podzielić odpowiedź, zrobiłbym to. Test ping podobał mi się ze względu na jego prostotę. Mógłbym pozwolić, aby działał przeciwko wszystkim, a następnie spojrzał na średnie. Tutaj chciałem spojrzeć na czasy odpowiedzi dla samego zapytania oprócz podróży w obie strony dla pakietów, więc zdecydowałem się na przechwytywanie pakietów. Więcej pracy, aby go skonfigurować i przetestować, ale bardziej wymagająca dla prawdziwej wydajności zewnętrznego serwera. Dzięki!
Mike L,
1
Zły pomysł na użycie pinga. Nie wszystkie serwery odpowiadają na ping i nie ma żadnej gwarancji, że czas odpowiedzi będzie taki sam w przypadku DNS i ICMP.
bortzmeyer
0

dnsevalz dnsdiag działa jak urok na Windows Linux i Mac. (znacznie lepsze niż przestarzałe namebench) pobierz na github

Aby go użyć, najpierw napisz plik tekstowy, w którym każdy DNS, który chcesz przetestować, zawiera linię z adresem IP mylist.txt:

8.8.8.8
192.168.178.1

a następnie biegnij

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

Chociaż nie sprawdza to wielkości pamięci podręcznej serwerów, jest to znacznie łatwiejsze i szybsze podejście i oczekuję, że będzie dobrze skorelowane z wydajnością w świecie rzeczywistym.

jan-glx
źródło