Skip to content

ro0p/coredyndns

Repository files navigation

coredyndns

Go Docker Image CI

Dynamic DNS plugin for CoreDNS

Description

The coredyndns plugin is a simplified DynDNSv2 API server. It accepts HTTP update requests and answers DNS queries for registered hostnames. It only supports A and AAAA records.

DynDNS update

Clients can update their IP address by calling an URL in the following form:

http(s)://[username:password@]<server name>:<port>/update?hostname=<hostname>[&myip=<ip address>]

If myip parameter is not set the remote address of caller will be used in DNS

Syntax

coredyndns [zones...] {
	[listen :9080 [tls [insecure]]]
	[cert file <filename>]
	[key file <filename>]
	[username <username>]
	[password <password>]
}
  • zones allowed zones for dynamic update. If not set all zones served by CoreDNS are allowed.
  • listen HTTP server parameters. The default listening port is 9080 without TLS. tls use TLS (HTTPS) protocol. cert and key must be set too insecure accepts any certificate
  • cert, key TLS certificate and private key in PEM format
  • username, password HTTP BasicAuth, both must be set to use authentication

Examples

Using default configuration, and accepts all zones

. {
    coredyndns
}

Using default configuration, but only example.com zone is allowed

. {
    coredyndns example.com
}

Listens on custom port with insecure TLS and authentication is not required

. {
    coredyndns example.com {
        listen :99 tls insecure
        cert file ./cert.pem
        key file ./key.pem
    }
}