A simple, go-based DNS resolver/caching server
Go to file
kenshin 84d878c03d cache add expire strategy 2013-07-25 00:09:07 +08:00
README.MD cache add expire strategy 2013-07-25 00:09:07 +08:00
cache.go cache add expire strategy 2013-07-25 00:09:07 +08:00
godns.conf add redid cache backend in todo list 2013-07-24 22:40:18 +08:00
handler.go cache add expire strategy 2013-07-25 00:09:07 +08:00
main.go first commit 2013-07-23 19:10:38 +08:00
resolver.go exception handle 2013-07-24 10:52:59 +08:00
server.go first commit 2013-07-23 19:10:38 +08:00
settings.go cache add expire strategy 2013-07-25 00:09:07 +08:00

README.MD

GODNS

A tiny dns cache server written by go.

Similar as dnsmasq ,but support some difference features:

  • Keep hosts configuration in redis instead of local file /etc/hosts
    So can be updated from remote server

  • Atuo-Reload when hosts configuration changed. (Yes,dnsmasq need restart)

  • Cache records save in memory or redis configurable

Install

Running

Configuration

All the configuration on godns.conf a TOML formating config file.
More about Toml :https://github.com/mojombo/toml

resolv.conf

Upstream server can be configuration by change file from somewhere other that "/etc/resolv.conf"

[resolv]
resolv-file = "/etc/resolv.conf"

If multi namerserver set at resolv.conf, the upsteam server will try in order of up to botton

hosts

cache

Only the local memory storage backend implemented now. The redis backend is in todo list

[cache]
backend = "memory"   
expire = 600  # default expire time 10 minutes
maxcount = 100000

TODO

  • The redis cache backend
  • Update ttl