rbldnsd: Small Daemon for DNSBLs

Quick links

Introduction

rbldnsd is a small and fast DNS daemon which is especially made to serve DNSBL zones. This daemon was inspired by Dan J. Bernstein's rbldns program found in the djbdns package.

rbldnsd is extremely fast - it outperforms both bind and djbdns greatly. It has very small memory footprint.

The daemon can serve both IP-based (ordb.org, dsbl.org etc) and name-based (rfc-ignorant.org) blocklists. Unlike DJB's rbldns, it has ability to specify individual values for every entry, can serve as many zones on a single IP address as you wish, and, finally, it is a real nameserver: it can reply to DNS metadata requests. The daemon keeps all zones in memory for faster operations, but its memory usage is very efficient, especially for repeated TXT values which are stored only once.

Zone File Format

Input format is very simple and far more suitable for such a task compared to one of full-featured bind. Rbldnsd may take input format of DJB's rbldns (i.e. file understood by rbldns-data program) as is, but it isn't limited to this format. Some examples of input format understood by rbldnsd: There are other zone formats available, including generic simplified bind-style format.

Usage

rbldnsd should be started as root user, in order to be able to bind to privileged port 53. After binding to the specified port and (optionally) changing its root to a specified directory, daemon will change its userid to specified value. Here is how rbldnsd can be used: There is no config file, rbldnsd accepts all configuration in command line. The same zonename may be repeated, to form zone contents from several datasets; ditto for a dataset, one dataset may be used for several zones (data will be loaded only once). See manual page included in tarball for details.

Download

The software is released under GPL license version 2 or any later version.

Last version, 0.997a, released 23 Jul 2013, can be found here. (gpg signature). Recent news are here, changelog is here. Look here for installable packages.

Note: Version 0.991 introduced some incompatibility in code handling $NS line: rbldnsd will produce a warning when loading old-format data files (but will work regardless). Please see this announce for more details.

Source code repository

Rbldnsd is maintained in git repository which can be found at git://git.corpit.ru/rbldnsd.git or, using a browser, here.


Enjoy.
 -- Michael Tokarev, mjt {at} tls {dot} msk {dot} ru.

Page last modified (except of bumping version number) Sun, 06 Jun 2004 19:11:45 +0400 by mjt.

Return to my software page.