Я змінив TTL з 24 годин на 5 хвилин. Чи потрібно чекати 24 години, перш ніж змінити записи?


37

Я переміщую наш додаток із хмарного сервера на спеціальному сервері Rackspace.

Я хочу зменшити програму на ~ 5 хвилин, щоб скопіювати дані з хмарного сервера на спеціальний сервер, тому я не хочу, щоб запити переходили на старий сервер після того, як скопіювали дані.

Я хочу вказати наш запис DNS на новому сервері, але TTL було встановлено на 24 години. Я змінив його на 300 секунд. Чи потрібно чекати 24 години, перш ніж оновити ip, що вказує на домен / скопіювати дані?


9
BTW, навіть якщо ви чекаєте TTL, я настійно рекомендую вам редагувати конфігурацію на старому сервері, щоб переконатися, що більше оновлень не буде прийнято. Не всі DNS-розв’язувачі насправді відповідають стандартам.
Пітер Грін

5
Те, що я робив під час переміщення веб-програми від одного постачальника хостингу до іншого, - це переадресація ssh-порта, щоб відвідувачі все ще використовували старий IP, спрямований на новий сервер.
kasperd

Відповіді:


58

Кожен, хто має кешовану копію запису домену, не буде турбувати його оновлення протягом 24 годин, так що так, якщо у вас є намір мати не більше 5-хвилинного вікна недоступності, вам слід зачекати, поки всі видатні кеші не оновляться, щоб більше не працювати. ніж 5 хвилин


23
... це протягом 24 годин since they last cached it. Це може бути що-небудь від 1 до 86399 секунд.
user9517 підтримує GoFundMonica

6
@Iain Ви повинні взяти на себе найгірше, оскільки будь-який або всі вони могли просто кешувати це безпосередньо перед зміною.
Бармар

6
@Barmar Нічого не припускайте. Безліч провайдерів просто ігнорують TTL.
user9517 підтримує GoFundMonica

13
@Iain Раніше я працював у Akamai, CDN, який широко використовує короткі TTL (наприклад, 60 секунд) для балансування навантаження. Я пам'ятаю, що ми провели дослідження і виявили, що більшість провайдерів дотримуються наших TTL.
Бармар

1
Я працюю в компанії, що розміщує веб-хостинг, наш досвід полягає в тому, що низькі TTL швидше ігноруються, ніж вищі.
Генрік - перестань шкодити Моніці

39

Це (потенційно) навіть гірше, ніж вам - вам доведеться почекати 24 години після оновлення всіх ваших авторитетних серверів. Нормальний спосіб оновлення полягає в тому, що ви вносите зміни в зону на первинному сервері, а потім кожен з вторинних пристроїв передає нові дані зони наступного разу, коли вони трапляються, щоб зареєструватися з первинним. Частота перевірки регулюється інтервалом оновлення в записі SOA зони. Таким чином, у гіршому випадку вам доведеться зачекати інтервал оновлення зони + TTL запису.

Ви можете також повинні чекати так довго для реальних змін записи. 5-хвилинний TTL не принесе багато користі, якщо вторинники оновлюються лише кожні 6 годин. Отже, ви, мабуть, хочете зменшити інтервал оновлення в зоні, а також на період, коли ви хочете мати можливість швидко вносити зміни.

Зауважте, це може не стосуватися вашої установки. Якщо у вас є система, яка оновлює всі авторитетні сервери разом, це не проблема (і я не знайомий з налаштуваннями DNS Rackspace). Але я рекомендую запитувати всі ваші авторитетні сервери окремо ( dig server.example.com @secondaryserver.example.com), щоб переконатися, що у них є новий TTL, перш ніж розпочати ваш 24-годинний відлік.


1
Це має бути прийнятою відповіддю.
dotancohen

4
Здається, ви ігноруєте протокол DNS Notify, який повідомляє ведені сервери оновлюватись незабаром після оновлення майстра. Більшість серверів DNS використовують цю функцію.
Бармар

@Barmar: Це правда, але в той же час майстер може пройти деякий час, щоб оновити залежно від постачальника. (Наприклад, деякі провайдери лише відновлюють зони з бази даних кожні 5 або 15 хвилин, хоча сучасні роблять це миттєво.)
grawity

1
Мій коментар стосувався лише питання очікування інтервалу оновлення, який в основному застарілий в ці дні. Чекати, коли майстер оновиться, правда, якщо ви не керуєте своїм власним майстром. Але я думаю, що навряд чи їм доведеться мати справу з точним часом, коли все стане безпечним для оновлення; 5-15 хвилин зайвих не повинні сильно змінюватись. Суть початкового питання полягає в тому, чи потрібно їм чекати цілий день.
Бармар

1
@GordonDavisson: Якщо ви не довіряєте - перевірте. dig +nssearch example.comє корисним інструментом для швидкого порівняння SOA на всіх серверах; nsdiff показує фактичні відмінності.
grawity

23

Так, слід почекати. Навіть тоді, звичайно, не гарантується, що всі будуть поважати TTL.


6
+1, оскільки не всі підкоряються TTL, я бачив, як дурники приходять через тиждень після зміни DNS. Один із способів, яким я займався в минулому, - це створити нове унікальне ім’я як псевдонім на новому сайті, і використовував переспрямування зі старого сайту для перенаправлення користувачів зі старого домену на новий, наприклад, з www.mycompany .com -> newsite.mycompany.com
Джонні

Так, але багато людей справедливо зневажають думку про необхідність використання нового імені. Назви - марки. Крім того, це працює лише для HTTP та майже нічого іншого.
Свен

8
Інший варіант - налаштувати старий сервер як зворотний проксі для нового сервера. Потім ви можете залишити це на тиждень або близько того після вимикача і вимкнути його, коли в ньому не проходить трафік.
bdsl

1
Люди, які добре поводяться з серверами DNS, які підкоряються TTL, ніколи не побачать новий домен. І хоча це "лише" працює з HTTP (S), я думаю, ви виявите, що HTTP є досить поширеним протоколом в Інтернеті. Пропозиція bdsl про налаштування зворотного проксі ще краще, але це більше роботи
Джонні

@Johnny Проблема з новим доменом полягає в тому, що ви ризикуєте людьми робити закладки на цьому домені. Якщо ви не плануєте залишити зазначений новий домен доступним назавжди.
Боб

5

Збирання разом різних коментарів та відповідей на повну процедуру було б щось подібне.

  1. Переконайтесь, що ви зможете своєчасно оновлювати свої авторитетні сервери.
  2. Знизити TTL.
  3. Перевірте, чи всі авторитетні сервери мають новий ttl.
  4. Зачекайте старого TTL, щоб кешовані значення зі старим TTL були (в основному) усунені з кешів (ви не можете гарантувати, що вони будуть відсутній з кожного кешу, оскільки деякі кеші можуть ігнорувати стандарти).
  5. Переведіть сайт на старий сервер у режим лише для читання (або якщо ви не можете цього замінити на сторінку "ми перебуваємо на підтримці").
  6. Виконайте остаточну копію зі старого сервера на новий сервер (у результаті вийде сайт, доступний лише для читання на новому сервері).
  7. Змінення записів DNS.
  8. Переконайтесь, що всі авторизовані сервери мають нові записи DNS.
  9. Зачекайте нового ttl (ви можете пропустити цей крок, якщо вам не байдуже, що деякі користувачі зможуть зробити свій внесок на сайт, а інші користувачі не побачать результатів цих внесків).
  10. Переведіть сайт на новому сервері в режим читання / запису.
  11. Помістіть на старий сервер повідомлення про те, що це застаріла копія лише для читання і що користувач, ймовірно, зламав DNS.
  12. Почекайте деякий час, поки записи випадуть із несумісних кешів DNS.
  13. Зняття з експлуатації старого сервера.

5

Окрім інших відповідей, ви можете скористатися https://www.whatsmydns.net/, щоб перевірити, як розповсюджується ваш запис DNS майже в реальному часі. введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.