Was ist der IPSec-Engpass in Linux?


19

Ich versuche, die Leistung mehrerer Netzwerksicherheitsprotokolle zwischen zwei in Gigabit Ethernet verbundenen Hosts zu vergleichen.

Mein Ziel ist es hier zu sehen, ob ich meine Bandbreite auslasten kann und wenn nicht, was der limitierende Faktor ist.

  • Mit SSL kann ich 981 MBit / s erreichen, daher ist die Ethernet-Verbindung offensichtlich der begrenzende Faktor.
  • Mit SSH kann ich nur 750 MBit / s erreichen, aber einer meiner Kerne ist zu 100% ausgelastet. Da es sich bei SSH um Single-Threading handelt, ist die CPU der begrenzende Faktor.
  • Mit IPSec lese ich ungefähr 500 MBit / s, aber keiner meiner Kerne ist zu 100% (sie sind unter 50%).

Meine Frage lautet also: Warum kann IPsec keine höhere Bandbreite erreichen?

Die beiden Hosts führen Debian Wheezy und Strongswan für IPsec aus.


3
Sie müssen sicherstellen , dass Ihre CPU die haben aesAnweisung , um besser decript Pakete an beiden Standorten intel.co.jp/content/dam/www/public/us/en/documents/white-papers/... , und sicher sein , dass Sie Parallelisierung von ipsec und Verwendung des Tunnel-Modus + ESP - strongswan.org/docs/Steffen_Klassert_Parallelizing_IPsec.pdf . Dies ist der beste Weg, um mit diesem Protokoll Leistung zu erzielen.

Leider habe ich i3-Prozessoren ohne AES-NI-Unterstützung und arbeite im Tunnelmodus zwischen den beiden Hosts. Ich verstehe, wie Ihre beiden Ratschläge die Bandbreite erhöhen würden, wenn eine CPU zu 100% ausgelastet wäre. Die Verwendung von AES-NI würde die Verarbeitung von mehr Paketen ermöglichen und das BW erhöhen. Aber hier scheint die CPU nicht der limitierende Faktor zu sein.
user50228

3
Hmm, das ist interessant. Ich würde vermuten, dass etwas im Kernel die Dinge verlangsamt. Würde es Ihnen etwas ausmachen, Ihre IPSec-Konfiguration mit anderen zu teilen? Ich möchte eine VM instrumentieren und sehen, welche Ergebnisse mit unterschiedlichen Einstellungen erzielt werden.
Lmwangi

Antworten:


1

Es gibt soooo viele Faktoren, die dazu beitragen. Die Netzwerkkarte trifft mehr Teile des Boards, als Sie sich vorstellen können. Jeder Satz, bei dem Anweisungen über das Kabel gelangen und einen Teil des Treibersystems treffen und Sie in den Flaschenhals stürzen können. Sie können ein Singleboard mit 1200 MHz Single Core nehmen und die Hardware ausschalten, um die Türen abzublasen, und Quad Core mit 3600 MHz. Dies ist wirklich eine hardwarespezifische Frage.

Wie machen sie das? mit so etwas wie diesem http://www.ixiacom.com/products/ixn2x Das ist das 165.000 $ teure "Ich werde dich brechen" -Gerät. dh 2 Gigs fehlerhafter Verkehr in eine 1gig Pipe. Sobald Sie anfangen, das System zu zerstören und Sachen zu zerbrechen, wird Ihr Flaschenhals "sich selbst offenbaren". Verbessere deine GDB-Fähigkeiten!

Jedes System hat eine andere Methode zur Behebung des Problems. Einige Boards weisen technologische Einschränkungen auf, die Sie überdecken können.

Die Antwort ist mehrdeutig, weil die Lösung mehrdeutig ist. Ich kann mir 20 verschiedene Möglichkeiten ausdenken, einschließlich Paging, das von Betriebssystemversion zu Version variieren kann.


0

Ich frage mich, ob es daran liegt, dass künstliche Wartezeiten oder Schlafstörungen in die Krypto eingefügt wurden. Es ist nicht sehr wahrscheinlich imo, aber ...

http://www.tau.ac.il/~tromer/acoustic/

Konnte dies nicht als Kommentar posten, wäre auf diese Weise besser geeignet gewesen.


0

Es kann sein, dass zu einem bestimmten Zeitpunkt nur einer der beiden Kerne gesättigt ist, aber es sieht im Durchschnitt so aus, als ob beide bei etwa 50% liegen (weil der Kernel beiden Kernen zufällig einen Single-Threaded-IPsec-Prozess zuweist, jedoch so weit wie ich habe bemerkt, dass Linux (im Gegensatz zu Windows) normalerweise versucht, einen Thread auf demselben Kern zu halten).

In einigen kurzen Zeiträumen wartet IPSec möglicherweise auch auf das Netzwerk, was in Verbindung mit einer langsamen Übertragungsrate ein Zeichen für eine schlechte Pufferung ist.

Auch die Komprimierung (falls vorhanden) und der Protokollaufwand können sich auf Ihre Tests auswirken.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.