for the Dutch among us: Nederlandse site https://homelab.patad.nl/dns/advanced-technitium/ # Technitium DNS: My Advanced Setup & High Availability What I changed: - Point 5 ( Critical Edge Cases & Troubleshooting ) and the DoH script In this document(.md file), I will describe the advanced architecture of my Technitium DNS cluster. I am documenting how I configured the Access Control Lists (ACL) for my VLANs, how my active clustering works, how I achieve High Availability via `keepalived`, and how I integrate everything with my Nginx Proxy Manager (NPM). --- ## 1. Network Access Control List (ACL) & Recursion By default, Technitium refuses DNS resolution (recursion) for IP addresses outside its own local subnet. To ensure that all my local VLANs and WireGuard clients can resolve domain names, I explicitly added these subnets to the ACL. ### My Configuration (Example Networks): In my Technitium dashboard, I navigated to **Settings** > **Recursion**, located the **Network Access Control List (ACL)**, and added my networks. *Below is the overview of the subnets I use for my VLAN structure:* * `192.168.11.0/24` (My Management / Main Network) * `192.168.21.0/24` (My IoT / VLAN 21) * `192.168.31.0/24` (My Gadgets / VLAN 31) * `192.168.41.0/24` (My Guests / VLAN 41) * `10.6.0.0/24` (My WireGuard VPN Subnet) > **Important for my setup:** If I forget to configure this, clients on my VPN subnet or other VLANs will notice they have an active network connection, but they won't be able to load any websites or local domains because the DNS queries will simply be dropped. --- ## 2. Technitium Clustering & Node Distribution To guarantee absolute redundancy against the failure of an entire hypervisor, I physically separated my two Technitium DNS servers across my Proxmox environments: * **DNS 1 (Primary Node - `192.168.11.50`):** Runs as an LXC container within my main cluster (**PVE1** / **PVE2**).