Je li nizak VPN protok problem entropije? Obično nije
Zastoj pri pokretanju koji čeka slučajne brojeve i spor tunel različiti su kvarovi. Izmjerite koji imate prije nego što promijenite sjeme ili međuspremnike.
Spor protok kroz tunel i stroj zaglavljen u čekanju slučajnih brojeva daju vrlo različita iskustva, ali se ipak evidentiraju pod istom pritužbom. Jedno se pojavljuje kao pauza prije nego što išta radi. Drugo se pojavljuje kao veza koja radi i polako prenosi podatke dok god je gledate. Utvrditi koje imate traje deset minuta i štedi tjedan nagađanja.
Dva simptoma koja izgledaju isto
Usluga koja se zaglavi nakon svježeg podizanja, prije nego što prihvati ijednu vezu, čeka nešto. Tunel koji se brzo uspostavi i zatim prenosi djelićem očekivane brzine ograničen je nečim drugim. Riječ enkripcija pojavljuje se u obje priče, zbog čega se spajaju. Razdvojite ih prije nego što dotaknete konfiguracijsku datoteku.
Postavite vremenske oznake oko pokretanja, autentifikacije, ponovnog pregovaranja ključeva i samog prijenosa. Duga odgoda prije nego što tunel postane upotrebljiv nije niska stalna brzina, a usrednjavanje njih dvoje u jedan broj uništava dokaz.
systemd-analyze blame | head -10 journalctl -u [email protected] -o short-precise | head -40 cat /proc/sys/kernel/random/entropy_avail
Prve dvije naredbe stavljaju rad pri pokretanju na vremensku liniju. Treća ispisuje vrijednost knjigovodstva entropije u kernelu, koja je korisna kao jedna podatkovna točka i beskorisna kao mjerač propusnosti.
Kako čekanje na slučajne brojeve zapravo izgleda
Zahtjev za sigurne slučajne bajtove može blokirati dok kernel ne inicijalizira svoj slučajni izvor. To je najvažnije na virtualnim strojevima i malim ugrađenim pločama na početku podizanja, kada je prikupljeno malo šuma iz okoline. Iz toga ne slijedi da svaki enkriptirani bajt troši svježu entropiju.
Moderni generatori zasijavaju se jednom i zatim proizvode izlaz iz determinističke konstrukcije, ponovno se zasijavajući po vlastitom rasporedu. Skupni prijenos ne iscrpljuje pul bajt po bajt, pa niska vrijednost pula tijekom sporog prijenosa ne dokazuje ništa o uzroku.
strace -f -e trace=getrandom -p $(pidof openvpn) 2>&1 | head -20 dmesg | grep -i 'random\|crng'
Prva naredba pokazuje sjedi li proces u pozivu slučajnih brojeva dok gledate. Druga pokazuje kernelove vlastite poruke inicijalizacije, i tu zastoj pri ranom podizanju postaje vidljiv.
Zabilježite verziju kernela i biblioteku s kojom se usluga zapravo povezuje, jer ponašanje se razlikuje između implementacija i između izdanja. Trag snimljen nakon oporavka obično u potpunosti promaši pauzu.
Kako trajna sporost zapravo izgleda
Tunel koji cijelo vrijeme polako prenosi ograničen je podatkovnim putem. Jedna zasićena nit, gubitak vanjskih paketa, ponovni prijenosi ili puni redovi utičnica svaki proizvode taj uzorak, i svaki ima svoje rješenje. Zbirni postotak CPU-a skriva jednu zauzetu nit, što je najčešće pogrešno čitanje. Pogledajte vrijeme po niti prije nego što pogledate ukupno opterećenje.
Mjerite u oba smjera s usporedivom osnovom i gledajte brojače sučelja, a ne vlastito izvješće aplikacije.
ss -tin dst 203.0.113.10 nstat -az | grep -i 'drop\|retrans' ethtool -S eth0 | grep -i 'drop\|error'
Prva naredba pokazuje stanje reda i zagušenja za jednog partnera. Druga i treća prijavljuju odbacivanja i ponovne prijenose na stogu i na sučelju, gdje se uzrok obično pojavljuje prvi.
Odaberite ispravak za usko grlo koje ste izmjerili
Ako dokazi upućuju na inicijalizaciju pri ranom podizanju, pogledajte podržani put zasijavanja platforme, koji na virtualnom stroju može uključivati slučajni uređaj koji pruža host. Slika sjemena kopirana nepromijenjena u mnoge goste nije zamjena za neovisnu inicijalizaciju.
Ako dokazi upućuju na podatkovni put, podesite ono na što brojači upućuju. Veličine međuspremnika pomažu kada redovi preliju i ne čine ništa kada je jedna nit zasićena. Instaliranje demona entropije da podigne brojač nije popravak protoka, a promjena pretpostavki zasijavanja da graf izgleda bolje mijenja sigurnosno svojstvo za broj.
Prihvatite promjenu samo kada se isto mjerenje poboljša pod istim uvjetima. Veći brojač nije rezultat; kraće izmjereno čekanje ili brži prijenos s utvrđenim uzrokom jest.