Files
202601docs/docs/infra/network.md
2026-01-02 01:20:01 +01:00

3.9 KiB

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

# 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 :

# 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

# 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é)