Колко време отнема DNS промяната да се разпространи
Защо промените по домейна не се виждат веднага
Сменил си nameservers-ите към нов хостинг и очакваш всичко да работи. Отваряш сайта – старият все още се показва. Проверяваш след десет минути. Същото. След час започваш да се чудиш дали не си объркал нещо.
Това е DNS propagation – процесът, който кара промените да се разпространяват постепенно по целия свят.
Как работи DNS
DNS превръща имената на сайтове в IP адреси. Когато пишеш myawesomesite.com в браузъра, системата намира съответния IP адрес и те свързва с правилния сървър.
Няма единна база данни, която да съхранява всичко. Вместо това DNS разчита на мрежа от различни сървъри, които си комуникират помежду си.
Четирите типа DNS сървъри
При всяко посещение на сайт участват четири вида сървъри:
- Recursive resolver – обикновено това е сървърът на твоя доставчик или на Cloudflare. Той прави цялата работа по търсенето и запазва резултатите в кеш.
- Root name servers – първата точка за контакт. Те не знаят къде сочи твоят домейн, но знаят към кой TLD сървър да те насочат.
- TLD name servers – управляват всички домейни под дадено разширение (например
.com). Те посочват кой authoritative сървър отговаря за конкретния домейн. - Authoritative name servers – тук се намират реалните DNS записи – A, AAAA, MX, TXT и други.
Как се случва DNS заявката
Когато кешът е празен, заявката минава през всички нива – от resolver-а през root и TLD сървърите до authoritative сървъра, който връща IP адреса. След това resolver-ът кешира резултата.
Целият процес отнема милисекунди. Проблемът идва, когато данните вече са кеширани някъде.
Защо възникват забавяния
DNS записите имат TTL (Time To Live) – време, през което информацията се счита за актуална. Докато TTL не изтече, старите данни остават в кеша на resolver-ите по света.
Ако си задал TTL от 24 часа и после смениш nameservers-ите, много resolver-и ще продължат да връщат стария отговор още дълго време. Няма централизиран начин да се обнови всичко наведнъж.
Как да улесниш прехода
- Намали TTL стойността ден-два преди голяма промяна – например на 5 минути.
- Използвай инструменти за проверка на propagation в различни части на света, а не само локално.
- Планирай промените в по-спокойни часове, когато трафикът е по-малък.
- Остави стария хостинг активен поне 48 часа – така имаш време за реакция при проблеми.
Разпределената природа на DNS
DNS работи без централизиран контрол. Това го прави устойчив – ако един сървър откаже, други поемат. Но същата разпределеност означава, че промените не се виждат мигновено навсякъде.
Когато следващия път чакаш propagation, знаеш, че става въпрос за TTL стойности и кеш, а не за грешка. Просто трябва да изчакаш.