Hey,

I am proud to announce OpenVPN with data channel offloading support.
This bases on Antonio's great work with ovpn-dco kernel module that
implements forwarding/encrypting/decrypting VPN packets in kernel space.

A detailed description is available under
https://github.com/schwabe/openvpn/blob/dco/README.dco.md

Here are some quick performance numbers. Keep in mind that these are in
an uncontrolled development environment and should only give a rough
idea and can also still improve. Two VMs running Ubuntu 20.04 and 20.10
running under Hyper-V on an AMD TR3970 and using a simple iperf -s on
one side and iperf -c on the other side. OpenVPN was running in p2p
mode on both VMs in all tests but a normal client/server setup results
in the same performance numbers.

- Raw performance              13.2 GBit/s
- GRE Tunnel                    5.5 GBit/s
- ovpn-dco (AES-256-GCM)        4.0 GBit/s
- ovpn-dco (AES-128-GCM)        4.0 GBit/s
- ovpn-dco (Chacha20-Poly1305)  2.7 GBit/s
- openvpn without dco           0.5 GBit/s
- client dco, server no dco     1.8 GBit/s (*1)
- client no dco, server dco     0.5 GBit/s (*2)

For comparison openssl speed -evp cipher results are 2.2 GB/s (17.6
GBit/s)for Chacha with 1024 bytes and 4.0 GB/s (32 GBit/s) for
AES-256-GCM with 1024 bytes.

There is one interesting result in this quick test, which is the number
marked with *1. In this test the client sends the data. It looks like
our send path in openvpn 2.x is a lot more optimised than our receive
path (*2).

We would like to invite everyone to test/play with OpenVPN + ovpn-dco
and would happy to hear about your experiences and results (and also of
course bug reports/suggestions).

Arne


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to