dns2tcp

command module
v0.0.0-...-eb0ef55 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2019 License: MIT Imports: 8 Imported by: 0

README

dns2tcp

Simple forwarding+caching DNS server that works with upstreams over TCP

GitHub GitHub top language GitHub code size in bytes

A tiny DNS server with the ability to forward your DNS requests to upper DNS servers using TCP proto:

  • works like a transport proxy UDP -> TCP (requests coming to DNS server via UDP converts to queries over TCP)
  • multi-threading (the main reason why golang used)
  • cache-in-memory
  • periodic garbage collector (removes outdated records by TTL)
  • configuration file support
flow diagram

                                         dns 1
                                       /
DNS                                   /
clients ---UDP---> dns2tcp server---TCP--------> dns 2
                                      \
                                       \
                                        ...
                                          \ dns N
usage
cd /etc
git clone https://github.com/denisix/dns2tcp

cd dns2tcp
go run dns2tcp.go
configuration
  • bind 127.0.0.1:53 - instructs server to listed on IP 127.0.0.1, port 53
  • ns 1.1.1.1:53 - send TCP DNS queries to upstream at 1.1.1.1 (CloudFlare in this case)
  • ttl-absent 3600 - how long cache absent records, their TTL in secs
  • timeout 100 - 100 msec timeout to wait for reply
  • retry 30 - retries before we gen the content
  • gc-interval 1800 - 30 min (1800 sec) interval for garbage collector runs
building binary
go build dns2tcp.go
./dns2tcp

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL