Activer l’accélération matérielle AES pour son VPN

ITC-cloud-info-aesnifull.gif.rendition.cq5dam.thumbnail.920.460

On a vu comment monter un VPN, maintenant, comment peut on l’améliorer d’un point de vu performance ?

via l’accélération matérielle de votre CPU !

Alors, ça ne sera pas valable dans tous les cas, puisqu’il faut que votre cpu vous propose les instructions nécessaires, ainsi que votre VPN et votre distribution sachent les utiliser.
Pour commencer vérifiez, si votre CPU a les bonnes instructions : au minimum « AES », au mieux « AES-NI », si comme moi vous avez un CPU Intel, vous pouvez faire un tour sur le site du constructeur : Intel ARK.

Ou consulter la liste suivante : http://ark.intel.com/fr/search/advanced?AESTech=true&MarketSegment=DT

Vous pouvez également vérifier directement sur votre VPN coté serveur et coté client la présence du flag :

#sur un linux
cat /proc/cpuinfo | grep flags
#sur une BSD
dmesg -a | grep Features


Dans mon cas, mon client VPN (un Pfsense) est virtualisé sur un Proxmox à partir du couple KVM+Qemu.
De base le CPU qui est virtualisé, ne propose pas l’accès à ces instructions, il faut donc modifier la conf de votre VM, pour lui spécifier d’utiliser le cpu du même type que l’hôte :

Capture d’écran_2015-07-30_12-07-53

Après un reboot, je vérifie si ma VM voit le bon CPU et les bonnes instructions :
Capture d’écran_2015-07-30_12-22-19

Capture d’écran_2015-07-30_12-23-06

C’est bon pour moi, tout le petit monde est présent !


 

Dans PF, « System / Advanced / Miscellaneous »
Vous avez une section « Cryptographic Hardware Acceleration »

Vous devez y activer les options de votre CPU :

Capture d’écran_2015-07-30_12-26-33Puis dans « VPN / OpenVPN / Client », éditez votre conf,
Pour y spécifier là aussi le type d’accélération matérielle, et l’algo à utiliser, dans mon cas « AES-128-CBC » (je n’ai pas encore testé le 256, mais ça sera fait rapidement) :

Capture d’écran_2015-07-30_12-28-10

Il faut maintenant se connecter sur la partie serveur d’OpenVPN (en CLI ou via l’interface AS) pour modifier les options de l’algo à utiliser.

sur AS, dans « Advanced VPN », rajouter pour le serveur et le client : « cipher AES-128-CBC »

Capture d’écran_2015-07-30_12-29-46

On sauvegarde tout, on redémarre les dameons et les clients.
et tout devrait fonctionner.

 

La différence de perfs ne se voit pas immédiatement, mais en chargeant un peu le VPN, je dirais que la consommation CPU a baissé d’un bon tiers.
J’attends de tester plus longtemps et de voir les graphs de conso CPU pour être sur de ça, à moins que ça ne soit un effet placebo 😉

Vus : 1362
Publié par Sheldon.fr : 17