AdGuard Home¶
DNS et DHCP avec ad-blocking pour tout le reseau.
Acces¶
| URL | https://dns.home.gabin-simond.fr (primaire) / https://dns-failover.home.gabin-simond.fr (secondaire) |
| Host | penny (Docker, host network) + LXC 100 dns-failover (galahad) |
| Image | adguard/adguardhome:latest |
| Auth | ForwardAuth Authelia + bcrypt local |
Role¶
- DNS resolver principal pour le reseau local
- Ad-blocking au niveau DNS (listes de blocage)
- DNS-over-TLS sur le port 853
- DHCP (optionnel, peut etre gere par OPNsense a terme)
Ports¶
| Port | Protocole | Usage |
|---|---|---|
| 53 | TCP/UDP | DNS standard |
| 853 | TCP | DNS-over-TLS |
| 67 | UDP | DHCP |
| 3000 | TCP | Interface web |
DNS upstream¶
| Serveur | IP |
|---|---|
| Quad9 (principal) | 9.9.9.9 |
| Quad9 (secondaire) | 149.112.112.112 |
Stockage¶
- Config : bind mount
/mnt/ssd/config/adguard/→/opt/adguardhome/conf - Donnees : Docker volume
adguard-data→/opt/adguardhome/work
Instances¶
| Instance | Machine | IP | Role |
|---|---|---|---|
| Primaire | RPi 4 (Docker, host network) | 192.168.1.28 |
DNS principal, ad-blocking |
| Secondaire | LXC 100 "dns-failover" sur galahad | 192.168.1.30 |
DNS de secours, ad-blocking |
Les deux instances ont la meme configuration : memes upstream (Quad9 DoH), memes blocklists, memes user_rules conditionnelles.
Synchronisation¶
Les configs sont synchronisees manuellement. Quand les user_rules ou les blocklists changent sur le primaire, reproduire sur le secondaire.
Basculement DNS¶
Les clients recoivent les deux adresses DNS via DHCP :
- DNS 1 :
192.168.1.28(RPi, primaire) - DNS 2 :
192.168.1.30(dns-failover LXC, secondaire)
Si le RPi tombe, les clients basculent sur le secondaire en quelques secondes. Le secondaire resout *.home.gabin-simond.fr vers le RPi — les services redeviennent accessibles des que le RPi reboote (watchdog ~15s + Docker ~30-60s).
Acces Tailscale (clients distants)¶
Le LXC dns-failover a Tailscale installe (IP : 100.74.145.26). Les clients VPN distants peuvent utiliser ce DNS secondaire.
Configuration Tailscale admin (login.tailscale.com > DNS) :
- DNS 1 :
100.97.239.90(RPi) - DNS 2 :
100.74.145.26(dns-failover)
Ne pas utiliser de DNS Rewrites statiques pour *.home.*
Voir DNS flow — uniquement les user_rules conditionnelles sur les deux instances.
DNS Rewrites statiques (exceptions)¶
La seule rewrite statique conservee est pour le switch manageable, qui n'est pas derriere Traefik :
| Domaine | IP | Raison |
|---|---|---|
switch.lan |
192.168.1.2 |
HTTP only, hors scope HSTS home.gabin-simond.fr |
Le domaine switch.lan (sans .home.gabin-simond.fr) evite le HSTS includeSubdomains qui forcerait HTTPS sur un equipement qui ne le supporte pas. Acceder via http://switch.lan ou directement http://192.168.1.2.
LXC "dns-failover" — health check externe¶
Le meme LXC qui heberge AdGuard secondaire surveille le RPi depuis l'exterieur :
| Check | Methode | Seuil |
|---|---|---|
| Ping ICMP | ping 192.168.1.28 |
3 min sans reponse |
| Traefik HTTP | curl http://192.168.1.28:8080/ping |
idem |
| DNS | dig @192.168.1.28 google.com |
info supplementaire |
Si le RPi ne repond plus apres 3 min → alerte ntfy urgente. Si le RPi repond au ping mais Traefik est down → alerte ntfy haute. Quand le RPi revient → notification "RECOVERED" avec duree du downtime.