È stato introdotto un modulo del kernel che può velocizzare notevolmente OpenVPN

Gli sviluppatori del pacchetto di rete privata virtuale OpenVPN hanno introdotto il modulo kernel ovpn-dco, che può accelerare notevolmente le prestazioni della VPN. Nonostante il modulo sia ancora in fase di sviluppo con un occhio solo al ramo linux-next e abbia uno stato sperimentale, ha già raggiunto un livello di stabilità che ne consente l'utilizzo per garantire il funzionamento del servizio OpenVPN Cloud.

Rispetto alla configurazione basata sull'interfaccia tun, l'utilizzo di un modulo lato client e lato server con la cifratura AES-256-GCM ha permesso di ottenere un aumento di 8 volte del throughput (da 370 Mbit/s a 2950 Mbit /S). Quando si utilizza il modulo solo sul lato client, il throughput è triplicato per il traffico in uscita e non è cambiato per quello in entrata. Utilizzando il modulo solo lato server, il throughput è aumentato di 4 volte per il traffico in entrata e del 35% per il traffico in uscita.

È stato introdotto un modulo del kernel che può velocizzare notevolmente OpenVPN

L'accelerazione si ottiene spostando tutte le operazioni di crittografia, elaborazione dei pacchetti e gestione dei canali di comunicazione sul lato del kernel Linux, eliminando il sovraccarico associato al cambio di contesto, consentendo di ottimizzare il lavoro accedendo direttamente alle API interne del kernel ed eliminando il lento trasferimento dei dati tra kernel e spazio utente (la crittografia, la decrittografia e il routing vengono eseguiti dal modulo senza inviare traffico a un gestore nello spazio utente).

Va notato che l’impatto negativo sulle prestazioni della VPN è causato principalmente dalle operazioni di crittografia ad alta intensità di risorse e dai ritardi causati dal cambio di contesto. Per accelerare la crittografia sono state utilizzate estensioni del processore come Intel AES-NI, ma i cambi di contesto sono rimasti un collo di bottiglia fino all'avvento di ovpn-dco. Oltre a utilizzare le istruzioni fornite dal processore per accelerare la crittografia, il modulo ovpn-dco garantisce inoltre che le operazioni di crittografia siano divise in segmenti separati ed elaborate in modalità multi-thread, che consente l'utilizzo di tutti i core della CPU disponibili.

Le attuali limitazioni dell'implementazione che verranno affrontate in futuro includono il supporto solo per le modalità AEAD e "nessuna" e le crittografie AES-GCM e CHACHA20POLY1305. Si prevede che il supporto DCO sarà incluso nel rilascio di OpenVPN 2.6, previsto per il 4° trimestre di quest'anno. Il modulo è attualmente supportato nel client Linux OpenVPN3 in fase di beta testing e nelle build sperimentali del server OpenVPN per Linux. Un modulo simile, ovpn-dco-win, è in fase di sviluppo anche per il kernel di Windows.

Fonte: opennet.ru

Aggiungi un commento