Назад | Перейти на главную страницу

Уменьшите кэширование службы Windows DNS в Windows

Я борюсь с проблемами кеширования DNS в локальной сети на базе Windows.

Я заметил, что если я изменяю DNS-запись в домене, размещенном на стороннем сервере имен, я всегда оказываюсь последним, кто видит это изменение. Я часто могу запросить домен, используя службу, которая проверяет распространение по всему миру, например www.whatsmydns.net, но обычно я обнаруживаю, что все другие DNS-серверы верны, и это только мой собственный сервер со старым IP-адресом - даже через 8-12 часов . Это проблема для нас, поскольку мы разработчики веб-сайтов и часто вносим изменения в записи DNS, поэтому эти огромные задержки расстраивают.

Похоже, это связано с тем, что наш основной сервер контроллера домена (+ Active Directory и DNS) в нашей локальной сети (который также является нашим локальным DNS-сервером) кэширует записи для AGES (намного превышающих опубликованный TTL). Как я могу остановить кэширование DNS-сервера Windows или уменьшить кеширование до часа или около того?

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

Входящий КБ поддержки Microsoft:

Использование реестра для управления временем кеширования

Продолжительность кэширования положительного или отрицательного ответа зависит от значений записей в следующем разделе реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

TTL для положительных ответов - меньшее из следующих значений:

  • Количество секунд, указанное в ответе на запрос, который получил преобразователь.
  • Значение параметра реестра MaxCacheTtl.

Ноты

  • По умолчанию TTL для положительных ответов составляет 86 400 секунд (1 день).
  • TTL для отрицательных ответов - это количество секунд, указанное в параметре реестра MaxNegativeCacheTtl.
  • По умолчанию TTL для отрицательных ответов составляет 900 секунд (15 минут).

Если вы не хотите, чтобы отрицательные ответы кэшировались, установите для параметра реестра MaxNegativeCacheTtl значение 0.

Чтобы установить время кэширования на клиентском компьютере:

  • Запустите редактор реестра (Regedit.exe).
  • Найдите и щелкните следующий раздел в реестре:

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Dnscache \ Parameters

  • В меню Правка наведите указатель на пункт Создать, щелкните Значение DWORD, а затем добавьте следующие значения реестра: Имя значения: MaxCacheTtl

    Тип данных: REG_DWORD Значение по умолчанию: 86400 секунд Значение данных: если вы уменьшите значение максимального TTL в клиентском кэше DNS до 1 секунды, это создаст впечатление, что клиентский DNS-кеш отключен.

    Имя значения: MaxNegativeCacheTtl

    Тип данных: REG_DWORD По умолчанию: 900 секунд Значение данных: установите значение 0, если вы не хотите, чтобы отрицательные ответы кэшировались.

  • Введите значение, которое вы хотите использовать, и нажмите кнопку ОК.

  • Закройте редактор реестра.