Bonjour,
Voilà un certain temps que j’utilise « intensivement » OpenVPN sur différent serveurs.
Pour l’instant c’était seulement des serveurs en 100Mbps, mais j’était plus limité par le processeur que par la connexion proprement dite.
Récemment j’ai fait l’acquisition d’un nouveau serveur, avec une connectivité en 1Gbps.
Processeur Xeon E3-1230, jeux d’instruction AES (aes-ni), RAM 8Go EEC…
Sauf que maintenant ce n’est plus le processeur qui me limite, mais autre chose (Mais quoi ??? Mystère !).
En AES-256-CDC le processeur est quasiment pas sollicité (30% sur une thread).
Coté client, j’ai une connexion SFR Fibre 1Gbps.
Processeur i7-3770K, RAM 32Go… Une bonne petite bête.
Sur la machine client, comme sur la machine serveur, en download depuis Testdebit.info je suis facile au 900Mbits/s.
Et download d’un fichier du serveur (via apache) vers la machine client, idem.
En revanche, via OpenVPN, je plafonne avec les même tests à environ 160Mbps.
Si je désactive l’encryption, je tombe en dessous des 100Mbits.
Je me serais attendu pourtant à un résultat inverse.
J’ai longuement parcouru la toile.
Je suis tombé sur ça : community.openvpn.net/openvpn/w … orks_Linux
Ainsi que de nombreux forums.
Mais pas d’évolution notable dans mon cas avec les configs proposées (c’était souvent de jouer avec tun-mtu, fragment…).
Serveur :
mode server
proto udp
port 1195
dev tun0
ca keys/servers/ca.crt
cert keys/servers/server.crt
key keys/servers/server.key
dh keys/servers/dh1024.pem
tls-auth keys/ta.key 0
cipher aes-256-cbc
client-cert-not-required
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn
server 10.1.0.0 255.255.255.0
client-config-dir others/udp-1195/
push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
persist-key
persist-tun
verb 3
status logs/udp-1195.sts
log-append logs/udp-1195.log
Client :
client
dev tun
proto udp
remote mondomaine.fr 1195
ca ca.crt
tls-auth ta.key 1
cipher AES-256-CBC
auth-user-pass ../logins.txt
nobind
resolv-retry infinite
persist-key
persist-tun
verb 3
openssl speed aes-256-cbc :
Doing aes-256 cbc for 3s on 16 size blocks: 13682966 aes-256 cbc's in 2.99s
Doing aes-256 cbc for 3s on 64 size blocks: 3606779 aes-256 cbc's in 2.99s
Doing aes-256 cbc for 3s on 256 size blocks: 913768 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 1024 size blocks: 229469 aes-256 cbc's in 2.99s
Doing aes-256 cbc for 3s on 8192 size blocks: 28719 aes-256 cbc's in 2.99s
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Mar 18 20:41:20 CET 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256 cbc 73219.88k 77201.96k 77974.87k 78587.38k 78684.30k
openssl speed -evp aes-256-cbc :
Doing aes-256-cbc for 3s on 16 size blocks: 81821132 aes-256-cbc's in 2.99s
Doing aes-256-cbc for 3s on 64 size blocks: 21479841 aes-256-cbc's in 2.99s
Doing aes-256-cbc for 3s on 256 size blocks: 5429785 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 1361247 aes-256-cbc's in 2.99s
Doing aes-256-cbc for 3s on 8192 size blocks: 170298 aes-256-cbc's in 2.99s
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Mar 18 20:41:20 CET 2013
options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-256-cbc 437838.83k 459769.17k 463341.65k 466192.95k 466582.35k
Auriez-vous des pistes à me suggérer afin d’optimiser la vitesse ?
Je ne demande pas 1Gbps via OpenVPN, mais déjà 200 ou 300Mbps je serais aux anges !
Comment font les grosses entreprises pour interconnecter plusieurs site (point-to-point, sans parler de solutions « matériel » type CISCO…) ? IPSEC, L2TP ?
Si vous avez besoin d’autre éléments, ne pas hésiter !
Merci !