Simple DNS server written in go.
cmd | ||
internal | ||
.drone.yml | ||
config.yml | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
README.md |
Cool dns
A simple dns server written in Go. It supports zonefile parsing, different zones based on IP and forwarding.
Configuration
Example config file
zones:
- zone: example.com. # Fully qualified domain name of the zone
file: zonefile.txt # Path to the zonefile to parse
- zone: example.com.
file: zonefile2.txt
acl: # What IPs can query the zone
- lan
acl: # List of ip filter rules
- name: vpn # Name of the rule
cidr: 10.0.0.0/24 # CIDR of the rule
- name: lan
cidr: 192.168.0.0/16
- name: local
cidr: 127.0.0.1/32
tls:
enable: true # Enable DNS over TLS
address: 0.0.0.0:8853 # What address and port to liste for tls connections
cert: cert.crt # Path to the certificate file
key: private.key # Path to the private key file
forward:
acl: # What IPs are allowed
- vpn
server: "8.8.8.8:53" # DNS server to forward to
address: 0.0.0.0:8053 # What address and port to listen on
blacklist: # What domains to block when forwarding
# URL of the blacklist
- url: https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
format: host # Format of the blacklist: Hostfile
- url: https://blocklistproject.github.io/Lists/alt-version/ads-nl.txt
format: line # Format: One domain per line