Hey there, im looking into setting up a DNS Server in my Homelab, i would like something like this:
- Server in Docker on my Proxmox Server
- Server in Docker on my NAS and
- Server in my “Cloud” Network
Do you guys have any recommendations on how i could accomplish this? Otherwise i will just use PiHole with sync again or something like it :)
I have a total of 4 (for now) DNS servers, 2 within the lab (AlmaLinux on Proxmox), 1 running on OpnSense and 1 on a VPS (AlmaLinux). All are running Unbound + dnscrypt-proxy for external resolution, the AlmaLinux ones also have unbound-exporter for telemetry.
The pair in the lab also run Keepalived with 2 VIPs for active/active setup (VIP 1 active/backup for DNS1/2, VIP2 active/backup for DNS2/1). All servers target the VIP addresses for resolution with
options timeout:1 attempts:3 rotate
in the/etc/resolve.conf
file.For internal DNS records I run FreeIPA (as well for server/ldap auth) with zone transfers to all Unbound instances, this way there’s no dependency on FreeIPA and the lab to be online for DNS resolution of internal records and it prevents the need for forwarding those queries to FreeIPA.
All instances also have a scheduled service to download and apply a blocklist from https://github.com/StevenBlack/hosts
I would like to look into Unbound views for the OpnSense instance to be able to resolve different records if the source it IOT/Untrusted zone vs LAN/Trusted zone, for now I have BIND tied to specific IPs used by IOT/Untrusted exclusively without access to resolve the lab zones.