Simple DNS server written in go.
Go to file
2021-01-06 15:53:58 +01:00
.drone.yml drone tag gitea release 2020-12-30 17:15:02 +01:00
blacklist.go added comments 2021-01-06 15:53:58 +01:00
config.yml added DNS over TLS 2020-12-30 21:59:33 +01:00
coolDns.go added comments 2021-01-06 15:53:58 +01:00
go.mod initial commit 2020-12-21 22:43:07 +01:00
go.sum initial commit 2020-12-21 22:43:07 +01:00
README.md updated README 2020-12-30 22:18:08 +01:00
zonefile.txt implemented wildcards 2020-12-22 22:13:32 +01:00

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