OpenVPN Performansını Artırma


10

OpenVPN performansımı iyileştirmeye çalışıyorum ve şu anki kurulumum:

 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

MÜŞTERİ:

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'de bulduğumdan MTU ve MSSFIX'te bazı değişiklikler yaptım.

Yapabileceğim herhangi bir çekirdek değişikliği var mı? Bu bir CentOS 6.x kutusudur. BSD tabanlı bazı şeyler buldum ama Linux için işe yaramayan bir şey yok.

TCP'nin UDP'den daha yavaş olduğunu biliyorum, ancak ağdaki bir güvenlik duvarından geçmek için SSL trafiği gibi görünebilmeliyim.

Diğer fikirler?

Ağda RDP yaptığım başka bir istemciye 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

Performansı artırmanın veya ping'i düşürmenin herhangi bir yolu var mı?

EDIT: Parçalanma ayarını yapmak bazı yardımcı olur mu?


I know TCP is slower then UDP but I need to be able to look like SSL traffic to get thru a firewall on the network.Ağ yöneticinizden neden iş yerinde openvpn portunu açmasını istemiyorsunuz? İlgili bir notta, bu soru olduğu gibi Licensing, legal advice, and *circumvention of security or policy*açıklayacağım SSS şartlarını ihlal edebilir .
prateek61

1
Bu konuda yasadışı bir şey yok. Kendi sistemlerime uzaktan erişmenin tek yolu bu. :)

2
Nerede olursanız olun güvenlik duvarı politikasını atlamaktan daha çok bahsediyordum. Neden ağ yöneticisinden bağlantı noktasını açmasını istemiyorsunuz? Gerçekten yasallıktan, daha çok güvenlik politikasını atlatmaktan bahsetmiyordum.
prateek61

Belki sshuttle sizin için daha iyi çalışır tcp-over-tcp vpn
ptman

Yanıtlar:


14

Kısa cevap: devre dışı comp-lzo.

Bunun eski bir gönderi olduğunu anlıyorum, ama aynı zamanda düşük OpenVPN performansından da muzdariptim. Her şeyi denedim, MTU'yu ayarladım, snd ve rcv tamponlarını değiştirdim, mss kenetleme, adını ver. CPU yükü ihmal edilebilir düzeydeydi.

Bir hevesle, sıkıştırmayı devre dışı bıraktım ( comp-lzoistemciden ve sunucudan kaldırıldı ) ve performans 2-4x arttı.

Böylece, comp-lzoetkinleştirdiğimde maksimum performansım 25-30 Mbit / s idi ve onsuz 120 Mbit / s'ye (internet bağlantı hızım) çarptım.

Sunucu bir Xeon E5-2650, istemci Core i5-3320M'dir. Her ikisi de OpenVPN 2.3.10, AES-256-CBC, SHA512 kullanıyor. Intel Chromebook'um da internet hızımı en üst düzeye çıkardı. IKEv2 tünel hızıyla eşleşen Android istemcilerimdeki performans (14 Mbit / s -> 30 Mbit / s) ikiye katlandı.


6

TCP üzerinden TCP sorunu nedeniyle TCP , UDP'den / çok / yavaş olacaktır . Temel olarak, TCP bağlantı parametrelerini tanımlamak için paket düşüşlerine / tıkanıklığına dayanır ve OpenVPN üzerinden TCP bağlantılarınız bunlardan hiçbiriyle karşılaşmaz. Ama bunun bir seçenek olmadığını söyledin.

mtu-discBağlantınız için en uygun MTU ayarlarını otomatik olarak bulma seçeneğini de deneyebilirsiniz . Ethernet üstbilgisinin boyutu da dahil olmak üzere OpenVPN'in MTU ayarı gibi farklı yerlerde hafif uyuşmazlıklar vardır. [ 1 ]

65 tun-mtuKB'lık bir paketin internette çok fazla gecikme sorunu olacağı için ayarınız çok büyük (IPv4 jumbo paketleri yaklaşık 9000 bayt boyutunda ve çoğunlukla yerel ağlarda çalışıyor). MTU'nun sorun olup olmadığını görmek için bunun yerine 1300 gibi 1460'ın altında bir şey deneyin.


2
Teşekkürler, bu OpenVPN üzerinde çalışmak için bir postgresql-sorgu alma ile sorunumu çözdü. Tek bir sütun üzerinden sorgulama yaparken çalıştı, ancak tüm sütun için çalışmadı. Görünüşe göre bu, varsayılan 1500 MTU Boyutundan kaynaklandı. 1300'e ayarlamak yardımcı oldu!
Christian Benke

2

Bu biraz geç olsa da, ne yaptığımı deneyebilirsiniz:

ilgili tüm mss, mtu vb. seçenekleri kaldır

kurumunuzda bir port taraması yapın ve bir UDP portu seçin, genellikle 53 GRE / 123 NDP portu açık olmalıdır:

Bu satırları sunucu yapılandırmanıza ekleyin ( buraya bakın )

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

Bu ayarları tam olarak anlamıyorum ama kesinlikle yardım ettiler, bazıları bunun çok yardımcı olduğunu söylüyor, tecrübelerime göre, üretimimi +/-% 30 oranında artırdı

Sunucuyu bu bağlantı noktalarından birinde başlatın ve gitmek için iyi olmalısınız: P

Bu yardımcı olur umarım!


9
-1 çok fazla vodoo için ve gerçekte ne yaptığını anlamayan. Dürüst olmak gerekirse, bir şey tavsiye etmekten sorumsuzum.
Preexo

0

sndbuf ve rcvbuf, işletim sistemi daha hızlı olanlar için optimize edilmiş olsa da, daha yavaş ayarlar için optimize etmek amacıyla linux / unix / openvpn'deki ANCIENT ayarını çevirmeli günlerden düzeltir

0 olarak ayarlanan sndbuf / rcvbuf, işletim sisteminin ayarlarını kullanır

push istemcinin doğru ayarlandığından emin olmak için kullanılır, ancak orada bir değere ihtiyacınız vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.