Kryptokort för en VPN-gateway: fyra överlämningar före köpet
Ett upptäckt PCI-kort är bara ett av fyra steg. Följ drivrutinen, den nödvändiga kryptooperationen och VPN:ens aktiva backend innan du betalar för acceleration.
Gamla kryptografiska acceleratorer dyker upp i PCI-inventariet, och antagandet är att VPN:en nu krypterar snabbare. Fyra separata överlämningar måste lyckas innan det är sant: systemet hittar enheten, en underhållen drivrutin styr den, ett gränssnitt exponerar operationen som VPN:en behöver, och VPN:ens aktiva backend begär den. Om någon misslyckas står kortet utanför tunnelns verkliga väg.
Upptäckt är den första överlämningen, inte den sista
Upptäckt bevisar bara att bussen ser en enhet och att kärnan har en viss uppfattning om vad den är. Drivrutinsstöd är nästa port, och det är versionsberoende: en modul som fanns i en gammal utgåva kan helt saknas i det aktuella kärnpaketet. Dessutom måste drivrutinen registrera den specifika algoritm och det läge som datakanalen använder. Ett kort som accelererar AES-CBC gör ingenting för en konfiguration som förhandlar om AES-GCM.
Namnge varje överlämning separat i utvärderingen, eftersom ett fel vid den fjärde ser identiskt ut utifrån som ett fel vid den första.
Läs kärnans algoritminventarium
Börja med att samla in vad värden redan vet om enheten och om de algoritmer den har registrerat.
lspci -nn | grep -i -E "crypt|hifn|soekris"
grep -E "^(name|driver|priority)" /proc/crypto | head -40PCI-raden ger de leverantörs- och enhets-ID:n som behövs för varje drivrutinssökning, och/proc/crypto listar registrerade implementeringar med deras drivrutiner och prioriteringar. Ett prioritetsvärde ordnar valet mellan implementeringar av samma algoritm, vilket inte är samma sak som att ett program väljer en av dem. Om kortets algoritm inte visas där har drivrutinen aldrig registrerat den, och ingen ändring i användarutrymmet kommer att anropa den. Anteckna ID:n och implementeringsnamnen i stället för en skärmbild av kortet.
VPN:en måste välja just den implementeringen
Tillgänglighet i kärnan är en meny, inte en garanti för att VPN-processen har beställt därifrån. Kontrollera vad backenden faktiskt använder.
openssl speed -evp aes-256-gcm
openssl engine -t -cHastighetskommandot övar bibliotekets egen väg och ger en baslinje för maskinen som den är konfigurerad, medan motorlistan visar om det alls finns någon valfri leverantör tillgänglig för OpenSSL. En VPN i användarutrymmet med eget kryptobibliotek kringgår kärnans implementeringar helt, så en registrerad drivrutin kan vara irrelevant för den. Avlastning av datakanalen är ännu en tredje mekanism, som ändrar paketbehandlingen i stället för att skicka chifferförfrågningar till ett expansionskort. Fastställ vilken av de tre som beskriver din utrullning innan du köper hårdvara för den fjärde.
Jämför med CPU-vägen du redan har
Moderna processorer innehåller AES-instruktioner som ett underhållet bibliotek använder utan extra hårdvara, och de undviker bussöverföringar och extra kopior. En gammal accelerator kan förlora mot den vägen medan den fortfarande rapporterar imponerande råa chiffertal. Mät den verkliga arbetsbelastningen: samma trafik, samma skyddsinställningar, baslinje mot kandidat, med CPU-belastning och applikationens genomströmning registrerade tillsammans. Ta med uppdaterings- och återställningsbeteende i beslutet, eftersom en icke-underhållen modul ökar gatewayens underhållsrisk under hela dess livstid.
Köpargumentet är en stödd kedja plus en uppmätt vinst. Ett upptäckt kort, eller en modul som någon en gång kompilerade, är ingen anledning att göra en underhållen gateway beroende av föråldrad hårdvara.