Strongswan ermöglicht die Beschleunigung von ESP-Paketen

781
code farmer

Mein Linux-Kernel unterstützt bereits die CESA-Hardwarebeschleunigung, und openssl kann diese Funktion verwenden:

# openssl speed -evp des3 -elapsed # cat /proc/interrupts | grep cesa 51: 464810 GIC cesa0 52: 464811 GIC cesa1 

Und ich habe das openssl-Plugin im strongswan aktiviert, und es wird geladen, wenn der Tunnel läuft:

# ipsec statusall Security Associations (1 up, 0 connecting): cisco-ezvpn[1]: ESTABLISHED 10 minutes ago, 192.168.1.2[19]...192.168.1.1[192.168.1.1] cisco-ezvpn[1]: IKEv1 SPIs: abf425e9297ad9f0_i* 196cb5ae22f4f22e_r, pre-shared key+XAuth reauthentication in 23 hours cisco-ezvpn[1]: IKE proposal: AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024 cisco-ezvpn: INSTALLED, TUNNEL, reqid 1, ESP SPIs: cb142c69_i 2e8c4f0b_o cisco-ezvpn: AES_CBC_128/HMAC_SHA1_96, 41756845 bytes_i (30575 pkts, 107s ago), 550565 bytes_o (9492 pkts, 31s ago), rekeying in 23 hours cisco-ezvpn: 10.10.0.6/32 === 0.0.0.0/0 

Jetzt kann ich sehen, dass die Cesa-Interrupts zunehmen, wenn die Verbindung besteht (IKE-Nachrichten), aber ESP-Pakete keine Cesa-Interruptzähler erzeugen:

15:17:28.653001 IP 192.168.1.2 > 192.168.1.1: ESP(spi=0x852c54c5,seq=0x16), length 108 15:17:49.653014 IP 192.168.1.2 > 192.168.1.1: ESP(spi=0x852c54c5,seq=0x17), length 108 15:17:49.653833 IP 192.168.1.1 > 192.168.1.2: ESP(spi=0xcca314fc,seq=0x10), length 92 15:18:35.652995 IP 192.168.1.2 > 192.168.1.1: ESP(spi=0x852c54c5,seq=0x18), length 108 # cat /proc/interrupts | grep cesa 51: 464813 GIC cesa0 52: 464814 GIC cesa1 

Meine Frage ist: Gibt es eine Möglichkeit, die Hardwarebeschleunigung für die ESP-Pakete zu aktivieren?

Weitere Informationen:

# ip xfrm state src 192.168.1.2 dst 192.168.1.1 proto esp spi 0x2e8c4f0b reqid 1 mode tunnel replay-window 0 flag af-unspec auth-trunc hmac(sha1) 0x19a289b54670ad8a41ec2314bd6c7b438efef9f2 96 enc cbc(aes) 0xc3297e37547fce35df7e3cd2d8450db5 src 192.168.1.1 dst 192.168.1.2 proto esp spi 0xcb142c69 reqid 1 mode tunnel replay-window 32 flag af-unspec auth-trunc hmac(sha1) 0xbb3033e4825ccc585c7829fa21b6c0c08bcefce9 96 enc cbc(aes) 0xc45486fdbcafef85e393295d7baeb968 

Unterstützte Chiffren:

# cat /proc/crypto  name : authenc(hmac(md5),cbc(des3_ede)) driver : authenc(hmac(md5-generic),cbc(des3_ede-generic)) module : kernel priority : 0 refcnt : 3 selftest : passed type : aead async : yes blocksize : 8 ivsize : 8 maxauthsize : 16 geniv : <built-in>  name : cbc(des3_ede) driver : cbc(des3_ede-generic) module : kernel priority : 0 refcnt : 3 selftest : passed type : givcipher async : yes blocksize : 8 min keysize : 24 max keysize : 24 ivsize : 8 geniv : chainiv  name : cbc(des3_ede) driver : cbc(des3_ede-generic) module : kernel priority : 0 refcnt : 3 selftest : passed type : blkcipher blocksize : 8 min keysize : 24 max keysize : 24 ivsize : 8 geniv : <default>  name : hmac(md5) driver : hmac(md5-generic) module : kernel priority : 0 refcnt : 5 selftest : passed type : shash blocksize : 64 digestsize : 16  name : stdrng driver : krng module : kernel priority : 200 refcnt : 2 selftest : passed type : rng seedsize : 0  name : lzo driver : lzo-generic module : kernel priority : 0 refcnt : 2 selftest : passed type : compression  name : crc32c driver : crc32c-generic module : kernel priority : 100 refcnt : 2 selftest : passed type : shash blocksize : 1 digestsize : 4  name : deflate driver : deflate-generic module : kernel priority : 0 refcnt : 2 selftest : passed type : compression  name : aes driver : aes-generic module : kernel priority : 100 refcnt : 2 selftest : passed type : cipher blocksize : 16 min keysize : 16 max keysize : 32  name : des3_ede driver : des3_ede-generic module : kernel priority : 0 refcnt : 3 selftest : passed type : cipher blocksize : 8 min keysize : 24 max keysize : 24  name : des driver : des-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : cipher blocksize : 8 min keysize : 8 max keysize : 8  name : sha224 driver : sha224-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 28  name : sha256 driver : sha256-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 32  name : sha1 driver : sha1-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 20  name : md5 driver : md5-generic module : kernel priority : 0 refcnt : 3 selftest : passed type : shash blocksize : 64 digestsize : 16 
2
Prüfen Sie, ob "/ proc / crypto" zeigt, dass die Implementierungen für die von den IPsec-SAs verwendeten Algorithmen (siehe "ip xfrm state") vom Modul "marvell_cesa" bereitgestellt werden. ecdsa vor 7 Jahren 0
Aktualisierte Anforderungsinformationen, marvell_cesa wird in den Kernel kompiliert, es sieht so aus, als ob 3des_ede vom Kernel bereitgestellt wird. code farmer vor 7 Jahren 0
Eigentlich wurde das Modul 'marvell_cesa' offensichtlich mit Linux 4.2 hinzugefügt. In älteren Kerneln ist nur das Modul 'mv_cesa' verfügbar, das nur AES und SHA-1 zu unterstützen scheint. Möglicherweise möchten Sie Ihren Kernel aktualisieren oder verschiedene Algorithmen für Ihre IPsec-Sicherheitszuordnungen verwenden. ecdsa vor 7 Jahren 0
Danke Ecdsa. Wenn ich den Kernel jetzt nicht aktualisieren kann, kann ich dann einen Kernel-Treiber schreiben, um das mv_cesa-Modul aufzurufen? Ich denke, ESP wird vom Kernel durchgeführt, und mv_cesa verwendet das OCF-Framework. code farmer vor 7 Jahren 0
Wenn Sie andere Algorithmen (AES anstelle von 3DES, SHA-1 anstelle von MD5) für Ihre ESP-Sicherheitszuordnungen verwenden, sollten sie bereits verwendet werden, wenn sie geladen werden. ecdsa vor 7 Jahren 0
Ich habe meine ESP SA in AES und SHA geändert, aber es wird immer noch kein CESA verwendet. Ich habe Informationen aktualisiert code farmer vor 7 Jahren 0
Hallo Ecdsa, du hast recht. Ich habe mv_cesa.c überprüft, es wird die CESA-API verwendet, um AES & SHA1 alg zu registrieren. Aber ich weiß nicht, warum mv-cbc-aes und mv-sha1 nicht in / proc / crypto angezeigt werden. code farmer vor 7 Jahren 0

0 Antworten auf die Frage