web-dev-qa-db-ja.com

OpenVPNパフォーマンスの向上

私はOpenVPNのパフォーマンスを改善しようとしてきましたが、これが現在のセットアップです。

 cat /etc/openvpn/server.conf
port 443 #- port
proto tcp #- protocol
dev tun
#tun-mtu 1500
tun-mtu-extra 32 
#mssfix 1450
tun-mtu 64800
mssfix 1440
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
#plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS
#plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS
client-to-client
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
Push "redirect-gateway def1"
Push "dhcp-option DNS 8.8.8.8"
Push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3

クライアント:

client
dev tun
proto tcp
remote 18.4.26.8 443
resolv-retry infinite
nobind
tun-mtu 64800
tun-mtu-extra 32
mssfix 1440
persist-key
persist-tun
auth-user-pass
comp-lzo
verb 3

Webで見つけたものからMTUとMSSFIXにいくつかの変更を加えました。

カーネルに変更を加えることはできますか?これはCentOS 6.xボックスです。私はBSDベースのものをいくつか見つけましたが、Linuxではうまくいきませんでした。

TCPはUDPより遅いですが、ネットワーク上のファイアウォールを通過するには、SSLトラフィックのように見える必要があります。

他のアイデア?

私がRDPを行うネットワーク上の別のクライアントにPINGします。

Pinging 10.8.0.6 with 32 bytes of data:
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=565ms TTL=128
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=782ms TTL=128

Ping statistics for 10.8.0.6:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 152ms, Maximum = 782ms, Average = 412ms

パフォーマンスを改善したり、pingをいくつか落としたりする方法はありますか?

編集:断片化設定を設定すると、いくつかの助けになりますか?

9
user192680

短い答え:無効にするcomp-lzo

これは古い投稿だと思いますが、OpenVPNのパフォーマンスの低下にも悩まされていました。私は、MTUの調整、sndおよびrcvバッファーの変更、mssクランプなど、すべてを試しました。 CPU負荷はごくわずかです。

気まぐれで、圧縮を無効にしました(削除されたcomp-lzoクライアントとサーバーから)およびパフォーマンスが2〜4倍に向上しました。

したがって、comp-lzo有効にすると、私の最大パフォーマンスは約25〜30 Mbit/sでしたが、それがなければ120 Mbit/s(インターネット接続速度)に達しました。

サーバーはXeon E5-2650、クライアントはCore i5-3320Mです。どちらもOpenVPN 2.3.10、AES-256-CBC、SHA512を実行しています。 Intel Chromebookもインターネット速度を最大限に利用しました。私のAndroidクライアント(14 Mbit/s-> 30 Mbit/s))でパフォーマンスが2倍になり、IKEv2トンネル速度と一致しました。

12
Ingenium

TCP-over-TCP の問題が原因で、TCPはUDPより/ much /遅くなります。基本的に、TCPはパケットドロップ/輻輳に依存して接続パラメーターを識別し、TCP-over-OpenVPN接続ではこれらのいずれも発生しません。しかし、これはオプションではないと述べました。

mtu-discオプションは、接続に最適なMTU設定を自動的に検出します。イーサネットヘッダーのサイズを含むOpenVPNのMTU設定など、さまざまな場所でわずかな不一致があります。 [ 1 ]

君の tun-mtu 65KBパケットはインターネットを通過する際に多くの遅延の問題が発生するため、設定は大規模です(IPv4ジャンボパケットのサイズは約9000バイトで、ほとんどがローカルネットワークで機能します)。代わりに、1300などの1460未満を試して、MTUが問題かどうかを確認してください。

5
chronospoon

これは少し遅れるかもしれませんが、私がしたことを試すことができます:

すべてのmss、mtuなどの関連オプションを削除します

機関でポートスキャンを実行し、UDPポートを選択します。通常、53のGRE/123 NDPポートが開いているはずです。

これらの行をサーバー構成に追加します(ref here

#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
Push "sndbuf 393216"
Push "rcvbuf 393216"

私はこれらの設定を完全には理解していませんが、確かに助けになりました、いくつかはそれが多くの助けになると言います、私の経験では、それは私のスループットを+/- 30%増加させました

これらのポートの1つでサーバーを起動すると、次のようになります。P

お役に立てれば!

2
Cybex

sndbufおよびrcvbufは、OSがより高速な設定に最適化されていても、linux/unix/openvpnのANCIENT設定をダイヤルアップ日から修正して、低速設定を最適化します。

sndbuf/rcvbufを0に設定すると、OSの設定が使用されます

プッシュは、クライアントが適切に設定されていることを確認するために使用されますが、そこには値が必要です。

0
jack