Возможно ли установить для TTL моего домена очень низкое значение (пару минут), чтобы, если мой основной хост выйдет из строя в течение длительного периода времени, я мог обновить записи DNS на моем основном хосте, чтобы они указывали на мой вторичный хоста, тем самым направляя новых посетителей - после завершения распространения DNS - на серверы моего вторичного хоста? Или это вообще невозможно, а может, и глупо? Я просто пытаюсь придумать недорогой способ предотвратить простои.
Если это возможно, насколько низко для TTL?
Низкие значения TTL работают только до тех пор, пока некоторые распознаватели DNS не соблюдают TTL ниже определенных, совершенно произвольных уровней. Даже если вы установите TTL равным 5 минутам, для полной очистки изменений из кэшей DNS в Интернете может потребоваться до 48 часов. Проблема усугубляется тем, что авторы вредоносных программ используют именно этот трюк, чтобы изменить расположение своих командно-управляющих серверов (это называется «fast flux DNS»). ссылка на сайт), поэтому в качестве меры противодействия этому не следует соблюдать TTL ниже определенного уровня.
Можно делать то, что вы хотите, и по стандартам это должно быть полностью работоспособным, но это ненадежно.
[У некоторой коммерческой службы, о которой я отредактировал упоминание] есть клиенты, которые используют точно описанный вами сценарий аварийного переключения.
Отличие в том, что система полностью автоматизирована. Он отслеживает ваши серверы и изменяет записи DNS на лету. Он реагирует немного быстрее, чем администратор, получающий страницу, вылезающий из постели, ставящий кофейник и меняющий записи вручную. Он также невосприимчив к эффекту «только что проснулся, с толстыми пальцами - рекорд»: D
В реальных наблюдениях текущее поведение клиентов таково, что они довольно быстро наводняют рабочий сервер.
Несмотря на то, что могут быть некоторые сбои, если единственный другой вариант - полностью отключиться, то доступность для подавляющего большинства клиентов - это довольно хороший вариант.
Упомянутые выше 48 часов не предусмотрены для предполагаемого использования. Это время распространения DNS, связанное с изменением зарегистрированных серверов имен на уровне регистратора. Это не то же самое, что изменение записей на неизменном сервере имен.
Если ваш хост настолько ненадежен, что вы пытаетесь найти способы его разработки, я бы предложил найти новый хост. При этом вы можете использовать более низкие значения TTL, чтобы изменения проходили быстрее, но, как уже упоминалось, существует множество резолверов, которые будут устанавливать минимальный TTL и отменять установленный вами, если он ниже их внутреннего минимума.
Еще одна вещь с низким TTL заключается в том, что если у вас отказал все ваши DNS-серверы (или преобразователь не может связаться хотя бы с одним из них в любом случае), более низкий TTL приведет к тому, что ваш сайт исчезнет быстрее, чем было бы иначе. Это также вызывает больше поисков, чем более высокий TTL, что в некоторых случаях может заставить ваш сайт работать медленнее, чем в противном случае, в результате постоянного обновления информации DNS. Это можно смягчить, установив значение TTL выше, чем средняя продолжительность сеанса на вашем веб-сайте.
TTL в 20-30 минут не является необоснованным, но в производственной среде я бы не пошел меньше часа, если не запланировано какое-либо известное ожидающее изменение, которое требует временного более низкого значения.