Как я могу оценить производительность внешнего поиска DNS?


14

Я рассматриваю общедоступные DNS-серверы Google как внешний DNS для моей сети. В настоящее время я использую DNS-серверы от моего провайдера Я также рассматривал OpenDNS в прошлом, но в итоге решил не прыгать.

Я хотел бы иметь возможность оценить, насколько быстро соответствующие серверы могут обслуживать наши запросы DNS. Я не вижу в nslookup ничего, что могло бы помочь.

Как я могу проверить время приема-передачи для DNS, предоставляемого извне?

Ответы:


5

Вы можете использовать программу захвата пакетов (фильтрация по DNS) для отслеживания DNS-запросов \ времени отклика. Вы можете запустить его на своем компьютере или на своем внутреннем DNS-сервере (если он у вас есть). При прочих равных условиях это должно дать вам общее представление о том, насколько быстро Google DNS сравнивается с вашим провайдером.


5
DNS-анализатор Wireshark отслеживает запросы и ответы. Фильтр отображения «dns.time» можно использовать для определения времени отклика.
Джеральд Комбс

40

Вы можете просто digиgrep

$ 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 .


Я проверил этот инструмент ... он качается!
Майк Л

2
Я попробовал GRC's Benchmark после запуска Google Namebench. Google сказал, что его собственный 8.8.4.4 был на 21,1% быстрее, чем другие. Однако настроенный список GRC с добавлением 8.8.4.4 показал, что Google был одним из самых медленных и лишь незначительно быстрее моего текущего DNS, предоставленного Comcast. Самые быстрые были на уровне 3. Я доверяю тесту GRC DNS по сравнению с Google сейчас. А GRC написаны на ассемблере и запускаются из одного файла 184k. Впечатляет!
Брайан Боатрайт

Будьте осторожны с GRC, если вы не в США. Кажется, он не тестирует многие (любые?) Серверы, расположенные за пределами США.
NickG

3

Я также взглянул на namebench - Утилиту DNS с открытым исходным кодом от Google. Это было очень всеобъемлющим.


срок действия ссылки истекает :-(
Пол Халлен

Версия namebench, связанная с (v1.3), сейчас довольно старая. На GitHub есть обновленный (v2) репозиторий: github.com/google/namebench, который поддерживает DNSSEC, тестирование CDN и т. Д.
Патрик


2

Плагин Firebug для Firefox и IE имеет вкладку «net», которая дает графическое представление времени загрузки для каждого запроса файла.

Это разбивает его на активность, включая поиск DNS, которые показаны зеленым цветом.


2

Для этого можно использовать простой сценарий оболочки 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, а затем OpenDNS.


2

Я написал небольшой хороший скрипт для оценки соединения с 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

Вы можете использовать ping, чтобы выяснить, сколько времени потребуется для перемещения пакета назад и вперед между вашим сервером и DNS-серверами. Как правило: никогда не меняйте то, что работает.

Недостатком OpenDNS является то, что несуществующие домены могут отвечать записью A, указывающей на страницу поиска OpenDNS, поскольку они, как правило, делают это. Google в настоящее время не делает этого, но было бы глупо предполагать, что они просто предоставляют DNS-распознаватели, которые не получают от этого никакой выгоды.


Если бы я мог разделить ответ, я бы сделал. Мне понравился тест ping за его простоту. Я мог бы позволить этому работать против всех из них, а затем посмотреть на средние значения. Здесь я хотел посмотреть на время ответа для самого запроса в дополнение к прохождению пакетов в обоих направлениях, поэтому я выбрал захват пакетов. Больше работы по настройке и тестированию, но более требовательной к истинной производительности внешнего сервера. Благодарность!
Майк Л

1
Плохая идея использовать пинг. Не все серверы отвечают на пинг, и нет никакой гарантии, что время отклика будет одинаковым как с DNS, так и с ICMP.
bortzmeyer

0

dnsevalот dnsdiag работает как брелок на windows linux и mac. (намного лучше, чем устаревшая namebench) скачать на 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

Хотя это и не проверяет размер кэша серверов, это гораздо более простой и быстрый подход, и я ожидаю, что он будет хорошо коррелировать с реальной производительностью.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.