Вопрос с собеседования · Основы

Как сменить DNS-запись (например, переехать на новый сервер) без простоя?

MiddleСети
Ещё спрашивают так:
  • Зачем заранее уменьшать TTL?
  • Что такое dns-prefetch и preconnect?
Коротко

Резолверы держат запись до истечения TTL, поэтому переключение не мгновенное. План: заранее (за время не меньше текущего TTL) понизить TTL до минут → поднять новый сервер и проверить его напрямую → сменить запись → держать старый сервер работающим, пока не истечёт старый TTL и трафик не уйдёт (смотреть логи) → вернуть TTL обратно. На фронтенде dns-prefetch и preconnect заранее разрешают имена и открывают соединения со сторонними доменами — экономят десятки миллисекунд.

  • Старый и новый серверы должны работать с одними данными или синхронизироваться
  • Некоторые резолверы игнорируют TTL — держите старый сервер с запасом
  • Для сертификата нового сервера домен должен уже указывать на него (или проверка через DNS-запись)

А ещё preconnect — только для нескольких ключевых доменов: лишние соединения тоже стоят ресурсов

Подробно

Пример плана:

  1. За сутки: TTL 86400 → 300.
  2. Новый сервер готов, проверен через hosts-файл или curl --resolve.
  3. Смена A-записи.
  4. Через 1–2 часа: в логах старого сервера трафик почти нулевой.
  5. Выключение старого, TTL обратно 3600+.

На странице:

<link rel="preconnect" href="https://api.example.ru">
<link rel="dns-prefetch" href="https://cdn.example.ru">

Что хотят услышать

  • Понижение TTL заранее.
  • Параллельная работа старого и нового.
  • Проверка нового до переключения.
  • dns-prefetch и preconnect.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Сменить запись и сразу выключить старый сервер — DNS обновится мгновенно
  • ✓Заранее понизить TTL, проверить новый сервер, сменить запись и держать старый, пока не истечёт старый TTL
  • ✗Повысить TTL перед переездом, чтобы резолверы чаще спрашивали новый адрес, сменить запись и сразу выключить старый сервер
  • ✗TTL влияет только на почтовые записи

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования