Un APU comme routeur & client VPN 100Mbps ?

TL;DR: un pcengines APU 1D sait router, via openvpn chiffré, 76Mbps ou 100kpps

Router 100Mbps dans un VPN, pas si simple ?

Comme d'autres FAI de la fédération, nous utilisons, chez FAImaison, des montages où un client VPN « reçoit » un bloc d'adresses IP au travers d'un VPN pour ensuite assigner ces adresses sur son réseau local.

Ce montage, qui permet de nettoyer et partager une connexion support est explicité sur le wiki de tetaneutral.net.

J'ai eu l'occasion de voir cette configuration fonctionner :

Dans les deux cas, la connexion support était un ADSL, inférieur à 18Mbps, et la connexion VPN n'était pas un facteur limitant.

Se pose aujourd'hui la question de router 100Mbps via un montage similaire chez FAImaison. Quelques posts de ci de là laissent entendre qu'il faudra un peu de puissance CPU (pour le VPN) et une carte réseau décente (pour le routage de nombreux petits paquets).

Ces contraintes écartent de fait les machines comme le raspberry pi, le banana pi, ou la LIME1.

Souhaitant tout de même une machine sobre en énergie, FAImaison a fait l'acquisition d'un APU.1D de chez pcengines (~180€).

Benchmarks

J'ai repris le protocole que Baptiste avait établi pour cadrer mes tests. Sans être parfait (quelques estimations dans les calculs), il permet de mesurer les débits atteignables (en Mbps et en PPS) avec un équipement logiciel et matériel raisonnable.

Afin de ne pas fausser les résultats, l'autre bout du tunnel VPN était monté par une machine dont le CPU outrepasse largement celui de l'APU. J'ai mis en ligne les configuratinos serveur et client.

Les résultats sont les suivants (cf résultats bruts) :

Techno Version Packet size (MSS) Débit Mbps (out/in) pps (out/in) Charge cpu routeur (out/in)
Sans VPN linux 3.16.0 1448 929 / 916 672k / 663k 7% / 7%
112 52 / 94 ¹ 492k / 882k 22% / 70%
OpenVPN (sans chiffrement) 2.3.4 1370 139 / 128 103k / 95k 100% / 91%
112 16.3 / 15.3 152k / 143k 97.5% / 90%
OpenVPN (BF-CBC) 2.3.4 1354 76 / 76.3 59k / 59k 100% / 100%
112 11.4 / 11.5 107k / 107k 100% / 100%

¹ Résultat étrangement asymétrique, mais reproductible chez moi :-/

Conclusion : c'est… presque bon.

Au regard des mesures effectuées, le chiffrement semble être l'actuel facteur limitant. Celui-ci étant souhaité, l'APU ne permet de router « que » 76Mbps.

Parmi les pistes prometteuses qui me font voir d'un bon œil cette conclusion en demi-teinte :

Parmi les pistes rejetées :

D'autres idées ?

En l'état, je pense que ces 76Mbps feront l'affaire, en attendant l'arrivée de chacha dans openssl.

<3

À tous les copains issus de FAImaison, tetaneutral.net et d'autres assos de la FFDN qui ont apporté leur eau au moulin.


  1. les APU2 l'intègreront.