Żewġ tikketi jintużaw bħallikieku huma l-istess ħaġa: aċċellerat mill-hardware u mċaqlaq fil-kernel. Waħda tiddeskrivi liema struzzjonijiet twettaq ir-rutina AES ta’ librerija, u l-oħra tiddeskrivi fejn isseħħ l-ipproċessar tal-pakketti. VPN jista’ jkollu l-ewwel mingħajr it-tieni, it-tieni mingħajr l-ewwel, jew it-tnejn flimkien. Kull deċiżjoni dwar il-prestazzjoni trid tibda billi ssemmi liema miż-żewġ qed tbiddel tassew.

Żewġ assi, mhux punteġġ wieħed

L-ewwel assi hija l-implimentazzjoni: il-kodiċi li jagħmel AES-256-GCM jiġi dirett lejn verżjoni li tuża l-istruzzjonijiet dedikati tal-proċessur jew lejn rutina portabbli li twettaqhom bħala aritmetika ordinarja. Din l-għażla tgħix ġewwa l-librerija kriptografika u ssir meta din tiġi inizjalizzata.

It-tieni assi hija l-post: il-pakkett jgħaddi mill-passaġġ tat-trasformazzjoni tal-kernel jew daemon fl-ispazju tal-utent jaqra minn apparat tat-tunnel, jiċċifra u jikteb lura.

L-ebda assi ma tillimita lill-oħra. VPN fl-ispazju tal-utent fuq CPU bl-istruzzjonijiet AES jista’ jużahom il-ħin kollu, u passaġġ fil-kernel fuq CPU mingħajrhom jerġa’ lura għal implimentazzjoni tas-software. It-tikketi fil-materjal tal-fornituri rari jagħmlu din id-distinzjoni, u għalhekk il-pariri tat-tuning li jiġu kkupjati bejn iż-żewġ sitwazzjonijiet tant spiss ma jagħmlu xejn.

Assi wieħed: liema kodiċi jagħmel iċ-ċifrar

OpenSSL jidentifika l-karatteristiċi tal-proċessur waqt l-inizjalizzazzjoni u juża r-riżultat biex jagħżel passaġġi tal-kodiċi ottimizzati, kif tiddeskrivi id-dokumentazzjoni tal-kapaċitajiet x86. AES-NI hija waħda mill-kapaċitajiet dokumentati wara din id-direzzjoni. Xejn minn dan ma jitlob li l-librerija ssir komponent tal-kernel.

Ivverifika li l-karatteristika hija viżibbli għall-proċess qabel ma tassumi li qed jintuża l-passaġġ mgħaġġel. Fuq Linux is-sors huwa l-qasam flags f’ /proc/cpuinfo, u ġewwa mistieden jirrifletti dak li jesponi l-hypervisor u mhux l-isem tal-mudell tal-host fiżiku.

grep -m1 '^flags' /proc/cpuinfo | grep -o '\baes\b'
openssl list -providers -verbose

It-tieni kmand isemmi l-fornituri mgħobbija f’ dik il-build. Ma jgħidlekx liema librerija llinkjat is-servizz VPN, u host jista’ jġorr żewġ installazzjonijiet ta’ OpenSSL filwaqt li l-proċess li qed jaħdem juża waħda biss minnhom.

Assi tnejn: fejn jaħdem il-passaġġ tal-pakketti

It-tqegħid fil-kernel ifisser li t-trasformazzjoni sseħħ fil-makkinarju IPsec tal-kernel innifsu jew ġewwa driver tat-tunnel fil-kernel, u għalhekk il-pakketti m’għandhomx bżonn vjaġġ lejn hemm u lura permezz ta’ proċess fl-ispazju tal-utent għal kull lott. Dan jista’ jnaqqas kopji u tibdil ta’ kuntest, u jxerred ix-xogħol fuq il-qlub b’ mod li daemon b’ ħajt wieħed ma jistax. Dan iċaqlaq ukoll il-kontaturi u t-traċċi li se taqra meta l-fluss jonqos, għax ix-xogħol issa jsir in-naħa l-oħra ta’ fruntiera li ma tikkontrollax. Ikkunsidrah bħala spiża ta’ debugging, mhux biss deċiżjoni ta’ prestazzjoni.

Dan ma joħloqx appoġġ għall-istruzzjonijiet, ma jikkonfigurax ċifrar u ma jagħmilx passaġġ eżistenti jaħdem.

Il-virtualizzazzjoni żżid tiekja fuq dan l-assi wkoll. Mistieden jista’ jingħata mudell ta’ CPU immaskat li jaħbi karatteristiċi li għandu l-host, u mistieden imniedi jista’ jara inqas. Aqra l-veduta tal-kapaċitajiet minn ġewwa l-ambjent fejn il-VPN tassew jaħdem, mhux mill-console tal-hypervisor.

X’jixtri kull għażla, u x’ma tistax tagħmel

Il-mistoqsija prattika hija fejn tmur il-ħin. Jekk ħajt wieħed impenjat, kopji ripetuti tal-buffer jew sejħa tas-sistema għal kull pakkett jillimitaw il-fluss, iċ-ċaqliq tat-trasformazzjoni għal passaġġ li jneħħi dawk l-ispejjeż jista’ jgħin, sakemm il-kernel jimplimenta t-trasformazzjoni li teħtieġ.

Jekk il-limitu huwa konnessjoni lejn fuq konġestjonata, passaġġ b’ telf, ħin twil ta’ vjaġġ, servizz tad-destinazzjoni saturat jew ħajt imwaħħal ma’ qalba waħda, it-tqegħid ma jbiddel xejn importanti. L-istess japplika għall-għażla tal-istruzzjonijiet: AES fuq hardware dedikat ma jistax isewwi passaġġ nieqes u mhux se jgħin jekk it-tunnel huwa kwiet għax ir-riżoluzzjoni tal-ismijiet tfalli.

Fejn japplikaw it-tnejn, huma jingħaqdu. Passaġġ fil-kernel jista’ juża l-istess direzzjoni fil-livell tal-istruzzjonijiet ġewwa l-API kripto tal-kernel, u passaġġ fl-ispazju tal-utent b’ librerija magħżula tajjeb diġà jużaha. Id-deċiżjoni mhijiex liema hija aktar mgħaġġla fl-astratt; hija għal liema spiża għandek provi.

Ikteb l-erba’ fatti qabel ma tbiddel xejn

Ikteb il-binary tas-servizz u l-librerija kriptografika li miegħu huwa llinkjat, għax dawk jiddeterminaw l-assi wieħed. Imbagħad innota l-protezzjoni tad-data maqbula, għax ċifrar mingħajr passaġġ tal-istruzzjonijiet dedikat iġib ruħu b’ mod differenti minn wieħed bih, u s-sett jintgħażel miż-żewġ naħat.

Imbagħad, il-veduta tal-kapaċitajiet minn ġewwa l-ambjent li qed jaħdem, u fl-aħħar il-passaġġ attiv tal-pakketti bi provi li l-mod li taħseb li huwa attivat tassew hekk hu. Modulu mgħobbi mhuwiex prova li profil jużah, u linja ta’ konfigurazzjoni mhijiex prova li l-kernel aċċettaha.

Ibdel ħaġa waħda, imbagħad qabbel ma’ tagħbija tax-xogħol konsistenti bl-istess punti tat-tarf u l-istess direzzjoni tat-trasferiment. Talba ta’ veloċità li ma kejtilx tiswa inqas minn nota li tgħid li l-backend qatt ma kien fid-dubju.

Artikli relatati