Gamle kryptografiske acceleratorer dukker op i PCI-inventaret, og antagelsen er, at VPN'en nu krypterer hurtigere. Fire separate overdragelser skal lykkes, før det er sandt: systemet finder enheden, en vedligeholdt driver styrer den, en grænseflade blotlægger den operation, VPN'en har brug for, og VPN'ens aktive backend beder om den. Fejler blot én, står kortet uden for tunnellens reelle vej.

Registrering er den første overdragelse, ikke den sidste

Registrering beviser kun, at bussen ser en enhed, og at kernen har en vis idé om, hvad den er. Driverunderstøttelse er den næste port, og den er versionsafhængig: et modul, der fandtes i en gammel udgivelse, kan helt mangle i den nuværende kernelpakke. Derudover skal driveren registrere den specifikke algoritme og tilstand, som datakanalen bruger. Et kort, der accelererer AES-CBC, gør intet for en konfiguration, der forhandler AES-GCM.

Navngiv hver overdragelse særskilt i vurderingen, fordi en fejl ved den fjerde udefra ser identisk ud med en fejl ved den første.

Læs kernens algoritmeinventar

Begynd med at indsamle, hvad værten allerede ved om enheden og om de algoritmer, den har registreret.

lspci -nn | grep -i -E "crypt|hifn|soekris"
grep -E "^(name|driver|priority)" /proc/crypto | head -40

PCI-linjen giver de producent- og enheds-id'er, der er nødvendige for enhver driversøgning, og/proc/crypto viser registrerede implementeringer med deres drivere og prioriteter. En prioritetsværdi ordner valget mellem implementeringer af den samme algoritme, hvilket ikke er det samme som, at en applikation vælger en af dem. Hvis kortets algoritme ikke vises der, har driveren aldrig registreret den, og ingen ændring i brugerrummet vil kalde den. Notér id'erne og implementeringsnavnene i stedet for et skærmbillede af kortet.

VPN'en skal vælge netop den implementering

Tilgængelighed i kernen er en menu, ikke en garanti for, at VPN-processen har bestilt fra den. Undersøg, hvad backenden faktisk bruger.

openssl speed -evp aes-256-gcm
openssl engine -t -c

Hastighedskommandoen gennemløber bibliotekets egen vej og giver en baseline for maskinen, som den er konfigureret, mens engine-listen viser, om der overhovedet er nogen valgfri udbyder tilgængelig for OpenSSL. En VPN i brugerrummet med sit eget kryptobibliotek omgår kernens implementeringer fuldstændigt, så en registreret driver kan være irrelevant for den. Aflastning af datakanalen er endnu en tredje mekanisme, som ændrer pakkebehandlingen i stedet for at sende cifranmodninger til et udvidelseskort. Fastslå, hvilken af de tre der beskriver din udrulning, før du køber hardware til den fjerde.

Sammenlign med den CPU-vej, du allerede har

Moderne processorer indeholder AES-instruktioner, som et vedligeholdt bibliotek bruger uden ekstra hardware, og de undgår busoverførsler og ekstra kopier. En gammel accelerator kan tabe til den vej, mens den stadig rapporterer imponerende rå ciffertal. Mål den reelle arbejdsbyrde: samme trafik, samme beskyttelsesindstillinger, baseline mod kandidat, med CPU-belastning og applikationsgennemstrømning registreret sammen. Medtag opdaterings- og gendannelsesadfærd i beslutningen, fordi et uvedligeholdt modul øger gatewayens vedligeholdelsesrisiko for hele dens levetid.

Købsargumentet er en understøttet kæde plus en målt gevinst. Et registreret kort eller et modul, nogen engang kompilerede, er ikke grund til at gøre en vedligeholdt gateway afhængig af forældet hardware.

Relaterede artikler