# Réseau & Accès ## Tailscale VPN Tailscale remplace ZeroTier depuis décembre 2025 pour le mesh VPN. ### Configuration | Machine | IP Tailscale | Hostname | |---------|--------------|----------| | Talloires (RPi5) | 10.171.171.1 | talloires.tailfd281f.ts.net | | Annecy (Synology) | 10.171.171.50 | annecy.tailfd281f.ts.net | | Mac Lionel | 100.x.x.x | (dynamique) | ### DNS MagicDNS Tailscale fournit la résolution DNS automatique : ``` *.talloires.tailfd281f.ts.net → Services Talloires ``` ### Accès aux services Tous les services sont accessibles via deux domaines : | Type | Domaine | Exemple | |------|---------|---------| | LAN | `*.talloires.local` | `jellyfin.talloires.local` | | Tailscale | `*.talloires.tailfd281f.ts.net` | `jellyfin.talloires.tailfd281f.ts.net` | ## Accès LAN ### Prérequis 1. **Certificat CA Caddy** installé sur le client 2. **DNS local** configuré (dnsmasq ou /etc/hosts) ### Installation du certificat ```bash # Sur Talloires docker exec caddy cat /data/caddy/pki/authorities/local/root.crt > caddy-root.crt # Sur Mac sudo security add-trusted-cert -d -r trustRoot \ -k /Library/Keychains/System.keychain caddy-root.crt ``` ### Configuration DNS Option 1 : **dnsmasq** sur le routeur ``` address=/talloires.local/10.171.171.7 ``` Option 2 : **/etc/hosts** sur chaque client ``` 10.171.171.7 jellyfin.talloires.local 10.171.171.7 git.talloires.local 10.171.171.7 homeassistant.talloires.local # etc. ``` ## Ports exposés | Port | Service | Protocole | |------|---------|-----------| | 443 | Caddy (HTTPS) | TCP | | 80 | Caddy (HTTP → HTTPS) | TCP | | 2222 | Gitea SSH | TCP | | 8123 | Home Assistant (interne) | TCP | ## Sécurité ### Authelia SSO La plupart des services sont protégés par Authelia : ``` Client → Caddy → Authelia → Service ``` Services protégés par Authelia : - Transmission - Netdata - Dozzle - Cockpit Services avec auth propre (bypass Authelia) : - Jellyfin (auth interne) - Gitea (OIDC via Authelia) - Home Assistant (auth interne) - Arcane (désactivé temporairement) ### ProtonVPN (WireGuard) Transmission utilise un tunnel WireGuard vers ProtonVPN : ``` Transmission → WireGuard container → ProtonVPN → Internet ↓ Kill switch intégré (network_mode: service:wireguard) ``` Vérification IP : ```bash # IP Transmission (doit être ProtonVPN) docker exec transmission curl -s ifconfig.me # IP locale curl -s ifconfig.me ``` ## DNS Redondant ### Architecture ``` ┌─────────────────────┐ ┌─────────────────────┐ │ Talloires │ │ Annecy │ │ dnsmasq (primaire) │ │ dnsmasq (slave) │ │ 100.116.198.105:53 │◄────│ 10.171.171.50:53 │ └─────────────────────┘ └─────────────────────┘ │ │ └───────────┬───────────────┘ ▼ Upstream DNS (1.1.1.1, 8.8.8.8) ``` ### Talloires (Primaire) - **IP**: 100.116.198.105 (Tailscale) - **Config**: `/etc/dnsmasq.d/tailscale.conf` - **Upstream**: AdGuard DoH via cloudflared (127.0.0.1:5053) ### Annecy (Secondaire) - **IP**: 10.171.171.50 (LAN) - **Config**: `/volume1/docker/dnsmasq/dnsmasq.conf` - **Container**: `andyshinn/dnsmasq` (Docker, network_mode: host) - **Upstream**: Talloires, puis 1.1.1.1 / 8.8.8.8 ### Test ```bash # Depuis le LAN dig @10.171.171.50 talloires.local +short dig @10.171.171.50 go +short # Depuis Tailscale dig @100.116.198.105 talloires.local +short ``` ### Configuration client Pour utiliser les deux DNS en failover, configurer : - DNS primaire: 10.171.171.50 (Annecy - LAN) - DNS secondaire: 10.171.171.7 (Talloires - si LAN listen activé)