Кэширование DNS. Вопросы и ответы
АрхивИнтернетМногим знакома ситуация, когда часть сайтов перестает открываться, либо открывается очень медленно. Одна из распространенных причин этого - медленный или неработающий DNS-сервер у провайдера. Расскажем, как решить эту проблему раз и навсегда.
Многие пользователи наверняка сталкивались с такой ситуацией, когда вдруг часть сайтов перестает открываться, либо открывается очень медленно. Одна из распространенных причин этого - медленный или неработающий DNS-сервер у провайдера. В этой статье мы решим эту проблему, а заодно поможем сэкономить немного трафика.
Итак, нам необходимо установить свой собственный кэширующий DNS-сервер, который сам будет обращаться к разнообразным DNS-серверам, в том числе и к корневым. Возникает очевидный вопрос: а почему бы просто сразу не прописать в TCP/IP-свойствах соединения главные DNS-серверы? Ответы таковы: они обычно отзываются в несколько раз медленнее, чем DNS-сервер провайдера и для кого-то трафик обмена с ними дороже, чем трафик обмена с локальным сервером.
Перед началом работы скачиваем список главных DNS-серверов интернета (это простой текстовый файл, который можно переименовать в named_root.txt и открыть в текстовом редакторе). Затем скачиваем кэширующий DNS-сервер ExtraDNS.
Запускаем инсталлятор, устанавливаем, перезагружаемся. Потом он что-то скажет про ExtraDNS.dll - жмем "Ok".
Готово. Сразу ставим галку на "Startup in system tray", чтобы после загрузки программа сворачивалась в системный трей. Теперь необходимо прописать в настройках DNS-серверы. Идем на вкладку "Server".
По умолчанию в нем указаны какие-то жутко медленные зарубежные серверы, которые можно смело поудалять. Чтобы узнать, какой DNS-сервер для нас окажется самым быстрым, нажимаем кнопку "Test".
В поле "Nameservers" вводим IP-адрес DNS-сервера, который надо проверить на скорость, и нажимаем "Start!" Из результатов нас интересует Ping time. Выписываем протестированные IP-адреса и значение Ping time. Повторяем тестирование всех серверов из файла named.root и указанных вашим провайдером. Готово, закрываем окно теста.
Теперь выбираем из составленного списка те серверы, которые наиболее быстро отзывались и вносим их в ExtraDNS. Серверы опрашиваются в порядке сверху вниз, поэтому в первой строке указываем самый быстрый DNS-сервер (обычно самый быстрый оказывается тот, который предлагает ваш провайдер), потом более медленные. Теперь ExtraDNS будет обращаться к первому серверу, а если он временно недоступен или не смог ответить, то к следующему по списку и т.д. Весь список заполнять необязательно - хватит 4-5 штук.
Теперь надо указать операционной системе Windows, что у нас есть свой DNS-сервер. Проходим в свойства соединения с провайдером, выбираем "Использовать следующие адреса DNS-серверов" и вводим основным сервером 127.0.0.1.
Все, теперь мы будем пользоваться своим DNS-сервером и не зависеть от провайдерского DNS.
К примеру, у меня за неделю до 96% обращений к DNS было из кэша ExtraDNS и суммарная экономия времени составила около 13 минут. И хотя на первый взгляд может показаться несущественной экономия нескольких миллисекунд при каждом обращении к сайту, однако, задумайтесь: браузеру при загрузке веб-страниц, содержащих много ссылок на графику и баннеры, приходится еще раз делать запросы к DNS. А при работе, например, через GPRS будет вообще весьма существенное ускорение и экономия трафика.