Вопрос: Улучшения DNS-резольвера?


Недавно я столкнулся с следующей конфигурацией /etc/resolv.conf, которая / должна была увеличить скорость разрешения DNS:

nameserver 1.1.1.1
nameserver 2.2.2.2
nameserver 3.3.3.3
option rotate 
option timeout:1

У меня есть флаги «option» в виду, очевидно, помимо использования 3 DNS-серверов в конфигурации (обычно используются только два). Первый из них должен вращаться / крутить по всем 3 DNS-серверам, а последний должен установить тайм-аут поиска в 1 с (по умолчанию, по-видимому, 5 с). Мне просто интересно, кто-нибудь из вас использует эту конфигурацию и видите ли вы какие-либо улучшения? Некоторые люди говорят, что это не поможет с улучшениями вообще, но я не совсем уверен, почему.


4
2018-04-27 08:52


Источник




Ответы:


Это приведет к ухудшению ситуации в каждом случае, кроме случаев, когда ваш первый сервер имен не работает. Вот пример того, как это ухудшает ситуацию:

Предположим, вы пытаетесь разрешить сайт, чей первичный сервер имен медленный или сломанный. Обычно это происходит.

  1. Вы попробуете свой первый сервер имен.

  2. Он пробует первичный сервер имен сайта.

  3. Основные тайм-ауты.

  4. Ваш первый сервер имен пытается вторично.

  5. Он получает ответ.

  6. Вы получите ответ.

Но с вашими изменениями это происходит:

  1. Вы попробуете свой первый namserver.

  2. Ваш первый сервер имен пробует первичный сервер имен сайта.

  3. Вы тайм-аут.

  4. Вы попробуете свой второй сервер имен.

  5. Второй сервер имен пробует первичный сервер имен сайта.

  6. Первый сервер имен пытается вторичный сервер имен сайта и получает ответ. Слишком плохо, что вы уже устарели.

  7. Вы переходите на второй сервер имен.

  8. Вы попробуете третий сервер имен.

  9. Ваш третий сервер имен пытается использовать первичный сервер имен.

  10. У вашего второго сервера имен есть ответ, слишком плохо, что вы уже устарели.

  11. Вы тайм-аут на третьем сервере имен.

  12. У вашего третьего сервера имен есть ответ, но вы больше не слушаете.

Вы устали путь слишком рано и, скорее всего, сдастся перед тем, как namserver получит ответ, только чтобы повторить этот процесс. С яркой стороны теперь все ваши серверы имен имеют результат в кеше.


4
2018-04-27 11:36



+1 только для С яркой стороны теперь все ваши серверы имен имеют результат в кеше., Во всяком случае, отличная разбивка эффекта сокращения тайм-аута слишком много. - Bob
DNS не имеет понятия «первичные серверы имен» для домена. В SOA есть первичный, как он назван, но я не могу представить себе разумных распознаватель опирается на это. NS RR уже округлены как от родительской зоны, так и от авторитетного сервера, который отвечает, и между любыми кэшами (я думаю, есть опция BIND, чтобы отключить это поведение). В какой-то степени DNS имеет концепцию ведущего и подчиненного серверов, но это не имеет никакого отношения к тому, какой сервер сначала запрашивается, только там, где в основном сделаны изменения (c.f. скрытые / частные мастер-настройки). Resolvers могут быть и часто различны. - Michael Kjörling
@ MichaelKjörling «Первичный» Я имею в виду только тот, который вернулся первым. В то время как круглый робин является нормой, он не универсален. (И даже если бы это было так, было бы просто неудачно сначала ударить по плохим первым, чем однажды). - David Schwartz


Мой способ улучшить производительность DNS:

  1. Бег Namebench найти самого быстрого DNS-провайдера для вас.
  2. Готово.

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


6
2018-04-27 09:15





IIRC, по умолчанию для первого опробованного DNS-сервера требуется до двух секунд, прежде чем пытаться использовать следующий в списке, если ответа нет. Таким образом, похоже, что последний вариант уменьшит время ожидания до одной секунды, прежде чем пробовать следующий в списке.

Другой вариант повернуть, какой DNS-сервер, который он пробует в первую очередь, будет полезен, если все они будут такими же быстрыми, как eachother, и вы пытаетесь загрузить запросы баланса.

Я бы использовал namebench, так как Оливер упомянул, чтобы выяснить, насколько быстро каждый из них, и поместить их в список в порядке скорости и удалить опцию rotate, если они не так быстро, как eachother.


1
2018-04-27 10:46