namebench: тестирование DNS-серверов






Время, затрачиваемое системой на получение ответа от DNS-сервера, как правило, невелико. Особенно, если обслуживающий вас DNS-сервер является кэширующим и вы подключены к нему по высокоскоростному каналу передачи данных. Однако иногда бывают случаи, когда вам необходимо выбрать максимально быстрый для вас DNS-сервер, обеспечивающий минимальное время отклика. Причиной тому может быть либо слишком медленные ответ от вашего текущего DNS-сервера, либо вы администрируете свой собственный DNS-сервер, обслуживающий множество хостов в сети и вам хотелось бы максимально увеличить его производительность. В этой заметке речь пойдёт о namebench — программой для поиска наиболее быстрого DNS-сервера относительно вашего местоположения в Сети.


namebench написан на Python и распространяется в виде исходных кодов и готовых сборок под Mac OS X и MS Windows. Программа имеет как интерфейс командной строки, так и графический. Лично я пробовал запускать её только под Ubuntu 10.10 и Python 2.6.6 о чём и рассказываю в ниже.

Установка

Получить namebench можно со страницы загрузок проекта на Google Code.  После того, как получите архив с исходными кодами, распакуйте его в удобное для вас место:

$ tar -xzf /home/ashep/tmp/downloads/namebench-1.3.1-source.tgz -C /home/ashep/opt/

Если планируете использовать namebench с графическим пользовательским интерфейсом, также установите python-tk, если он ещё не установлен:

$ sudo apt-get install pyhon-tk

Запуск в режиме командной строки

Чтобы запустить namebench в режиме по-умолчанию, просто запустите исполняемый его из каталога, в который вы распаковали архив с исходными кодами, указав опцию '-x':

$ /home/ashep/opt/namebench-1.3.3/namebench.py -x

После чего можете отправляться варить кофе, пока namebench будет выполнять великое множество всевозможных тестов. После завершения тестов вы получите в поток стандартного вывода результаты. Вот некоторые из тех, что получились у меня:

Fastest individual response (in milliseconds):
----------------------------------------------
Internal 192-0-1 ## 1.14107
Internal 10-2    #### 3.51000
Sloboda UA       ################# 18.40591
DG UA            ##################### 22.34793
FirmRadio UA     ######################## 26.01099
Magistraly RU    ########################### 29.77109
Google Public DN ####################################### 42.55199
DynGuide         ############################################### 51.04113
OpenDNS-2        ################################################## 55.14693
UltraDNS-2       ################################################### 55.50408
Level 3/GTEI     ##################################################### 58.49004
Mean response (in milliseconds):
--------------------------------
Google Public DN ################ 99.16
Internal 10-2    ##################### 126.85
OpenDNS-2        ####################### 140.74
DG UA            ####################### 142.52
DynGuide         ######################### 150.65
Level 3/GTEI     ########################## 157.01
UltraDNS-2       ############################ 167.59
Sloboda UA       ############################## 181.32
Magistraly RU    ######################################## 247.11
FirmRadio UA     ############################################## 284.38
Internal 192-0-1 ##################################################### 328.75

Рекомендуемая конфигурация списка DNS-серверов:

Recommended configuration (fastest + nearest):
----------------------------------------------
nameserver 8.8.8.8         # Google Public DNS
nameserver 192.168.0.1     # Internal 192-0-1
nameserver 10.0.0.2        # Internal 10-2

Также в конце теста вы получите ссылки на графики (на chart.apis.google.com) и файлы отчётов в формате html и csv (в каталоге /tmp вашей системы). Открыв html-отчёт, вы увидите массу полезной информации, полученной в результате исследований, проведённых программой:

Если вам нужно что-то изменить в стандартном поведении namebench, вы всегда можете воспользоваться опциями командной строки. Полный список опций можно получить здесь или при помощи опции '-h' переданной namebench при запуске:

$ /home/ashep/opt/namebench-1.3.3/namebench.py -h

Запуск в графическом режиме

Если у вас установлен Tkinter (пакет pyhon-tk в Ubuntu), то при запуске namebench без параметров, программа запустится в графическом режиме, с помощью которого вы можете настроить некоторые опции поведения программы и запустить тестирование. После завершения работы программы html-отчёт автоматически откроется в браузере по-умолчанию.