Benchmarks IPsec
Introduction
Voici les résultats de quelques tests de performance d'IPsec sur ma Soekris.
Méthodologie
Les tests sont réalisés entre ma Soekris et mon portable reliés par un cable croisé RJ45 en Ethernet. Mon portable fait tourner un petit serveur TCP et ma Soekris un petit client TCP qui envoie en continue autant de données qu'il peut vers le serveur (le code source des deux programmes est disponible en bas de cette page).
IPsec est utilisé en mode transport et uniquement dans le sens Soekris vers mon portable. Les paquets dans l'autre direction ne subissent aucune modification.
Les résultats indiqués sont des moyennes sur trois essais. Durant chaque essai, 30 Mo de données sont transmis entre la Soekris et mon portable.
Résultats
Sans IPsec
Sans IPsec, j'arrive à un débit de 1385 ko/s. Cette valeur, faible pour un lien Ethernet 100 MB/s, est due à ma carte Ethernet PCMCIA de mon portable. En effet, c'est une carte 16 bits ce qui limite fortement le débit maximum qu'elle peut envoyer au système.
En conséquence, il ne faut pas voir les résultats suivants sous un angle de comparaison avec/sans IPsec mais plutôt comme des mesures du débit maximum que l'on peut obtenir avec IPsec.
Mise à jour (25/05/05) : Entre ma Soekris et mon Mac, j'obtiens dans les même conditions 3962 ko/s (31,7 Mb/s) avec l'interface filaire (donc je pense que c'est le maximum que l'on peut obtenir de la Soekris en Ethernet) et 1034 ko/s (8,27 Mb/s) sur l'interface Wifi 802.11 b/g. J'ai refait quelques mesures avec le logiciel Iperf qui indique des résultats similaires.
AH (Authentification) uniquement
| Algorithme | Taille clé (bits) | Vitesse (ko/s) |
|---|---|---|
| HMAC-MD5 | 128 | 1317 |
| HMAC-SHA1 | 160 | 1276 |
| HMAC-SHA2-256 | 256 | 1146 |
ESP (Confidentialité) uniquement
| Algorithme | Taille clé (bits) | Vitesse (ko/s) |
|---|---|---|
| DES-CBC | 64 | 731 |
| AES-CBC | 128 | 1017 |
| Blowfish-CBC | 128 | 870 |
| Twofish-CBC | 128 | 905 |
| 3DES-CBC | 192 | 318 |
| AES-CBC | 192 | 968 |
| Blowfish-CBC | 192 | 870 |
| Twofish-CBC | 192 | 890 |
| AES-CBC | 256 | 925 |
| Blowfish-CBC | 256 | 880 |
| Twofish-CBC | 256 | 907 |
Rappel : Utiliser la confidentialité (ESP) sans l'authentification/intégrité (AH) est fortement déconseillé...
Quelques remarques :
- Le DES et le Triple DES sont bien très lents
- AES (optimisé pour 586 dans le noyau) est le plus rapide des algorithmes testés ici
- La vitesse de Blowfish est indépendante de la taille de la clé (par conception même de l'algorithme)
AH + ESP
| AH | ESP | Vitesse (ko/s) |
|---|---|---|
| HMAC-SHA1 (160) | AES-CBC (128) | 728 |
Donc dans une configuration typique d'IPsec, on obtient un débit maximal de 728 ko/s soit environ 6 Mb/s, ce qui est inférieur à la vitesse maximale que l'on peut obtenir sur l'ADSL (ADSL Débit Max). Donc si l'on veut utiliser IPsec (par exemple pour proteger une liaison Wifi) et sa connexion ADSL au maximum, il faut soit dégrader les algorithmes utilisés par IPsec (utiliser MD5 à la place de SHA par exemple) ou utiliser une carte d'accéleration cryptographique comme la vpn1411.