geodns - geo dns server

GeoDNS is a DNS server that can distribute load for a hostname to the nearest mirrors (as defined by geography; on the country / continent level).

The Perl based version has been used in production for "mission critical" applications since 2001, the Go (Golang) based version since August 2012.

It is used for and for It is also used to provide nearby-ish servers 15 billion times a month for the NTP Pool project.

It is reasonably feature rich, though the features are optimized for the 'GeoDNS' use case and not so much for a general DNS server.

By now (April 2013) the Go version is highly recommended. If you need less than 200 DNS lookups per second per DNS server the Perl version is fine and might be a little easier to setup, but the Go version is better tested and actively maintained and developed and is quickly getting way ahead in features. The Go version is also much faster (in prodution we've seen it do 20,000+ requests a second on commodity hardware and even virtual servers).

Get it - Golang version

After installing and setting up Go you can use go get to download geodns and the dependencies. This git repository is also at github. If you want precompiled binaries, please send me an email. They are available for 32- and (highly recommended) 64-bit Linux and 64-bit FreeBSD.

Get it - Perl version

The latest release can be downloaded from the downloads page. The git repository is at at github.

Mailing list and bug tracker

We have an issue tracker and a mailing list. We also have an ohloh page. :-)

Feedback and copyright

Email with questions, comments and patches.

pgeodns is copyright 2001-2013 Ask Bjørn Hansen, Develooper LLC and licensed under the Apache License 2.0.

Comments to Ask Bjørn Hansen at