1# DNS Statistics Collector 2 3[![Build Status](https://travis-ci.com/DNS-OARC/dsc.svg?branch=develop)](https://travis-ci.com/DNS-OARC/dsc) [![Total alerts](https://img.shields.io/lgtm/alerts/g/DNS-OARC/dsc.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/DNS-OARC/dsc/alerts/) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=dns-oarc%3Adsc&metric=bugs)](https://sonarcloud.io/dashboard?id=dns-oarc%3Adsc) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=dns-oarc%3Adsc&metric=security_rating)](https://sonarcloud.io/dashboard?id=dns-oarc%3Adsc) 4 5DNS Statistics Collector (DSC) is a tool used for collecting and exploring 6statistics from busy DNS servers. It uses a distributed architecture with 7collectors running on or near nameservers sending their data to one or more 8central presenters for display and archiving. Collectors use pcap to sniff 9network traffic. They transmit aggregated data to the presenter as XML data. 10 11DNS Statistics Presenter can be found here: 12- https://github.com/DNS-OARC/dsp 13 14More information about DSC/DSP may be found here: 15- https://www.dns-oarc.net/tools/dsc 16- https://www.dns-oarc.net/oarc/data/dsc 17 18Issues should be reported here: 19- https://github.com/DNS-OARC/dsc/issues 20 21Mailinglist: 22- https://lists.dns-oarc.net/mailman/listinfo/dsc 23 24## Dependencies 25 26`dsc` requires a couple of libraries beside a normal C compiling 27environment with autoconf, automake, libtool and pkgconfig. 28 29`dsc` has a non-optional dependency on the PCAP library and optional 30dependency on the GeoIP library (for the `asn` and `country` indexer). 31 32To install the dependencies under Debian/Ubuntu: 33``` 34apt-get install -y libpcap-dev libproc-pid-file-perl 35``` 36 37To install the dependencies under CentOS (with EPEL enabled): 38``` 39yum install -y libpcap-devel perl-Proc-PID-File 40``` 41 42To install the dependencies under FreeBSD 10+ using `pkg`: 43``` 44pkg install -y libpcap p5-Proc-PID-File 45``` 46 47To install the dependencies under OpenBSD 5+ using `pkg_add`: 48``` 49pkg_add p5-Proc-PID-File 50``` 51 52NOTE: It is recommended to install the PCAP library from source/ports on 53OpenBSD since the bundled version is an older and modified version. 54 55### DNSTAP support 56 57To enable DNSTAP support, first install the necessary dependencies and 58then run `configure` with `--enable-dnstap`. 59 60- Debian/Ubuntu: `apt-get install -y libdnswire-dev libuv1-dev` 61- CentOS: `yum install -y dnswire-devel libuv-devel` 62- FreeBSD: `pkg install -y libuv` 63- OpenBSD: `pkg_add libuv` 64 65`dnswire` packages for Debian, Ubuntu and CentOS exists at 66[https://dev.dns-oarc.net/packages/](https://dev.dns-oarc.net/packages/), 67for other distributions please see 68[https://github.com/DNS-OARC/dnswire](https://github.com/DNS-OARC/dnswire). 69 70## Building from source tarball 71 72The [source tarball from DNS-OARC](https://www.dns-oarc.net/dsc/download) 73comes prepared with `configure`: 74 75``` 76tar zxvf dsc-version.tar.gz 77cd dsc-version 78./configure [options] 79make 80make install 81``` 82 83NOTE: If building fails on FreeBSD/OpenBSD, try adding these configure 84options: `--with-extra-cflags="-I /usr/local/include" --with-extra-ldflags="-L/usr/local/lib"`. 85 86## Building from Git repository 87 88If you are building `dsc` from it's Git repository you will first need 89to initiate the Git submodules that exists and later create autoconf/automake 90files, this will require a build environment with autoconf, automake, libtool 91and pkgconfig to be installed. 92 93``` 94git clone https://github.com/DNS-OARC/dsc.git 95cd dsc 96git submodule update --init 97./autogen.sh 98./configure [options] 99make 100make install 101``` 102 103NOTE: If building fails on FreeBSD/OpenBSD, try adding these configure 104options: `--with-extra-cflags="-I /usr/local/include" --with-extra-ldflags="-L/usr/local/lib"`. 105 106## Puppet 107 108John Bond at ICANN DNS Engineering team has developed a puppet module for DSC, 109the module and code can be found here: 110- https://forge.puppet.com/icann/dsc 111- https://github.com/icann-dns/puppet-dsc 112