Vai zema VPN caurlaidspēja ir entropijas problēma? Parasti nē
Iesprūšana startēšanas laikā, gaidot nejaušus skaitļus, un lēns tunelis ir dažādi bojājumi. Izmēriet, kurš jums ir, pirms maināt sēšanu vai buferus.
Lēna caurlaidspēja caur tuneli un mašīna, kas iesprūdusi, gaidot nejaušus skaitļus, sniedz ļoti atšķirīgu pieredzi, taču tās tiek reģistrētas zem vienas un tās pašas sūdzības. Viens parādās kā pauze, pirms kaut kas sāk darboties. Otrs parādās kā savienojums, kas darbojas un lēni pārvieto datus, kamēr vien jūs to vērojat. Noteikt, kurš jums ir, aizņem desmit minūtes un ietaupa nedēļu minējumu.
Divi līdzīgi simptomi
Pakalpojums, kas pēc svaigas startēšanas karājas, pirms pieņem pat vienu savienojumu, kaut ko gaida. Tunelis, kas ātri izveidojas un pēc tam pārraida ar daļu no gaidītā ātruma, ir ierobežots ar kaut ko citu. Vārds šifrēšana parādās abos stāstos, tāpēc tos apvieno. Atdaliet tos, pirms aiztiekat konfigurācijas failu.
Novietojiet laika zīmogus ap startēšanu, autentifikāciju, atslēgu atkārtotu pārrunāšanu un pašu pārsūtīšanu. Ilga aizkave, pirms tunelis kļūst lietojams, nav zema stabila likme, un abu vidējošana vienā skaitlī iznīcina pierādījumus.
systemd-analyze blame | head -10 journalctl -u [email protected] -o short-precise | head -40 cat /proc/sys/kernel/random/entropy_avail
Pirmās divas komandas novieto startēšanas darbu uz laika līnijas. Trešā izdrukā kodola entropijas uzskaites vērtību, kas ir noderīga kā viens datu punkts un nederīga kā joslas platuma mērītājs.
Kā nejaušu skaitļu gaidīšana patiešām izskatās
Drošu nejaušu baitu pieprasījums var bloķēties, līdz kodols inicializē savu nejaušo avotu. Tas ir vissvarīgākais virtuālajās mašīnās un mazās iegultās platēs startēšanas sākumā, kad ir savākts maz vides trokšņa. No tā neizriet, ka katrs šifrētais baits patērē svaigu entropiju.
Mūsdienu ģeneratori tiek apsēti vienreiz un pēc tam ģenerē izvadi no deterministiskas konstrukcijas, pārsējoties pēc sava grafika. Masveida pārsūtīšana neiztukšo baseinu baitu pa baitam, tāpēc zema baseina vērtība lēnas pārsūtīšanas laikā neko nepierāda par cēloni.
strace -f -e trace=getrandom -p $(pidof openvpn) 2>&1 | head -20 dmesg | grep -i 'random\|crng'
Pirmā komanda parāda, vai process sēž nejauša skaitļa izsaukumā, kamēr jūs vērojat. Otrā parāda paša kodola inicializācijas ziņojumus, un tieši tur agrīna startēšanas iesprūšana kļūst redzama.
Pierakstiet kodola versiju un bibliotēku, ar kuru pakalpojums faktiski ir saistīts, jo uzvedība atšķiras starp implementācijām un starp laidieniem. Pēda, kas uzņemta pēc atjaunošanas, parasti pilnībā izlaiž pauzi.
Kā patiešām izskatās ilgstošs lēnums
Tunelis, kas visu laiku pārraida lēni, ir ierobežots ar datu ceļu. Viens piesātināts pavediens, ārējo pakotņu zudums, atkārtotas pārraides vai pilnas ligzdas rindas katrs rada šo modeli, un katram ir savs labojums. Apkopotais CPU procentuālais daudzums slēpj vienu aizņemtu pavedienu, un tā ir visbiežākā nepareizā nolasīšana. Apskatiet laiku uz pavedienu, pirms skatāties uz kopējo slodzi.
Mēriet abos virzienos ar salīdzināmu bāzes līniju un vērojiet saskarnes skaitītājus, nevis pašas lietojumprogrammas ziņojumu.
ss -tin dst 203.0.113.10 nstat -az | grep -i 'drop\|retrans' ethtool -S eth0 | grep -i 'drop\|error'
Pirmā komanda parāda rindas un sastrēguma stāvokli vienam partnerim. Otrā un trešā ziņo par nomešanu un atkārtotām pārraidēm stekā un saskarnē, kur cēlonis parasti parādās pirmais.
Izvēlieties labojumu izmērītajam šaurumam
Ja pierādījumi norāda uz agrīnu startēšanas inicializāciju, apskatiet platformas atbalstīto sēšanas ceļu, kas virtuālajā mašīnā var ietvert resursdatora nodrošinātu nejaušu ierīci. Sēklas attēls, kas nemainīts nokopēts daudzos viesos, neaizstāj neatkarīgu inicializāciju.
Ja pierādījumi norāda uz datu ceļu, noregulējiet to, uz ko norāda skaitītāji. Bufera izmēri palīdz, kad rindas pārplūst, un neko nedara, kad viens pavediens ir piesātināts. Entropijas dēmona instalēšana skaitītāja pacelšanai nav caurlaidspējas labojums, un sēšanas pieņēmumu maiņa, lai grafiks izskatītos labāk, apmaina drošības īpašību pret skaitli.
Pieņemiet izmaiņas tikai tad, kad tas pats mērījums uzlabojas tajos pašos apstākļos. Lielāks skaitītājs nav rezultāts; īsāka izmērīta gaidīšana vai ātrāka pārsūtīšana ar noteiktu cēloni ir rezultāts.