Сколько времени займет изменение DNS

9

Если я собираюсь внести DNS-изменение в запись A для моего домена (с одного IP-адреса на другой), сколько времени мне ждать, пока люди не перейдут на новую информацию? Это просто <= TTL? Я знаю, что раньше это занимало время, но в 2009 году, как долго мне ждать?

Брайан Фишер
источник
Этот вопрос, вероятно, лучше подходит для ServerFault.com. Я знаю, что это было не так, когда задавали этот вопрос, но, может быть, вы получите там ответ, который вам нужен ...
RSolberg,

Ответы:

24

Теоретически каждый должен увидеть обновленную запись A где-то между мгновенным значением и соответствующим значением TTL. Большинство регистраторов устанавливают TTL на 24 часа IIRC, поэтому в течение 24 часов некоторые люди увидят старый адрес, а некоторые - новый, а через 24 часа после изменения у всех должен быть новый адрес, а некоторые вместо этого используют более низкое значение, например 4 часа.

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

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

Еще одна вещь, на которую следует обратить внимание - это задержки между панелью управления DNS вашего регистратора и их DNS-серверами. Например, я заметил, что изменения, внесенные в домены, управляемые 123-reg.co.uk, могут занять до часа, чтобы появиться на их DNS-серверах, что является дополнительным часом сверх значения TTL, которое вы должны будете учитывать ,

Дэвид Спиллетт
источник
что означает IIRC?
Mitnk
Извините, я, вероятно, не должен был использовать социальные сокращения в числе технических! IIRC - «если я правильно помню».
Дэвид Спиллетт
10

Это зависит от того, как долго клиенты кэшируют информацию DNS, которая должна соответствовать значению TTL. Однако, поскольку клиент определяет, как долго следует кэшировать информацию, вы не можете быть в этом уверены (ведь клиенты могут выполнять ручное разрешение и, таким образом, полностью игнорировать TTL).

Брайан Расмуссен
источник
10

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

Брайан Клаппер
источник
7

Обычно это <= TTL, но некоторые клиенты и DNS-прокси кэшируют старые настройки дольше, чем TTL.

Майк
источник
4

Договорились с Майком. Как правило, мы просим наших клиентов в течение 24-48 часов распространять по всему миру все интернет-провайдеры. Большинство крупных интернет-провайдеров уважают TTL и быстро обновляются. Некоторые из более отдаленных мест занимают больше времени. Удачи!

Джон Вирголино
источник
3

В практических целях все DNS-серверы увидят изменение записи A где-то между моментом и значением TTL в записи A. В статье Википедии есть отличная рецензия на эту тему.

Отдельные приложения могут не видеть изменения в TTL из-за локальных кэшей DNS в маршрутизаторах, брандмауэрах, операционных системах и приложениях. Как упоминалось в статье в Википедии: «Эти кэши обычно используют очень короткое время кэширования - порядка одной минуты. Internet Explorer предлагает заметное исключение: последние версии кэшируют записи DNS в течение получаса»

Перезагрузка (или цикл питания для маршрутизаторов) обычно сбрасывает все локальные кэши DNS, но, очевидно, вы не можете ожидать, что каждый пользователь перезагрузит каждое устройство после изменения записи А.

Если вы не можете изменить свои записи A напрямую, то любое приложение, которое вносит изменения (например, программное обеспечение панели управления), может привести к собственным задержкам.

Мы используем TTL по умолчанию 4 часа. Если мы планируем изменить запись A, мы понижаем TTL записи A до 5 минут (это должно быть сделано более чем за 4 часа до того, как изменение вступит в силу). После внесения изменений мы возвращаем TTL на 4 часа. Большинство приложений видят изменения сразу, но некоторые пользователи будут звонить с проблемами и должны перезагрузиться.

В статье в Википедии также хорошо обсуждается «распространение»: «Многие люди неправильно ссылаются на таинственное время распространения 48 часов или 72 часа, когда вы вносите изменения в DNS. ...». Корневые серверы (не регистраторы) контролируют TTL в записях NS вашего домена. Вы можете увидеть эти значения TTL для себя с помощью команды nslookup. Прямо сейчас, сейчас, TTL для моих записей NS на корневом сервере "F" установлен на 2 дня.

Пи Джей Тецца
источник
2

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

RainyRat
источник
2

Помимо TTL (что вы контролируете, см. Отличный совет Брайана Клэппера) и возможного более длительного времени кэширования в некоторых приложениях, существует также время синхронизации между авторитетными серверами имен. Это может быть около нуля, если каждый сервер имен получает NOTIFY, и может быть несколько часов (в зависимости от настроек записи SOA), если пропущено NOTIFY (что иногда случается).

Итак, чтобы подчеркнуть совет Брайана Клаппера: планируйте заранее.

bortzmeyer
источник
2

Если вы говорите о Windows, и вы говорите внутри, это зависит от исходного TTL. Когда мы заранее знали, что собираемся внести изменения, мы установили TTL на рекордно низком уровне ... до 5 минут. Затем, как только изменение было внесено, мы увеличили TTL до более нормального значения.

Если вы говорите в Интернете, все ставки сняты. Как уже упоминалось, некоторые контроллеры домена для кэширования полностью игнорируют TTL. В этих случаях мы использовали общее правило 48 часов. ОДНАКО, если ваш домен ранее был размещен другим провайдером, и они не избавились от SOA в вашем домене, то все клиенты, использующие свои DNS-серверы, все равно будут указаны неправильно. Мы видели эту проблему с BellSouth (теперь AT & T).

К. Брайан Келли
источник
1

Я видел в среднем 3-4 часа для большинства людей. Тем не менее, я все еще использую 7 дней, как правило, для полной замены. Обычно это относится ко всем людям, которые плохо играют с DNS TTL.

Zypher
источник
1

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

JoshBerke
источник
1
... который контролируется значениями TTL. то есть: ДА <= TTL.
Высокий Джефф
да время жить ;-)
JoshBerke
1

Большинство клиентов будут работать с установленным вами TTL. Однако есть некоторые DNS-серверы, которые настроены на игнорирование TTL. Я недавно изменил IP-адреса наших веб-сайтов. Нам приходилось оставлять серверы включенными и работать на старых IP-адресах в течение нескольких недель, чтобы отвечать на запросы. Мы точно должны были выяснить оставшихся клиентов и потребовать, чтобы они очистили там кэш DNS и / или перезагрузились, чтобы освободить их от старых IP-адресов.

mrdenny
источник
0

Он может быть больше, чем TTL (замененной) записи: многие клиенты игнорируют TTL, когда он слишком низок, или связывают его с каким-то другим значением (например, часом). Есть и другие кеши; Например, Firefox будет кэшировать DNS в течение минуты (без учета TTL), но некоторые исправления / конфигурации повышают это до часа.

Печальный (но верный) ответ зависит от того, кто запрашивает ваши (DNS) ответы.

geocar
источник