3

Вчера я столкнулся с расширением Firefox под названием Speed DNS, которое утверждает, что ускоряет просмотр, выполняя предварительный поиск DNS. По словам автора, он «выполняет предварительное разрешение DNS для всех ссылок на веб-странице», и отзывы, похоже, показывают, что это работает хорошо.

Это заставило меня задуматься о том, возможно ли (или хорошая идея) создать простой оптимизатор DNS, состоящий из cronjob, который бы:

  1. Извлечь X самых посещаемых записей из истории посещенных страниц (в моем случае из файла place.sqlite в Firefox, используя утилиту командной строки sqlite)
  2. пропингуйте каждого из них, чтобы получить их IP-адреса, и
  3. используйте эту информацию для обновления файла /etc/hosts .

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

Это хорошая идея? Будет ли это работать? Что было бы хорошим значением для X? (Или, другими словами, в каком размере файл hosts становится слишком большим, чтобы работать хорошо?) И что еще более важно: было ли что-то подобное сделано раньше, и если да, где я могу его найти?

4 ответа4

5

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

Смотрите это (если на Windows):

ipconfig /displaydns

Это должно раскрыть кэшированные записи разрешения DNS, каждая со своим собственным TTL.

Редактирование файла hosts , однако, добавит статическое разрешение. Лично я бы добавил туда только пару отображений (в этом я уверен) и все. Если выполняется вручную - вы всегда рискуете получить устаревшую запись. Тем не менее, вы предлагаете постоянно разрешать-сканировать через хосты .. (nslookup или dig , вероятно, лучшая идея, чем ping). Мне кажется, что это излишне ... то есть проведение опроса скрипта каждые X минут. Просто кажется маленьким достижением в конце концов .. Вам также придется решить, хотите ли вы обратиться к серверу NS, ответственному за этот домен, напрямую или через цепочку DNS (не авторизованную).

Более простым решением может быть получение более быстрой службы DNS. Я не могу вспомнить название сайта, но было что-то, что провело оценку задержки DNS-серверов в вашем регионе. Это было довольно точно, насколько я помню. Кто-то, вероятно, укажет вам там.

Хотя, если вы сталкиваетесь с проблемами подключения в лаборатории - это другая история. Можете ли вы просто переключиться на альтернативные DNS-серверы? (Я полагаю, что вы можете, если у вас есть доступ к /etc /hosts - если только трафик не фильтруется для запросов DNS).


Редактировать: думаю, я понял - NameBench.

3

Нет. Это бессмысленное дублирование.

Люди одержимы файлом hosts , хотя в начале 1980-х эта идея была заменена DNS. Дело даже не в том, что те же самые люди используют операционные системы с недостаточным функционалом, такие как одна из семейства DOS или DOS-Windows. В настоящее время даже пользователи Windows из числа hosts находящихся под управлением, используют Windows NT, которая поставляется с кэширующим DNS-клиентом в качестве стандартной части операционной системы. Когда кеширующий DNS-клиент включен - как и по умолчанию - все запросы DNS по приложениям кэшируются локально.

Операционные системы, отличные от (выпуски для рабочих станций) Windows NT, оснащены кеширующими прокси-серверами DNS (например, djbdns , BIND, MaraDNS и т. П. Для Unices и Linux), которые не только локально кэшируют информацию, но и полностью способны выполнение полного разрешения DNS-запросов также локально. Запуск DNS прокси - сервер в качестве разрешающего прокси - сервер, указать клиентскую библиотеку DNS на него, и нет необходимости беспокоиться о слабостях кто - либо другой прокси - серверов на всех.

В любом случае, если вы хотите сохранить некоторую информацию DNS в кэше, готовую к немедленному извлечению всякий раз, когда браузер WWW пытается выполнить поиск DNS, просто найдите его заранее обычным способом. (Используйте программу, которая использует предоставляемые системой подпрограммы клиентской библиотеки DNS. Такие программы, как глубоко испорченный nslookup имеют свои собственные отдельные клиентские библиотеки DNS и не будут работать.) Имейте в виду, что несколько организаций намеренно используют очень короткие значения TTL в своих данных DNS. Они хотят, чтобы вы смотрели на вещи заново каждые 30 секунд (или как угодно).

0

Это зависит. Файл hosts на самом деле быстрее, чем DNS. Но почему бы не сэкономить еще больше времени, полностью исключив имена и просто используя IP-адреса? В итоге количество усилий, необходимых для экономии времени, превышает сэкономленное время. DNS используется потому, что он динамичный и простой.

0

Я согласен с Keltari, что IP-адреса будут быстрыми и легкими, но только для внутренних систем, а не для сети, очевидно ...

У Win7 есть известная проблема с DNS, так что да ... у них все еще не работает это даже сегодня .... так что файл HOSTS все еще хорошая идея, если у вас есть проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .