Si legge spesso che l’utilizzo di una VPN migliora la connessione Internet. Cosa significa? Quest’affermazione può avere un qualche fondamento?
Diciamo subito che la banda disponibile in downstream e in upstream è e resta sempre quella offerta dall’operatore di telecomunicazioni prescelto. Può essere verificata con un semplice speed test: Speed test, verificare la velocità della connessione in modo rapido.
L’importante è ovviamente lanciare lo speed test quando i dispositivi collegati in rete locale non sono impegnati in qualche trasferimento dati.
Attivando una connessione VPN non è ovviamente possibile beneficiare di una banda maggiore: anzi, nella maggior parte dei casi, il throughput – inteso come la capacità trasmissiva che viene effettivamente impegnata (indice dell’effettivo utilizzo della connessione) – sarà più ridotto.
L’uso della VPN introduce infatti l’utilizzo di rotte differenti rispetto a quelle che si percorrono normalmente servendosi del collegamento messo a disposizione dal provider Internet.
Per rendersene conto basta aprire il prompt dei comandi (in Windows premere Windows+R
quindi digitare cmd
) quindi scrivere tracert
seguito da un indirizzo mnemonico (esempio www.ilsoftware.it) o un indirizzo IP.
Con o senza l’attraversamento del tunnel VPN, il comando tracert
mostrerà percorsi diversi per raggiungere l’host di destinazione.
Se si sceglie un servizio VPN gratuito o a pagamento (vedere VPN cos’è e quali sono i migliori servizi), la rotta seguita dipenderà dal server di uscita selezionato (se si sceglie cioè un server di uscita dalla rete VPN situato in Italia o all’estero, in qualunque Paese del mondo) e le prestazioni durante il trasferimento dei dati in entrambe le direzioni saranno direttamente figlie di questa scelta oltre che dello stato di congestione dei singoli server e della rete del provider VPN.
Tutto questo si traduce in un throughput più o meno elevato e su una latenza in millisecondi (ms) più o meno contenuta.
Nell’immagine il risultato di un traceroute effettuato con la connessione del provider in uso (senza attivare la VPN). Abilitando la VPN, dal momento che IlSoftware.it usa l’infrastruttura Cloudflare, si arriva a destinazione addirittura attraversando un numero inferiore di hop attivando un server di uscita tedesco (in questo si è utilizzato ExpressVPN).
Per rendersi conto nelle prestazioni della rete una volta stabilita la connessione con un server VPN, è possibile avviare uno speed test come suggerito in apertura. Si può anche banalmente avviare lo speed test fast.com di Netflix e paragonare i dati rilevati con e senza VPN attivata.
Guardate però cosa succede se si sceglie un server di uscita dalla VPN situato ad esempio a Singapore: la latenza aumenta in maniera significativa.
L’utilizzo di un buon servizio VPN, proprio per il fatto che le tabelle di routing sono diverse rispetto a quelle utilizzate dal provider Internet scelto dall’utente, può aiutare a fruire di un sito web o di una piattaforma online migliorando le prestazioni ottenibili. Ciò proprio in forza del differente percorso seguito dai pacchetti dati.
Ecco quindi che uscire dalla VPN selezionando un server posto nel Paese dove si trova il servizio che s’intende usare potrebbe migliorare significativamente le performance. E in molti casi, selezionando il giusto server di uscita dalla VPN, si possono addirittura risolvere eventuali problemi di raggiungibilità (un esempio: DAZN non funziona: come fare quando le dirette non sono visibili).
Le prestazioni della VPN dipendono però molto anche dai protocolli scelti ovvero quello utilizzato per stabilire la connessione e il tunnel sicuro e da quello adoperato per crittografare i dati: ne abbiamo parlato nell’articolo VPN: quanto incide sulle prestazioni la scelta del protocollo.
La velocità della VPN dipende anche dai protocolli utilizzati
La distanza fisica dal server di uscita dalla VPN, la congestione della rete, il carico di lavoro dei server della VPN, le rotte seguite dai pacchetti dati sono fattori importanti che condizionano molto le prestazioni.
I protocolli usati per la connessione VPN, però, hanno essi stessi un’importanza cruciale: OpenVPN è una soluzione ampiamente diffusa su una vasta gamma di piattaforme ed è ormai supportata da un sempre maggior numero di router (chiunque può crearsi il suo server OpenVPN per collegarsi a distanza, in modo sicuro, alla rete dell’ufficio o di casa…). Dal punto di vistas crittografico OpenVPN poggia sulle librerie OpenSSL.
IPsec utilizza due protocolli (Encapsulated Security Payload e Authentication Header) e due modalità di funzionamento. A seconda della configurazione IPsec offre autenticazione e riservatezza.
WireGuard è un protocollo molto più “snello” che offre una soluzione moderna, sicura e prestazionale per creare connessioni VPN. È infatti utilizzabile per allestire i propri server VPN ma anche dai principali fornitori di servizi. WireGuard implementa una nuova API crittografica chiamata Zinc.
Lo sviluppatore di WireGuard ha evidenziato con grande enfasi il “minimalismo” che contraddistingue il codice (che ne semplifica anche la gestione), sull’assenza di un meccanismo di distribuzione delle chiavi e sull’utilizzo di una chiper suite (insieme di algoritmi utilizzati per rendere sicuri i collegamenti di rete) predefinita.
WireGuard sarà ufficialmente supportato a livello di kernel Linux con il rilascio della versione 5.6
Una novità è rappresentata dal protocollo Lightway ideato da ExpressVPN partendo proprio da WireGuard. L’azienda ha fatto sapere che il sorgente sarebbe stato a breve pubblicato online ma ancora non ne abbiamo trovato traccia: ExpressVPN lancia il suo protocollo Lightway: differenze rispetto a WireGuard e OpenVPN.
I benchmark che si trovano in rete sono ad oggi poco aggiornati e spesso presentano situazioni poco realistiche.
Cosa succede se si allestisce un collegamento a 10 Gbps e si mettono a confronto le prestazioni di IPSec, OpenVPN e WireGuard? Quale protocollo esce vincitore?
Abbiamo voluto provare con un link a 10 Gbps perché è ciò che di meglio si può ottenere oggi: ovviamente server e client sono stati posti su due subnet diverse create all’interno della medesima infrastruttura locale. L’obiettivo è ovviamente quello di porre l’asticella molto in alto (a 10 Gbps appunto) per verificare quale soluzione VPN si avvicina di più alle prestazioni offerte realmente dalla connessione di rete in uso.
Utilizzando Ubuntu 20.04 LTS, il modulo kernel più aggiornato per WireGuard, strongSwan per la configurazione di IPsec e OpenVPN nella versione più recente, si sono verificate le prestazioni dei tre protocolli con e senza CPU pinning abilitato.
Quest’ultimo consente di legare l’esecuzione di un processo o di un’attività a un processore specifico in modo da privilegiare le performance.
Il risultato è che con l’abilitazione del meccanismo CPU pinning WireGuard vince sotto gamba migliorando il throughput del 40% rispetto al caso con CPU pinning disabilitato (da 3,2 Gbps a circa 4,5 Gbps).
Senza CPU pinning il vincitore in termini di throughput è IPsec attivando l’accelerazione hardware AES-NI, sia ricorrendo all’algoritmo crittografico AES-128 che a AES-256.
In entrambi i casi il throughput rilevato con IPsec si attesta sui 3,8 Gbps contro i 3,2 Gbps di WireGuard.
OpenVPN è invece ampiamente staccato e non riesce mai, indipendentemente dall’algoritmo crittografico scelto, a superare i 750 Mbps nel migliore dei casi (neppure implementando i suggerimenti per le reti Gigabit suggeriti in questa pagina).
Anche disattivando completamente la crittografia, le prestazioni di OpenVPN non decollano: segno evidente che il collo di bottiglia non risiede nell’algoritmo crittografico.