К основному содержимому

DNS Failover: автопереключение на резервный сервер

Домены · 29.09.2026

Что такое DNS Failover

DNS Failover — это автоматическая замена IP-адреса в A или AAAA-записи, когда основной сервер перестаёт отвечать. Специальный мониторинг постоянно опрашивает основной хост, и при обнаружении сбоя система переписывает запись зоны на резервный сервер без участия человека. Это дешёвая альтернатива балансировщику нагрузки для сайтов, которым не нужна постоянная работа двух серверов одновременно, а нужна только страховка на случай отказа основного.

Технология не заменяет резервное копирование и не спасает от потери данных — она решает только задачу доступности домена, пока основная инфраструктура восстанавливается.

Как работает проверка доступности

В основе DNS Failover — health check: внешний агент раз в 10–60 секунд обращается к серверу по HTTP, TCP или ping и ждёт корректного ответа. Настройка обычно выглядит так:

check_type: http
url: https://example.com/health
interval: 30s
timeout: 5s
failures_before_switch: 3

Порог в несколько подряд неудачных проверок (в примере — 3) нужен, чтобы не переключаться на резерв из-за одной случайной задержки в сети. После срабатывания порога система заменяет A-запись на IP резервного сервера и ждёт возврата основного к жизни, чтобы переключить обратно.

Настройка низкого TTL для быстрого переключения

Скорость, с которой посетители увидят новый IP, определяется значением TTL записи, а не скоростью самого мониторинга. Пока старое значение живёт в кэше резолвера у провайдера пользователя, тот продолжит стучаться в упавший сервер. Для доменов с Failover TTL обычно снижают до 60–300 секунд:

example.com. 60 IN A 203.0.113.10

Подробно про выбор значения TTL и его влияние на скорость обновления — в статье про настройку TTL. Здесь важно помнить компромисс: слишком низкий TTL увеличивает число запросов к DNS-серверам и немного повышает задержку резолвинга, слишком высокий — тормозит переключение при сбое.

DNS Failover и Anycast: в чём разница

DNS Failover и Anycast решают похожую задачу — доступность сервиса — но разными способами. Failover меняет содержимое записи и зависит от TTL и скорости обновления кэшей резолверов по всему миру, поэтому переключение занимает минуты. Anycast отдаёт один и тот же IP с нескольких точек присутствия одновременно, а маршрутизация на уровне BGP сама уводит трафик от упавшего узла — переключение происходит на уровне сети, а не DNS, и укладывается в секунды.

Anycast сложнее и дороже в развёртывании, поэтому для небольших проектов DNS Failover остаётся разумным компромиссом между стоимостью и временем простоя.

Ограничения и подводные камни

ПроблемаПочему возникает
Часть пользователей ещё видит старый IPРезолвер провайдера держит запись дольше TTL, игнорируя его
Ложное переключениеЗдоровье проверялось с одной точки, а сеть моргнула локально
Переключение произошло, но сайт всё равно недоступенНа резервном сервере не синхронизированы данные или конфигурация
Переключение назад не происходитОсновной сервер отвечает на health check, но приложение на нём всё ещё сломано

Чек-лист внедрения DNS Failover

  • Настройте health check по тому же протоколу, что использует реальный трафик, а не просто ping.
  • Снизьте TTL записи заранее, за сутки до включения Failover, чтобы старые значения выпали из кэшей.
  • Держите резервный сервер с актуальными данными и конфигурацией, а не только с установленным ПО.
  • Проверяйте переключение через dig с разных резолверов, а не только с одного устройства.
  • Настройте порог в несколько неудачных проверок подряд, чтобы избежать ложных срабатываний.
← Назад в базу знаний Задать вопрос поддержке