De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

OpenVPN(-NL) Performance

Verwante presentaties


Presentatie over: "OpenVPN(-NL) Performance"— Transcript van de presentatie:

1 OpenVPN(-NL) Performance
Jan Just Keijser 9 November 2017 1

2 Wie ben ik? Werkzaam in de ICT sinds 1995
Werk bij Nikhef als Grid System Engineer sinds 2005 In 2004 OpenVPN “ontdekt” Sinds die tijd gebruiker en supporter van OpenVPN Auteur van “OpenVPN 2 Cookbook” (2011), “Mastering OpenVPN” (2015, met Eric Crist) en “OpenVPN Cookbook - 2nd Edition” (2017) ICT interesses: open source, netwerken, VPNs, performance, security, openssl, socat 2

3 Wat heb ik met performance?
Experimenten produceren steeds meer data: 20 PB/jr Voor verwerking hebben we 100,000 cores online 100 Gbps netwerken Terabit link tussen Nikhef en Amsterdam Beveiliging is zeer belangrijk: 100k cores zijn erg aantrekkelijk voor hackers Gevaren: DDoS, spam, mining, etc 3

4 Wat heb ik met performance?
4

5 Ingrediënten voor een snel VPN
Hardware Netwerk Software OS Crypto libraries OpenVPN 2.4+ Configuratie en instellingen Meetmethode 5

6 Hardware Architectuur: Skylake+ of Ryzen+ Kloksnelheid
AES support in CPU, of crypto accelerator Test: openssl speed -evp aes-256-gcm Met AES-NI: k Zonder: k (gebruik “OPENSSL_ia32cap=0 openssl ...”) 6

7 Netwerk OpenVPN kan makkelijk 100+ Mbps aan
Met allerlaatste CPUs haalt OpenVPN ~ 1 Gbps Als je niet vastzit aan MTU=1500 dan haalt OpenVPN 2+ Gbps (record: 2.85 MTU=9000) Test altijd eerst de “raw” netwerk snelheid: “raw” iperf: Mbps OpenVPN iperf: 900 MTU=1500 (gebruik “iperf -c … -l 64M -n 2G”) 7

8 Software: OS Server OS: Linux (of *BSD) Betere “tun” driver
Betere netwerk stack Client OS: Linux, Windows, Android (geen idee van MacOS/iOS performance) Embedded devices: Check de kloksnelheid Bedenk dat voor iedere 1 Mbps throughput circa 3 MHz CPU power nodig is Met een 250 MHz MIPS CPU krijg je geen 100+ Mbps VPN 8

9 Software: crypto libraries
OpenSSL versus mbedTLS OpenSSL heeft betere hand-gecodeerde assembly routines voor AES en SHA V1.0.1 speed aes-256-gcm: k V1.1.0 speed aes-256-gcm: k OpenVPN op Gigabit Ethernet: V2.4.4 AES-256-GCM (mbedTLS eist hoofdletters!) OpenSSL iperf : /- 10 Mbps) MbedTLS iperf : /- 10 Mbps) 9

10 Software: OpenVPN V2.4+: Negotiate Cipher Protocol
GCM cipher suites → encrypt+hash in 1 stap → snelheid! Met en zonder GCM V2.4.4 “--ncp-disable” (aes-256-cbc) : 650 Mbps Met NCP (aes-256-gcm) : 900 Mbps Vooral belangrijk voor de server Bij meerdere clients wordt de throughput verdeeld 10

11 Configuratie (1) Proto udp vs tcp Soms is “proto tcp” echt sneller!
Dev tun vs tap Bridging = no-no voor performance IPv4 vs IPv6 IPv6 is ca 10% langzamer. (verwacht: max 2%) Tls-auth/tls-crypt: Zou niks uit moeten maken In sommige gevallen zie ik 5% perf drop 11

12 Configuratie (2) Het illustere kwartet link-mtu tun-mtu fragment
mssfix Eigenlijk is alleen “fragment” noodzakelijk Een hogere tun-mtu waarde werkt alleen bij point-to- point links Voor Ethernet netwerken nauwelijks de moeite waard; voor ADSL/kabel en 4G/LTE wel van toepassing 12

13 Configuratie (3) Dubbele server setup loont
1 server voor LAN clients met standaard instellingen 1 server voor mobiele clients Aparte crypto instellingen --cipher, --auth Aparte MTU instellingen --fragment, --mssfix, --tun-mtu Ook vanuit beveiligingsoogpunt een goed idee (vergelijk met BYOD) 13

14 Scripts & plugins Server-side script BLOKKEERT alle clients zolang het loopt Gebruik plugins waar mogelijk: die draaien in een aparte thread Two Factor Authentication: rekeying is vaak heel langzaam Ook bij rekeying blokkeert de server Niet echt geschikt voor de server zelf Speel met --reneg-sec en --reneg-bytes 14

15 Meetmethode “iperf”, “iperf3” & “ping” are your friends
“iperf” : throughput “ping” : latency Throughput wordt beter van hogere MTU/fragment waarde Latency wordt beter van lagere MTU waarde Gebruik iperf -c …. -l 4M -n 2G -fk voor consistentere resultaten 15

16 Test configuratie proto udp port 1194 dev tun
server ca ca.crt cert server.crt key server.key dh dh1024.pem tls-auth ta.key 0 user nobody group nobody cipher aes-256-cbc auth sha256 16

17 Windows vs Linux clients
Server: Skylake Xeon Gold 3.2 GHz Client: Haswell 3.8 GHz Linux client: OpenVPN 2.3: 600 Mbps OpenVPN 2.4: 840 Mbps Windows 7 client, OpenVPN 2.4: Naar client: ~400 Mbps UDP: naar server: Mbps TCP: naar server: Mbps 17

18 De “tun”/TAP-WIN adapter
UDP/TCP encrypted traffic 1 Ethernet OpenVPN 3 2 tun/tap device 18

19 Het probleem @ Gigahertz+
19

20 Toekomst Minder monolithisch ontwerp Betere schaalbaarheid
Meer stroomlijnen voor performance En uiteraard: nog snellere CPUs :) 20


Download ppt "OpenVPN(-NL) Performance"

Verwante presentaties


Ads door Google