- Auto plugin loads zones-prepared/*.zone (regex zone-name extraction) - scripts/prepare-zones.sh transforms raw Vultr exports: * synthesizes SOA (omitted by Vultr; CoreDNS requires it) * prepends @ to leading-TAB apex lines to disambiguate owner inheritance * dot-terminates NS/MX/CNAME rdata so $ORIGIN doesn't double-suffix - DNS_PORT defaults to 1053 (5353=avahi, 53=libvirt dnsmasq on this host) - Forwards non-authoritative queries to 1.1.1.1/1.0.0.1/9.9.9.9 - Makefile targets: prep, up, down, reload, test, logs - 91 zones loaded
26 lines
605 B
Plaintext
26 lines
605 B
Plaintext
. {
|
|
# Authoritative: load every <zone>.zone in /zones via the auto plugin.
|
|
# Filename pattern (.*)\.zone yields the zone name from the first group.
|
|
# CoreDNS reloads modified files every 30s.
|
|
auto {
|
|
directory /zones (.*)\.zone {1}
|
|
reload 30s
|
|
}
|
|
|
|
# Anything not authoritative falls through to upstream resolvers.
|
|
forward . 1.1.1.1 1.0.0.1 9.9.9.9 {
|
|
max_concurrent 1000
|
|
}
|
|
|
|
# In-memory cache (TTL clamp 30s for both pos/neg).
|
|
cache 30
|
|
|
|
# Operational plugins
|
|
health :8080
|
|
prometheus :9153
|
|
errors
|
|
log
|
|
loop
|
|
reload 10s
|
|
}
|