Důležitost VPN throughput na VM je rychlejší než na hostiteli...proč?

Používáme sonicwall, někteří uživatelé na SSLVPN, jiní na Global VPN. Máme 100/100 DIA Fiber připojení v kanceláři a já mám doma 750/200. Používám klienta Global VPN, protože můj počítač s tím nespolupracuje s SSLVPN.

Normálně mohu zkopírovat soubor z file serveru a běží kolem 15-20MB/s (pro referenci 1 GB soubor). Připadl jsem na VMware Workstation VM, kde mám síťové připojení nastavené na NAT. To mi umožňuje projít VPN tunelem z mé VM bez nutnosti instalace klienta. Zahájil jsem kopírování ze serveru do VM a běželo to asi 80MB/s!

Začal jsem experimentovat, testoval různě. Všechny rychlosti níže jsou SMB3 throughput.

  • Nativní VPN na hostiteli: 15-20MB/s

  • Jak je popsáno výše (Host na VPN → NAT na Win 7 VM): 80MB/s

  • Jak je popsáno výše (Host na VPN → NAT na Win 10 VM): 80MB/s

  • Instalace VPN klienta na Win 7 nebo Win 10 VM a připojení přes VM: 15-20MB/s

Zdá se, že když používám VPN nativně… jsem omezen asi na 20MB/s (pro SMB3 přenos), ale přes kouzlo NAT v VM… se dostanu na 80MB/s.

Použil jsem Wireshark na file serveru, abych zjistil případné rozdíly, MTU/pakety, atd… vypadají identicky z hostitele i z VM.

Pak jsem použil iperf na VM a hostiteli ke file serveru. Hostitel dosahoval kolem 48MB/s a VM 65MB/s.

Testoval jsem latenci… a hostitel i VM měli stejnou (27ms z domu na file server přes VPN).

Kdo má nějaké postřehy o této magii? Rád bych mohl přenášet soubory přes VPN rychlostí 80MB/s z mého hostitele!

Pokud si vzpomínám správně, VPN přidává do přenosu 8 bajtů. Takže váš paket o velikosti 1500 je nyní 1508 a je fragmentován a přenesen ve 2 paketech. Zkuste snížit velikost paketu na fyzickém stroji o 8 a věřím, že vaše throughput se zvýší.

Tyto rychlosti kopírování jsou stále neuvěřitelně pomalé. Na našem připojení 100/100 dosahuji asi 4MB kopírovacích rychlostí při běžné práci přes VPN.

VM provádí všechny výpočty na CPU, zatímco váš fyzický systém některé práce deleguje na Intel síťovou kartu. Zkuste zakázat offload na hostiteli.

Nejsem obeznámen s těmi konkrétními VPN klienty, ale pracuji s mnoha různými VPN. U klientských VPN jsem zjistil, že transportní protokol VPN, buď TCP nebo UDP, ovlivní výkon. Není to protokol přenosu souboru, například SMB, ale samotný transportní protokol, který VPN používá k zachycení provozu tunelem. Pokud je to možné, na pomalém klientovi zkontrolujte, jestli je možné použít UDP místo TCP a změňte to a otestujte. Uvidíte zlepšení!

Záleží na poskytovateli VPN, kterou používáte, a na zdroji, ke kterému se snažíte připojit. V mé práci vyvíjíme různá VPN řešení a vaše situace je normální, pokud cesta na VPN server + cesta od VPN serveru k vašemu zdroji je lepší než cesta od vašeho poskytovatele ke zdroji.
UPD Omlouvám se za předchozí chybné čtení, přehlédl jsem část, kde neinstalujete VPN klienta na VM.

Má hostitelský počítač Broadcom síťovou kartu?

To je zajímavé. Pokud bych to měl odhadnout, bude to asi něco s nastavením nebo kompatibilitou. Vaše VM má pravděpodobně lepší ovladače, a rád bych vsadil na to, že samotný VPN klient byl vyvinut a testován na VM. zkuste aktualizovat ovladače na hostiteli. Může to být také něco s NAT.
Porovnejte a sledujte.

Místo řešení problémů s rychlostí bych zkusil VPN server jako OpenVPN, Wireguard nebo SoftEther běžící na jednom ze svých serverů a porovnal, jak si vede ve srovnání se Sonicwall.

Globalní klienti budou pravděpodobně rychlejší. Někteří obcházejí gateway antivirus? Vaši VPN klienti jsou na jiné podsíti? Podle SW by měli být. Funguje to oběma způsoby, ale jejich doporučení je celkově méně náchylné k chybám.

Omezování šířky pásma podle IP (BWM) na Sonicwall?

Když instalujete VPN klienta, přidá nějakou službu do síťového adaptéru? Zkontrolujte dokumentaci, jestli ji lze deaktivovat. Ptám se na to, protože před několika lety služba (myslím, že je to NDIS filtr, ale přesně si nevzpomínám) přidaná do síťového adaptéru antivirovým softwarem zpomalovala připojení. Není nutné ji instalovat, ale při instalaci klienta se to přidá.
Také rychlý vyhledávání ukazuje toto: https://www.reddit.com/r/sysadmin/comments/flephg/slow_connection_while_using_sonicwall_global_vpn/fkz0oo0

Může to být jen špatně napsaný VPN klient, který se snaží rozdělit všechny své úkoly na všechny dostupné jádra. A podle mě má váš VM méně jader než hostitel.

Už jste to nějak vyřešili?

Asi jsem vynechal tu část… také jsem to zkoušel, postupně snižoval na 1000. Stejné výsledky!

Proč přidává těch 8 bajtů? Slyšel jsem to poprvé.

Souhlasím, proto chci přijít na to, co se děje. Na VM získávám 10MB/s (80MB/s)!

Potvrzeno, že přenos VPN je UDP! Dobrá myšlenka.

Jsou na jiné podsíti a právě jsem zkoušel deaktivovat GAV… bez změny.

Nezjistil jsem to jednoznačně. Další týden jsem to zkoušel. Viz níže aktualizace

  • Také jsem nainstaloval OpenVPN server a dostal stejný výsledek. OpenVPN server byl technicky stále za SonicWall na té zkoušce. Nezkoušel jsem přímo připojení OpenVPN na WAN (to by zcela vyloučilo SonicWall).

  • Použil jsem iPerf mezi file serverem a vzdáleným klientem a dosáhl jsem 80MB/s na obou VPN hostitelích.

  • Čas pingování mezi hostiteli zůstal kolem 30 ms

Na konci dne si myslím, že při latenci 30-40 ms lze očekávat kolem 20MBs throughput. Ještě nemohu přijít na to, proč je VM rychlejší… prostě to nedává smysl.