Перейти к содержимому

Понизьте TTL перед переносом

Обновлено 5 мин чтенияКоманда DNSPeek

Понизьте TTL записей, которые будете менять, до 300 секунд как минимум за один полный старый TTL до переноса, обычно за 24–48 часов. Тогда резолверы будут кешировать старый адрес не более пяти минут, так что переключение быстро дойдёт почти до всех, а откат будет таким же быстрым. Через несколько дней после переезда верните TTL к обычному значению.

Что делает TTL во время переноса

У каждой DNS-записи есть TTL (time to live, время жизни) в секундах. Он сообщает резолверам, сколько они могут повторно использовать закешированный ответ, прежде чем запросить снова. С TTL 86400 резолвер, запросивший ваш домен прямо перед переключением, может ещё целые сутки отправлять своих пользователей на старый сервер.

Само по себе понижение TTL ничего не ускоряет. Оно сокращает следующий период кеширования. Поэтому и важен момент: короткий TTL начинает действовать только тогда, когда старый, длинный TTL истёк в каждом кеше, где хранится запись.

График

График TTL для переноса
КогдаЗаписьTTLЗачем
СегодняA → IP старого сервераПонизить до 300Кеши начинают получать короткий TTL по мере устаревания их старых копий
После того как пройдёт один старый TTLA → IP старого сервера300Теперь каждый кеш держит запись не более пяти минут
День переключенияA → IP нового сервера300Посетители переходят за несколько минут; откат так же быстр
Через несколько днейA → IP нового сервераВернуть к 3600 или большеМеньше запросов, лучшая устойчивость, если у вашего DNS-провайдера случится сбой
файл зоны
; Before the move: same IP, short TTL
example.com.   300   IN   A   198.51.100.7

; Switch day: new IP
example.com.   300   IN   A   203.0.113.10

; A few days later: a longer TTL again
example.com.   3600  IN   A   203.0.113.10

Как понизить TTL

  1. Шаг 1: Проверьте текущий TTL

    Узнайте TTL каждой записи, которую измените, с помощью проверки TTL или dig и запишите самое большое значение.

  2. Шаг 2: Установите TTL 300 секунд

    В панели DNS-провайдера измените только TTL этих записей на 300. Оставьте их направленными на старый сервер.

  3. Шаг 3: Подождите один старый TTL

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

  4. Шаг 4: Переключите записи

    Измените записи на новый сервер. Большинство посетителей попадёт на него в течение пяти минут; следите за этим с помощью проверки распространения DNS.

  5. Шаг 5: Снова повысьте TTL

    Через несколько дней после переезда, когда будете уверены, что откат не понадобится, верните TTL к 3600 секундам или больше.

Проверьте текущий TTL

Бесплатная проверка TTL показывает TTL каждой записи домена. В терминале число после имени — это TTL в секундах:

Терминал (macOS / Linux)
dig example.com A +noall +answer
# example.com.   3600   IN   A   198.51.100.7
PowerShell (Windows)
Resolve-DnsName -Name example.com -Type A | Format-Table Name, TTL, IPAddress

Закешированные ответы отсчитывают время

Рекурсивный резолвер показывает оставшееся время своей закешированной копии, поэтому число уменьшается между запросами. Чтобы увидеть настроенное значение, запросите авторитетный NS-сервер напрямую (dig @ns1.your-dns-host.com example.com A).

Какие записи понижать

  • A и AAAA для домена и для www, а также для любых других имён хостов, которые указывают на старый сервер, например shop или api.
  • CNAME-записи, которые будут указывать на новое место.
  • MX — только если почта тоже переезжает. Если почта остаётся на месте, MX не трогайте.
  • TXT-записи, например SPF, если меняются серверы-отправители.

Записи, которые вы не будете трогать, могут сохранить свой TTL. Если вы переносите DNS-зону к другому провайдеру (меняете NS-серверы), TTL отдельных записей помогает меньше: у делегирования в реестре есть собственный TTL, который вы не можете изменить, часто от одних до двух суток. В этом случае сначала скопируйте все записи в новую зону и сравните обе стороны с помощью Сравнения DNS, прежде чем менять NS-серверы. Проверка NS-серверов показывает, что выдаёт реестр.

Насколько низко понижать?

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

Некоторые DNS-панели не разрешают значения ниже определённого минимума или показывают TTL как меню с пунктами вроде «Auto». Для проксируемой записи в CDN, например Cloudflare, установленный TTL для переключения вообще не важен: посетители резолвятся в CDN, а менять нужно origin в CDN.

Типичные ошибки с TTL

  • Понизить TTL в день переключения. Кеши, которые уже держат запись с TTL в одни сутки, сохранят её до суток, каким бы коротким ни был новый TTL.
  • Изменить не ту зону. Если NS-серверы домена указывают на Cloudflare, редактирование зоны у регистратора ничего не даст. Сначала проверьте, какие NS-серверы авторитетны.
  • Забыть про www и IPv6. Голый домен переключается за минуты, а www или AAAA-запись всё ещё несёт старый IP с длинным TTL.
  • Так и не повысить TTL обратно. Постоянный TTL 300 секунд работает, но означает больше запросов и меньшую защиту, если у вашего DNS-провайдера случится сбой.
  • Ждать, что TTL поможет с CDN. С проксируемой записью посетители в любом случае резолвятся в CDN; изменение происходит в настройках origin в CDN.

Используйте время ожидания для проверки

Короткий TTL — это ещё и ваша страховка. Если после переключения что-то пойдёт не так, возврат записи на старый сервер дойдёт до посетителей так же быстро, если старый сервер ещё работает. Держите его, пока переезд не завершится окончательно. Сутки между понижением TTL и переключением — идеальное время проверить новый сервер. Откройте сайт на новом IP с помощью ссылки-превью DNSPeek, запустите QA-отчёт и отправьте ссылку тому, кто должен её согласовать. QA-отчёт также читает DNS домена и напомнит понизить TTL, если он всё ещё длинный.

Чек-лист TTL

TTL

  • Текущий TTL каждой записи, которая изменится, записан
  • TTL понижен до 300 секунд, записи ещё указывают на старый IP
  • Перед переключением прошёл один старый TTL
  • Записи переключены на новый IP
  • Распространение проверено через публичные резолверы
  • Через несколько дней TTL снова повышен

Частые вопросы

За сколько до переноса нужно понизить TTL?

Как минимум за один полный старый TTL до переключения. Если TTL составляет час, понижайте его больше чем за час; если сутки — больше чем за сутки. Понижение за 24–48 часов покрывает типичные случаи.

Какой TTL использовать для переключения DNS?

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

Поможет ли понижение TTL непосредственно перед переключением?

Очень мало. Резолверы, закешировавшие запись со старым, длинным TTL, держат её, пока этот TTL не истечёт, так что короткое значение помогает только тем резолверам, которые запрашивают снова после понижения.

Стоит ли держать низкий TTL постоянно?

Обычно нет. Более длинный TTL, например час или больше, означает меньше запросов и дольше сохраняет ваш сайт доступным, если у вашего DNS-провайдера случится сбой. Снова понизьте его перед следующим запланированным изменением.

Влияет ли TTL на смену NS-серверов?

Лишь частично. Делегирование к вашим NS-серверам резолверы кешируют в соответствии с TTL родительской зоны, который вы не можете изменить. Скопируйте все записи к новому провайдеру и заложите до двух суток на саму смену NS-серверов.

Moving a site? Use the migration checklist

Every step from lowering the TTL to checking email after the switch, on one printable page. With a free account you keep your preview links in one place and run a QA report of the site on the new server.

Проверьте новый сервер до переключения

DNSPeek даёт вам одну HTTPS-ссылку, которая показывает ваш сайт с нового сервера, пока DNS ещё указывает на старый. Открывайте её на любом устройстве, делитесь ею с командой или клиентом и запускайте QA-сканирование по той же ссылке.

Создать бесплатную ссылку-превью