Zašto Wi-Fi ocjena vašeg rutera ne predviđa VPN propusnost
Oglašena Wi-Fi brzina i izmjerena VPN brzina opisuju različite slojeve. Prođite kroz ovu uređenu provjeru prije nego što kupite brži ruter.
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.
| 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 |
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.