Назад | Перейти на главную страницу

Как работает резервный сервер имен DNS?

У нас есть два DNS-сервера, перечисленных в нашей NS-записи. Вчера вечером вышел из строя один из наших DNS-серверов. Как и ожидалось, некоторые DNS-серверы не разрешали наши имена хостов. Я предположил, что это будет временно и начнется работа, когда истечет TTL наших записей NS (1 час).

Более часа спустя я все еще получал таймауты DNS с настольных компьютеров, которые использовали серверы Earthlink, Verizon и OpenDNS. Я проверил, отвечает ли другой DNS-сервер:

dig @ns2.example.com www.example.com +short

Это сработало.

Мои вопросы:

  1. Есть ли у кого-нибудь ответ относительно того, почему другие DNS-серверы не попадали на наш другой DNS-сервер даже после истечения срока жизни?
  2. Предпочитают ли DNS-серверы основной DNS-сервер домена (из SOA запись)?
  3. Используется ли какой-либо алгоритм для выбора сервера имен из доступных записей NS? Я предполагаю, что это зависит от конкретной реализации, но, возможно, здесь применяются некоторые стандарты.

Это досадное раздражение. Предполагается, что несколько DNS-серверов повышают надежность, но на практике это часто дает обратный эффект.

Проблема в том, что клиент ждет ответа только определенное время, а сервер ждет примерно столько же времени. Допустим, у вас есть два DNS-сервера, A и B. Допустим, A работает, а B отказал. Это случилось:

  1. Клиент подключается к серверу имен Z и запрашивает у него информацию. Z выбирает B и отправляет запрос.

  2. Время ожидания клиента истекло, поскольку сервер имен Z не ответил.

  3. Клиент пытается использовать сервер имен Y. Y выбирает B и отправляет запрос.

  4. Сервер имен Z истекает время ожидания и пытается A. Он получает правильный ответ, но клиент больше не ждет.

  5. Время ожидания клиента истекло, поскольку сервер имен Y не ответил.

  6. Клиент сдается, поскольку оба его сервера имен не отвечают.

  7. Сервер имен Y прерывает время ожидания и пытается A. Он получает правильный ответ, но клиент больше не ждет.

И нет хорошего решения. Чем дольше вы ждете ответа сервера имен, тем дольше вам нужно ждать, потому что сервер имен, которого вы ждете, ждет дольше. Возможно, проблема заключалась в том, что Y и Z не отказались от B достаточно быстро.

По сути, если какой-либо из ваших серверов имен не работает, некоторые клиенты из-за невезения могут выйти из строя, потому что они пробовали только плохие.

С другой стороны, если у вас есть два сервера имен и один из них выходит из строя, около 75% серверов имен получат ответ вместо 0%.