Una spiegazione approfondita delle tecnologie che alimentano i nostri servizi
Le VPN tradizionali creano un tunnel cifrato tra il tuo dispositivo e un server remoto, mascherando il tuo traffico internet.
Figura 1: Architettura tradizionale client-server delle VPN
WireGuard è un protocollo VPN moderno che utilizza:
Un file di configurazione WireGuard semplice:
[Interface]
PrivateKey = your_private_key
Address = 10.0.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = server_public_key
AllowedIPs = 0.0.0.0/0
Endpoint = vpn.example.com:51820
Le reti mesh creano connessioni dirette tra dispositivi (peer-to-peer) senza passare attraverso un server centrale.
Figura 2: Architettura decentralizzata di una rete mesh
Tailscale costruisce una rete overlay su WireGuard aggiungendo:
Headscale è un'implementazione open-source del control server di Tailscale:
# Configurazione base headscale.yaml
server_url: https://headscale.example.com
listen_addr: 0.0.0.0:8080
private_key_path: /var/lib/headscale/private.key
derp:
server:
enabled: true
region_id: 999
region_code: "selfhosted"
| Caratteristica | VPN Classica | Mesh Network |
|---|---|---|
| Architettura | Client-Server | Peer-to-Peer |
| Protocollo | WireGuard puro | WireGuard + coordinamento |
| Latenza | Dipendente dal server | Ottimizzata tra nodi vicini |
| Throughput | Limitato dal server | Scaglionato tra i nodi |
| NAT Traversal | Manuale/STUN | Automatico con DERP |
| Sicurezza | Forti garanzie crittografiche | Stesse garanzie + autenticazione |
| Use Case | Privacy online generale | Reti private tra dispositivi |
DERP (Detoured Encrypted Routing for Packets) è un sistema di relay che permette a nodi dietro NAT restrittivi di comunicare:
Figura 3: Funzionamento del sistema DERP
Tailscale/Headscale usano un sistema a chiavi temporanee:
# Generazione chiave WireGuard
wg genkey | tee privatekey | wg pubkey > publickey
# Chiave temporanea Tailscale (esempio)
{
"id": "k123456",
"key": "tskey-k123456-abcdef",
"expires": "2025-01-01T00:00:00Z",
"capabilities": ["devices:write"]
}
In una mesh network, i pacchetti possono seguire diversi percorsi: