Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
build-aux
builder-support
contrib
docs
ext
html
m4
src_js
.gitignore
COPYING
DNSDIST-MIB.txt
Makefile.am
README
README.md
ascii.hh
base32.hh
base64.hh
bpf-filter.cc
bpf-filter.ebpf.src
bpf-filter.hh
bpf-filter.main.ebpf
bpf-filter.qname.ebpf
cachecleaner.hh
configure.ac
delaypipe.cc
delaypipe.hh
devpollmplexer.cc
dns.cc
dns.hh
dnscrypt.cc
dnscrypt.hh
dnsdist-cache.cc
dnsdist-cache.hh
dnsdist-carbon.cc
dnsdist-console.cc
dnsdist-console.hh
dnsdist-dnscrypt.cc
dnsdist-dynblocks.hh
dnsdist-dynbpf.cc
dnsdist-dynbpf.hh
dnsdist-ecs.cc
dnsdist-ecs.hh
dnsdist-lua-actions.cc
dnsdist-lua-bindings-dnsquestion.cc
dnsdist-lua-bindings.cc
dnsdist-lua-inspection.cc
dnsdist-lua-rules.cc
dnsdist-lua-vars.cc
dnsdist-lua.cc
dnsdist-lua.hh
dnsdist-protobuf.cc
dnsdist-protobuf.hh
dnsdist-rings.cc
dnsdist-rings.hh
dnsdist-rules.hh
dnsdist-secpoll.cc
dnsdist-secpoll.hh
dnsdist-snmp.cc
dnsdist-snmp.hh
dnsdist-tcp.cc
dnsdist-web.cc
dnsdist-xpf.cc
dnsdist-xpf.hh
dnsdist.cc
dnsdist.hh
dnsdist.service.in
dnsdistconf.lua
dnslabeltext.rl
dnsmessage.proto
dnsname.cc
dnsname.hh
dnsparser.cc
dnsparser.hh
dnstap.cc
dnstap.hh
dnstap.proto
dnswriter.cc
dnswriter.hh
dolog.hh
ednscookies.cc
ednscookies.hh
ednsoptions.cc
ednsoptions.hh
ednssubnet.cc
ednssubnet.hh
epollmplexer.cc
fstrm_logger.cc
fstrm_logger.hh
gettime.cc
gettime.hh
incfiles
iputils.cc
iputils.hh
kqueuemplexer.cc
lock.hh
lua_hpp.mk
misc.cc
misc.hh
mplexer.hh
namespaces.hh
pdnsexception.hh
pollmplexer.cc
portsmplexer.cc
protobuf.cc
protobuf.hh
qtype.cc
qtype.hh
remote_logger.cc
remote_logger.hh
sholder.hh
snmp-agent.cc
snmp-agent.hh
sodcrypto.cc
sodcrypto.hh
sstuff.hh
statnode.cc
statnode.hh
tcpiohandler.cc
tcpiohandler.hh
test-base64_cc.cc
test-delaypipe_hh.cc
test-dnscrypt_cc.cc
test-dnsdist_cc.cc
test-dnsdistdynblocks_hh.cc
test-dnsdistpacketcache_cc.cc
test-dnsdistrings_cc.cc
test-dnsdistrules_cc.cc
test-dnsparser_cc.cc
test-iputils_hh.cc
testrunner.cc
threadname.cc
threadname.hh
xpf.cc
xpf.hh

README.md

dnsdist

dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life is to route traffic to the best server, delivering top performance to legitimate users while shunting or blocking abusive traffic.

dnsdist is dynamic, in the sense that its configuration can be changed at runtime, and that its statistics can be queried from a console-like interface.

All dnsdist features are documented at dnsdist.org.

Compiling from git

Make sure to autoreconf -vi before running configure.

macOS Notes

Install dependencies from Homebrew:

brew install autoconf automake boost libedit libsodium libtool lua pkg-config protobuf

Let configure know where to find libedit:

./configure 'PKG_CONFIG_PATH=/usr/local/opt/libedit/lib/pkgconfig'
make