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

Отслеживание DNS-запросов в PowerDNS

Я собираюсь настроить сервер PowerDNS для обработки нескольких сотен зон. Я хотел бы отслеживать «использование» каждой зоны и записи, то есть количество запросов в день к каждой.

Я не смог найти никаких подробностей в документации или в Google о том, как мне этого добиться. Я не знаком с PowerDNS, но думаете, что нужен настраиваемый PipeBackend? Заменяют ли PipeBackends стандартный сервер MySQL в дополнение к неразрешенным запросам или только для них?

PowerDNS в настоящее время не может этого сделать. Есть внешние инструменты, например dsc который может делать статистику через pcap.

Если бы вы написали для этого собственный (конвейерный) бэкэнд, он бы заменил ваш mysql-backend - вы не можете указать powerdns передавать результаты из одного бэкэнда через другой. «pipebackend», возможно, немного сбивает с толку в этом смысле.

Обратите внимание, что любая статистика, которую вы выполняете из бэкэнда (будь то пользовательский бэкэнд или будь то ваш журнал запросов mysql), будет искажена (необязательно, но рекомендуется) кешем пакетов и запросов внутри PowerDNS.

Итак, прямо сейчас я бы рекомендовал использовать что-то вроде dsc.

Что касается вопроса о бэкэнде трубы:

Все бэкенды исчерпываются для запросов в том порядке, в котором они указаны в заявлении о запуске. Как только серверная часть отвечает данными, соответствующими запросу, все оставшиеся серверные части больше не будут запрашиваться. Поэтому, если вы поставите бэкэнд конвейера, который предназначен только для генерации статистики и не отвечает ни на что заранее, вы перехватите все запросы к вашему серверу имен, кроме тех, которые PowerDNS смог ответить из своих кешей пакетов и запросов.

Возможно, лучший вариант - добавить перехватчик LUA перед параметрами кеширования PowerDNS (кеширование пакетов и запросов). Таким образом вы можете создать сценарий LUA для ведения журнала и позволить бэкэнду ответить на запрос. Таким образом, вы можете использовать кеш (для большей производительности) и использовать проверенный сервер (gmysql) для ответа. Вы даже можете включить код, чтобы прекратить ведение журнала, если это сильно замедлит вашу систему.

Если я прав, то сразу после кеша уже доступен перехватчик LUA. Для того, что вы ищете, а также для ограничения скорости (когда это необходимо).