Обратите внимание, что я говорю о клиентском кеше распознавателя DNS. Это сообщение не относится к DNS-серверу Windows.
У меня есть программа на C #, которая выполняет множество разрешений DNS. Поскольку компонент HTTPWebRequest не позволяет мне изменять заголовок хоста, я не могу создать свой собственный внутренний кэш DNS. Поэтому я должен зависеть от DNS-кэша Windows, который не поддается изменению.
Есть довольно хорошая статья TechNet о настройках реестра DNS-кеша в Windows Server 2003, но я не смог доказать, что их настройка что-то делает. Все остальные страницы, которые я нашел в поиске Google, либо ссылаются на эту страницу, либо перефразируют ее, иногда неправильно.
Команда Windows ipconfig имеет параметр / displaydns, который выводит содержимое кэша. Насколько мне известно, это единственный способ определить размер кеша DNS. В моих экспериментах на 32-битном Windows XP с 2 ГБ памяти, независимо от того, на что я установил значения реестра DNS-кэша, я всегда получаю от 30 до 40 элементов в кэше - даже после тысяч разрешений DNS , На моем 64-разрядном компьютере с Windows 2008 с 16 ГБ памяти в кэш всегда помещается от 270 до 300 элементов.
Я в тупике. Я не знаю, каков ответ, но я полагаю, что один из следующих случаев:
- Невозможно изменить размер кэша распознавателя DNS.
- Возможно, но документация неверна.
- Документация верна, но она неполна.
- Документация правильная и полная, но я слишком тупой, чтобы понять ее.
- Документированные записи реестра фактически изменили размер кэша, но ipconfig не показывает мне все записи, которые находятся в кэше.
Кто-нибудь может мне сказать, можно ли настроить размер кэша распознавателя DNS в Windows XP, Vista или Server 2008?