Ruter s Wi-Fi oznakom od 3,000 Mbps ipak može prenositi šifrirani promet brzinom djelića te brojke, i nijedna od tih dviju brojki nije nepoštena. Radio ocjena opisuje najbolju modulaciju bežične veze koju čipset podržava; brojka za VPN opisuje koliko brzo jedan uređaj može gurati šifrirane pakete kroz procesor rutera i izvan vašeg pristupnog voda. To su različiti slojevi, različite veličine paketa i različite metode mjerenja. Brojku na kutiji tretirajte kao plafon do kojeg nitko ne stiže, a ne kao prognozu brzine vašeg tunela.

Korak 1: Mapirajte četiri sloja koji ograničavaju brojku

Gotovo svaka žalba na spor ruter s kojom sam radio pada u jedan od četiri nivoa: bežična veza, brzina WAN pristupa, put prosljeđivanja (NAT, firewall, praćenje veza) ili VPN kripto put. Oni se slažu, a najsporiji nivo određuje rezultat. Oglašena Wi-Fi brzina govori samo o prvom nivou, i to govori izdašno.

Ta brojka dolazi od broja tokova pomnoženog širinom kanala i najvišom modulacijom koju čipset može dogovoriti. Radio 2x2 na 5 GHz pri 80 MHz s 1024-QAM oglašava se blizu 1,200 Mbps, ali Wi-Fi je dijeljeni, poludupleksni medij: klijenti se izmjenjuju, ponovni prijenosi i upravljački promet troše vrijeme u eteru, a TCP dodaje svoj vlastiti teret. Klijent koji dogovori najveću brzinu u idealnim uvjetima obično izmjeri znatno manje od polovine toga, a još manje kad se pojave susjedne mreže.

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

Ako tablica pokazuje na radio, prvo popravite bežičnu stranu: pojas, širinu kanala, udaljenost. Ako pokazuje ispod radija, sljedeća su četiri koraka važna, i nikakva količina kupovine antena to neće promijeniti.

Korak 2: Uzmite žičanu osnovnu liniju prije nego dirnete radio

Stavite laptop na Ethernet i prvo izmjerite put bez tunela, jer to vam daje nazivnik. Pokrenite alat za propusnost na suprotnoj strani, na VPS-u ili kućnom serveru koji završava VPN, i usmjerite klijenta na njegovu javnu adresu da promet prođe kroz vaš ruter i pristupni vod.

# 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

Dvije brojke iz tog bloka odgovaraju na različita pitanja. Jedan tok pokazuje plafon po vezi, koji uključuje ponašanje TCP prozora i oblikovanje po toku na putu. Četiri toka pokazuju ima li veza kapacitet koji ne koristite, jer paralelni tokovi mogu napuniti cijev koju jedan tok ne može.

Neka bude pošteno: isti host, doba dana i trajanje, bez ičega drugog što struji u kući. Prijenos trideset sekundi je prava jedinica ovdje, a RFC 6349, okvir za testiranje TCP propusnosti, izgrađen je na tom razmišljanju, jer kratki udari i mali zahtjevi laskaju vezi. Zapišite osnovnu liniju prije nego što bilo šta promijenite.

Korak 3: Pokrenite isti test kroz tunel

Sada to ponovite prema adresi tunela na odredištu, s istim klijentom, trajanjem i brojem tokova, uz podignut tunel i bez drugog prometa. Odnos dvaju rezultata kaže koliko šifriranje i enkapsulacija koštaju na tom hardveru; apsolutna brojka kaže je li to dovoljno za posao.

Gledajte brojače dok prijenos traje. Na WireGuardu wg show prijavljuje prenesene bajtove po partneru; na OpenVPN-u datoteka statusa koja se piše u intervalu daje vam isti pogled.

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

Ako je brojka tunela blizu žičane osnovne linije, VPN nije vaše usko grlo i možete ga prestati kriviti. Ako je djelić osnovne linije, gubitak se dogodio unutar ruterovog kripto i puta prosljeđivanja, a sljedeći korak kaže koji dio.

Jedno upozorenje: kad se izlazni IP promijeni, neke usluge za testiranje brzine tiho odaberu drugi mjerni server, pa na kraju poredite dvije različite destinacije. Sami fiksirajte adresu servera.

Korak 4: Čitajte procesor kao put, a ne kao prosjek

Ruter koji pokazuje 30 posto ukupnog opterećenja procesora i dalje može biti zasićen: rad jednog tunela obično pada na jedno jezgro, jedan red prekida ili jednu nit kernela, pa prosjek skriva plafon. Gledajte brojke po jezgru i softirq umjesto mjerača na nadzornoj ploči.

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

Tri stvari su važne u tom izlazu. Jedno jezgro prikovano blizu 100 posto dok ostala miruju pokazuje na ograničenje po vezi. Visok %soft ili zauzet ksoftirqd na jednom procesoru pokazuje na obradu paketa na strani prijema koja se ne širi po redovima. A nedostajuća zastavica aes znači da procesor nema AES instrukcije, pa simetrično šifriranje radi u softveru i košta mnogo više po paketu.

I implementacija je važna. Tradicionalna OpenVPN instanca u korisničkom prostoru obrađuje pakete jednog tunela velikim dijelom na jednom mjestu, pa se brza višejezgrena kutija za taj tunel može ponašati kao jednojezgrena. WireGuard u kernelu raspoređuje posao po procesorima, a OpenVPN-ovo rasterećenje podatkovnog kanala također premješta obradu paketa u kernel, ali samo u buildovima i na platformama koje to podržavaju. Tvrdnja o hardverskom ubrzanju na marketinškoj stranici nije dokaz da je koristi putanja koda koju pokrećete.

Korak 5: Odlučite šta promijeniti, tim redom

Prođite kroz ovaj spisak i zaustavite se na prvom redu koji je istinit, jer promjena bilo čega ispod njega neće pomjeriti brojku.

1. Žičana direktna propusnost je niža od onoga što plaćate: razgovarajte s provajderom, jer tunel ne može stvoriti kapacitet koji pristupni vod ne daje. 2. Žičana direktna veza je u redu, ali jedno jezgro se prikuje tijekom testa tunela: ruterov kripto put je granica. 3. Procesor miruje, ali tunel je spor: provjerite MTU i fragmentaciju, zatim vlastiti kapacitet udaljenog odredišta. 4. Spori su samo Wi-Fi klijenti: promijenite pojas ili širinu kanala i prihvatite da oglašena brzina nikada nije bila brojka za VPN.

Kad ruter zaista jest granica, poštene opcije su uređaj s AES instrukcijama i bržim putem prosljeđivanja, tunel na strani kernela poput WireGuarda umjesto onog u korisničkom prostoru, ili premještanje klijenta na sam uređaj da ruter prestane šifrirati. Isključivanje autentificiranog šifriranja da biste dobili benchmark nije jedna od njih; ono mijenja sigurnosno svojstvo za brojku koja se ipak neće poklopiti s kutijom.

Prije nego bilo šta kupite, ponovno pokrenite korake 2 i 3 na novom uređaju s istim serverom i trajanjem, pa uporedite odnose, a ne vrhove.

Povezani članci