Скажем, я хочу указать свой домен blah.example.com
с сервера, расположенного по IP-адресу 1.2.3.4, на другой сервер, расположенный по IP-адресу 5.6.7.8. Это требует изменения DNS.
Почему, когда я вхожу в свою учетную запись GoDaddy cPanel и меняю DNS на одном из моих серверов имен, DNS может занять до 24 часов, чтобы «распространиться» по всему миру и действовать на 100%, но если я использую такой сервис, как DynamicDNS или CloudFlare, изменение происходит мгновенно?
Потому что на самом деле это не мгновенное изменение с DynamicDNS или CloudFlare. Независимо от того, какую службу вы используете, с момента внесения изменений наступает период, который продолжается до истечения срока действия кэшированных записей на всех других DNS-серверах в мире. Это время регулируется TTL, который для некоторых сервисов (например, DynamicDNS) поддерживается низким, чтобы допускать частые изменения, а в других - высоким, чтобы обеспечить более эффективное кэширование.
Чтобы было ясно, когда вы «меняете DNS», я думаю о двух разных вещах:
1) Изменение серверов имен - серверы имен должны быть немедленно изменены в реестре. Кеш DNS может вступить в игру. Допустим, вы используете сервер имен 1.2.3.4. Вы заходите на свой сайт ticketmonster.com. Ваш DNS-сервер будет кэшировать результаты с корневых серверов имен, которые сообщают ему, где найти записи DNS для вашего домена. Затем вы меняете серверы имен в своем домене и снова посещаете его. Предполагая, что вы попали на сайт до истечения срока действия кеша DNS, вы все равно будете заходить на старый сайт.
Если вы не посещали веб-сайт до изменения серверов имен (и вы не используете общедоступный сервер имен, который кэшировал его, потому что его посетил кто-то другой), вы, скорее всего, увидите изменение в течение секунды или двух.
Есть и другие исключения (кластеры могут не кэшировать запись, поскольку каждый раз вы можете обращаться к другому DNS-серверу), но это общий обзор.
2) Изменение записей DNS на существующих серверах имен - Допустим, вы добавляете / удаляете запись A. Для задержки может быть несколько причин. Вы можете столкнуться с проблемой кеширования, как указано выше. Если существует несколько серверов имен, которые выполняют передачу зон для репликации зоны, вам может потребоваться подождать, пока это не будет выполнено (TTL в файле зоны можно уменьшить, чтобы сделать это быстрее). Если задействована какая-то другая форма репликации, это может вызвать задержку.
Есть и другие случаи, зависящие от того, как именно настроен DNS, но это распространенные причины, о которых я могу придумать.
Изменение TTL может помочь, если вам нужно, чтобы изменения выполнялись быстрее, но будьте осторожны, некоторые кэширующие серверы имен игнорируют их и устанавливают то, что им нужно.