Sziasztok!
Segítséget kérnék mert már nem tudok mit állítani.
Adott 1db 1Gb/s-es sávszélen lévő linux debian 7 openvpn 2.3.9-el (legújabb), TUN-al és egy szintén azon a switch-en lévő teszt gép.
A problémám az, hogy ugye udp-t nem akarok használni ezért jött a tcp viszont itt jelentős a sebesség csökkenés, ez rendben is van valamilyen szinten, viszont rengeteg helyen olvastam, hogy a tcp nagyon kényes és nem egy beállítás van amit be kell lőni hozzá, ebben kérnék segítséget, hogy mi a tapasztalatotok ilyen téren, mert én már kb mindent megpróbáltam viszont 40-50Mb/s-nél többet nem sikerült kicsalnom a rendszerből. Ha itthon tesztelem 10Mb/s-es internettel akkor tcp-vel 250Kb/s-nél nem is megy többet.
Az alábbi opciókkal és értékük változtatásával próbálkoztam eddig:
tcp-nodelay
sndbuf 0
rcvbuf 0
;push "sndbuf 393216"
;push "rcvbuf 393216"
nice -10
tun-mtu 6000
fragment 0
mssfix 0
- 3569 megtekintés
Hozzászólások
megkérdezhetem, hogy udp-t miért nem akarsz haszálni?
nálunk 40-től 100Mbit-ig vannak béreltvonalakon openvpn-ek, lényegében tök default (csak a titkosítás van aes256-ra állítva), és mindenhol hozza a max. sebességet.
amúgy ez egy témábavágó cikk:
https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux
továbba úgy hallom, a softether az ilyen szempontból jobb vpn solúció, gyorsabb sokkal _állítólag_, mint az openvpn.
én nem tudom, sohasem használtam.
- A hozzászóláshoz be kell jelentkezni
Természetesen.
Az ügyfelektől tcp-n a 443-as porton vagy a 80-ason lehet kijönni.
Plusz mert ez a vpn szerver ki van téve a "világnak" és védelem szempontjából jobb a tcp, de nem ez az elsődleges szempont.
De próbáltam már UDP-vel is, sajnos ott sem volt túl sok sikerélmény, 50-80Mb/s-et tudott hozni ami még mindig karcsú, de általában ~65 körül volt.
Természetesen néztem már ezt a linket is, az értékeket be is állítottam mint fentebb láthatod. Sajnos nem segített.
A softether-t nem ismerem, de utána járok annak is, köszönöm!
- A hozzászóláshoz be kell jelentkezni
Milyen gépen próbálod? A titkosításnak azért bőven van processzor igénye.
- A hozzászóláshoz be kell jelentkezni
Értem.
A titkosítás sok cpu -t megeszik, a fentebbi linken is láthatod, hogy AES-NI képe sCPU-val sokkal sokkal gyorsabb az openvpn.
Az 50-80Mbit -et visoznt karcsúnak találom, ott valami gebaszt érzek...
De látatlanban nehéz erre okosat mondani.
Ügyfelektől biztosan csak tcp-n lehet kijönni?
"a vpn szerver ki van téve a "világnak" és védelem szempontjából jobb a tcp"
Szerintem meg tök mindegy, de a te dolgod. :)
softether:
https://www.softether.org
azt mondják, hogy a saját protokollját (tehát a saját kliensét) használva sokkal gyorsabb az openvpn-nél.
itt egy nem-objektív összehasonlítás: https://www.softether.org/@api/deki/files/12/=1.3.jpg
hm. most hogy nézegetem a feature listát, lehet, hogy én is kipróbálom hamarosan. :)
- SoftEther VPN's Solution: Using HTTPS Protocol to Establish VPN Tunnels
- VPN over ICMP, and VPN over DNS (Awesome!)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Azt nem tudom, többnyire freebsd(pfsense) alatt használunk openvpn -t. Egyébként az openssl elvileg támogatja, igen.
Ez aalpjnán le tudod "mérni":
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
Van egy régebbi clearos rendszerünk, az is funkcionál openvpn szerverként is, és se nem lassú, se nem zabálja agyon a procit, valószínűleg AES-NI -zik.
Viszont az openvpn-ben nem felejtsétek beállítani, hogy AES-t használjon, abból sem mindegy, hogy melyiket, mert az AES-NI (legalábbis freebsd alatt) csak korlátozott módokhoz tartalmaz hw utasításokat: AES128-CBC,AES256-CBC,AES256-XTS,AES256-XTS, stb.stb., utánna kell nézni.
Az openvpn alapból nem aes-t használ egybként, hanem blowfisht, amitre ugye az AES-NI nincs hatással. :)
- A hozzászóláshoz be kell jelentkezni
nyilván, ha AES-t tudja gyorsítani a CPU akkor öröm (a megfelelő kódolással) ellenben a blowfish nagyságrendekkel gyorsabb tud lenni - bár kevésbé titkos.
- A hozzászóláshoz be kell jelentkezni
azért nem vagyok benne bizots, hogy a BF nagyságrendekkel gyorsab.
hogy mennyire titkos? egy 1993-as algoritmusról beszélünk, és a készítője is mondta már évekkel ezelőtt valahol, hogy meg van lepődve, hogy valaki még használja, mert elég elavult, nem túl biztonságos már.
https://en.wikipedia.org/wiki/Blowfish_(cipher)
"Blowfish is known to be susceptible to attacks on reflectively weak keys.[9] [10] This means Blowfish users must carefully select keys as there is a class of keys known to be weak, or switch to more modern alternatives like the Advanced Encryption Standard, Salsa20, or Blowfish's more modern successors Twofish and Threefish. Bruce Schneier, Blowfish's creator, is quoted in 2007 as saying "At this point, though, I'm amazed it's still being used. If people ask, I recommend Twofish instead."[11] The FAQ for GnuPG (which features Blowfish as one of its algorithms) recommends that Blowfish should not be used to encrypt files that are larger than 4 Gb because of its small 64-bit block size.[12]"
(a 64bit blocksize vpn kapcsolatnál is gond lehet, ha valaki sniffel, könnyen összejön 4+ GB adat.)
- A hozzászóláshoz be kell jelentkezni
Az
openssl speed
szerint nem igazán gyorsabb a Blowfish:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
blowfish cbc 120276.27k 127231.79k 128785.78k 129819.49k 129080.17k
aes-128 cbc 131043.21k 141379.23k 140950.18k 147077.57k 139373.59k
AES-NI nélkül.
- A hozzászóláshoz be kell jelentkezni
"VPN over ICMP, and VPN over DNS (Awesome!)"
manapság a perverziónak már nincsenek határai... :D
- A hozzászóláshoz be kell jelentkezni
Most azt hiszed, hogy ez valami hobbiból megcsinált őrület, csak hogy demonstrálja valaki, hogy ilyet is lehet?
Hát nem. Van az az eset, amikor nagyon is jól jön, hogy ki tudsz látni olyan hálózatból, ahol minden le van tűzfalazva, csak a ping megy át. Vagy ahol semmi nincs kiengedve, de van DNS forwarding (a DNS cache üzemeltetők óriási örömére). Tény, hogy nem feltétlenül egyenes dolog, de nem árt tudni, hogy ilyen lehetőség is van.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Kene egy iperf teszt, kozben pedig nezegetni a topot hogy mizujs..
Milyen halokartya?
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
hzsolt94, neked is válaszolok itt egyben.
Tehát. A gépben maga virtuális gép QEMU alapon, 8 mag cpu-val és 4gb rammal. A memóriahasználat az semmi még a 100Mb-ot sem éri el. A CPU-val "gond" van de csak olyan téren, hogy az openvpn nem képes 1 magnál többet használni ezért "felesleges" a többi cpu, de ennek a magnak a terhelése sem megy 40% felé.
A hálókártya virtualizált típusa: VirtIO.
- A hozzászóláshoz be kell jelentkezni
És az sem mindegy, milyen fizikai CPU-ból adtad át a magot.
(Mivel nem az órajele, hanem az architektúrája jelent többet.)
További kérdés: titkosítás nélkül milyen tempóra képes a VM kifelé?
- A hozzászóláshoz be kell jelentkezni
Xenon X5570
Titkosítás nélkül is érdekes a jelenség, már próbáltam úgy is, kb ~5Mb/s-el tudott többet.
Edit: Csináltam egy sebesség tesztet a VPN szerveren DL: 822.81 Mbit/s UP: 355.63 Mbit/s, tehát nem a hálókártyával lesz gond.
- A hozzászóláshoz be kell jelentkezni
Fogalmam sincs qemu alatt hogyan viselkedik az openvpn, ezek szerint nem jól. Egyébként 1 Gbps helyett 355 Mbps az nem igazán van rendben.
A kérdésedre sajnos nem igazán lehet válaszolni, mindenféle tuning nélkül lehet csinálni 500-800 Mbps-t openvpn-el, úgyhogy itt biztosan más, kialakításbeli gond is van.
- A hozzászóláshoz be kell jelentkezni
A 335Mb/s-el ne foglalkozz az csak azért van mert vacak a hely ahol néztem, de akkor is több mint 50Mb/s.
Igen, ezért is kérdeztem már itt mert elfogytak az ötletek, lehet hogy valami hardver de remélem azért lehet alkotni valamit vele.
- A hozzászóláshoz be kell jelentkezni
Simán lehet hogy a virtualizációd ennyire hazavágja a teljesítményt, függetlenül attól hogy mit mutat a processzor kihasználtságod. Meg "simán" kijelentésem a beállításokra (és UDP-re) vonatkozik, nem a gép teljesítményére.
Olvasnivaló, hátha segít:
https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux
http://datatag.web.cern.ch/datatag/howto/tcp.html
- A hozzászóláshoz be kell jelentkezni
+1
Ha qemu-ban virtio-t használsz, annak papíron simán kéne tudnia 1Gbit/s-et ilyen processzor mellett. UDP-n valószínűleg fogja is tudni.
Hogy TCP-n mégsem tud ennyit az arra utal, hogy bevisz egy kis latency-t vagy jittert a rendszerbe, ami miatt a TCP flow control már nem megy fel a max áteresztőképességig. Na erre az openvpn érzékeny. Ugyanezt egyébként VMware-en én is tapasztaltam.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
iperf-el tudja is ez csak sima speedtest volt viszont udp-re kapcsolva SEM megy át sokkal több mint írtam. Sajnos csak olyan 80Mb/s körül max.
- A hozzászóláshoz be kell jelentkezni
Ok. Ha egy mód van rá, én először megpróbálnám az openvpn UDP üzemmódját optimalizálni, ahogy lejjebb írtam első körben az MTU kisebbre állításával. Az UDP esetén legalábbis lényegesen könnyebben átlátható, hogy mi történik, és ha a végén lesz jól működő UDP-s konfigod, akkor onnan lehet továbblépni a TCP irányba.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy már annyire el van állítgatva az a tesztrendszer, hogy újra kéne húzni, és úgy mérni. :)
Aztán lépésről lépésre állítani ezt-azt. :)
Kérdezőnek: a softether -t próbáld ki, a saját protokolljával, ma megkérdeztem az ismerősömet, aki használja. Igaz, hogy E5 Xeon servereken, de gigabitet ki tudja tolni a softether-rel. Skálázódik több procimagon a softether, ezért nem tűnik fel, hogy nagy lenne a cpu használat. Ja, vmware ESXi 5 alatt, ubuntu és windows7 virtuális gépekkel van használva, külső kliensek meg windows és mac os x.
- A hozzászóláshoz be kell jelentkezni
xenon processzor?
--
>'The time has come,' the Walrus said<
- A hozzászóláshoz be kell jelentkezni
Jaja, az szép lehet. :)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ha már érdekes dolgok:
1,5 GHz ARM Cortex A5: OpenVPN 50 Mbps (Odroid-C1)
2 GHz ARM Cortex A15: becslésem szerint 120..150 Mbps procimagonként.
- A hozzászóláshoz be kell jelentkezni
Eros fennyel megy...
- A hozzászóláshoz be kell jelentkezni
Elnézést, Xeon, csak elírtam.
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
Hm, nálunk Xeon E5-ök vannak, régebben voltak Xeon X55xx procik. Innen tudom, hogy SOKKAL SOKKAL SOKKAL gyorsabbak az E3/E5 procik, nagyon sokkal!
Lehet, hogy ez ennyit tud, egy magon..... Illetve ez AES-NI képes egyáltalán? Emlékeim szerint nem.
Amúgy milyen OS?
- A hozzászóláshoz be kell jelentkezni
Debian 7-es. 64bit.
- A hozzászóláshoz be kell jelentkezni
Azt próbáld még ki légyszive,s hogy kapcsold ki a titkosítást az openvpn -ben.
És hogy úgy mit mutat.
- A hozzászóláshoz be kell jelentkezni
cipher none hozzáadva kliens és szerver oldalon, semmi különbség itt valahol máshol lesz a hiba.
- A hozzászóláshoz be kell jelentkezni
hm.
szerintem eljött az idő, hogy újrahúzd a vm-et, amiben tesztelgetsz, lehe,t hogy sikerült már nagyon elállítani valamit. :)
- A hozzászóláshoz be kell jelentkezni
"DL: 822.81 Mbit/s UP: 355.63 Mbit/s"
Ez speedtest, vagy iperf a vpn szerver és a vpn kliens között? (természetesen vpn nélkül, kipublikálva az iperf portot) Mert utóbbi volna az érdekes.
Pont digi-nél találkoztam olyannal, hogy speedtest szerint megvolt a szerveren (digi) 800/210 mbit, kliensen (upc) a 120/10 mbit, mégsem ment át szerver->kliens irányban iperf-fel 40 mbit-nél több.
Valószinű a két szolgáltató közötti kapcsolatban volt a hiba. Ill. van is, ez később magától felment 80-100 mbit-re, de még ez is kevés, csak már nem foglalkozok vele, mert elég, ugyanezt hozza SSTP-n is.
- A hozzászóláshoz be kell jelentkezni
Ez speedtest, a kliens és a vpn között iperf-el ~980Mb/s-et mutatott.
- A hozzászóláshoz be kell jelentkezni
akkor ez valami más gond.
- A hozzászóláshoz be kell jelentkezni
Szerintem az MTU-val kéne még kicsit kísérletezni. Az ilyen "10-20kB/s-re lelassul a net" problémák leggyakrabban túl nagy MTU miatti IP fragmentálás miatt vannak. (Ez a magyarázat leginkább UDP-re igaz, TCP-nél az újraszegmentálás miatt sokkal bonyolultabb a helyzet).
Ha még nem tetted meg, első körben biztos-ami-biztos levenném 1400 byte-ra a tun interfészen és megnézném úgy.
Sajnos nekem is vannak rossz emlékeim erről, az openvpn sebességoptimalizálása kb feketemágia. UDP-n általában elviselhető, de TCP-n mindig bajok vannak vele. Pontosabban a TCP in TCP a problémás, mert a külső (az openvpn tunnel session-je) pufferel a szegmentálás és transmit window növekedése miatt. A belső (tunnelen belül futó) tcp session ebből az ACK-ok egyenetlen visszaérkezése miatt a latency durva ingadozását látja, emiatt visszaveszi a window size-ot -> lelassul. Jópár éve volt, hogy utoljára komolyabban foglalkoztam vele, de akkor nem igazán sikerült megoldást találni rá, és nem vagyok biztos benne, hogy egyáltalán van-e rá jó megoldás.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Milyen a net kapcsolat?
Annak mtu-ja?
Régen openvpn-eztem, de
nem úgy van, hogy a link-mtu-nál kisebb tun-mtu kellene? Honnan van ez a 6000-es érték?
Sőt, úgy emlékszem, ha a link-mtu jól van megadva (és csak az), akkor az openvpn magának számol megfelelő tun-mtu-t. Meg akkor már mssfix 1
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek a segítségét, a megoldás is megszületett:
A probléma az volt, hogy KVM alatt a VirtIO nem ment megfelelő sávszélességgel ha VPN-t akartam használni, ezért telepítettem egy Centos 7-et E1000-el és máris jobban produkált, de OpenVPN-el csak 80Mb/s-et sikerült kisajtolni TCP-n át, így nem is próbálkoztam tovább, mert már szorított az idő, a végső megoldást a softether jelentette, remek program és jók a sebesség tesztek is vele.
Belföldön amit éles helyzetbe tudtunk mérni az 120Mb/s (ennyit tud a szolgáltató).
Külföldön 100Mb/s (ennyit tud a szolgáltató).
Tehát, amit lehetett azt tudja a rendszer.
Köszönök minden segítséget!
- A hozzászóláshoz be kell jelentkezni