I made openvpn3 (required changes will be incorporated into main branch at some point) work with wintun and did performance testing in AWS.
Client: c5.xlarge, Windows Server 2016, patched openvpn3 test client and OpenVPN Connect 2.7.1.103 (uses tap-windows6, based on openvpn3).
Server: c5.xlarge, Ubuntu 18.04, openvpn 2.4.4
Client and server instances are in the same VPC and placement group.
iPerf3 running on server:
> iperf3 -s -B 0.0.0.0 -V
iPerf3 running on client:
> iperf3 -c 10.8.0.1 -V (server VPN address)
> iperf3 -c 10.0.0.18 -V (server VPC address)
Results:
- no vpn
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 8.67 GBytes 7.45 Gbits/sec sender
[ 4] 0.00-10.00 sec 8.67 GBytes 7.45 Gbits/sec receiver
CPU Utilization: local/sender 61.4% (5.6%u/55.8%s), remote/receiver 33.9% (1.7%u/32.2%s)
- tap-windows6
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 404 MBytes 339 Mbits/sec sender
[ 4] 0.00-10.00 sec 404 MBytes 339 Mbits/sec receiver
CPU Utilization: local/sender 4.6% (0.3%u/4.3%s), remote/receiver 21.4% (2.2%u/19.2%s)
- wintun
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 536 MBytes 449 Mbits/sec sender
[ 4] 0.00-10.00 sec 536 MBytes 449 Mbits/sec receiver
CPU Utilization: local/sender 2.9% (0.1%u/2.8%s), remote/receiver 10.1% (0.7%u/9.3%s)
As you see, wintun performs 30% better comparison to tap-windows6 and incurs significantly less CPU usage.
--
-Lev