10Gbase IPSEC?

minimike

Berufsrevolutionär
Hi

Meine Firma überlegt sich weitere Räumlichkeiten in der Nachbarschaft anzumieten. Was uns zur Zeit allen nicht passt ist das dann dafür Kabel über feindliches Territorium verlegt werden müssen. Soweit ich verstanden habe ist IPSEC recht CPU-Lastig. Bei einem 10Gbase Glasfaser habe ich mal ein paar Fragen.

IPSEC mit der Geschwindigkeit von 10G kann keine aktuelle CPU/Core allein schaffen?
Gibt es eine OpenSource IPSEC Lösung die SMP unterstützt?
Welches Betriebsystem dann nehmen?
OpenBSD scheidet dann mangels SMP aus?
Wie könnte ich die Hardwareanforderungen Betreff der CPU und Arbeitsspeicher am besten kalkulieren?

Danke :)
 
IPSEC mit der Geschwindigkeit von 10G kann keine aktuelle CPU/Core allein schaffen?

Das kommt drauf an :-)
Aber bei x86 kannst Du das knicken mit einer CPU und einem Core.

Gibt es eine OpenSource IPSEC Lösung die SMP unterstützt?

Nicht das ich wüsste.

Welches Betriebsystem dann nehmen?
OpenBSD scheidet dann mangels SMP aus?
Wie könnte ich die Hardwareanforderungen Betreff der CPU und Arbeitsspeicher am besten kalkulieren?

Also das ist glaub ich egal was Du nimmst.

Du kannst das performance problem allerdings nicht mit normaler aktueller x86 CPU Hardware lösen.
Du brauchst erstmal gute Boards mit guten schnellen Bus'es und sauberen BIOS Systemen.
Ich hatte schon den fall, das das BIOS nicht alle Interrupt's an die Netzwerkkarten durchgereicht hatte. (ganz miese Sache)
Dann brauchst Du gute Netzwerkkarten. Intel xgbe sind eigentlich ganz gut.

Um jetzt 10GBit zu verschlüsseln solltest Du noch einen Cryptobeschleuniger nutzen. Zwar ist das AESNI Instruktion set nicht schlecht, aber bei 10Gbit wird es noch nicht reichen. Es ist schon schwierig 1GBit zu verschlüsseln.
Ich würd ja gerne mal den Cavium CN1620 NitroxXL Chip unter FreeBSD Testen (wenn die Firma nur bereit dazu wäre eine Karte zu kaufen)
http://www.cavium.com/Nitrox_XL_acceleratorBoards.html

Was ich leider noch nicht geteste habe, ist die Aufteilung mehrerer racoon instanzen auf einzelne Cores.
Die idee ist, das man nicht einen Prozess laufen lässt, sondern mehrere um die Cores richtig zu nutzen.
Also zum beipsiel 10 racoon prozesse für 10 ipsec tunnels. Für jedes Netz was geroutet werden soll ein Prozess.

Ansonsten gingen außer IPSec noch OpenVPN und VTUN.
Für OpenVPN gibt es sogar einen Tuning Guide für 1GBit:
https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

Meine Tests mit Intel i5 Quadcore (mit AESNI), aes128, unter OpenBSD mit OpenVPN lagen bei ~350 Mbit.


Mfg
 
FreeBSDs in-kernel IPsec ist multithreaded seit FreeBSD 7.

Aber 10Gb/s IPsec ist nix das du mit ner Faustformel erschlagen kannst. Ich gehe mal davon aus das aus Gründen der Effizienz der Code auf Durchsatz und nicht auf maximale Leistung pro IPsec SA ausgelegt ist. Es könnte also sein dir das ganze tolle multithreading nix hilft, weil der Großteil deines Traffics über eine SA geht.

Falls du jemandem 10Gb/s IPsec out-of-the-box liefern willst rede mal mit deinen Juniper oder Cisco Händlern.

Zu den Einschätzungen mit AES-NI reicht nicht. Doch das reicht in der Theorie. Bei 10Gb/s ist nicht der Durchsatz der CPUs das Problem sondern das die Packets Effizient in die CPU Cores zu bekommen und wieder raus. Auch eine PCI-e Cryptokarte hat da echte Probleme gegen CPUs mit AES-NI anzukommen, denn die Daten müssen dann öfter über PCI-e kopiert werden. Lass mal ein syntetisches AES-NI Benchmark auf nem Sandy Bridge Prozessor laufen und sehe dir die Peaks an. Leider hat auch der FreeBSD IP Stack einen ziemlichen Overhead und bietet nur wenige (und altmodische) IPsec Cryptotransformationen an. Du willst vermutlich AES-128/256-CBC + HMAC-SHA1-96 per ESP nehmen. Leidet gibt kein AES-128-GCM mit AES-NI im FreeBSD Kernel.
 
Zuletzt bearbeitet:
Zu den Einschätzungen mit AES-NI reicht nicht. Doch das reicht in der Theorie. Bei 10Gb/s ist nicht der Durchsatz der CPUs das Problem sondern das die Packets Effizient in die CPU Cores zu bekommen und wieder raus. Auch eine PCI-e Cryptokarte hat da echte Probleme gegen CPUs mit AES-NI anzukommen, denn die Daten müssen dann öfter über PCI-e kopiert werden. Lass mal ein syntetisches AES-NI Benchmark auf nem Sandy Bridge Prozessor laufen und sehe dir die Peaks an. Leider hat auch der FreeBSD IP Stack einen ziemlichen Overhead und bietet nur wenige (und altmodische) IPsec Cryptotransformationen an. Du willst vermutlich AES-128/256-CBC + HMAC-SHA1-96 per ESP nehmen. Leidet gibt kein AES-128-GCM mit AES-NI im FreeBSD Kernel.

OpenBSD hat GCM implementiert.
Es wäre trotzdem mal interessant wie sich die 28 CPU CN1620 gegen AESNI only schlägt.
 
Vorweg: Ich kenne mich in diesen Größenklassen überhaupt nicht aus.

Aber ich könnte mir vorstellen, dass ein kurzes Gespräch mit einigen Firmen, die OpenBSD Appliances anbieten etwas Klarheit schaffen könnte.

Genua in München bietet z.B. VPN Appliances mit bis zu 14 x 1GBit/s NICs an. Die dürften wissen, wo die Möglichkeiten und Grenzen im 10Gbit/s Bereich liegen und könnten Dir evtl. Tipps für BSD-Lösungen geben.
 
Danke für eure Antworten. Das macht mich ein wenig schlauer. Genua ist bei uns schon seit einer Weile für was anderes im Gespräch. Ich möchte damit unsere aktuelle Firewall ersetzen. Chef kriegt aber bei den Kosten große Augen
 
Zurück
Oben