Як переключити DNS на веб-сайт без порушення служби?


13

Я хотів би переключити DNS нашого веб-сайту без будь-яких збоїв у службі

IP сервера залишається таким же.
Зазвичай для оновлення всього Інтернету потрібно 24-48 годин.
Чи можна паралельно працювати обом DNS?

Важлива примітка JamesRyan:

Майте на увазі, що деякі сервери DNS так чи інакше не поважають низькі TTL та кеш. Чекайте певного перекриття.

^ це точно є досить проблемою.


Фон:

Я змінив DNS нашого веб-сайту на іншого Провайдера (bluehost, який, здається, зламаний і досить часто показує сторінку їхніх оголошень замість нашого сайту), тому я повернувся до старого оригінального DNS через ~ 2 години.

IP-адреса сервера залишилася колишньою, тому я сподівався не отримати жодних збоїв у службі, оскільки обидва DNS показують один і той же сервер.

Зараз через 24 години 30% Інтернету все ще користуються непрацездатним / неправильним провайдером (bluehost), на який не йдеться у whois. (що стосується Pingdom + декілька повідомлень користувачів, що вони не можуть нас відвідати)

Відповіді:


18

Правильний спосіб зробити це:

  1. Змініть зону TTL на мінімальну - у більшості випадків це 300 секунд (5 хвилин). На цьому етапі не змінюйте жодних записів.
  2. Зачекайте 48 годин.
  3. Зробіть зміни. Щоб розповсюдити зміни, знадобиться всього 5 хвилин.
  4. Поверніть TTL до стандартних 48 годин.

Ця процедура поширюється на всі зміни, а не лише на зміни в NS. Якщо вам потрібно змінити IP-адресу для запису A, вона буде працювати точно так само. Хоча це може не бути абсолютно необхідним, і теоретично ви можете запустити два сервери імен, коли це погана ідея. Ніколи не знаєш, чи не потрібно буде робити надзвичайні зміни протягом цього 48-годинного періоду.


6
Майте на увазі, що деякі сервери DNS так чи інакше не поважають низькі TTL та кеш. Чекайте певного перекриття.
JamesRyan

> Майте на увазі, що деякі сервери DNS так чи інакше не поважають низькі TTL та кеш. <- я здогадуюсь, це досить проблема і спричиняє порушення роботи!
Лупо

6
Не в цьому випадку, якщо ви продовжуєте роботу обох серверів через 4-денне вікно перемикання.
Девід Шварц

1
Незрозуміло, чи відповідає ця відповідь ситуації, коли сервери імен залишаються однаковими, але веб-сервер ip змінюється. І це точно не стосується того, як довести час простою до декількох секунд. Я збираюся задати нове запитання.
Buttle Butkus

3

Якщо ви змінюєте свого постачальника DNS (сервери імен, що відображаються у whois), так, ви можете запустити їх паралельно. Переглядаючи мій домен, TTL, який використовують сервери GTLD (ті, які повідомляють іншим користувачам Інтернету, який працює з моєю DNS), становить 48 годин. Наскільки я знаю, змінити це неможливо.

Зазвичай все, що вам потрібно зробити, - це змусити вашого реєстратора домену змінити записи сервера імен, переконавшись, що новий постачальник вже налаштований, і що старий постачальник зберігає свої записи жити принаймні 48 годин.

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


> і що старий постачальник зберігає свої записи жити принаймні 48 годин. <- я здогадуюсь, це те, що я зробив неправильно.
Лупо

3

По-перше, давайте розберемо нашу термінологію, оскільки ще не зрозуміло, про що ви питаєте.

У вашій програмі хостингу є три частини:

  1. Реєстратор
  2. Хостинг сервера імен
  3. Хостинг сервера

Не рідкість, щоб усі три з них забезпечувалась однією і тією ж компанією, але ніяких вимог до цього немає. Це також досить часто, коли не виплачується окрема плата за 2., коли ви купуєте 1. у тієї ж компанії, що додає плутанини.

Реєстратор несе відповідальність за те, щоб повідомити керівникам батьківського домену про те, що ваш домен існує та які його сервери імен.

Сервери імен несуть відповідальність за відображення вашого домену та піддоменів до IP-адрес (і всіх інших речей, які можуть робити сервери імен).

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

Після того, як ви впевнені, що ви змінили, або хочете змінити, чи можете ви змінити питання, щоб зробити його більш зрозумілим?


Я припускаю, що ви змінюєте хостинг серверів імен. Для цього потрібно:

  1. Знайдіть нового хоста сервера імен та налаштуйте всі записи з ними, які ви маєте у свого поточного хоста серверів імен.
  2. Зверніться до свого реєстратора і попросіть його змінити авторитетні сервери імен на нові, які ви тільки що створили. Цей крок займе певний час, оскільки вони можуть зробити це не відразу, а залучені TTL часто 48 годин.
  3. Як тільки всі нові запити DNS надходять до нових серверів імен, вимкніть старі.

дякую, Ladadadada, я зробив саме це, обидві конфігурації DNS мали однакові записи A на один і той же сервер (і я сподівався не отримати жодних збоїв у службі) - все ж здається, що старий (bluehost) більше не використовував конфігурацію, тому що інформація Whois вже показана на новому сервері.
Лупо

1
Ах, це нещасна і бідна форма від Bluehost. Вони не повинні брати ваші записи у своїх серверів імен, як тільки вони змінюють делегацію. Вони повинні продовжувати відповідати щонайменше 48 годин.
Лададада

3

A) Якщо ви працюєте на сайті в спільній хостинговій службі - маніпулюйте DNS TTL, якщо можливо

B) Якщо ви працюєте з власними серверами - для мінімального простою використовуйте проксі-сервер на вихідному сервері та IP-витяжці (заголовок перенаправлений_для призначення) за призначенням (таким чином вихідний IP-код може бути однаковим), перемістіть файли після оновлення записів DNS і зачекайте, поки трафік буде зупинка на вихідному сервері


Відповідь вам здається, що вона може містити деякі приховані дорогоцінні камені, але тільки люди, які вже знають, про що ви говорите, можуть зрозуміти, що ви сказали. Я хотів би додати декілька посилань на вашу публікацію, але я не знаю точно, що вони правильні. Ви мали на увазі X-Forwarded-For? en.wikipedia.org/wiki/X-Forwarded-Для І для витяжки IP-адрес ви маєте на увазі це: github.com/jonrohan/ip-extractor
Butkus

1
правильно, X-Forwarded-For для витяжки, це повинен бути модуль веб-серверів, який може це зробити, у випадку апачі httpd: mod_extract_forwarded, mod_realip, mod_realip2 тощо. цей модуль переведе всю інформацію в модулі з нижчим пріоритетом, наприклад, php тощо .
GioMac

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