DnsForwarder

A dns server, cacher, and forwarder.
- Resolve with multiple upstreams
- Caching the record from upstreams
- Support local hosts files
- White list support
Getting started
Installation
Build from source
Make sure you have a correctly configured Go installtion first, then:
$ make bootstrap
$ go build
Install with package
Download packages from github releases page.
Configuration
forcetcp: If set it to true, server will use TCP connection with upstreams even the request from client is UDP request.
cache:
enable: Enable or disable in-memory cache
ttl: Default TTL for cache
loggers:
console:
enable: Enable or disable console logger
level: Log level for console logger
file:
enable: Enable or disable file logger
level: Log level for file logger
path: Log file path
timeout:
server:
read: Timeout for read from clients
write: Timeout for write to clients
forwarder:
read: Timeout for read from upstreams
write: Timeout for write to upstreams
host:
enable: Resolve with hosts files
resolvs: Hosts files list
upstreams: List of upstream dns servers
Running
Build from source
$ sudo dnsforwarder
Install from package
$ service dnsforwarder start # upstart
$ systemctl start dnsforwarder #systemd
Testing
$ dig domain.tld @your.server.ip
TODO
- Cache persistence
Packaging
- Hot-reload