Що таке поширення DNS-записів?
«Поширенням DNS» зазвичай називають період, коли після зміни запису різні резолвери ще повертають різні відповіді. DNS не розсилає новий запис одночасно по всьому інтернету: кожен рекурсивний сервер отримує й кешує відповідь під час запитів у межах визначеного строку життя.
Звідки береться затримка
Припустімо, власник змінив A-запис сайту з однієї IP-адреси на іншу. Авторитетний сервер уже відповідає новою адресою, але рекурсивний резолвер відвідувача нещодавно зберіг стару відповідь. Поки його кеш чинний, відвідувач може потрапляти на попередній сервер. TTL визначає, як довго можна зберігати відповідь у кеші, але конкретний момент оновлення залежить від того, коли резолвер отримав старі дані.
Окремо може змінюватися делегування домену на нові NS-сервери. Записи делегування теж кешуються, тож зміна DNS-провайдера потребує уваги до старої й нової зон. Недостатньо просто змінити запис у новій панелі, якщо запити ще йдуть до попередніх авторитетних серверів.
Як перевірити зміну
Спочатку з’ясуйте, які NS-сервери зараз авторитетні для домену. Потім запитайте потрібний тип запису безпосередньо в них і порівняйте відповіді з кількома рекурсивними резолверами. У перевірці поширення DNS можна порівняти видимі відповіді, а перевірка DNS-параметрів допомагає побачити окремі записи. Занотуйте час, ім’я та тип запису: A, AAAA, MX і TXT оновлюються незалежно.
Якщо авторитетний сервер видає стару адресу, справа не в очікуванні кешу: перевірте, де справді розміщено зону й чи збережено зміну. Якщо авторитетна відповідь нова, а окремі резолвери повертають стару, дочекайтеся завершення кешування. Не змінюйте запис багато разів під час діагностики: це ускладнить зіставлення відповідей.
Що підготувати заздалегідь
Перед запланованим перенесенням зменште TTL старого запису завчасно й дочекайтеся, поки попередній TTL перестане впливати на кеші. Підготуйте новий сервер до запитів ще до перемикання та залиште старий доступним на перехідний період, якщо це можливо. Для пошти перевірте не лише MX, а й пов’язані адресні та TXT-записи.
Очищення кешу на власному комп’ютері впливає лише на частину шляху й не оновлює кеші інших користувачів. Помилка TLS, недоступний сервер або неправильно налаштований сайт можуть залишатися й після правильної DNS-відповіді. Принципи TTL і кешування описано в RFC 1035; негативні відповіді — у RFC 2308.
Корисно завчасно зменшити TTL старого запису, дочекатися завершення попереднього строку кешування й лише потім змінювати адресу. Але цей прийом не діє заднім числом: відповіді, уже збережені резолверами, мають попередній строк. Після зміни порівняйте авторитетну відповідь і відповіді кількох рекурсивних резолверів, записавши час і тип запису.
Якщо частина відвідувачів уже бачить новий сервер, а інші — старий, тимчасово підтримуйте обидва доступними, коли це можливо. Особливо важливо зберегти доставлення пошти під час зміни записів MX і не видаляти стару конфігурацію завчасно.
