1

Допустим, у меня есть запись DNS с параметром «Время жизни», равным 1 дню или 86400 секундам, и я обновляю его целевой IP-адрес. Интересно, сколько времени потребуется конечному пользователю в худшем случае, пока он не получит новый IP-адрес.

Я предполагаю, что на самом деле может пройти 72 часа, прежде чем конечный пользователь получит новый IP-адрес. Это правильно? Позволяет ли кэширование в нескольких узлах это случиться?


Это основано на предположении:

  • Сервер имен немедленно обновляет запись.
  • Интернет-провайдер, пользовательский маршрутизатор и пользовательский компьютер кэшируют запись DNS.
  • Все узлы соответствуют установленному TTL. Они смотрят на TTL как на тайм-аут, а не на дату истечения срока действия.

Сценарий времени:

  • При t = 0 сервер имен обновляет запись.
  • В t = 23:59 часов пользовательский маршрутизатор запрашивает у интернет-провайдера последний IP-адрес.
  • При t = 24 провайдер получает новую запись.
  • В t = 47:59 пользовательский компьютер запрашивает у маршрутизатора пользователя последний IP.
  • При t = 48 пользовательский маршрутизатор получает новую запись.
  • В момент времени t = 71:59 пользовательский компьютер снова запрашивает маршрутизатор пользователя, что, в конечном итоге, обновляется.

1 ответ1

1

Я не думаю, что ваш сценарий имеет смысл. В момент времени t = 23h59m после изменения на официальном сервере так называемый сервер имен ISP либо уже имеет новую запись, либо имеет старую запись. Но если он имеет старую запись, он должен был получить ее от авторитетного сервера по крайней мере 23h59m назад, поэтому оставшийся TTL имеет для меня 60 секунд или меньше. Поэтому, когда компьютер пользователя запрашивает об этом в 47 ч 59 м, его там больше не будет: срок его действия истек почти через 24 часа и, возможно, обновится с тех пор.

Как правило, если TTL для записи составляет 86400 секунд в момент ее изменения, то максимальное время, в течение которого старое значение записи может оставаться в системе DNS, составляет 86400 секунд. Есть только два исключения, о которых я могу думать:

  • Ошибки реализации в DNS-серверах ... надеюсь, их нет :-)
  • Освобожденный конфигурация cache-min-ttl «s, который может быть использован , чтобы заставить сервер имен для кэширования записи дольше , чем это предполагается. Но поскольку на странице руководства Unbound написано, что «более высокие ценности [...] могут привести к проблемам», я не думаю, что люди должны использовать это без веской причины.

Так что осталось? Кеширование информации вне DNS.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .