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

Из-за этого проблема выглядит хаотично. Администратор уже видит новый сервер. Через мобильный интернет сайт тоже новый. А пользователь из домашней сети присылает скриншот старой версии. Иногда виноват высокий TTL, иногда забытый AAAA, иногда браузер использует DNS over HTTPS и вообще не спрашивает тот DNS-сервер, который указан в Windows.
Ждать наугад сутки или двое не нужно. Нормальная диагностика сводится к четырём вопросам: что сейчас отдаёт authoritative DNS, какой ответ получает конкретный DNS-резолвер, какой адрес реально использует клиент и к какому серверу устанавливается HTTPS-соединение. После этого становится понятно, нужно ждать TTL или DNS уже вообще ни при чём.
Почему после смены IP один пользователь видит новый сайт, а другой — старый
Разные пользователи могут попадать на разные серверы, потому что DNS-ответ не хранится в одном глобальном кеше. Один рекурсивный DNS уже получил свежую A-запись, второй ещё держит старую, а браузер третьего пользователя может получать DNS через собственный Secure DNS.
Типичная ситуация после переноса выглядит так: администратор открывает сайт и видит новый VPS, а пользователь присылает скрин старой версии. Переносить файлы заново или перезапускать Nginx в этот момент рано. Сначала нужно понять, где именно остался старый адрес.
| Что показывает проверка | Куда смотреть дальше |
|---|---|
| Authoritative DNS отдаёт старый адрес | DNS-зона, делегирование, A/AAAA/CNAME |
| Authoritative DNS новый, отдельный resolver старый | TTL и кеш этого resolver |
| Публичные DNS новые, пользователь получает старый IP | DNS пользователя, DoH, VPN, hosts, локальная сеть |
| Пользователь получает новый IP, но страница старая | CDN, браузерный кеш, reverse proxy, origin, приложение |
Вот нужная развилка. Пока неизвестно, какой из этих четырёх сценариев происходит, любые очистки кеша и изменения DNS — стрельба вслепую.
Что TTL реально означает после изменения A-записи
TTL определяет, сколько времени рекурсивный DNS-сервер может хранить полученный DNS-ответ. Это не единый таймер, который запускается во всём интернете в момент изменения записи.
Если A-запись имела TTL 3600 секунд, resolver, запросивший её минуту назад, может хранить старый IP ещё почти час. Другой DNS мог получить ту же запись 50 минут назад и обновит её примерно через десять минут. Поэтому пользователи переключаются не одновременно.
| TTL | Время | Что это означает при смене IP |
|---|---|---|
| 300 | 5 минут | Полученный ответ может храниться примерно до 5 минут |
| 600 | 10 минут | Удобный короткий TTL для заранее подготовленной миграции |
| 1800 | 30 минут | Старый IP может оставаться в кеше до получаса после получения записи |
| 3600 | 1 час | Разные resolver могут переключиться с разницей почти в час |
| 14400 | 4 часа | Старый адрес способен встречаться несколько часов |
| 86400 | 24 часа | Предыдущая запись может сохраняться до суток |
Почему уменьшение TTL после смены IP не очищает старый кеш
Проблема начинается, если TTL уменьшили одновременно со сменой IP. Допустим, до переноса запись имела TTL 86400. DNS-сервер уже получил старый IP с этим значением. Затем администратор меняет адрес и ставит TTL 300.
Уже сохранённый ответ не получит новый TTL задним числом. Resolver продолжит жить по старому значению, которое получил вместе со старой записью. TTL 300 начнёт работать для последующих ответов после нового запроса к authoritative DNS.
Текущий остаточный TTL можно увидеть через dig:
dig example.com
dig example.com @1.1.1.1
dig example.com @8.8.8.8В секции ANSWER SECTION рядом с записью отображается TTL. Если один DNS возвращает старый IP с TTL 420, а другой уже отдаёт новый адрес, это нормальная переходная ситуация: их предыдущие кеши закончились в разное время.
Как узнать, каким DNS реально пользуется проблемный пользователь
Фраза «DNS стоит автоматически» для диагностики почти бесполезна. Нужно получить конкретный адрес resolver, который использует устройство, а затем проверить именно его.
Windows
Самый простой вариант:
ipconfig /allНайдите активный сетевой адаптер и строки DNS Servers. В PowerShell можно получить DNS-серверы интерфейсов так:
Get-DnsClientServerAddressЕсли указан адрес домашнего роутера, например 192.168.1.1, это ещё не означает, что роутер сам выполняет рекурсию: он может пересылать запросы DNS провайдера или другому upstream resolver.
Linux
Для систем с systemd-resolved:
resolvectl statusФайл /etc/resolv.conf тоже полезен, но там может находиться локальный stub вроде 127.0.0.53. В таком случае реальный upstream лучше смотреть через resolvectl status.
macOS
scutil --dnsВывод может содержать несколько resolver для разных интерфейсов и доменных областей. Это особенно актуально при VPN и корпоративных профилях.
Почему DNS в сетевых настройках ещё не доказывает, что браузер использует его
Chrome, Edge, Firefox и некоторые системные конфигурации умеют использовать Secure DNS или DNS over HTTPS. В этом режиме DNS-запрос может уйти к отдельному DoH-провайдеру, минуя обычный DNS Windows или роутера.
Отсюда характерная ситуация: nslookup через DNS провайдера показывает старый IP, а браузер уже открывает новый сайт. Или наоборот — системный DNS новый, а браузерный DoH ещё получает другой ответ.
VPN и корпоративные агенты добавляют ещё один слой. Они могут подменять DNS, использовать собственные resolver или применять split DNS только для отдельных доменных зон.
Как найти DNS-сервер, который всё ещё возвращает старый IP
Когда authoritative DNS уже правильный, старый кеш удобно искать сравнением нескольких recursive resolver. Смотрите одновременно IP и остаточный TTL.
dig example.com
dig example.com @1.1.1.1
dig example.com @8.8.8.8На Windows:
nslookup example.com
nslookup example.com 1.1.1.1
nslookup example.com 8.8.8.8В PowerShell:
Resolve-DnsName example.com
Resolve-DnsName example.com -Server 1.1.1.1
Resolve-DnsName example.com -Server 8.8.8.8Если известен DNS проблемного пользователя, добавьте его отдельным запросом:
nslookup example.com DNS_IP| Authoritative DNS | 1.1.1.1 | 8.8.8.8 | DNS пользователя | Что означает результат |
|---|---|---|---|---|
| Старый | Старый | Старый | Старый | Проверять зону, NS и саму изменённую запись |
| Новый | Старый | Старый | Старый | Recursive resolver ещё могут держать прежний ответ |
| Новый | Новый | Новый | Старый | Старый кеш локализован до DNS пользователя или его сети |
| Новый | Новый | Новый | Новый | Если страница старая, нужно выходить за пределы DNS-диагностики |
Как читать остаточный TTL
Если DNS пользователя отдаёт старый IP с TTL 180 секунд, обычно разумнее повторить тест через несколько минут, чем снова менять A-запись. При нормальном обновлении после исчерпания кеша resolver запросит свежую запись.
Большой остаточный TTL объясняет, почему проблема затрагивает только часть аудитории. Например, в панели TTL уже 300, а конкретный resolver показывает старый IP с остатком в несколько тысяч секунд. Значит, его кеш появился раньше, когда действовало прежнее значение.
Старый IP найден. DNS-зону дальше не трогаем, пока новая проверка не покажет другую проблему.
Почему очистка DNS-кеша на компьютере помогает не всегда
ipconfig /flushdns очищает локальный кеш DNS Client в Windows. Он не очищает кеш интернет-провайдера, Cloudflare DNS, Google DNS, домашнего роутера или браузерного DoH.
Как отдельно проверить локальный кеш Windows
До очистки можно посмотреть его содержимое:
ipconfig /displaydnsИли через PowerShell:
Get-DnsClientCacheЗатем очистить:
ipconfig /flushdnsПосле этого ipconfig /displaydns или Get-DnsClientCache позволяют отдельно проверить именно локальный кеш.
nslookup выполняет другую задачу: он обращается к DNS-серверу и помогает посмотреть ответ upstream resolver. Поэтому команда полезна после flushdns, но не как доказательство того, что Windows DNS Client Cache очищен.
nslookup example.comЕсли upstream DNS сам возвращает старый IP, компьютер снова получит его. Повторять flushdns десять раз бессмысленно.
Linux и локальный DNS-кеш
На Linux с systemd-resolved:
resolvectl flush-cachesНо принцип тот же: локальный кеш и кеш upstream resolver — разные уровни.
Проверьте файл hosts
После ручного тестирования нового сервера в hosts нередко остаётся старая запись. Она может полностью обойти DNS и пережить сам перенос.
Windows:
C:\Windows\System32\drivers\etc\hostsLinux и macOS:
/etc/hostsЕсли там явно указан домен и IP, публичные DNS-серверы могут отвечать что угодно — компьютер всё равно будет использовать локальное сопоставление.
Когда браузер вообще не использует системный DNS
Secure DNS, DNS over HTTPS, VPN-клиент, корпоративный агент или локальный DNS-прокси могут создать отдельный путь разрешения имени. Поэтому ситуация «Windows всё очистили, но в браузере ничего не изменилось» вполне реальна.
Здесь flushdns уже не поможет. Нужно проверить, включён ли Secure DNS в браузере, есть ли активный VPN и не используется ли корпоративный resolver.
Как отличить DNS-кеш от браузерного, CDN и серверного кеша
Если DNS уже возвращает новый IP, старая страница ещё не доказывает проблему DNS. Нужно отдельно определить адрес соединения и отдельно проверить содержимое HTTP-ответа.
Начните с DNS:
dig example.com @1.1.1.1
dig example.com @8.8.8.8Затем запросите заголовки:
curl -I https://example.com/Для подробной проверки:
curl -v https://example.com/В verbose-выводе curl ищите адрес, к которому устанавливается соединение. В зависимости от версии вывод может выглядеть примерно так:
* Connected to example.com (203.0.113.20) port 443Если это новый IP, DNS уже выполнил свою работу для конкретного запроса. Старая страница находится выше: в CDN, reverse proxy, браузере, кеше приложения или непосредственно на новом origin.
Диагностический файл на новом сервере
На новом origin можно временно создать уникальный файл, которого нет на старой площадке, например:
server-check.txtС содержимым:
new-serverПосле проверки файл нужно удалить. Если перед origin стоит CDN, обычный запрос к такому файлу тоже может пройти через него, поэтому для точной проверки сервера лучше использовать curl --resolve, который будет разобран ниже.
| Симптом | Вероятный уровень проблемы | Что проверить |
|---|---|---|
| Разные DNS возвращают разные IP | Recursive DNS | IP и TTL конкретных resolver |
| DNS новый, HTTPS-соединение идёт на старый IP | Другой resolver, DoH, VPN, proxy | Фактический DNS и вывод curl -v |
| Соединение идёт на новый IP, страница старая | Origin, приложение, web cache | curl --resolve, серверный кеш, содержимое сайта |
| В приватном окне сайт новый | Браузерный кеш | Данные сайта и HTTP-кеш браузера |
| Через CDN старый сайт, напрямую origin новый | CDN/proxy | Кеш CDN и маршрутизацию до origin |
DNS отвечает на вопрос «куда разрешается имя». HTTP-кеш отвечает на другой вопрос — «что вернул сервер или промежуточный proxy». Смешивать эти две диагностики нельзя.
Что меняется, если сайт работает через Cloudflare или другой proxy/CDN
При проксировании через Cloudflare публичный DNS обычно указывает на инфраструктуру Cloudflare, а не на origin VPS. Поэтому после смены IP origin-сервера обычный dig не обязан показать новый адрес VPS.
Здесь нужно разделить три уровня:
- DNS frontend, который видит пользователь;
- Cloudflare или другой reverse proxy/CDN;
- origin-сервер, куда proxy отправляет запрос.
Если включён Cloudflare Proxy, пользователь может всё время подключаться к одним и тем же Cloudflare IP, а внутри панели меняется только origin. С точки зрения публичного DNS смены IP сайта как будто вообще не происходило.
Старая версия при этом может находиться в трёх разных местах:
- Cloudflare продолжает обращаться к старому origin;
- Cloudflare уже обращается к новому origin, но отдаёт закешированный старый объект;
- новый origin сам содержит старую копию сайта.
Это три разные неисправности. Очищать CDN-кеш бессмысленно, если proxy по-прежнему отправляет запросы на старый origin. И наоборот: менять DNS origin повторно не нужно, если запрос уже приходит на новый VPS, а старый HTML сидит в кеше.
Какие заголовки могут помочь
У CDN и reverse proxy иногда встречаются диагностические HTTP-заголовки вроде Age, CF-Cache-Status или X-Cache. Они помогают понять, был ли ответ получен из кеша, но набор и смысл заголовков зависят от конкретного сервиса и его конфигурации.
curl -I https://example.com/Не делайте вывод по одному заголовку. Сначала определите фактическую архитектуру: DNS-only это запись или proxied, где находится origin и можно ли проверить его напрямую.
Как доказать, на какой сервер реально приходит HTTPS-запрос
DNS-команда показывает адрес, который resolver вернул клиенту. Для миграции этого иногда недостаточно. Надёжнее дополнительно проверить, куда устанавливается реальное TCP/TLS-соединение и что отвечает конкретный origin.
Проверка через curl -v
curl -v https://example.com/В выводе найдите IP соединения. Если он совпадает с ожидаемым новым адресом, конкретный запрос уже дошёл по нужному маршруту.
Как проверить новый VPS напрямую через curl --resolve
curl --resolve позволяет временно подставить IP для домена только в одном запросе. При этом сохраняются имя хоста, HTTPS и SNI, поэтому метод намного удобнее простого обращения к https://IP/.
curl -I --resolve example.com:443:NEW_IP https://example.com/Для сравнения можно проверить старый сервер:
curl -I --resolve example.com:443:OLD_IP https://example.com/Если обычный запрос показывает старую страницу, а --resolve на новый IP отдаёт новую, новый origin работает. Проблему нужно искать в DNS-маршруте, proxy или CDN.
Если --resolve на новый IP тоже показывает старую версию, DNS можно временно исключить: запрос направлен прямо на новый сервер.
curl --resolve позволяет отдельно протестировать конкретный origin.
Есть ограничение. Если firewall origin разрешает HTTPS только с IP CDN или reverse proxy, прямое соединение может быть заблокировано. Такой отказ не означает, что новый origin неисправен — нужно учитывать сетевую схему.
| Результат | Что он означает |
|---|---|
Обычный запрос старый, --resolve NEW_IP новый | Новый origin исправен, проблема до него |
Обычный запрос новый, --resolve NEW_IP новый | Основной маршрут уже переключён |
--resolve NEW_IP показывает старый сайт | На новом origin старое содержимое или серверный кеш |
--resolve OLD_IP показывает старый сайт | Старый origin всё ещё обслуживает прежнюю версию |
| Прямой запрос к origin блокируется | Проверить firewall и допустимость прямого доступа в архитектуре CDN |
Почему нужно проверить A, AAAA, www и CNAME-цепочку
Проверка одной A-записи ещё не закрывает DNS-диагностику. Пользователь может идти по IPv6, открывать www вместо корневого домена или получать конечный IP через CNAME с собственным TTL.
A и AAAA нужно смотреть отдельно
dig A example.com
dig AAAA example.comНа Windows:
Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type AAAAЕсли A уже ведёт на новый VPS, а AAAA остался на старом сервере, часть клиентов с рабочим IPv6 может продолжать видеть старую площадку.
При этом наличие AAAA не означает, что клиент всегда выберет IPv6. Современные ОС и приложения могут учитывать доступность IPv4/IPv6 и качество соединения. Поэтому симптом способен проявляться только на части сетей.
Особенно неприятный вариант — старый сервер по IPv6 не падает, а продолжает нормально отвечать. Ошибки соединения нет. Пользователь просто честно получает старый сайт.
Корневой домен и www могут вести по разным цепочкам
dig A example.com
dig AAAA example.com
dig A www.example.com
dig AAAA www.example.comЕсли www.example.com настроен через CNAME, проверяйте и конечную цель:
dig www.example.comСхема может выглядеть так:
www.example.com
CNAME site.provider.net
site.provider.net
A 203.0.113.20CNAME и конечная A/AAAA-запись кешируются как отдельные DNS-данные и могут иметь разные TTL. Поэтому посмотреть только TTL у www.example.com иногда недостаточно.
Несколько IP не всегда означают ошибку
Домен может легитимно возвращать несколько A или AAAA из-за балансировки, GeoDNS, CDN или отказоустойчивой схемы. В таком случае задача не сводится к поиску одного «правильного IP».
Нужно сравнивать полученные адреса с ожидаемой архитектурой. Если из четырёх IP три актуальны, а один ведёт на старый сервер, проблема реальна. Если все адреса принадлежат рабочему frontend-кластеру, разные ответы сами по себе ничего не доказывают.
Почему старый IP иногда встречается даже после ожидаемого TTL
TTL — основной ориентир для жизни DNS-кеша, но не секундомер, после обнуления которого весь интернет обязан одновременно начать возвращать один адрес.
Resolver может временно отдать stale-ответ
Некоторые рекурсивные DNS поддерживают механизм serve-stale. Если актуальный ответ невозможно быстро получить, например authoritative DNS временно недоступен, resolver может при определённых условиях использовать ранее сохранённые данные вместо немедленной ошибки.
Такой сценарий не означает, что TTL «не работает». Это механизм устойчивости resolver, который проявляется только при определённых условиях.
В цепочке может быть несколько TTL
CNAME и его конечные A/AAAA-записи имеют собственные сроки кеширования. Обновилась одна часть цепочки — другая ещё может оставаться старой.
Публичный DNS — это не один сервер в одной стойке
Крупные публичные DNS используют распределённую инфраструктуру и Anycast. Запросы из разных сетей могут попадать на разные узлы сервиса, а их кеши не обязаны находиться в одном состоянии в конкретную секунду.
Поэтому проверка 8.8.8.8 с вашего сервера не доказывает, что пользователь на другом континенте обращается к тому же физическому узлу и видит тот же кеш.
Разный IP может быть предусмотрен архитектурой
GeoDNS, балансировщик или несколько A/AAAA способны намеренно отдавать разные адреса. Перед тем как назвать один из них старым кешем, убедитесь, что он действительно больше не должен обслуживать домен.
| Уровень | Что может сохранять старое состояние | Как проверить | Можно ли очистить самостоятельно |
|---|---|---|---|
| Браузер / DoH | Собственный DNS-ответ или HTTP-кеш | Secure DNS, приватное окно, другой браузер | Да, для своего устройства |
| ОС | Локальный DNS-кеш | ipconfig /displaydns, Get-DnsClientCache | Да |
| Роутер | DNS proxy/cache | Сравнить ответы через другой resolver | Зависит от устройства |
| ISP resolver | Recursive DNS cache | Прямой запрос к его IP | Обычно нет |
| Public resolver | Распределённый recursive cache | dig @resolver | Не глобально |
| CDN / proxy | HTTP-объект или маршрут к origin | HTTP-заголовки, прямой origin-тест | В рамках своего аккаунта — часто да |
| Origin | Старые файлы, application cache | curl --resolve, проверка сервера | Да |
Если ожидаемый TTL уже закончился, не начинайте с повторной смены DNS. Сначала проверьте, что именно сейчас считается «старым»: DNS-ответ, CNAME, один из нескольких адресов или уже содержимое сайта.
Можно ли ускорить обновление DNS после того, как IP уже изменён
Централизованно удалить корректно закешированный DNS-ответ со всех recursive resolver нельзя. Уже полученный старый IP обычно живёт по тому TTL, который resolver получил вместе с ним.
- проверить authoritative DNS;
- найти resolver со старым ответом;
- посмотреть остаточный TTL;
- очистить локальный кеш;
- проверить DoH, VPN и hosts;
- временно использовать другой DNS для собственного устройства;
- оставить старый origin доступным на переходный период.
- удалённо очистить кеш DNS интернет-провайдера;
- заставить все resolver мира немедленно обновить запись;
- задним числом уменьшить TTL уже сохранённого ответа;
- исправить чужой DNS-кеш повторной сменой A-записи.
Почему переход на 1.1.1.1 исправляет сайт только для одного устройства
Администратор меняет DNS в Windows на 1.1.1.1, сайт сразу становится новым и возникает ощущение, что проблема решена. На самом деле изменился только DNS-маршрут этого компьютера.
Пользователи, которые продолжают обращаться к DNS своего провайдера, всё ещё могут получать старый ответ. Перевод вашего ПК на Cloudflare DNS не очищает их кеш.
Когда лучше ничего больше не менять
Если authoritative DNS правильный, новый origin проверен через curl --resolve, а один конкретный resolver возвращает старый IP с уменьшающимся TTL, дополнительная правка DNS только усложнит диагностику.
Старый IP найден. Ждём его кеш, а не перестраиваем зону.
Проверка за 10–15 минут: где остался старый IP
- Узнать authoritative NS домена.
- Запросить A непосредственно у authoritative DNS с
+norecurse. - Проверить AAAA.
- Проверить корневой домен и
www. - Просмотреть CNAME-цепочку, если она есть.
- Сравнить ответы
1.1.1.1и8.8.8.8. - Определить DNS, который реально использует проблемное устройство.
- Проверить Secure DNS/DoH и VPN.
- Посмотреть IP и остаточный TTL проблемного resolver.
- Проверить
hosts. - При необходимости очистить локальный DNS-кеш.
- Проверить фактический IP соединения через
curl -v. - Проверить новый origin через
curl --resolve. - Если используется CDN, отделить DNS frontend от origin и CDN-кеша.
- Не отключать старый сервер, пока переход не завершён и схема записи данных не подготовлена.
Authoritative DNS старый — исправляем зону. Authoritative новый, resolver старый — смотрим TTL. DNS пользователя новый, а соединение идёт не туда — проверяем DoH, VPN и proxy. Соединение уже приходит на новый origin, но страница старая — DNS больше не основная гипотеза.
Как подготовить следующую смену IP без долгого переходного периода
TTL нужно уменьшать до смены IP. Если сделать это одновременно с переключением A-записи, предыдущие кеши продолжат жить по старому значению.
Если сейчас TTL равен 14400 или 86400, сначала установите временное более короткое значение, а затем дождитесь, пока старый TTL успеет выйти из ранее созданных кешей. Только после этого короткий TTL действительно помогает быстро переключить адрес.
Для подготовленной миграции иногда используют 300–600 секунд, если DNS-провайдер и архитектура позволяют такое значение. Это не универсальный постоянный TTL. После стабилизации его можно увеличить.
- Проверить текущие TTL A, AAAA и CNAME.
- Заранее уменьшить TTL необходимых записей.
- Дождаться окончания предыдущего высокого TTL.
- Проверить новый origin через
hostsилиcurl --resolve. - Убедиться, что HTTPS, виртуальный хост и редиректы работают на новом сервере.
- Изменить A/AAAA либо origin в панели proxy/CDN — в зависимости от архитектуры.
- Проверить authoritative DNS.
- Сравнить ответы нескольких recursive resolver.
- Контролировать фактическое HTTPS-соединение.
- Не выключать старый origin сразу после переключения.
- После стабилизации вернуть рабочий TTL.
Перед переносом полезно убедиться, что публичные resolver уже получают пониженный TTL:
dig example.com @1.1.1.1
dig example.com @8.8.8.8Если вчера запись имела TTL 86400, а сегодня в панели стоит 300, этого недостаточно. Ранее созданные кеши ещё могут жить по старому значению.
Почему старый сервер нельзя просто оставить работать для динамического сайта
Для статического сайта переходный период относительно прост: старый сервер можно некоторое время держать доступным, чтобы пользователи со старым DNS не получили ошибку соединения.
У WordPress, WooCommerce, форума или личного кабинета ситуация сложнее. Пока часть пользователей работает со старым origin, а часть уже с новым, оба сервера могут принимать изменения: заказы, формы, комментарии, регистрации, изменения профилей.
Если у серверов независимые базы данных, данные начнут расходиться. Пользователь оформит заказ на старом сервере, а после обновления DNS попадёт на новый, где этого заказа нет.
Поэтому для динамического проекта переходный период нужно планировать отдельно. Возможные схемы зависят от приложения: единая база данных на время переключения, синхронизация, запрет записи на старом origin, режим обслуживания или перенаправление запросов со старого сервера на новый. Универсального варианта здесь нет.
Что проверить перед выключением старого сервера
- authoritative DNS соответствует новой схеме;
- основные публичные resolver больше не возвращают старую запись;
- A, AAAA, www и CNAME проверены;
- CDN или proxy обращается к новому origin;
curl --resolveподтверждает работу нового сервера;- динамические данные не расходятся между двумя площадками;
- старый IP больше не нужен для рабочих запросов.
Тогда проблема «часть пользователей видит старый сайт» перестаёт быть ожиданием вслепую. Можно точно определить resolver, IP соединения и уровень, на котором сохранилось старое состояние. И уже после этого решать: ждать TTL, чистить локальный кеш, исправлять DNS или вообще уходить в диагностику CDN и самого сервера.


