My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Overview

gdnsd is an Authoritative-only DNS server. The initial g stands for Geographic, as gdnsd offers a plugin system for geographic (or other sorts of) balancing, redirection, and service-state-conscious failover. If you don't care about that feature, it's still quite good at being a very fast, lean, and resilient authoritative-only server for static DNS data.

gdnsd is written in C using libev and pthreads with a focus on high performance, low latency service. It does not offer any form of caching or recursive service, and does not support DNSSEC.

Latest Release Info

The most recent stable release is 1.6.3, released on Feb 17, 2012 - ChangeLog

Documentation

Documentation is available here on the googlecode wiki. The manpages included on the wiki here are auto-generated. You can see the same stuff via the standard "man" command after installing the distribution.

Support

Please use the Google Group for discussion, questions, help, etc: gdnsd Google Group | gdnsd@googlegroups.com. It's really a lot better than emailing me directly, because we get a public archive of knowledge from the effort :)

Please report any bugs/requests through the Issue Tracker

Simplicity

If all you need to do is serve an authoritative domain or two, all you need is your standard BIND/RFC1035-style zonefiles and a simple, short gdnsd configuration file that looks like this:

    zones = { example.com = {}, example.org = {} }

Name the zonefiles the same as their respective zone names, place them in the same directory as the above configuration file, and invoke "gdnsd -c /path/to/config.file start".

If you need to do trickier things, a world of non-default options are available: check out the Documentation.

Plugins

A core feature (and the reason for starting this project, although it's more of a niche thing) is that gdnsd has an API for dso-based plugins for pluggable address resolution (conceptually similar to Apache modules) for A, AAAA, and CNAME records.

The core daemon also includes basic HTTP and raw TCP monitoring services with anti-flap that plugins can use to make failover decisions. Sufficient hooks exist to implement your own custom monitoring solution as well. The state of services monitored by this code is also reflected in gdnsd's own HTTP output.

Included with the gdnsd core are 3 trivial/testing plugins called null, static, reflect. Reflect is useful for real-world debugging (it sends the cache's IP or the edns-client-subnet IP back to the requester as answer data).

Other useful plugins included are simplefo, multifo, and weighted, which do various forms of address failover and weighting.

Finally, there are also two included meta-plugins named metafo and geoip, which do higher-level failover (and geographic mapping) of resources defined in terms of other plugins.

Interop Testing

My test servers/domains are at: http://gdnsd.net . These tend to run the latest release (stable or dev) of gdnsd at any given time. If you have any questions about conformance, interoperability, etc, feel free to query these servers and see how they react.


Powered by Google Project Hosting