В нашей записи NS есть два DNS-сервера. Прошлой ночью один из наших DNS-серверов вышел из строя. Как и ожидалось, некоторые DNS-серверы не разрешали наши имена хостов. Я предполагал, что это будет временно и начнет работать после истечения TTL наших записей NS (1 час).
Через час + я все еще получал тайм-ауты DNS от настольных компьютеров, которые использовали серверы Earthlink, Verizon и OpenDNS. Я проверил, отвечает ли другой DNS-сервер:
dig @ns2.example.com www.example.com +short
Это сработало.
Мои вопросы:
- У кого-нибудь есть ответ на вопрос, почему другие DNS-серверы не попали на наш другой DNS-сервер даже после истечения срока действия TTL?
- Предпочитают ли DNS-серверы основной DNS-сервер домена (из
SOA
записи)? - Есть ли какой-нибудь алгоритм, используемый для выбора сервера имен из доступных записей NS? Я предполагаю, что это зависит от реализации, но, возможно, есть некоторые стандарты, которые применяются здесь.
domain-name-system
bind
isp
Бельмин Фернандес
источник
источник
Ответы:
Это досадное раздражение. Предполагается, что несколько DNS-серверов должны повысить надежность, но на практике это часто имеет обратный эффект.
Проблема в том, что клиент только так долго ждет ответа, а сервер ждет примерно столько же времени. Скажем, у вас есть два DNS-сервера, A и B. Скажем, A работает, а B не удалось. Бывает:
Клиент подключается к серверу имен Z и запрашивает информацию. Z выбирает B и отправляет запрос.
Время ожидания клиента истекло, поскольку сервер имен Z не ответил.
Клиент пытается сервер имен Y. Y выбирает B и отправляет запрос.
Сервер имен Z отключается и пытается А. Он получает правильный ответ, но клиент больше не ждет.
Время ожидания клиента истекло, поскольку сервер имен Y не ответил.
Клиент сдается, и оба его сервера имен не отвечают.
Сервер имен Y останавливается и пытается А. Он получает правильный ответ, но клиент больше не ждет.
И нет хорошего решения. Чем дольше вы ждете, чтобы увидеть, отвечает ли сервер имен, тем дольше вы должны ждать, потому что сам сервер имен, который вы ожидаете, ждет дольше. Возможно, проблема была в том, что Y и Z не сдавались достаточно быстро.
По сути, если какой-либо из ваших серверов имен не работает, некоторые клиенты, по чистой случайности, истекают, потому что они пробовали только плохие.
С другой стороны, если у вас есть два сервера имен и один отказывает, около 75% серверов имен получат ответ вместо 0%.
источник
Z
) не будет кэшировать, какой сервер имен он использовал в последний раз, который работал?