<div dir="ltr">Interesting!, thanks a lot Bert.<div><br></div><div>Regards,</div><div>CI.-</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-05-14 9:10 GMT-04:00 bert hubert <span dir="ltr"><<a href="mailto:bert.hubert@powerdns.com" target="_blank">bert.hubert@powerdns.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, May 13, 2016 at 07:59:57PM -0400, Ciro Iriarte wrote:<br>
> Out of curiosity, how does this part of the platform work?:<br>
<br>
</span>Hi Ciro,<br>
<br>
In general, I don't want to spam the pdns-users people with information<br>
about the PowerDNS Platform, as outlined on<br>
<a href="https://www.powerdns.com/platform.html" rel="noreferrer" target="_blank">https://www.powerdns.com/platform.html</a> since it is not part of the open<br>
source stuff, so most of the community won't have any use for the<br>
information.<br>
<br>
(the story of our non-open source work is on<br>
<a href="https://blog.powerdns.com/2016/02/23/an-important-update-on-new-powerdns-products/" rel="noreferrer" target="_blank">https://blog.powerdns.com/2016/02/23/an-important-update-on-new-powerdns-products/</a><br>
)<br>
<br>
But let me explain how this hangs together and what is part of the open<br>
source version. The PowerDNS Recursor 4.0.0 and dnsdist 1.0.0 have the<br>
ability to emit a stream of protobufs over TCP/IP. In case of the Recursor,<br>
this also has the 'policy reason' why a request was intercepted by the RPZ<br>
module.<br>
<br>
To receive that stream, use something like xinetd to listen on a TCP/IP port<br>
and store the data to a file. It can then be processed by any tool that can<br>
understand Protobuf. The schema is here:<br>
<a href="https://github.com/PowerDNS/pdns/blob/master/pdns/dnsmessage.proto" rel="noreferrer" target="_blank">https://github.com/PowerDNS/pdns/blob/master/pdns/dnsmessage.proto</a><br>
<br>
In the very near future this will also be able to emit standard dnstap<br>
messages.<br>
<span class=""><br>
> Long term full query logging & rapid searching<br>
><br>
</span>>    - Dimensioned at a trillion queries/day (1000 billion) on commodity<br>
<span class="">>    hardware with long term retention<br>
</span>>    - For security research, lawful intercept/data retention requirements,<br>
>    customer intelligence, quality assurance/diagnostics<br>
<br>
This describes our protobuf receiver 'dstore' which through some clever<br>
programming techniques can store trillions of DNS messages and serve them up<br>
again reasonably quickly. It is not a generic database, but it is really<br>
fast and nearly maintenance free and has no further dependencies (so you<br>
don't need to be a "big data engineer" to benefit from it).<br>
<br>
This can be very useful to investigate customer complaints of DNS slowness,<br>
or that a domain was down etc. It is also extremely powerful for finding<br>
infected users. A commandline like:<br>
<br>
$ dgrep t=week pr=spamhaus-dbl | jq ".items[].origRequestor"  | sort | uniq -c \<br>
| sort -rn | head -10<br>
<br>
.. will find in a few seconds the top-10 IP addresses that over the past week<br>
had the most queries  blocked by the 'spamhaus-dbl' RPZ. The output of dgrep is JSON,<br>
easily queried and selected by jq.<br>
<br>
But again - I don't want to promote our commercial Platform offering here<br>
too much.  For the open source world, you should be able to bake up a<br>
solution based on elastic search, kibana etc that ingests our protobufs.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
        Bert<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Ciro Iriarte<br><a href="http://iriarte.it" target="_blank">http://iriarte.it</a><br>--</div>
</div>