namebench — выбор оптимального DNS-сервера

.

Программа namebench может использоваться для поиска наиболее быстрого DNS-сервера относительно вашего местоположения в сети. Рассмотрим простой процесс выбора оптимальных DNS на основе истории веб-браузера

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

Но что делать, если вы часто испытываете проблемы с соединением, открытием тех или иных веб-сайтов, или просто хотите получить более быстрый и стабильный Интернет? Попробуйте программу namebench для поиска наиболее быстрого DNS-сервера относительно вашего местоположения в сети.

Утилита namebench выполняет тщательное тестирование с использованием истории веб-браузера, данных tcpdump или стандартные наборы данных в целях обеспечения индивидуальной рекомендаций. Программа абсолютно бесплатна и никаким образом не влияет на вашу систему. Этот проект был начат в виде «20% на проекты» в компании Google.

namebench работает на Mac OS X, Windows и UNIX системах, предлагается с графическим пользовательским интерфейсом, а также интерфейсом командной строки для продвинутых пользователей.

Выбор оптимальных DNS на основе истории веб-браузера

Рассмотрим простой процесс тестирования на выявления оптимальных DNS-серверов с использованием истории посещения веб-сайтов на вашем веб-браузере в системе Windows.

1. Для начала нужно скачать утилиту namebench на странице загрузки проекта. На момент написания статьи была доступна последняя весрия 1.3.1. Выбираем файл namebench-1.3.1-Windows.exe — портативный самораспаковывающийся архив.

2. После загрузки, запускаем файл, который распакует все в отдельную папку namebench-1.3.1-Windows. Заходим в нее и запускаем файл namebench.exe — версию с графическим интерфейсом.

3. После запуска namebench автоматически определит используемые DNS-сервера (Nameservers), ваше местоположение — страну (Your location).

Как правильно настроить DNS на windows

В выпадающем меню Query Data Source  будут показаны используемые в системе браузеры, историю которых можно использовать в качестве данных для тестирования. Также можно выбрать стандартные наборы тестов, например ТОП 2000 сайтов по данным портала статистики Alexa.

3. Для получения максимально точных результатов, которые будут отвечать вашим требованиям, лучше использовать для теста историю вашего веб-браузера, поэтому перед этим желательно не очищать веб-браузер, несколько дней используя в обычном режиме — посещая привычные вам ресурсы. В нашем примере это будет браузер Google Chrome, предлагающий более 120 тысяч точек для расчета в нашем тестировании.

4. Остается нажать на кнопку Start Benchmark и дождаться результатов тестирования, которые откроются в браузере в виде полного отчета. Нас интересует данные Recommended configuration (fastest + nearest) — рекомендуемая конфигурация (быстрый + ближайший).

В нашем случае по результатам проверки выяснилось, что первичный сервер Google Public DNS (8.8.8.8) будет на 109.6% быстрее текущего DNS-сервера провайдера, на которые автоматически настроен роутер (192.168.1.1). Предлагается выставить следующие DNS-сервера, указанные на скриншоте:

5. Для вашей системы в зависимости от различных факторов (местоположение, набор посещаемых веб-сайтов) результаты могут быть получиться другими. Вы можете последовать рекомендации, настроив DNS-сервера на ПК по инструкции Настройка DNS на компьютере с ОС Windows.

Комментарии и отзывы

Добавляя комментарий, ознакомьтесь с Правилами сообщества

При поиске proxy серверов (и при работе с ними) имеется одна проблема, которая на первый взгляд не является существенной. Однако, если Вы используете много proxy серверов, то Вам необходимо о ней знать.

Дело в том, что в DNS (доменной системе имен, осуществляющей преобразование имен серверов в IP-адрес компьютера, например www.microsoft.com в 207.46.197.101) одному имени компьютера (тому же www.microsoft.com) может соответствовать не один, а несколько IP-адресов (т.е.

Как скрыть свой DNS сервер

в принципе несколько компьютеров). Это означает, что появляется неопределенность — когда Вы обращаетесь к сайту www.microsoft.com, Вы можете попасть произвольным образом на любой из этих IP-адресов (это зависит от погоды 🙂 ). Что касается сайта Microsoft, то это несущественно — все они дублируют друг друга, поэтому Вам без разницы, на какой адрес Вы попадете. А с proxy-серверами это не так.

Пример:

имени сервера r-2.isb.ru (proxy r-2.isb.ru:8080) соответствует два IP-адреса: 195.218.194.2 и 195.218.194.171. Все бы ничего, но… 195.218.194.171 не является proxy-сервером! А вот 195.218.194.2 — является! Поэтому в зависимости от "настроения" Вашего DNS-сервера Вы либо сможете пользоваться этим прокси, либо нет.

Проблема еще усугубляется тем, что не все IP-адреса, принадлежащие данному доменному имени, могут быть получены стандартным способом (для программистов: речь идет о функциях GetHostByAddr, GetHostByName). Примером этого является сервер ns2.rosugol.ru (proxy ns2.rosugol.ru:8080). Программа host (Copyright © Kiraly Enterprises) возвращает для этого имени только один IP-адрес: 195.218.180.29. А программа nslookup, входящая в состав Windows 2000 и NT 4, возвращает 3 (!) адреса: 195.218.180.29, 195.218.181.253, 195.218.183.253. Причем все эти три адреса являются различными proxy-серверами.

Программа nslookup предназначена для выявления неполадок в настройках DNS-серверов, поэтому можно предположить, что это неверные настройки.

Решением этой проблемы может быть следующий алгоритм работы:

  1. при необходимости выбрать proxy сервера заданного домена (скажем русские) нужно преобразовать IP-адреса в доменные имена, после чего произвести фильтрацию списка прокси, используя программу, аналогичную Proxy List Filter;
  2. преобразовать в списке proxy серверов DNS-имена в IP-адреса, используя программу, аналогичную DNS Resolver (учитывая, что каждому имени может соответствовать несколько IP, так что список может увеличиться) — лучше для этой цели использовать программу типа nslookup для более тщательного преобразования;
  3. проверить данный список программами типа Proxy Checker.

Все эти программы представлены в разделе "Программы" на нашем web сайте.

назад в proxy FAQ


Сегодня поговорим о создании локальной доменной зоны внутри локальной сети. Для чего нужна локальная доменная зона и DNS-сервер? Чтобы расшарить (сделать доступными) свои локальные сайты для всех пользователей сети. Я создам сеть, где все устройства моей локальной сети смогут пользоваться ресурсами формата site.lan. В моем случае устройства локальной сети подключаются к интернету через роутер. Серверная машина — на Linux Mint (desktop), клиенты: ПК под управлением Windows, Linux, телевизор со Smart TV, а также смартфоны и планшет. Для начала убедитесь, что в роутере для сервера (машины, на которой будет установлен DNS сервер) зарезервирован статический внутренний IP адрес. Это очень важно, чтобы потом указать всем сетевым устройствам, где именно находится наш DNS сервер.

Установка DNS неймсервера:

Для начала необходимо установить пакет Bind: sudo apt-get install bind Кроме того, для нормальной работы веб-сайтов нам потребуется LAMP (Linux Apache MySQL PHP). О том как установить LAMP в Ubuntu читайте в моей статье. А также по ссылке внизу статьи можете настроить локальный сайт. Единственное, что не прописывайте в /etc/hosts адрес сайта, т.к. этими вопросами будет заниматься неймсервер. На этом этап подготовки окончен.

Настройка Bind

Входим в директорию Bind и делаем резервные копии конфигурируемых файлов: cd /etc/bind/ cp named.conf.local named.conf.local.back cp named.conf.options named.conf.options.back Создаём локальную доменную зону .lan: nano named.conf.local И дописываем в конец файла следующие строки: zone «lan» { type master; file «/etc/bind/db.lan»; }; Теперь создаем соответствующий файл для доменной зоны .lan и открываем его на редактирование: touch db.lan nano db.lan Наполняем его содержимым: @ IN SOA lan. root.lan. ( 201605019 ;Serial 4h 1h 1w 1d @ IN NS ns1.lan. @   IN    A  192.168.0.100 ns1 IN A 192.168.0.100 slicks IN A 192.168.0.100 site IN A 192.168.0.100 * IN CNAME @   Обратите внимание на Serial 201605019. Это значение нужно увеличивать каждый раз при редактировании файла доменной зоны. Я пишу YY-MM-DD + наращиваю порядковый номер на 1. 192.168.0.100 — IP адрес сервера. Запись формата «slicks IN A» означает, что в зоне .lan существует доменное имя slicks и что этот сайт расположен по IP адресу 192.168.0.100. В apache2 создан, соответственно веб-сайт с ServerName slicks.lan. Если бы сайт располагался на ином IP, чем DNS сервер, то запись бы имела вид slicks IN A _IP-ПК-с-сайтом_ Редактируем named.conf.options: nano named.conf.options В него нужно дописать выделенные строки: acl «home» {192.168.0.0/24; 127.0.0.1;}; options { directory «/var/cache/bind»; dnssec-validation auto; allow-recursion {127.0.0.1/32; 192.168.0.0/24; 192.168.1.0/24; }; allow-transfer { none; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { none; }; allow-query {«home»;}; };   Первая строка создаёт локальную DNS группу home, с диапазоном IP адресов от 192.168.0.0 до 192.168.0.255, а также 127.0.0.1.

Как поднять dns-сервер

Вторая добавляемая строка содержит параметр allow-query (разрешить запросы) и мы указываем, что нужно разрешить запросы от группы home. С конфигурацией закончили, можем перезапустить сервер sudo /etc/init.d/bind9 restart  

Указываем локальный DNS в роутере

Чтобы не было нужды редактировать сетевое подключение на каждом клиенте и вручную прописывать DNS-сервер, мы можем указать IP локального DNS в настройках маршрутизатора. И все запросы пользователей сети будут отправляться последним сперва на локальный DNS, а потом уже уходить в Интернет. У меня:

  • Модель роутера: Dir-615;
  • Internet Connection Type:  Dynamic IP (DHCP);

Для указания локального DNS сервера в моем случае я вхожу в Setup -> Network Settings -> Manual Internet Connection Setup и в поле Primary DNS Address  прописываю IP адрес сервера локальной доменной зоны 192.168.0.100, он же будет теперь выступать основным DNS сервером в локальной сети. А в качестве Secondary DNS адреса пишем 8.8.8.8. Это адреса DNS Google. На скрине у меня Primary и Secondary DNS адреса ведут на мой сервер. Почему-то вначале казалось, что роутер не перенаправлял запросы на мой DNS и прописал так. Вторым DNS лучше указать гугловский сервер, чтобы в случае если локальный сервер 192.168.0.100 будет выключен — не пропадал интернет у всех остальных устройств!

Проверка работоспособности

Запускаю клиентский ПК под управлением Windows Xp и тестирую подключение. Первым делом нужно очистить DNS кеш.

Заходим в командндую строку виндовс и пишем: ipconfig /flushdns 1. Теперь уже проверяю видимость в сети сервера DNS, ping 192.168.0.100: C:\\Documents and Settings\\www>ping 192.168.0.100 Обмен пакетами с 192.168.0.100 по 32 байт: Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек Проверяю локальный сайт: nslookup slicks.lan: C:\\Documents and Settings\\www>nslookup slicks.lan *** Can’t find server name for address 192.168.0.1: Non-existent domain *** Default servers are not available Server: UnKnown Address: 192.168.0.1 Name: slicks.lan Address: 192.168.0.100ping slicks.lan: C:\\Documents and Settings\\www>ping slicks.lan Обмен пакетами с slicks.lan [192.168.0.100] по 32 байт: Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Ответ от 192.168.0.100: число байт=32 время<1мс TTL=64 Статистика Ping для 192.168.0.100: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь), Приблизительное время приема-передачи в мс: Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек Наслаждаемся результатами!

  На главную

Запуск DNS-сервера под Windows

Введение

Некоторые провайдеры страдают периодическими (или постоянными) проблемами с DNS. Для домашнего пользователя при недоступности смены провайдера проблему можно решить или (идеологически неверным) использованием чужих DNS-серверов (адреса можно узнать на форумах), или запуском своего DNS-сервера, что не так трудно, как может показаться на первый взгляд.

Встроенный DNS-сервер существует в серверной версии Windows, но благодаря стараниям маркетологов Microsoft его нет в десктоп-редакции (Windows 2000/XP/Vista), поэтому, как это часто бывает, обратимся к щедрому миру Unix. Самые известные DNS-сервера – это BIND, djbdns, PowerDNS, MaraDNS и Unbound. BIND рассматривать нет желания, djbdns в силу своих особенностей жестко привязан к Unix, у PowerDNS Windows-версия не обновляется, поэтому остаются MaraDNS и Unbound. Вы можете попробовать или один или другой, однако, следует помнить, что одновременно они работать не будут.

Руководство будет в стиле краткого HowTo для подготовленного пользователя (скорее, системного администратора), поэтому, если ничего не понятно – позовите знакомого «компутерщика».

Если вы не особо разбираетесь как работает DNS, но очень хочется понять, что мы тут делаем (запускаем DNS-кэш, способный принимать рекурсивные запросы и отсылать итеративные), можете почитать главу The Big Picture руководства Жизнь с djbdns (на русском).

Unbound

Заходим на сайт http://unbound.net/ в раздел Downloads, находим строки:

Windows 32-bit version compiled from the source.
Installer:

По ссылке (на момент написания статьи – unbound_setup_1.3.0) скачиваем дистрибутив. Запускаем файл, нажимаем «Next», читаем лицензионное соглашение, если согласны нажимаем «I Agree», убираем галочку с «DLV – dlv.isc.org» (проверять DNSSEC-сигнатуры нам не нужно), нажимаем «Next», «Next», «Install», «Finish». Сервис автоматически устанавливается и стартует. Все что нужно для работы (включая README.txt) находится в C:\Program Files\Unbound.

MaraDNS

Запуск MaraDNS под Windows, как оказалось, довольно нетрививальное занятие, поэтому, если очень хочется – можете попробовать сами.

Настройка Windows

Итак, DNS-сервер мы установили и запустили, необходимо теперь настроить Windows.

В свойствах соединения с интернетом («Пуск», «Настройка», «Сетевые подключения», нужное соединение, контекстное меню, «Свойства») на вкладке «Общие» открываем «Протокол интернета TCP/IP», если стоит настройка «Получить адрес DNS-сервера автоматически» необходимо сменить её на «Использовать следующие адреса DNS-серверов» и прописать адрес 127.0.0.1. В случае если у вас активирован параметр «Использовать следующие адреса DNS-серверов» и указаны адреса DNS-серверов провайдера, удалить или оба или один из них (предварительно записав на бумажку) и прописать тот же 127.0.0.1. Указывать один и тот же адрес (127.0.0.1) два раза нет необходимости. Нажимаем «OK», «OK», ждем пока все сохранится и пробуем открыть какой-нибудь сайт. Другой метод проверки – для настоящих админов. Заходим в консоль, запускаем nslookup, далее выполняем:

> server 127.0.0.1 Default Server: localhost Address: 127.0.0.1 > www.mail.ru Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: www.mail.ru Addresses: 194.67.57.26, 194.67.57.126, 194.67.57.226, 194.67.57.20 > exit

В данном случае у нас успешно разрешилась запись (A-типа) для www.mail.ru.

Если не получается, проверяем что у вас подключен интернет, сделав ping на шлюз провайдера (узнать можно через ipconfig /all). Если подключен, смотрим в Диспетчере задач, чтобы был запущен процесс DNS-сервера. Если не запущен, смотрим оснастку «Службы» (в консоли запустить services.msc): пробуем запустить сервис и проверяем, чтобы стоял автоматический запуск. Если не помогает – либо читаем документацию (DNS-сервера), включаем лог и проверяем свой firewall и конфигурационный файл DNS-сервера (хотя, он должен быть по умолчанию уже настроен), либо зовем кого-то более квалифицированного, либо удаляем программу, возвращаем настройки назад, и [грустим | идем гулять | пить пиво | …].

Однако, теоретически ничего сложного в описанном процессе нет, поэтому должно заработать (как у автора).

Примечания:

  • Обычно все сервера идут со сравнительно безопасными настройками по-умолчанию, но нелишним будет проверить, что ваш DNS-сервер слушает 53 порты TCP и UDP на 127.0.0.1, а не на 0.0.0.0 (все локальные адреса). Сделать это можно с помощью TCPView. В «Options» активируйте параметр «Show Unconnected Endpoints» и деактивируйте «Resolve Adresses». Найдите процесс DNS-сервера, для него должно быть две записи: TCP с Local Adress 127.0.0.1:53 и State LISTENING и UDP с тем же адресом и пустым полем State.
  • Автор не пользуется DNS-серверами под Windows, и соответственно материалом этой статьи на практике, поэтому просьба не писать писем в стиле «у меня не работает, что делать?».
  • Для написания статьи автор использовал Windows XP, если у вас другая версия Windows – адаптируйте пути и команды под свою версию ОС.
  • Если вы пытаетесь сделать это на компьютере в организации, то лучшим решением будет попросить вашего сисадмина настроить офисный шлюз в Интернет под GNU Linux/*BSD с настоящим (под Unix) DNS-сервером, а если он этого не может – найти такого человека.
  • Статья предельно упрощена, поэтому если вы нашли ошибку, неточность или неясный момент – пишите, если вам кажется, что материал раскрыт недостаточно широко (например, не описано в чем разница между рекурсивными и авторитетным/полномочным/authoritative DNS-сервером) – писать не стоит, в Интернете достаточно руководств по устройству DNS (включая документацию на сайтах программ).

    Как поднять dns сервер для подмены в настройках роутера?

  • Windows – не лучшая платформа для работы DNS-сервера (как минимум – портированного из Unix) поэтому все это может работать не идеально (в первую очередь, в плане скорости).
  • В обычном случае общения «десктоп – DNS-сервер провайдера» для разрешения имени в подавляющем большинстве случаев отсылается один запрос и получается один ответ.

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

Вот и все, спасибо за внимание.

BIND9 один из самых известных DNS серверов под Линукс. Это полноценный сервер со всеми нужными возможностями, на котором вы можете поднять авторитетный, кэширующий или какой угодно другой dns сервер.

Установка сервера очень проста :

apt-get install bind9

Теперь сделаем основные настройки и кэширование запросов DNS, если конечно ваш сервер будет вообще принимать запросы ) Отредактируем файл настроек /etc/bind/named.conf.options

options { directory «/var/cache/bind»; forwarders {8.8.8.8; //Перенаправление запросов на другой сервер DNS если мы не знаем. 8.8.4.4; }; dnssec-validation auto; //поддержка DNSSEC. auth-nxdomain no; # conform to RFC1035 //listen-on-v6 { any; }; listen-on {192.168.0.1; 127.0.0.1; }; //На каких интерфейсов(ip) вести прослушивание 53 порта. allow-query { any; }; // allow-query {список_ip} — Разрешает ответы на запросы только из список_ip. allow-query-cache { any; }; // Тоже самое, но для кэша. };

Перезапустим сервис и можем пользоваться свои кэширующим dns сервером ).

Настройка  зоны.

Скажем у вас есть домен test.com для которого вы ходите сделать свой dns сервер зоны. Первым делом открываем файл /etc/bind/named.conf.local и вписывает туда настройки зоны :

zone «test.com» IN { type master; file «/var/lib/bind/test.com.db»; allow-transfer {any;}; allow-update {any;}; notify yes; };

zone «test.com» IN — собственно, название DNS зоны, которую мы будем обслуживать (доменное имя которое надо купить заранее).
type master; — тип данного сервера.
file «/var/lib/bind/test.com.db»; -путь к файлу с настройками данной зоны.
allow-transfer {any}; -разрешаем передачу данной зоны на остальные DNS сервера.
allow-update {any}; — разрешаем обновление.
notify yes; -включаем автоматическое уведомление подчиненных серверов об обновлении файла настроек DNS зоны.

Теперь создадим файл test.com.db :

$TTL 3600 ; test.com. IN SOA ns01.test.com.

Как настроить DNS сервера на VDS, VPS сервере

root.test.com. (                                                           1 ; Serial                                                         600 ; Refresh                                                       3600 ; Retry                                                         1w ; Expire                                                         300 ; Minimum TTL ) IN NS ns01.test.com. IN NS ns02.test.com. IN A 192.168.10.1 ns01 IN A 192.168.10.5 ns02 IN A 192.168.10.6 www IN A 192.168.10.1 test IN A 192.168.10.12

Рассмотрим подробнее написанное:

$TTL 3600 — Time to live время жизни, по умолчанию ставим 1 час.
test.com IN SOA ns01.test.com. root.test.com. — сама зона, которая обслуживается данным сервером.
1; Serial — ее серийный номер DNS записи.
600; Refresh — указывает подчиненным DNS серверам как часто им обращаться, для поиска изменений к master серверу.
3600; Retry — говорит о том, сколько Slave сервер должен подождать, прежде чем повторить попытку.
1w; Expire — Максимальный срок жизни записей, после которой они потеряют актуальность (1 неделя).
300; Minimum TTL — минимальный срок жизни записи 5 мин.
NS ns01.test.com. — NS сервер который обслуживает эту зону.
NS ns02.test.com. — NS сервер который обслуживает эту зону.
A 192.168.10.20 — если требуется попасть по адресу test.com, то клиенту будет выдан этот IP.
ns01 A 192.168.10.5 — Записи для поиска наших NS серверов.
ns02 A 192.168.10.6
www A 192.168.10.1 — Если клиент запросит адрес www.test.com, то ему будет выдан IP 192.168.10.2
test A 192.168.10.12 — Если клиент запрашивает адрес test.test.com, какой будет выдан ему IP.

Перезапускаем сервис и не забываем указать ваш dns сервер в настройка регистратора домена. Успехов.

 

 

Возможно эти статьи будут вам интересны.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *