Maršrutētājs ar 3,000 Mbps Wi-Fi uzlīmi joprojām var pārvietot šifrētu satiksmi tikai ar nelielu daļu no šī skaitļa, un neviens no abiem skaitļiem nav negodīgs. Radio vērtējums apraksta labāko iespējamo bezvadu saites modulāciju, ko atbalsta mikroshēmojums; VPN skaitlis apraksta, cik ātri viena ierīce var izstumt šifrētas paketes caur maršrutētāja procesoru un ārpus jūsu piekļuves līnijas. Tie ir dažādi slāņi, dažādi pakešu izmēri un dažādas mērīšanas metodes. Uzskatiet skaitli uz kastes par griestiem, kurus neviens nesasniedz, nevis par jūsu tuneļa ātruma prognozi.

Solis 1: iezīmējiet četrus slāņus, kas ierobežo skaitli

Gandrīz katra sūdzība par lēnu maršrutētāju, ar ko esmu strādājis, nonāk vienā no četriem līmeņiem: bezvadu saite, WAN piekļuves ātrums, pārsūtīšanas ceļš (NAT, ugunsmūris, savienojumu izsekošana) vai VPN šifrēšanas ceļš. Tie sakrājas, un lēnākais līmenis nosaka rezultātu. Reklamētais Wi-Fi ātrums runā tikai par pirmo līmeni, un runā par to dāsni.

Šis skaitlis rodas no plūsmām, kas reizinātas ar kanāla platumu un ar augstāko modulāciju, par kuru mikroshēmojums var vienoties. 2x2 radio 5 GHz ar 80 MHz un 1024-QAM tiek reklamēts tuvu 1,200 Mbps, bet Wi-Fi ir koplietota pusdupleksa vide: klienti mainās, atkārtotas pārraides un pārvaldības satiksme dedzina gaisa laiku, un TCP pievieno savas izmaksas. Klients, kas ideālos apstākļos vienojas par augstāko ātrumu, parasti mēra krietni zem puses no tā, un vēl mazāk, kad parādās kaimiņu tīkli.

SymptomTier to suspect first
Wired clients are slow tooWAN access or forwarding path
Only Wi-Fi clients are slowRadio, airtime, or channel width
One stream is slow, four parallel streams add upPer-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 internetWAN, not the tunnel

Ja tabula norāda uz radio, vispirms sakārtojiet bezvadu pusi: joslu, kanāla platumu, attālumu. Ja tā norāda zem radio, svarīgi ir nākamie četri soļi, un nekāda antenu pirkšana to nemainīs.

Solis 2: pirms radio aizskaršanas paņemiet vadu bāzes līniju

Pievienojiet klēpjdatoru Ethernet un vispirms izmēriet ceļu bez tuneļa, jo tas dod saucēju. Palaidiet caurlaidības rīku otrā pusē, VPN pabeidzošajā VPS vai mājas serverī, un vērsiet klientu uz tā publisko adresi, lai satiksme iet caur jūsu maršrutētāju un piekļuves līniju.

# 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

Divi skaitļi no šī bloka atbild uz dažādiem jautājumiem. Viena plūsma parāda griestus vienam savienojumam, tostarp TCP loga uzvedību un jebkuru plūsmas veidošanu ceļā. Četras plūsmas rāda, vai saitei ir neizmantota jauda, jo paralēlas plūsmas var piepildīt cauruli, ko viena plūsma nepiepilda.

Turiet to godīgi: tas pats resursdators, diennakts laiks un ilgums, un mājās nekas cits nestraumo. Trīsdesmit sekunžu lielapjoma pārsūtīšana šeit ir pareizā vienība, un RFC 6349, TCP caurlaidības testēšanas ietvars, balstās tieši uz šo pamatojumu, jo īsi uzplaiksnījumi un mazi pieprasījumi saitei glaimo. Pierakstiet bāzes līniju, pirms kaut ko maināt.

Solis 3: palaidiet to pašu testu caur tuneli

Tagad atkārtojiet to pret galapunkta tuneļa adresi, ar to pašu klientu, ilgumu un plūsmu skaitu, tunelim esot augšā un bez citas satiksmes. Abu rezultātu attiecība pasaka, cik šifrēšana un iekapsulēšana maksā uz šīs aparatūras; absolūtais skaitlis pasaka, vai ar to pietiek darbam.

Vērojiet skaitītājus, kamēr notiek pārsūtīšana. WireGuard gadījumā wg show ziņo pārsūtītos baitus uz vienu partneri; OpenVPN gadījumā statusa fails, kas tiek rakstīts ar intervālu, dod to pašu skatu.

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

Ja tuneļa skaitlis ir tuvu vadu bāzes līnijai, VPN nav jūsu šaurā vieta, un jūs varat pārstāt to vainot. Ja tas ir tikai daļa no bāzes līnijas, zudums notika maršrutētāja šifrēšanas un pārsūtīšanas ceļā, un nākamais solis pasaka, kurā daļā.

Viens brīdinājums: tiklīdz mainās izejas IP, daži ātruma testu pakalpojumi klusi izvēlas citu mērīšanas serveri, tāpēc galu galā salīdzināt divus dažādus galamērķus. Servera adresi nofiksējiet paši.

Solis 4: lasiet procesoru kā ceļu, nevis kā vidējo

Maršrutētājs, kas rāda 30 procentus kopējā procesora, joprojām var būt piesātināts: viena tuneļa darbs parasti nonāk vienā kodolā, vienā pārtraukumu rindā vai vienā kodola pavedienā, tāpēc vidējais slēpj griestus. Skatiet skaitļus pa kodoliem un softirq, nevis paneli rādītāju.

mpstat -P ALL 1
top -H -p $(pgrep -f 'openvpn')
grep -o -m1 aes /proc/cpuinfo

Šajā izvadē svarīgas trīs lietas. Viens kodols, kas piesprausts pie 100 procentiem, kamēr pārējie dīkstāvē, norāda uz viena savienojuma robežu. Liels %soft vai aizņemts ksoftirqd vienā procesorā norāda uz uztveršanas puses pakešu apstrādi, kas neizplatās pa rindām. Un trūkstošais aes karodziņš nozīmē, ka procesoram nav AES instrukciju, tāpēc simetriskā šifrēšana darbojas programmatūrā un maksā daudz vairāk uz paketi.

Arī ieviešanai ir nozīme. Tradicionāla OpenVPN instance lietotāja telpā viena tuneļa paketes lielākoties apstrādā vienā vietā, tāpēc ātra daudzkodolu kaste šim tunelim var izturēties kā vienkodola. WireGuard kodolā sadala darbu starp procesoriem, un OpenVPN datu kanāla izkraušana arī pārvieto pakešu apstrādi kodolā, bet tikai tajos būvējumos un platformās, kas to atbalsta. Apgalvojums par aparatūras paātrinājumu mārketinga lapā nav pierādījums, ka jūsu izpildītais koda ceļš to izmanto.

Solis 5: izlemiet, ko mainīt, tieši šajā secībā

Ejiet pa sarakstu uz leju un apstājieties pie pirmās patiesās rindas, jo kaut kā maiņa zem tās skaitli nepakustinās.

1. Vadu tiešā caurlaidība ir zemāka par to, par ko maksājat: runājiet ar pakalpojumu sniedzēju, jo tunelis nevar radīt jaudu, ko piekļuves līnija nedod. 2. Vadu tiešais ir kārtībā, bet tuneļa testa laikā viens kodols piesprādzējas: maršrutētāja šifrēšanas ceļš ir robeža. 3. Procesors ir dīkstāvē, bet tunelis ir lēns: pārbaudiet MTU un fragmentāciju, pēc tam attālā galapunkta paša jaudu. 4. Lēni ir tikai Wi-Fi klienti: mainiet joslu vai kanāla platumu un pieņemiet, ka reklamētais ātrums nekad nav bijis VPN skaitlis.

Kad maršrutētājs patiešām ir robeža, godīgās iespējas ir ierīce ar AES instrukcijām un ātrāku pārsūtīšanas ceļu, kodola puses tunelis, piemēram, WireGuard, lietotāja telpas tuneļa vietā, vai klienta pārcelšana uz pašu ierīci, lai maršrutētājs pārstātu šifrēt. Autentificētas šifrēšanas izslēgšana, lai uzvarētu etalonuzdevumā, nav viena no tām; tā samaina drošības īpašību pret skaitli, kas tomēr nesaskanēs ar kasti.

Pirms kaut ko pērkat, vēlreiz palaidiet 2 un 3 soļus jaunajā ierīcē ar to pašu serveri un ilgumu, un pēc tam salīdziniet attiecības, nevis maksimumus.

Saistītie raksti