Як я оцінюю ефективність зовнішніх пошукових записів DNS?


14

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

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

Як я можу перевірити час у зворотній бік для DNS, який надається зовні?

Відповіді:


5

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


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

Я перевірив цей інструмент ... він гойдається!
Майк L

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

Будьте обережні, якщо ви не знаходитесь у США. Схоже, це не тестує багато (будь-які?) Сервери, розміщені не в США.
NickG

3

Я також подивився на namebench - утиліту DNS з відкритим кодом DNS Benchmark. Це було дуже всебічно.


Термін дії закінчується :-(
Pol Hallen

Версія 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-рішенням нічого, щоб отримати від цього нічого.


Якби я міг розділити відповідь, я мав би. Мені сподобався тест пінг за його простоту. Я міг би дозволити йому протистояти всім, а потім подивитись на середні показники. Тут я хотів розглянути часи відповіді на сам запит на додаток до зворотної поїздки для пакетів, тому я вибрав захоплення пакетів. Більше роботи з його налаштування та тестування, але більш вимоглива до справжньої продуктивності зовнішнього сервера. Спасибі!
Майк L

1
Погана ідея використовувати пінг. Не всі сервери відповідають на ping, і існує нульова гарантія того, що час відповіді буде однаковим як для DNS, так і для ICMP.
борцмейєр

0

dnsevalвід dnsdiag працює як шарм на Windows Linux та mac. (набагато краще, ніж застарілий іменник) завантажити на 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.