Como rastrear consultas DNS no PowerDNS

2

Estou procurando configurar um servidor PowerDNS para lidar com algumas centenas de zonas. Gostaria de acompanhar o "uso" de cada zona e registro, ou seja, o número de consultas por dia para cada.

Não encontrei detalhes na documentação ou no Google sobre como eu poderia conseguir isso. Não estou familiarizado com o PowerDNS, mas é necessário ter um PipeBackend personalizado? Do PipeBackends substitui um backend padrão do MySQL, além de, ou apenas para consultas não resolvidas?

    
por Kevin 17.03.2012 / 10:39

3 respostas

4

O PowerDNS não pode fazer isso no momento. Existem ferramentas externas, como dsc , que podem fazer estatísticas via pcap.

Se você fosse escrever um backend customizado (pipe) para isto, ele teria que substituir o seu mysql-backend - você não pode dizer powerdns para alimentar os resultados de um backend através de outro. 'pipebackend' é talvez um pouco confuso nesse sentido.

Note que qualquer estatística que você faria de um backend (seja um backend customizado, ou seja, seu log de consultas mysql) seria distorcida pelo cache de pacotes e de consultas (opcional, mas recomendado) dentro do PowerDNS.

Então, agora eu recomendo usar algo como dsc .

    
por 17.03.2012 / 11:52
2

Quanto à questão de backend de pipe:

Todos os back-ends estão esgotados para consultas na ordem em que são fornecidos na declaração de lançamento. Assim que um back-end responder com dados correspondentes à consulta, todos os back-ends restantes não serão mais solicitados. Então, se você colocar um backend de pipe que é apenas para gerar estatísticas e não responder nada adiantado, você irá capturar todas as consultas em seu servidor de nomes, exceto que o PowerDNS foi capaz de responder a partir de seus caches de pacotes e consultas.

    
por 18.03.2012 / 15:57
1

Talvez a melhor opção seja adicionar um gancho de LUA antes das opções de cache do PowerDNS (cache de pacotes e de consultas). Dessa forma, você pode criar um script LUA para o log e permitir que um backend responda à consulta. Dessa forma, você pode usar o cache (para um ótimo desempenho) e usar um back-end testado (gmysql) para a resposta. Você pode até mesmo incluir algum código para parar o registro se ele desacelera muito o sistema.

Se eu estiver correto, já existe um gancho de LUA disponível logo após o cache. Para o que você está procurando e também para limitar a taxa (quando necessário).

    
por 07.01.2013 / 23:29

Tags