Где находится кэш DNS? (Server 2003)
В настоящее время я настраиваю свою сеть для выполнения всех DNS через наш сервер 2003, и теперь, когда есть кэш, я хотел бы получить некоторые отчеты об этом. Я разработчик.NET, и моя идея состоит в том, чтобы проанализировать файл и выгрузить его в SQL Server.
Проблема в том, что я не знаю, где сервер хранит кэш. Кто-нибудь может привести меня в правильном направлении?
3 ответа
Я верю, что все это в памяти.
Я знаю, что вы можете использовать dnscmd для сброса кэша с помощью команды, подобной этой:
dnscmd serverip /zoneprint .
Вы можете просмотреть содержимое с помощью DNS MMC. Убедитесь, что в меню "Вид" выбрана опция "Дополнительно". Затем вы можете нажать на сервер, и под ним будет папка с именем "Cached Lookups".
Это приведет к снижению производительности, но на самом деле вы можете включить ведение журнала отладки, а затем запускать отчеты для файла журнала, вместо того, чтобы пытаться взглянуть только на кеш.
Чтобы настроить ведение журнала отладки, откройте диспетчер DNS, щелкните правой кнопкой мыши на сервере. Есть вкладка "Журнал отладки". Установите путь к файлу журнала и установите флажки для записи того, что вы хотите увидеть.
Если вам нужно просматривать только http-запросы, вам придется использовать какой-либо прокси или другой сетевой инструмент.
Вы можете настроить сервер как маршрутизатор шлюза и использовать такой инструмент, как Wireshark, для анализа трафика.
Другой вариант - использовать функцию некоторых управляемых сетевых коммутаторов, которая называется зеркалированием портов. Вы можете отразить трафик порта вашего существующего шлюза-маршрутизатора на порт другой машины и использовать Wireshark для захвата данных.
Я полагаю, что кэш существует только в памяти, так как записи в кэше являются временными и истекает в зависимости от TTL записей. Кто-нибудь знает что-то другое?