• Stars
    star
    105
  • Rank 321,864 (Top 7 %)
  • Language
    C
  • License
    Other
  • Created over 8 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DNS Statistics Collector

DNS Statistics Collector

Total alerts Bugs Security Rating

DNS Statistics Collector (DSC) is a tool used for collecting and exploring statistics from busy DNS servers. It can be set up to run on or near nameservers to generate aggregated data that can then be transported to central systems for processing, displaying and archiving.

Together with dsc-datatool the aggregated data can be furthur enriched and converted for import into for example InfluxDB which can then be accessed by Grafana for visualzation, see this wiki on how to set up that:

DSC data transforming and enriching tool can be found here:

More information about DSC may be found here:

Issues should be reported here:

General support and discussion:

Dependencies

dsc requires a couple of libraries beside a normal C compiling environment with autoconf, automake, libtool and pkgconfig.

dsc has a non-optional dependency on the PCAP library and optional dependency on the MaxMindDB library (for the asn and country indexer).

To install the dependencies under Debian/Ubuntu:

apt-get install -y libpcap-dev

To install the dependencies under CentOS (with EPEL/PowerTools enabled):

yum install -y libpcap-devel

To install the dependencies under FreeBSD 10+ using pkg:

pkg install -y libpcap

NOTE: It is recommended to install the PCAP library from source/ports on OpenBSD since the bundled version is an older and modified version.

DNSTAP support

To enable DNSTAP support, first install the necessary dependencies and then run configure with --enable-dnstap.

  • Debian/Ubuntu: apt-get install -y libdnswire-dev libuv1-dev
  • CentOS: yum install -y dnswire-devel libuv-devel
  • FreeBSD: pkg install -y libuv
  • OpenBSD: pkg_add libuv

dnswire packages for Debian, Ubuntu and CentOS exists at https://dev.dns-oarc.net/packages/, for other distributions please see https://github.com/DNS-OARC/dnswire.

Building from source tarball

The source tarball from DNS-OARC comes prepared with configure:

tar zxvf dsc-version.tar.gz
cd dsc-version
./configure [options]
make
make install

NOTE: If building fails on FreeBSD/OpenBSD, try adding these configure options: --with-extra-cflags="-I /usr/local/include" --with-extra-ldflags="-L/usr/local/lib".

Building from Git repository

If you are building dsc from it's Git repository you will first need to initiate the Git submodules that exists and later create autoconf/automake files, this will require a build environment with autoconf, automake, libtool and pkgconfig to be installed.

git clone https://github.com/DNS-OARC/dsc.git
cd dsc
git submodule update --init
./autogen.sh
./configure [options]
make
make install

NOTE: If building fails on FreeBSD/OpenBSD, try adding these configure options: --with-extra-cflags="-I /usr/local/include" --with-extra-ldflags="-L/usr/local/lib".

Puppet

John Bond at ICANN DNS Engineering team has developed a puppet module for DSC, the module and code can be found here:

More Repositories

1

PacketQ

A tool that provides a basic SQL-frontend to PCAP-files
JavaScript
389
star
2

dnsperf

DNS Performance Testing Tools
C
383
star
3

flamethrower

a DNS performance and functional testing utility supporting UDP, TCP, DoT and DoH
C++
314
star
4

dnscap

Network capture utility designed specifically for DNS traffic
C
272
star
5

drool

DNS Replay Tool
Lua
82
star
6

dnsjit

Engine for capturing, parsing and replaying DNS
C
55
star
7

dnsmeter

Tool for testing performance of nameservers
C++
54
star
8

services

Project and issue tracking for DNS-OARC services
35
star
9

sample-query-data

Sample query data files for use with dnsperf and resperf
21
star
10

dumdumd

High performance UDP/TCP/DoT/DoH DNS "server" that... just drops/reflects everything you send to it
C
17
star
11

cmdns-cli

Check My DNS command line client
Go
17
star
12

dsc-datatool

Tool for converting, exporting, merging and transforming DSC data
Python
16
star
13

bad-packets

Collection of "bad" packets in PCAPs that can be used for testing software
Python
16
star
14

omg-dns

Helper library for parsing valid/invalid/broken/malformed DNS packets
C
15
star
15

dsp

DNS Statistics Presenter
Perl
15
star
16

ripeatlas

Go bindings for RIPE Atlas API
Go
12
star
17

tldmon

Nagios Plugin Scripts for TLDmon
Perl
8
star
18

dnswire

library for DNS encapsulations
C
8
star
19

dns-benchmarking

DNS Benchmarking Tiger Team repository
Python
8
star
20

pcap-thread

PCAP helper library with POSIX threads support and transport layer callbacks
C
6
star
21

sllq

Semi Lock-Less Queue
C
5
star
22

golang-dns-server-doq

Go library for DNS-over-QUIC server (DoQ, RFC9250)
Go
5
star
23

ripe-hackathon-dns-caching

Everything you ever wanted to know about caching resolvers but were afraid to ask
JavaScript
4
star
24

parseconf

Conf parser helper library
C
4
star
25

p5-DSC

Perl library for DSP
Perl
3
star
26

dsc-datatool-grafana

Grafana Dashboards for use with DSC/dsc-datatool
Python
3
star
27

tinyframe

Minimalistic Frame Streams library
C
3
star
28

cryptopANT

IP Address Anonymization Library
C
3
star
29

p5-Net-GetDNS

Perl bindings for getdns, a modern asynchronous DNS API
XS
2
star
30

dns-metrics

DNS Metrics JSON Schema
1
star