Home

Awesome

dnsmeter

Build Status Total alerts Bugs Security Rating

dnsmeter is a tool for testing performance of a nameserver and the infrastructure around it. It generates DNS queries and sends them via UDP to a target nameserver and counts the answers.

Features:

Dependencies

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

dnsmeter has a non-optional dependency on the PCRE library, libresolv and PCAP library.

dnsmeter also includes pplib, collection of C++ functions and classes, and it has non-optional dependency on OpenSSL, bzip2, IDN2 (or IDN1) library and zlib.

To install the dependencies under Debian/Ubuntu:

apt-get install -y libssl-dev libbz2-dev libidn2-dev zlib1g-dev libpcap-dev libpcre3-dev gettext

NOTE: If your system does not have libidn2-dev, please use libidn11-dev instead.

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

yum install -y openssl-devel bzip2-devel libidn2-devel zlib-devel libpcap-devel pcre-devel gettext-devel

NOTE: If your using openSUSE/SLE then bzip2's package is libbz2-devel.

To install the dependencies under FreeBSD 10+ using pkg:

pkg install -y openssl libidn2 libpcap pcre gettext

Building from source tarball

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

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

NOTE: If building fails on FreeBSD, 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 dnsmeter 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 and libtool to be installed.

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

Usage

Once installed please see man dnsmeter for usage.

Example

Lets assume the following scenario:

This makes the following command:

dnsmeter -p /home/testdata/payload.txt \
  -r 30000,40000,45000,50000,100000,150000 \
  -s 10.0.0.0/8 \
  -z 192.168.0.1:53 \
  -e igb0 \
  -d 70 \
  -c results.csv

In the second example, we want to use a PCAP file as payload and want to spoof with the addresses from that file:

dnsmeter -p /home/testdata/pcap.file1 \
  -r 30000,40000,45000,50000,100000,150000 \
  -s pcap \
  -z 192.168.0.1:53 \
  -e igb0 \
  -c results_pcap.csv

Author(s)

Contributor(s)

Copyright

Copyright (c) 2019-2021, OARC, Inc.

Copyright (c) 2019, DENIC eG

All rights reserved.

This file is part of dnsmeter.

dnsmeter is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

dnsmeter is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with dnsmeter.  If not, see <http://www.gnu.org/licenses/>.