Lógicamente, VPN debe ser más rápido que el de SSH para la construcción de túneles, debido a que:
- Se ejecuta en UDP y TCP no (así que no hay TCP TCP)
- Se ha de compresión
Sin embargo, hoy he probado Redis la replicación a través de ambos métodos.
Corrí la prueba con más de una Irlanda AWS VM, la conexión a un NOS-Oriente de AWS VM.
Desde mi caso de prueba es Redis de replicación, esto es exactamente lo que he probado - me quedé en blanco Redis servidor, y después de haber terminado de cargar, me ejecutado slaveof
el otro servidor, y se mide el tiempo entre Connecting to MASTER
y MASTER <-> SLAVE sync: Finished with success
. En el medio, he usado
while 1; do redis-cli -p 7777 info | grep master_sync_left_bytes;sleep 1; done
Para obtener un crudo de la estimación de la velocidad.
SSH ganó por un tiro largo: ~11MB/s en comparación con OpenVPN ~2 MB/s.
Eso no significa que todo lo que me reaserched estaba mal, o me groseramente mal configurado mi instalación?
Actualización
He hecho varias pruebas con el mismo conjunto de datos, y se obtuvieron los siguientes resultados:
- OpenVPN
- TCP:
compresión: 15m
no hay compresión: 21m - UDP:
compresión: 5m
no hay compresión: 6m
- TCP:
- SSH
valores predeterminados: 1m50s
no hay compresión: 1m30s
compresión: 2m30s
Update2
Aquí están las iperf resultados, bidireccional pruebas (excepto SSH, donde no hay camino de retorno está disponible)
| method | result (Mb/s)|
|------------------+--------------|
| ssh | 91.1 / N.A |
| vpn blowfish udp | 43 / 11 |
| vpn blowfish tcp | 13 / 12 |
| vpn AES udp | 36 / 4 |
| vpn AES tcp | 12 / 5 |
Especificaciones técnicas
Estoy corriendo CentOS 6.3 (servidor), CentOS 6.5 (cliente).
OpenVPN es la versión 2.3.2 (igual que en Ubuntu 14.10, así que no hay moho versión)
Mi SSH tunneling parece:
ssh -f XXXX@XXXX -i XXXX -L 12345:127.0.0.1:12345 -N
Mi archivo de configuración se parece a:
servidor
port 1194
proto udp
dev tun0
topology subnet
log /var/log/openvpn.log
ca XXXX
cert XXXX
key XXXX
dh XXXX
crl-verify XXXX
cipher AES-256-CBC
server XXXX 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
verb 3
tun-mtu 1500
fragment 1300
persist-key
persist-tun
cliente
client
remote XXXX 1194
proto udp
dev tun
log /var/log/openvpn.log
comp-lzo
cipher AES-256-CBC
ns-cert-type server
# the full paths to your server keys and certs
ca XXXX
cert XXXX
key XXXX
tun-mtu 1500 # Device MTU
fragment 1300 # Internal fragmentation
persist-key
persist-tun
nobind