Роўтар з шыльдай Wi-Fi на 3,000 Mbps усё яшчэ можа перадаваць шыфраваны трафік з доляй ад гэтай лічбы, і ні адна з дзвюх лічбаў не хлусіць. Радыйная адзнака апісвае найлепшую мадэляцыю бясшротавага звяна, якую падтрымлівае чыпсэт; лічба VPN апісвае, як хутка адна прылада можа штурхаць шыфраваныя пакеты праз працэсар роўтара і за межы вашага ўваходнага канала. Гэта розныя ўзроўні, розныя памеры пакетаў і розныя метады вымярэння. Стаўцеся да лічбы на скрынцы як да столі, якой ніхто не дасягае, а не як да прагнозу хуткасці вашага тунеля.

Крок 1: Пабудуйце карту чатырох узроўняў, якія абмяжоўваюць лічбу

Практычна кожная скарга на павольны роўтар, з якой я працаваў, трапляе ў адзін з чатырох ярусаў: бясшротавае звяно, хуткасць доступу WAN, шлях перасылкі (NAT, файрвол, адсочванне злучэнняў) або шлях шыфравання VPN. Яны накладаюцца, і самы павольны ярус вызначае вынік. Аб'яўленая хуткасць Wi-Fi гаворыць толькі пра першы ярус і гаворыць пра яго шчодра.

Гэтая лічба паходзіць з колькасці патокаў, памножанай на шырыню канала і на самую высокую мадэляцыю, якую можа ўзгадніць чыпсэт. Радыё 2x2 на 5 GHz пры 80 MHz з 1024-QAM аб'яўляюць каля 1,200 Mbps, але Wi-Fi — гэта агульнае, паўдуплэкснае асяроддзе: кліенты чакаюць чаргі, паўторы і службовы трафік спальваюць эфірны час, а TCP дадае свае накладныя выдаткі. Кліент, які ўзгадніў найвышэйшую хуткасць у ідэальных умовах, звычайна вымярае значна ніжэй за палову яе, і яшчэ менш, калі з'яўляюцца суседнія сеткі.

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

Калі табліца паказвае на радыё, спачатку папраўце бясшротавы бок: дыяпазон, шырыню канала, адлегласць. Калі яна паказвае ніжэй за радыё, важныя наступныя чатыры крокі, і ніякая колькасць купленых антэн гэтага не зменіць.

Крок 2: Здыміце драцяны базавы ўзровень, перш чым кранаць радыё

Пастаўце ноўтбук на Ethernet і спачатку вымерайце шлях без тунеля, бо гэта дае вам назоўнік. Запусціце інструмент прапускной здольнасці на далёкім баку, на VPS або хатнім серверы, які тэрмінуе VPN, і накіруйце кліента на яго публічны адрас, каб трафік праходзіў праз ваш роўтар і ўваходны канал.

# 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

Дзве лічбы з гэтага блока адказваюць на розныя пытанні. Адзін паток паказвае столю на адно злучэнне, якая ўключае паводзіны акна TCP і любое фармаванне на шляху для кожнага патоку. Чатыры патокі паказваюць, ці ёсць у звяна ёмістасць, якую вы не выкарыстоўваеце, бо паралельныя патокі могуць запоўніць трубу, якую адзін паток запоўніць не можа.

Трымайце сумленнасць: той жа хост, час сутак і працягласць, і нішто іншае ў доме не струменіць. Перадача аб'ёму за трыццаць секунд — правільная адзінка тут, і RFC 6349, аснова для тэставання прапускной здольнасці TCP, пабудавана менавіта на гэтай логіцы, бо кароткія ўсплёскі і дробныя запыты льсцяць звяну. Запішыце базавы ўзровень, перш чым нешта змяняць.

Крок 3: Прагоньце той жа тэст праз тунель

Цяпер паўтарыце яго супраць адраса тунеля канчатковай кропкі, з тым жа кліентам, працягласцю і колькасцю патокаў, калі тунель падняты і іншага трафіку няма. Суадносіны паміж двума вынікамі кажуць вам, колькі каштуюць шыфраванне і інкапсуляцыя на гэтым абсталяванні; абсалютная лічба кажа, ці дастаткова гэта для задачы.

Сачыце за лічыльнікамі падчас перадачы. На WireGuard wg show паведамляе перададзеныя байты на кожнага партнёра; на OpenVPN файл стану, які запісваецца праз інтэрвал, дае вам той жа від.

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

Калі лічба тунеля блізкая да драцянога базавага ўзроўню, VPN не ваша вузкае месца, і вы можаце перастаць яго вінаваціць. Калі гэта доля ад базавага ўзроўню, страта адбылася ўнутры шляху шыфравання і перасылкі роўтара, і наступны крок скажа, якая менавіта частка.

Адна засцярога: як толькі зыходны IP змяняецца, некаторыя службы тэставання хуткасці ціха выбіраюць іншы сервер вымярэння, і вы ў выніку параўноўваеце дзве розныя прызначэнні. Закрэпіце адрас сервера самі.

Крок 4: Чытайце працэсар як шлях, а не як сярэдняе

Роўтар, які паказвае 30 працэнтаў агульнай загрузкі працэсара, усё яшчэ можа быць насычаны: праца аднаго тунеля звычайна трапляе на адно ядро, адну чаргу перапынкаў або адзін паток ядра, таму сярэдняе хавае столю. Глядзіце на лічбы па ядрах і softirq замест індыкатара на панэлі.

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

Тры рэчы важныя ў гэтым вывадзе. Адно ядро, замацаванае каля 100 працэнтаў, пакуль астатнія прастойваюць, паказвае на мяжу для аднаго злучэння. Высокі %soft або заняты ksoftirqd на адным працэсары паказвае на апрацоўку пакетаў на баку прыёму, якая не разыходзіцца па чаргах. А адсутнасць сцяга aes азначае, што ў працэсара няма інструкцый AES, таму сіметрычнае шыфраванне ідзе ў праграмным забеспячэнні і каштуе значна больш на кожны пакет.

Рэалізацыя таксама важная. Традыцыйны асобнік OpenVPN у прасторы карыстальніка апрацоўвае пакеты аднаго тунеля пераважна ў адным месцы, таму хуткая шматядзерная скрынка можа паводзіць сябе як аднаядзерная для гэтага тунеля. WireGuard у ядры размяркоўвае працу па працэсарах, а разгрузка канала даных у OpenVPN таксама пераносіць апрацоўку пакетаў у ядро, але толькі ў зборках і на платформах, якія гэта падтрымліваюць. Заява пра апаратнае паскарэнне на маркетынгавай старонцы не з'яўляецца доказам таго, што шлях кода, які вы выконваеце, яго выкарыстоўвае.

Крок 5: Вызначце, што змяніць, менавіта ў гэтым парадку

Прайдзіце спіс зверху ўніз і спыніцеся на першым праўдзівым радку, бо змена чаго-небудзь ніжэй за яго не зрушыць лічбу.

1. Прамая драцяная прапускная здольнасць ніжэйшая за тую, за якую вы плаціце: пагаварыце з правайдарам, бо тунель не можа стварыць ёмістасць, якой не дае ўваходны канал. 2. Прамое драцяное злучэнне добрае, але адно ядро замацоўваецца падчас тэсту тунеля: шлях шыфравання роўтара — гэта мяжа. 3. Працэсар прастойвае, але тунель павольны: праверце MTU і фрагментацыю, затым уласную ёмістасць далёкай канчатковай кропкі. 4. Павольныя толькі кліенты Wi-Fi: змяніце дыяпазон або шырыню канала і прызнайце, што аб'яўленая хуткасць ніколі не была лічбай VPN.

Калі роўтар сапраўды з'яўляецца мяжой, сумленныя варыянты — прылада з інструкцыямі AES і хутчэйшым шляхам перасылкі, тунель на баку ядра, такі як WireGuard, замест такога ў прасторы карыстальніка, або перанос кліента на самую прыладу, каб роўтар перастаў шыфраваць. Адключэнне аўтэнтыфікаванага шыфравання дзеля выйгрышу ў бенчмарку не ўваходзіць у іх лік; яно абменьвае ўласцівасць бяспекі на лічбу, якая ўсё роўна не супадзе са скрынкай.

Перш чым нешта купляць, паўтарыце крокі 2 і 3 на новай прыладзе з тым жа серверам і працягласцю, а затым параўноўвайце суадносіны, а не пікі.

Падобныя артыкулы