TL;DR: How much OpenVPN tap throughput can I expect using a Raspberry Pi as an Internet gateway/VPN Tunnel Router?
********
Currently using a 5 year old Linksys 160N (384 MHz BroadCom CPU, 4MB Flash ROM, 32 MB RAM) as my Internet/VPN Tunnel Router. It has DD-WRT with an (stripped down?) OpenVPN client on it.
Setup works fine. I can connect with a tap tunnel to a VPN provider's OpenVPN server a 13-ms ping away, about 120 km geographically. (Vancouver, BC to Seattle, WA). Using IP tables, I route traffic from only my PS3s over the tap tunnel. Everything works fine - I can watch US netflix, Hulu Plus and my un-blacked-out Canucks on GameCenter (eventually, when Sony gets it act together), and everything else goes out through my ISP gateway.
1
My concern now is speed. Using the PS3's network test, I get about 4.1 mbps down and 1.5 up. My connection is 25/2, and I can get about 18 from a speedtest server in seattle. I need at least 5 for Best Netflix, and 8 for their new "Super HD" service (assuming my VPN providers' ISP will join)
Which points to my poor little router there, showing during a "Medium/HD" Netflix stream a consistent > 1.5 load factor from UpTime, and > 90% CPU utilization from Top. It just can't handle anything more, and I can't disable encryption or compression, else the connection doesn't work. fast-io is enabled, and logging is Verb 0.
So I turn to the Raspberry, with its 700 MHz, overclockable ARM CPU, and 512 MB or RAM, as a possible low-power, low cost alternative. Wondering if the users that know this OpenVPN software can give me a guesstimate as to how well this setup will perform. Thank you.
For clarity, here's my conf:
remote ip.address 1194 udp
client
dev tap
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ca /tmp/ibvpn/ibvpn.com.crt
log-append /tmp/ibvpn/vpn.log
comp-lzo
verb 0
fast-io
mute 20
ns-cert-type server
fragment 1300
route-method exe
route-delay 2
auth-user-pass /tmp/ibvpn/user.conf
reneg-sec 0
script-security 3 system
up /tmp/ibvpn/change_resolv_conf.sh up
down /tmp/ibvpn/change_resolv_conf.sh down
1. Yes, I know services such as (rhymes with sunblock fuss) can do this functionality, but I like to do things the hard and geeky and arguably correct way.