WireGuard VPN & Technitium DNS Setup
Dit document bevat de architectuur, configuratie en troubleshootingstappen van mijn WireGuard VPN-setup in combinatie met een high-availability DNS-cluster.
De Architectuur
- Edge Router: Asus RT-BE88U die fungeert als de WireGuard VPN-server.
- DNS Cluster: Twee Technitium DNS-servers die draaien in Proxmox LXC-containers.
- High Availability (HA):
keepalivedbeheert een Virtueel IP-adres (VIP) op192.168.11.53voor automatische DNS-failover. - Upstream Resolving: Pure recursieve root-server resolutie (geen upstream forwarders zoals Cloudflare of Google geconfigureerd).
- Ad-Blocking: Geconfigureerd om geblokkeerde domeinen te droppen via de NXDOMAIN-resolutiemethode.
- Reverse Proxy & Auth: Nginx Proxy Manager (NPM) herbergt lokale SSL-certificaten/domeinen, extra beveiligd met 2FA/OTP voor de dashboards.
Stap 1: De WireGuard Server configureren (Asus)
Bij het opzetten van de WireGuard-server op de Asus RT-BE88U heeft de interface een specifiek tunnel-subnet gekregen:
- Tunnel Subnet:
10.6.0.1/32 - Max Clients: 10 (hiermee worden tunnel-IP's van
10.6.0.2tot10.6.0.11toegewezen aan verbindende peers). - Peer DNS Injectie: Het
keepalivedVIP (192.168.11.53) wordt automatisch gepusht naar alle actieve VPN-clients.
Stap 2: Oplossen van het "Geen internet / Laadt niet" probleem
Toen de Android-client via 5G verbinding maakte, werd de tunnel succesvol opgebouwd, maar laadde er geen data meer. Dit bleek een klassieke Network Access Control List (ACL) blokkade te zijn.
Standaard staat Technitium alleen recursie-aanvragen toe die afkomstig zijn uit het subnet waar de server zelf in staat. Wanneer de telefoon het VIP probeerde te bevragen vanaf zijn WireGuard-IP (10.6.0.X), dropte Technitium deze pakketjes.
De Oplossing:
- Navigeer naar beide Technitium LXC-instanties -> Settings > Recursion.
- Zoek naar de Network Access Control List (ACL).
- Voeg het WireGuard-subnet
10.6.0.0/24toe aan de toegestane lijst. - Sla de instellingen op beide nodes op.
!!! info "Veiligheidsnotitie"
Je kunt eventueel ook de volledig open 0.0.0.0/0 vlag gebruiken in de ACL. Dit is in deze opzet volkomen veilig omdat poort 53 (DNS) niet naar het WAN (internet) is geforward op de Asus router.
Dit wzam direct de recursie-blokkade op. De 5G-client kan nu succesvol namen resolven en advertenties native blokkeren via NXDOMAIN.
Stap 3: Automatisering van de Client (WG Tunnel App)
Om te voorkomen dat ik de VPN handmatig moet aan- en uitzetten bij het verlaten van het huis, gebruik ik de WG Tunnel Android-app (een fork die native automatisering toevoegt die ontbreekt in de officiΓ«le client).
Om te zorgen dat de VPN binnenshuis niet inschakelt wanneer ik switch tussen de Asus-hoofdrouter en de twee losse Access Points (AP's), is de automatisering vastgezet op basis van fysieke hardware-profielen:
- Geef de app Locatie (Altijd toestaan) en Batterij (Onbeperkt) rechten in Android om te voorkomen dat het OS de achtergrondservice afsluit.
- Schakel automatisering in via het Auto-Tunneling (Bliksemschicht) menu in de app.
- Koppel Mobiele Data aan het automatisch starten van het WireGuard-thuisprofiel.
- Loop voor de Wi-Fi-configuratie door het huis naar elk Access Point en selecteer "Add Current BSSID".
Door de specifieke SSID's (MAC-adressen) van de hoofdrouter en beide AP's toe te voegen aan de Trusted Networks lijst, ziet de app nu feilloos het verschil tussen mijn eigen thuisnetwerk en een nagemaakt (gespooft) Wi-Fi-netwerk.
De Uiteindelijke Workflow
- Thuis: Mijn telefoon switcht tussen de Asus AP's, herkent de vertrouwde SSID's en houdt de VPN in slaapstand. De telefoon bevraagt
192.168.11.53direct over het lokale Wi-Fi-netwerk. - Onderweg (5G): De telefoon verliest de verbinding met de thuis-SSID's. De app merkt dit direct op, start de WireGuard-tunnel, stuurt het DNS-verkeer veilig terug naar de Asus-router, en draagt het over aan mijn recursieve Technitium HA-cluster(DNS).