Как сменить DNS на сайте без нарушения работы сервиса?


13

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

IP-адрес сервера остается прежним.
Обычно обновление всего интернета занимает 24-48 часов.
Возможно ли, чтобы оба DNS работали параллельно?

Важное замечание Джеймса Райана:

Имейте в виду, что некоторые 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 веб-сервера изменяется. И это определенно не касается того, как довести время простоя до нескольких секунд. Я собираюсь задать новый вопрос.
Баттл Буткус

3

Если вы меняете своего DNS-провайдера (серверы имен отображаются в whois), тогда да, вы можете запускать их параллельно. Глядя на мой домен, TTL, используемый серверами GTLD (те, которые сообщают другим пользователям Интернета, которые запускают мой DNS), составляет 48 часов. Насколько я знаю, это невозможно изменить.

Обычно все, что вам нужно сделать, - это заставить своего регистратора домена изменить записи сервера имен, убедившись, что новый поставщик уже настроен и что старый поставщик поддерживает свои записи в течение как минимум 48 часов.

Как упоминалось в другом ответе, если вы просто изменяете свои собственные записи, вы можете заранее уменьшить TTL для записи, чтобы обеспечить почти мгновенный обмен, хотя некоторые плохие DNS-серверы будут продолжать кэшироваться дольше.


> и что старый провайдер поддерживает свои записи в течение как минимум 48 часов. <- Я думаю, это то, что я сделал не так.
Лупо

3

Во-первых, давайте уточним нашу терминологию, потому что еще не ясно, о чем вы спрашиваете.

В настройках хостинга есть три части:

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

Все три из них нередко предоставляются одной и той же компанией, но для этого нет никаких требований. Кроме того, довольно часто не бывает отдельной оплаты за 2., когда вы купили 1. у одной и той же компании, что добавляет путаницу.

Регистратор несет ответственность за информирование сопровождающих родительского домена о том, что ваш домен существует и каковы его серверы имен.

Серверы имен отвечают за сопоставление вашего домена и поддоменов с IP-адресами (и всем остальным, что могут делать серверы имен).

Сервер - это та часть, с которой вы, вероятно, больше всего знакомы, и на которой заканчиваются запросы и электронные письма.

Если вы уверены, что вы изменили или хотите изменить, можете ли вы изменить вопрос, чтобы сделать его более понятным?


Я собираюсь предположить, что вы меняете хостинг вашего сервера имен. Для этого необходимо:

  1. Найдите новый хост сервера имен и настройте все записи, которые у вас есть на вашем текущем хосте сервера имен.
  2. Обратитесь к своему регистратору и попросите его заменить официальные серверы имен на новые, которые вы только что создали. Этот шаг займет некоторое время, так как они могут сделать это не сразу, а вовлеченные TTL часто составляют 48 часов.
  3. Как только все новые DNS-запросы поступят на новые серверы имен, отключите старые.

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

1
Ах, это несчастная и плохая форма от Bluehost. Им не следует извлекать ваши записи из серверов имен, как только они сменили делегирование. Они должны продолжать отвечать в течение как минимум 48 часов.
Ладададада

3

A) Если вы работаете с сайтом на виртуальном хостинге - по возможности манипулируйте DNS TTL

Б) Если вы используете свои собственные серверы - для минимального времени простоя используйте прокси-сервер на исходном сервере и IP-экстрактор (заголовок forwarded_for) в месте назначения (чтобы исходный IP-адрес мог совпадать), переместите свои файлы после обновления записей DNS и дождитесь, пока трафик не будет остановка на исходном сервере


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

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

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