Miks ruuteri Wi-Fi hinnang ei ennusta VPN-i läbilaskevõimet
Reklaamitud Wi-Fi kiirus ja mõõdetud VPN-i kiirus kirjeldavad eri kihte. Käi see järjestatud kontroll läbi, enne kui ostad kiirema ruuteri.
Ruuter, millel on 3,000 Mbps Wi-Fi märk, võib siiski liigutada krüpteeritud liiklust vaid murdosaga sellest numbrist, ja kumbki number ei ole ebaaus. Raadiohinnang kirjeldab traadita lüli parimat võimalikku modulatsiooni, mida kiipkomplekt toetab; VPN-i number kirjeldab, kui kiiresti suudab üks seade krüpteeritud pakette läbi ruuteri protsessori ja välja sinu juurdepääsuliinilt lükata. Need on eri kihid, eri paketisuurused ja eri mõõtmismeetodid. Käsitle karbil olevat numbrit laena, milleni keegi ei jõua, mitte tunnelikiiruse prognoosina.
Samm 1: Kaardista neli kihti, mis numbrit piiravad
Peaaegu iga aeglase ruuteri kaebus, millega olen tegelenud, maandub ühes neljast astmest: traadita lüli, WAN-i juurdepääsukiirus, edastustee (NAT, tulemüür, ühenduste jälgimine) või VPN-i krüptotee. Need kuhjuvad ja aeglaseim aste määrab tulemuse. Reklaamitud Wi-Fi kiirus räägib ainult esimesest astmest ja räägib sellest heldelt.
See number tuleb voogude arvust korda kanali laius korda kõrgeim modulatsioon, mille üle kiipkomplekt saab läbi rääkida. 2x2 raadio 5 GHz juures 80 MHz juures 1024-QAM-iga reklaamitakse ligi 1,200 Mbps, kuid Wi-Fi on jagatud pooldupleksmeedium: kliendid vahetuvad, kordused ja haldusliiklus põletavad eetriaega ning TCP lisab oma ülekulu. Klient, kes räägib ideaaltingimustes läbi tippkiiruse, mõõdab tavaliselt tublisti alla poole sellest ja vähem, kui naabervõrgud ilmuvad.
| Symptom | Tier to suspect first |
|---|---|
| Wired clients are slow too | WAN access or forwarding path |
| Only Wi-Fi clients are slow | Radio, airtime, or channel width |
| One stream is slow, four parallel streams add up | Per-connection CPU path, not the link |
| Every stream is slow and one core sits at 100% | Crypto path |
| Fast to LAN hosts, slow to the internet | WAN, not the tunnel |
Kui tabel osutab raadiole, paranda esmalt traadita pool: riba, kanali laius, kaugus. Kui see osutab raadiost allapoole, loevad järgmised neli sammu ja ükski antenniost seda ei muuda.
Samm 2: Võta kaabelbaasjoon, enne kui raadiot puudutad
Pane sülearvuti Etherneti ja mõõda esmalt tee ilma tunnelita, sest see annab sulle nimetaja. Käivita läbilaskevahend teisel pool, VPS-is või koduserveris, mis VPN-i lõpetab, ja suuna klient selle avalikule aadressile, et liiklus läbiks sinu ruuteri ja juurdepääsuliini.
# on the far host (VPN endpoint)
iperf3 -s
# wired client, direct to the endpoint's public address
iperf3 -c 203.0.113.10 -t 30
# same client, four parallel streams
iperf3 -c 203.0.113.10 -t 30 -P 4
Kaks numbrit sellest plokist vastavad eri küsimustele. Üks voog näitab ühenduse kohta laeni, mis hõlmab TCP-akna käitumist ja mis tahes voogupõhist vormimist teel. Neli voogu näitavad, kas lülil on mahtu, mida sa ei kasuta, sest paralleelsed vood suudavad täita toru, mida üks voog ei täida.
Hoia see ausana: sama host, kellaaeg ja kestus, ilma et kodus miski muu voogaks. Kolmekümne sekundi pikkune hulgisiire on siin õige ühik, ja RFC 6349, TCP läbilaskevõime testimise raamistik, põhineb just sellel mõttekäigul, sest lühikesed puhangud ja väikesed päringud meelitavad lüli. Kirjuta baasjoon üles, enne kui midagi muudad.
Samm 3: Käivita sama test tunnelit läbi
Nüüd korda seda lõpp-punkti tunneliaadressi vastu, sama kliendi, kestuse ja voogude arvuga, tunnel üleval ja muu liikluseta. Kahe tulemuse suhe ütleb sulle, mida krüpteerimine ja kapseldamine sellel riistvaral maksavad; absoluutne number ütleb, kas sellest tööks piisab.
Jälgi loendureid, kui ülekanne töötab. WireGuardi puhul raporteerib wg show üle kantud baite partneri kohta; OpenVPN-i puhul annab intervalliga kirjutatav olekufail sulle sama vaate.
watch -n 1 'wg show wg0 transfer'
# OpenVPN: add --status /run/openvpn/server.status 10 to the server config
tail -f /run/openvpn/server.status
Kui tunneli number on kaabelbaasjoonele lähedane, ei ole VPN sinu pudelikael ja võid selle süüdistamise lõpetada. Kui see on murdosa baasjoonest, juhtus kadu ruuteri krüpteerimis- ja edastusteel, ja järgmine samm ütleb, millises osas.
Üks hoiatus: kui väljund-IP muutub, valivad mõned kiirustesti teenused vaikselt teise mõõteserveri, nii et lõpuks võrdled kahte sihtkohta. Kinnita serveri aadress ise.
Samm 4: Loe protsessorit teena, mitte keskmisena
Ruuter, mis näitab 30 protsenti kogu protsessori koormust, võib ikka olla küllastunud: ühe tunneli töö maandub tavaliselt ühele tuumale, ühele katkestuste järjekorrale või ühele kerneli lõimele, nii et keskmine peidab lae. Vaata numbreid tuuma kaupa ja softirqi, mitte armatuurlaua näidikut.
mpstat -P ALL 1
top -H -p $(pgrep -f 'openvpn')
grep -o -m1 aes /proc/cpuinfo
Selles väljundis on olulised kolm asja. Üks tuum, mis on 100 protsendi lähedal kinni, samal ajal kui teised jõude seisavad, osutab ühendusepõhisele piirile. Suur %soft või hõivatud ksoftirqd ühel protsessoril osutab vastuvõtupoolsele paketitöötlusele, mis ei haju järjekordade vahel. Ja puuduv aes-lipp tähendab, et protsessoril pole AES-i käske, seega sümmeetriline krüpteerimine jookseb tarkvaras ja maksab paketi kohta palju rohkem.
Ka teostus loeb. Traditsiooniline kasutajaruumi OpenVPN-i eksemplar töötleb ühe tunneli pakette suuresti ühes kohas, nii et kiire mitmetuumaline masin võib selle tunneli jaoks käituda ühetuumalisena. WireGuard kerneli sees jaotab tööd protsessorite vahel, ja OpenVPN-i andmekanali mahalaadimine viib paketitöötluse samuti kerneli, kuid ainult buildides ja platvormidel, mis seda toetavad. Väide riistvarakiirenduse kohta turunduslehel ei ole tõestus, et sinu käivitatav kooditee seda kasutab.
Samm 5: Otsusta, mida muuta, just selles järjekorras
Käi see nimekiri läbi ja peatu esimesel real, mis on tõene, sest millegi muutmine sellest allpool ei liiguta numbrit.
1. Kaabli otsene läbilaskevõime on väiksem kui see, mille eest maksad: räägi teenusepakkujaga, sest tunnel ei saa luua mahtu, mida juurdepääsuliin ei anna. 2. Kaabliga otse on korras, kuid tunnelitesti ajal kinnitub üks tuum: ruuteri krüptotee on piiriks. 3. Protsessor on jõude, kuid tunnel on aeglane: kontrolli MTU-d ja fragmenteerimist, seejärel kaugema lõpp-punkti enda mahtu. 4. Aeglased on ainult Wi-Fi kliendid: vaheta riba või kanali laiust ja lepi sellega, et reklaamitud kiirus ei olnud kunagi VPN-i number.
Kui ruuter on tõesti piiriks, on ausad valikud seade AES-i käskudega ja kiirema edastusteega, kerneli-poolne tunnel nagu WireGuard kasutajaruumi oma asemel, või kliendi viimine seadmesse endasse, et ruuter lõpetaks krüpteerimise. Autenditud krüpteerimise väljalülitamine võrdlusaluse võitmiseks ei ole üks neist; see vahetab turvaomaduse numbri vastu, mis ikkagi karbiga ei klapi.
Enne millegi ostmist käivita sammud 2 ja 3 uuel seadmel sama serveri ja kestusega uuesti, seejärel võrdle suhteid, mitte tippe.