Hi,

I have been testing OVPN 2.4.4 vs StrongSwan IPSec, to be used as
transport, and I have found something that I think might be a
performance issue.  I have 3 linux boxes, A, B, and C.  All interfaces
are 1Gbps.  Each has an interface to the next one downstream:

A - eth0=10.10.10.10/24 and eth1=172.16.0.10/24

B - eth0=172.16.0.11/24 and eth1=172.30.0.11/24

C - eth0=172.30.0.10/24 and eth1=192.168.168.10/24

Packets route as usual through this with no encryption, and throughput
from A to C is at wire speed.  With IPSec between A&B, from
172.16.0.10-172.16.0.11, I can still get wire speed from A to C.  Then I
turn off IPSec, and I setup A as the server and B as the client, with
A's config being:

=====

dev tun

topology subnet
server 172.17.0.0 255.255.255.0
port 1194
proto udp
dh /etc/openvpn/keys/dh2048.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
verb 3
keepalive 10 45
cipher aes-256-cbc
comp-lzo

tun-mtu 50000

mssfix 0

fragment 0

client-config-dir ccd

push "route 10.10.10.0 255.255.255.0"

=====

and the client B config file is

=====

verb 3
client
cipher AES-256-CBC
comp-lzo
tun-mtu 50000
mssfix 0
fragment 0
remote 172.16.0.10  1194

dev tun
redirect-private local
tls-client

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client1.crt
key /etc/openvpn/keys/client1.key

=====

and I setup static routes on each side so that traffic is going through
the tunnel from A to C and vice versa.

I can pass traffic over this link, however when I do tests for speed, I
am only getting about 200Mbps instead of 1Gbps.

The funny thing is, I know that each of these machines can easily do
1Gbps.  If I do my performance test from A to B, over the above ovpn
configs, I can get just over 1Gbps because of the MTU overhead being
removed. But as soon as I have it make the leap downstream once more, I
lose 80+% of the speed.  And again, both non-encrypted traffic and IPSec
do the exact same test at wire speed or just slightly under wire speed.

The way I do a speed test is on A:

# nc -l -p 5555 > /dev/null

and over on C:

# dd if=/dev/urandom of=blob.random.1G bs=10M count=100

# time cat blob.random.1G | nc 10.10.10.10 5555

tcpdumps over each interface confirm traffic is flowing in the expected
fashion.

Over unencrypted or IPSec, I am looking at about 4s to move 1G of data
from one end to the other, and with ovpn, 15-22s.  The machines involved
are 2 Dell R720's with 8+G ram and a homebrew machine with several Xeons
and 32G RAM.  Network cards involved are a mix of BCM Tigon3 "tg3"
driver and IGB driver gigabit NICs.

Anyone have any suggestions or thoughts as to why the big perf decrease
and what might be done to improve it?

Thanks, 

Tom




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to