-
Die vorliegende Erfindung betrifft das Gebiet der Verarbeitung von Datenpaketen, insbesondere der Verschlüsselung und Entschlüsselung von IPSec-Datenpaketen.
-
Zur Datenverarbeitung werden im Allgemeinen softwarebasierte oder hardwarebasierte Ansätze verwendet. Rein softwarebasierte Ansätze basieren auf der Verwendung eines Programmcodes, welcher typischerweise frei an eine gewünschte Anwendung angepasst werden kann, und mittels eines Prozessors ausgeführt wird. Softwarebasierte Ansätze zeichnen sich insbesondere durch eine hohe Flexibilität bei der Datenverarbeitung aus. Rein hardwarebasierte Ansätze basieren hingegen auf der Verwendung dedizierte Hardwarebausteine für die Datenverarbeitung, welche für eine bestimmte Anwendung speziell ausgelegt sind. Hardwarebasierte Ansätze zeichnen sich insbesondere durch eine hohe Performance und eine geringe Latenz aus.
-
Insbesondere bei der Verarbeitung von Datenpaketen durch Gateways, welche zwei Kommunikationsnetzwerke miteinander verbinden, tritt häufig der Anwendungsfall auf, dass die Verarbeitung der Datenpakete mit hoher Performance durchgeführt werden soll. Zugleich ist jedoch eine hohe Flexibilität bei der Verarbeitung der Datenpakete wünschenswert. Dies betrifft insbesondere die Verschlüsselung und Entschlüsselung von IPSec-Datenpaketen, welche beispielsweise in VPN-Gateways durchgeführt wird.
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein effizientes Konzept zum Verarbeiten von Datenpaketen durch ein Gateway zu schaffen.
-
Diese Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungsformen sind Gegenstand der abhängigen Patentansprüche, der Beschreibung sowie der Zeichnungen.
-
Die Erfindung basiert auf der Erkenntnis, dass die obige Aufgabe durch eine Kombination eines softwarebasierten Ansatzes und eines hardwarebasierten Ansatzes sowie ein besonders vorteilhaftes Entscheidungskriterium zum Aufteilen bzw. Weiterleiten von Datenpaketen gelöst werden kann. Das Gateway umfasst sowohl einen Co-Prozessor, welcher ein Datenpaket hardwarebasiert verarbeiten kann, als auch eine Datenverarbeitungseinrichtung, welche das Datenpaket mittels eines Programmcodes softwarebasiert verarbeiten kann. Mittels einer Selektionseinrichtung erfolgt schließlich eine Weiterleitung eines empfangenen Datenpakets zu dem Co-Prozessor oder zu der Datenverarbeitungseinrichtung, wobei die Selektionseinrichtung einen Datenflussindikator des empfangenen Datenpakets für die Weiterleitung berücksichtigen kann.
-
Insbesondere können in einer Flusstabelle (engl. flow table, FT) der Selektionseinrichtung verschiedene Datenflüsse angezeigt werden, deren Datenpakete jeweils durch den Co-Prozessor verarbeitbar sind. Ferner kann eine Zugriffskontrollliste (engl. Access Control List, ACL) berücksichtigt werden. Somit kann die Selektionseinrichtung eine effiziente Aufteilung von Datenpaketen zwischen dem Co-Prozessor und der Datenverarbeitungseinrichtung durchführen. Die Flusstabelle und/oder die Zugriffskontrollliste können zudem im laufenden Betrieb durch die Datenverarbeitungseinrichtung verändert werden, und somit flexibel an sich verändernde Anforderung angepasst werden. Zudem kann eine Kommunikation zwischen dem Co-Prozessor und der Datenverarbeitungseinrichtung unter Verwendung eines zugehörigen Kommunikationsprotokolls erfolgen.
-
Zusammenfassend können besonders rechenintensive Teile der Verarbeitung der Datenpakete auf den Co-Prozessor ausgelagert werden. Zugleich kann die Datenverarbeitungseinrichtung als Rückfallsystem verwendet werden; insbesondere falls ein Datenpaket eines Datenflusses nicht durch den Co-Prozessor verarbeitbar sein sollte. Ferner wird ein Overhead bei der Verarbeitung der Datenpakete reduziert.
-
Gemäß einem ersten Aspekt betrifft die Erfindung ein Gateway zum Verarbeiten eines Datenpakets. Das Datenpaket ist einem Datenfluss zugeordnet, wobei das Datenpaket einen Datenflussindikator aufweist, welcher den Datenfluss anzeigt. Das Gateway umfasst eine erste Netzwerkschnittstelle, welche ausgebildet ist, das Datenpaket über ein erstes Kommunikationsnetzwerk zu empfangen. Das Gateway umfasst ferner eine Selektionseinrichtung, welche ausgebildet ist, für das Datenpaket einen ersten Verarbeitungspfad oder einen zweiten Verarbeitungspfad auf der Basis des Datenflussindikators auszuwählen, und das Datenpaket über den ersten Verarbeitungspfad oder über den zweiten Verarbeitungspfad weiterzuleiten. Das Gateway umfasst ferner einen Co-Prozessor, welcher ausgebildet ist, das Datenpaket zu verarbeiten, falls das Datenpaket über den ersten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten. Das Gateway umfasst ferner eine Datenverarbeitungseinrichtung, welche ausgebildet ist, Programmcode auszuführen, und das Datenpaket unter Verwendung des Programmcodes zu verarbeiten, falls das Datenpaket über den zweiten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten. Das Gateway umfasst ferner eine zweite Netzwerkschnittstelle, welche ausgebildet ist, das verarbeitete Datenpaket über ein zweites Kommunikationsnetzwerk auszusenden.
-
Gemäß einer Ausführungsform weist das Datenpaket ein kryptographisch verschlüsseltes Datenfeld auf, wobei der Co-Prozessor ausgebildet ist, das kryptographisch verschlüsselte Datenfeld zu entschlüsseln, um das verarbeitete Datenpaket zu erhalten. Dadurch wird der Vorteil erreicht, dass ein kryptographisch verschlüsseltes Datenpaket effizient verarbeitet werden kann.
-
Gemäß einer Ausführungsform ist in der Selektionseinrichtung eine Flusstabelle (engl. flow table, FT) gespeichert, wobei die Flusstabelle zumindest einen Datenfluss anzeigt, dessen Datenpakete durch den Co-Prozessor verarbeitbar sind, wobei die Selektionseinrichtung ausgebildet ist, das Datenpaket über den ersten Verarbeitungspfad weiterzuleiten, falls der Datenfluss des Datenpakets einem angezeigten Datenfluss in der Flusstabelle entspricht. Dadurch wird der Vorteil erreicht, dass die Zuweisung des Datenpakets zu dem Co-Prozessor effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist die Datenverarbeitungseinrichtung ausgebildet, die Flusstabelle in der Selektionseinrichtung zu verändern. Dadurch wird der Vorteil erreicht, dass die Flusstabelle im laufenden Betrieb an sich verändernde Anforderungen angepasst werden kann.
-
Gemäß einer Ausführungsform ist in der Selektionseinrichtung eine Zugriffskontrollliste (engl. Access Control List, ACL) gespeichert, wobei die Zugriffskontrollliste zumindest eine Regel zur Handhabung zumindest eines Datenpakets zumindest eines Datenflusses anzeigt, und wobei die Selektionseinrichtung ausgebildet ist, für das Datenpaket den ersten Verarbeitungspfad oder den zweiten Verarbeitungspfad ferner auf der Basis der Zugriffskontrollliste auszuwählen. Dadurch wird der Vorteil erreicht, dass die Zuweisung des Datenpakets zu dem Co-Prozessor zusätzlich regelbasiert durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist die Datenverarbeitungseinrichtung ausgebildet, die Zugriffskontrollliste in der Selektionseinrichtung zu verändern. Dadurch wird der Vorteil erreicht, dass die Zugriffskontrollliste im laufenden Betrieb an sich verändernde Anforderungen angepasst werden kann.
-
Gemäß einer Ausführungsform ist das Gateway ausgebildet, ein weiteres Datenpaket zu verarbeiten, wobei das weitere Datenpaket einem weiteren Datenfluss zugeordnet ist, und wobei das weitere Datenpaket einen weiteren Datenflussindikator aufweist, welcher den weiteren Datenfluss anzeigt. Die zweite Netzwerkschnittstelle ist ferner ausgebildet, das weitere Datenpaket über das zweite Kommunikationsnetzwerk zu empfangen. Das Gateway umfasst ferner eine weitere Selektionseinrichtung, wobei die weitere Selektionseinrichtung ausgebildet ist, für das weitere Datenpaket einen dritten Verarbeitungspfad oder einen vierten Verarbeitungspfad auf der Basis des weiteren Datenflussindikators auszuwählen, und das weitere Datenpaket über den dritten Verarbeitungspfad oder über den vierten Verarbeitungspfad weiterzuleiten. Der Co-Prozessor ist ferner ausgebildet, das weitere Datenpaket zu verarbeiten, falls das weitere Datenpaket über den dritten Verarbeitungspfad weitergeleitet wird, um ein weiteres verarbeitetes Datenpaket zu erhalten. Die Datenverarbeitungseinrichtung ist ferner ausgebildet, weiteren Programmcode auszuführen, wobei die Datenverarbeitungseinrichtung ausgebildet ist, das weitere Datenpaket unter Verwendung des weiteren Programmcodes zu verarbeiten, falls das weitere Datenpaket über den vierten Verarbeitungspfad weitergeleitet wird, um ein weiteres verarbeitetes Datenpaket zu erhalten. Die erste Netzwerkschnittstelle ist ferner ausgebildet, das weitere verarbeitete Datenpaket über das erste Kommunikationsnetzwerk auszusenden. Dadurch wird der Vorteil erreicht, dass ein weiteres Datenpaket in Gegenrichtung übertragen werden kann.
-
Gemäß einer Ausführungsform weist das weitere Datenpaket ein kryptographisch unverschlüsseltes Datenfeld auf, wobei der Co-Prozessor ferner ausgebildet ist, das kryptographisch unverschlüsselte Datenfeld zu verschlüsseln, um das weitere verarbeitete Datenpaket zu erhalten. Dadurch wird der Vorteil erreicht, dass ein kryptographisch unverschlüsseltes weiteres Datenpaket effizient verarbeitet werden kann.
-
Gemäß einer Ausführungsform ist in der weiteren Selektionseinrichtung eine weitere Flusstabelle (engl. flow table, FT) gespeichert, wobei die weitere Flusstabelle zumindest einen weiteren Datenfluss anzeigt, dessen weitere Datenpakete durch den Co-Prozessor verarbeitbar sind, und wobei die weitere Selektionseinrichtung ausgebildet ist, das weitere Datenpaket über den dritten Verarbeitungspfad weiterzuleiten, falls der weitere Datenfluss des weiteren Datenpakets einem angezeigten weiteren Datenfluss in der weiteren Flusstabelle entspricht. Dadurch wird der Vorteil erreicht, dass die Zuweisung des weiteren Datenpakets zu dem Co-Prozessor effizient durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist die Datenverarbeitungseinrichtung ausgebildet, die weitere Flusstabelle in der weiteren Selektionseinrichtung zu verändern. Dadurch wird der Vorteil erreicht, dass die weitere Flusstabelle im laufenden Betrieb an sich verändernde Anforderungen angepasst werden kann.
-
Gemäß einer Ausführungsform ist in der weiteren Selektionseinrichtung eine weitere Zugriffskontrollliste (engl. Access Control List, ACL) gespeichert, wobei die weitere Zugriffskontrollliste zumindest eine weitere Regel zur Handhabung zumindest eines weiteren Datenpakets zumindest eines weiteren Datenflusses anzeigt, und wobei die weitere Selektionseinrichtung ausgebildet ist, für das weitere Datenpaket den dritten Verarbeitungspfad oder den vierten Verarbeitungspfad ferner auf der Basis der weiteren Zugriffskontrollliste auszuwählen. Dadurch wird der Vorteil erreicht, dass die Zuweisung des weiteren Datenpakets zu dem Co-Prozessor zusätzlich regelbasiert durchgeführt werden kann.
-
Gemäß einer Ausführungsform ist die Datenverarbeitungseinrichtung ausgebildet, die weitere Zugriffskontrollliste in der weiteren Selektionseinrichtung zu verändern. Dadurch wird der Vorteil erreicht, dass die weitere Zugriffskontrollliste im laufenden Betrieb an sich verändernde Anforderungen angepasst werden kann.
-
Gemäß einer Ausführungsform ist die Selektionseinrichtung ausgebildet, das weitere Datenpaket unverändert weiterzuleiten. Dadurch wird der Vorteil erreicht, dass die Latenz weiter reduziert werden kann.
-
Gemäß einer Ausführungsform ist die weitere Selektionseinrichtung ausgebildet, das Datenpaket unverändert weiterzuleiten. Dadurch wird der Vorteil erreicht, dass die Latenz weiter reduziert werden kann.
-
Gemäß einer Ausführungsform sind die Selektionseinrichtung und/oder die weitere Selektionseinrichtung jeweils über einen Peripheral Component Interconnect Express, PCle, Kommunikationsbus mit der Datenverarbeitungseinrichtung verbunden. Dadurch wird der Vorteil erreicht, dass das Datenpaket bzw. das weitere Datenpaket effizient zwischen der Selektionseinrichtung bzw. der weiteren Selektionseinrichtung und der Datenverarbeitungseinrichtung übertragen werden können.
-
Gemäß einer Ausführungsform ist die Datenverarbeitungseinrichtung ausgebildet, ein Internet Key Exchange, IKE, Protokoll durchzuführen, um zumindest einen kryptographischen Schlüssel zu erhalten, und den zumindest einen kryptographischen Schlüssel an den Co-Prozessor zu übertragen, wobei der Co-Prozessor ausgebildet ist, das Datenpaket und/oder das weitere Datenpaket unter Verwendung des zumindest einen kryptographischen Schlüssels zu verarbeiten, insbesondere zu verschlüsseln oder zu entschlüsseln. Dadurch wird der Vorteil erreicht, dass der Co-Prozessor effizient kryptographische Operationen ausführen kann.
-
Gemäß einer Ausführungsform sind das Datenpaket und/oder das weitere Datenpaket Internet Protocol Security, IPSec, Datenpakete. Dadurch wird der Vorteil erreicht, dass das Gateway Datenpakete gemäß einem standardisierten Format handhaben kann.
-
Gemäß einer Ausführungsform ist das Gateway ausgebildet, eine Virtual Private Network, VPN, Kommunikationsverbindung zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk aufzubauen. Dadurch wird der Vorteil erreicht, dass das Gateway als VPN-Gateway eingesetzt werden kann.
-
Gemäß einer Ausführungsform sind die erste Netzwerkschnittstelle, die Selektionseinrichtung, die weitere Selektionseinrichtung, der Co-Prozessor, und/oder die zweite Netzwerkschnittstelle in einem Field Programmable Gate Array, FPGA, oder in einem Application Specific Integrated Circuit, ASIC, implementiert. Dadurch wird der Vorteil erreicht, dass das Datenpaket bzw. das weitere Datenpaket effizient hardwarebasiert verarbeitet werden können.
-
Gemäß einer Ausführungsform umfasst die Datenverarbeitungseinrichtung einen Prozessor und einen Speicher, wobei der Programmcode und/oder der weitere Programmcode in dem Speicher gespeichert sind, und wobei der Prozessor ausgebildet ist, das Datenpaket und/oder das weitere Datenpaket unter Verwendung des Programmcodes und/oder des weiteren Programmcodes zu verarbeiten. Dadurch wird der Vorteil erreicht, dass das Datenpaket bzw. das weitere Datenpaket effizient softwarebasiert verarbeitet werden können.
-
Gemäß einer Ausführungsform ist das erste Kommunikationsnetzwerk einer ersten Sicherheitsdomäne zugeordnet, wobei das zweite Kommunikationsnetzwerk einer zweiten Sicherheitsdomäne zugeordnet ist, und wobei die zweite Sicherheitsdomäne ein höheres Sicherheitsniveau als die erste Sicherheitsdomäne aufweist. Dadurch wird der Vorteil erreicht, dass durch das Gateway Kommunikationsnetzwerke mit unterschiedlichen Sicherheitsniveaus effizient voneinander getrennt werden können.
-
Gemäß einem zweiten Aspekt betrifft die Erfindung ein Verfahren zum Betreiben eines Gateways zum Verarbeiten eines Datenpakets. Das Gateway umfasst eine erste Netzwerkschnittstelle, eine Selektionseinrichtung, einen Co-Prozessor, eine Datenverarbeitungseinrichtung, und eine zweite Netzwerkschnittstelle, wobei die Datenverarbeitungseinrichtung ausgebildet ist, Programmcode auszuführen. Das Datenpaket ist einem Datenfluss zugeordnet, wobei das Datenpaket einen Datenflussindikator aufweist, welcher den Datenfluss anzeigt. Das Verfahren umfasst ein Empfangen des Datenpaketes über ein erstes Kommunikationsnetzwerk durch die erste Netzwerkschnittstelle, ein Auswählen eines ersten Verarbeitungspfades oder eines zweiten Verarbeitungspfades für das Datenpaket auf der Basis des Datenflussindikators durch die Selektionseinrichtung, ein Weiterleiten des Datenpaketes über den ersten Verarbeitungspfad oder über den zweiten Verarbeitungspfad durch die Selektionseinrichtung, ein Verarbeiten des Datenpaketes durch den Co-Prozessor, falls das Datenpaket über den ersten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten, ein Verarbeiten des Datenpaketes unter Verwendung des Programmcodes durch die Datenverarbeitungseinrichtung, falls das Datenpaket über den zweiten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten, und ein Aussenden des verarbeiteten Datenpaketes über ein zweites Kommunikationsnetzwerk durch die zweite Netzwerkschnittstelle.
-
Das Verfahren kann mittels des Gateways durchgeführt werden. Weitere Merkmale des Verfahrens resultieren unmittelbar aus den Merkmalen und/oder der Funktionalität des Gateways.
-
Gemäß einem dritten Aspekt betrifft die Erfindung ein Computerprogramm zum Ausführen des Verfahrens, wenn das Computerprogramm durch ein Gateway ausgeführt wird. Das Gateway kann programmtechnisch eingerichtet sein, um das Computerprogramm auszuführen.
-
Die Erfindung kann in Hardware und in Software realisiert werden.
-
Weitere Ausführungsbeispiele werden Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
- 1 ein schematisches Diagramm eines Gateways zum Verarbeiten eines Datenpakets; und
- 2 ein schematisches Diagramm eines Verfahrens zum Betreiben eines Gateways zum Verarbeiten eines Datenpakets.
-
1 zeigt ein schematisches Diagramm eines Gateways 100 zum Verarbeiten eines Datenpakets. Das Datenpaket ist einem Datenfluss zugeordnet, wobei das Datenpaket einen Datenflussindikator aufweist, welcher den Datenfluss anzeigt.
-
Das Gateway 100 umfasst eine erste Netzwerkschnittstelle 101, welche ausgebildet ist, das Datenpaket über ein erstes Kommunikationsnetzwerk zu empfangen. Das Gateway 100 umfasst ferner eine Selektionseinrichtung 103, welche ausgebildet ist, für das Datenpaket einen ersten Verarbeitungspfad oder einen zweiten Verarbeitungspfad auf der Basis des Datenflussindikators auszuwählen, und das Datenpaket über den ersten Verarbeitungspfad oder über den zweiten Verarbeitungspfad weiterzuleiten. Das Gateway 100 umfasst ferner einen Co-Prozessor 105, welcher ausgebildet ist, das Datenpaket zu verarbeiten, falls das Datenpaket über den ersten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten. Das Gateway 100 umfasst ferner eine Datenverarbeitungseinrichtung 107, welche ausgebildet ist, Programmcode auszuführen, und das Datenpaket unter Verwendung des Programmcodes zu verarbeiten, falls das Datenpaket über den zweiten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten. Das Gateway 100 umfasst ferner eine zweite Netzwerkschnittstelle 109, welche ausgebildet ist, das verarbeitete Datenpaket über ein zweites Kommunikationsnetzwerk auszusenden.
-
Das Gateway 100 kann ausgebildet sein, ein weiteres Datenpaket zu verarbeiten, wobei das weitere Datenpaket einem weiteren Datenfluss zugeordnet ist, und wobei das weitere Datenpaket einen weiteren Datenflussindikator aufweist, welcher den weiteren Datenfluss anzeigt. Die zweite Netzwerkschnittstelle 109 kann ferner ausgebildet sein, das weitere Datenpaket über das zweite Kommunikationsnetzwerk zu empfangen. Das Gateway 100 kann ferner eine weitere Selektionseinrichtung 103a umfassen, wobei die weitere Selektionseinrichtung 103a ausgebildet ist, für das weitere Datenpaket einen dritten Verarbeitungspfad oder einen vierten Verarbeitungspfad auf der Basis des weiteren Datenflussindikators auszuwählen, und das weitere Datenpaket über den dritten Verarbeitungspfad oder über den vierten Verarbeitungspfad weiterzuleiten. Der Co-Prozessor 105 kann ferner ausgebildet sein, das weitere Datenpaket zu verarbeiten, falls das weitere Datenpaket über den dritten Verarbeitungspfad weitergeleitet wird, um ein weiteres verarbeitetes Datenpaket zu erhalten. Die Datenverarbeitungseinrichtung 107 kann ferner ausgebildet sein, weiteren Programmcode auszuführen, wobei die Datenverarbeitungseinrichtung 107 ausgebildet sein kann, das weitere Datenpaket unter Verwendung des weiteren Programmcodes zu verarbeiten, falls das weitere Datenpaket über den vierten Verarbeitungspfad weitergeleitet wird, um ein weiteres verarbeitetes Datenpaket zu erhalten. Die erste Netzwerkschnittstelle 101 kann ferner ausgebildet sein, das weitere verarbeitete Datenpaket über das erste Kommunikationsnetzwerk auszusenden.
-
Das erste Kommunikationsnetzwerk kann beispielsweise einer ersten Sicherheitsdomäne zugeordnet sein, und das zweite Kommunikationsnetzwerk kann beispielsweise einer zweiten Sicherheitsdomäne zugeordnet sein. Die zweite Sicherheitsdomäne kann ein höheres Sicherheitsniveau als die erste Sicherheitsdomäne aufweisen. Beispielsweise kann die zweite Sicherheitsdomäne vorgesehen sein, um vertrauliche bzw. schützenswerte Daten zu speichern und/oder zu verarbeiten, wohingegen die erste Sicherheitsdomäne nicht vertrauenswürdig ist. Die zweite Sicherheitsdomäne kann einem internen Kommunikationsnetzwerk zugeordnet sein, wohingegen die erste Sicherheitsdomäne dem Internet zugeordnet sein kann.
-
Die Selektionseinrichtung 103 kann ausgebildet sein, das weitere Datenpaket unverändert weiterzuleiten, und die weitere Selektionseinrichtung 103a kann ausgebildet sein, das Datenpaket unverändert weiterzuleiten. Die Selektionseinrichtung 103 und die weitere Selektionseinrichtung 103a können folglich jeweils als Multiplexer (MUX) bzw. Demultiplexer (DEMUX) betrieben werden. Die Selektionseinrichtung 103 und die weitere Selektionseinrichtung 103a treffen jeweils mit geringer Latenz eine Entscheidung, ob das Datenpaket bzw. das weitere Datenpaket durch den Co-Prozessor 105 oder durch die Datenverarbeitungseinrichtung 107, insbesondere den Prozessor 111, verarbeitet werden sollen, und leiten das Datenpaket bzw. das weitere Datenpaket entsprechend weiter.
-
In der Selektionseinrichtung 103 kann hierfür eine Flusstabelle (engl. flow table, FT) gespeichert sein, welche zumindest einen Datenfluss anzeigt, dessen Datenpakete durch den Co-Prozessor 105 verarbeitbar sind. Entsprechend kann in der weiteren Selektionseinrichtung 103a eine weitere Flusstabelle (engl. flow table, FT) gespeichert sein, welche zumindest einen weiteren Datenfluss anzeigt, dessen weitere Datenpakete durch den Co-Prozessor 105 verarbeitbar sind.
-
In der Selektionseinrichtung 103 kann ferner eine Zugriffskontrollliste (engl. Access Control List, ACL) gespeichert sein, wobei die Zugriffskontrollliste zumindest eine Regel zur Handhabung zumindest eines Datenpakets zumindest eines Datenflusses anzeigt. Entsprechend kann in der weiteren Selektionseinrichtung 103a ferner eine weitere Zugriffskontrollliste (engl. Access Control List, ACL) gespeichert sein, wobei die weitere Zugriffskontrollliste zumindest eine weitere Regel zur Handhabung zumindest eines weiteren Datenpakets zumindest eines weiteren Datenflusses anzeigt.
-
Durch die Verwendung von Flusstabellen und/oder Zugriffskontrolllisten kann eine intelligente Abhängigkeitsanalyse durch die Selektionseinrichtung 103 sowie die weitere Selektionseinrichtung 103a zur Redundanzverringerung realisiert werden. Sowohl die Flusstabellen als auch die Zugriffskontrolllisten in der Selektionseinrichtung 103 sowie der weiteren Selektionseinrichtung 103a können jeweils durch die Datenverarbeitungseinrichtung 107 verändert, insbesondere aktualisiert, werden. Dies kann beispielsweise über entsprechende Konfigurationsschnittstellen realisiert werden.
-
Der erste Verarbeitungspfad des Datenpakets verläuft somit beispielsweise über die erste Netzwerkschnittstelle 101, die Selektionseinrichtung 103, den Co-Prozessor 105, die weitere Selektionseinrichtung 103a, und die zweite Netzwerkschnittstelle 109. Der zweite Verarbeitungspfad des Datenpakets verläuft beispielsweise über die erste Netzwerkschnittstelle 101, die Selektionseinrichtung 103, die Datenverarbeitungseinrichtung 107, die weitere Selektionseinrichtung 103a, und die zweite Netzwerkschnittstelle 109.
-
Der dritte Verarbeitungspfad des weiteren Datenpakets verläuft beispielsweise über die zweite Netzwerkschnittstelle 109, die weitere Selektionseinrichtung 103a, den Co-Prozessor 105, die Selektionseinrichtung 103, und die erste Netzwerkschnittstelle 101. Der vierte Verarbeitungspfad des weiteren Datenpakets verläuft beispielsweise über die zweite Netzwerkschnittstelle 109, die weitere Selektionseinrichtung 103a, die Datenverarbeitungseinrichtung 107, die Selektionseinrichtung 103, und die erste Netzwerkschnittstelle 101.
-
Der Co-Prozessor 105 kann beispielsweise als Hardware-Beschleuniger betrieben werden, welcher beispielsweise kryptographische Operationen effizient ausführen kann. Beispielsweise kann der Co-Prozessor 105 eine Verarbeitung, insbesondere eine Entschlüsselung und/oder eine Verschlüsselung, von IPSec-Datenpaketen durchführen. Der Co-Prozessor 105 kann das Datenpaket bzw. das weitere Datenpaket insbesondere ohne Rückgriff auf die Datenverarbeitungseinrichtung 107 verarbeiten.
-
Die Datenverarbeitungseinrichtung 107 kann einen Prozessor 111 und einen Speicher 113 umfassen, wobei der Programmcode und/oder der weitere Programmcode in dem Speicher 113 gespeichert sein können, und wobei der Prozessor 111 ausgebildet sein kann, das Datenpaket und/oder das weitere Datenpaket unter Verwendung des Programmcodes und/oder des weiteren Programmcodes zu verarbeiten. Die Datenverarbeitungseinrichtung 107 kann ein Betriebssystem ausführen, beispielsweise unter Verwendung des Prozessors 111 und des Speichers 113. Das Betriebssystem kann ein Standard-Betriebssystem sein. Die Verarbeitung des Datenpakets bzw. des weiteren Datenpakets kann beispielsweise durch eine Erweiterung der Funktionalität des Betriebssystems realisiert werden.
-
Die Datenverarbeitungseinrichtung 107 kann ausgebildet sein, ein Internet Key Exchange, IKE, Protokoll durchzuführen, um zumindest einen kryptographischen Schlüssel zu erhalten, und den zumindest einen kryptographischen Schlüssel an den Co-Prozessor 105 zu übertragen, wobei der Co-Prozessor 105 ausgebildet sein kann, das Datenpaket und/oder das weitere Datenpaket unter Verwendung des zumindest einen kryptographischen Schlüssels zu verarbeiten, insbesondere zu verschlüsseln oder zu entschlüsseln. Das IKE Protokoll kann durch die Datenverarbeitungseinrichtung 107 beispielsweise zusammen mit einem externen Server (nicht gezeigt) durchgeführt werden, welcher beispielsweise in dem ersten Kommunikationsnetzwerk angeordnet ist.
-
Die Datenverarbeitungseinrichtung 107 kann insbesondere jeglichen Datenverkehr behandeln, welcher nicht durch den Co-Prozessor 105 verarbeitbar ist. Derartiger Datenverkehr kann beispielsweise anfallen, falls der Co-Prozessor 105 bestimmte Algorithmen zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen, insbesondere IPSec-Datenpaketen, nicht unterstützt, oder ein Überlauf der jeweiligen Flusstabellen auftritt. Ferner kann durch die Datenverarbeitungseinrichtung 107 eine Adressauflösung von Datenpaketen, beispielsweise mittels des Address Resolution Protocol, ARP, durchgeführt werden. Zudem können IPv4- oder IPv6-Formate der jeweiligen Datenpakete verwaltet werden. Auch Routing-Protokolle können durch die Datenverarbeitungseinrichtung 107 durchgeführt werden. Die Datenverarbeitungseinrichtung 107 kann auf unterschiedliche Ereignisse, Zeitüberschreitungen (engl. Timeouts), und Überläufe flexibel reagieren. Zudem kann eine Firewall durch die Datenverarbeitungseinrichtung 107 implementiert werden.
-
Die erste Netzwerkschnittstelle 101, die Selektionseinrichtung 103, die weitere Selektionseinrichtung 103a, der Co-Prozessor 105, und/oder die zweite Netzwerkschnittstelle 109 können zudem in einem Field Programmable Gate Array, FPGA, oder in einem Application Specific Integrated Circuit, ASIC, implementiert sein. Dadurch kann eine hardwarebasierte Verarbeitung des Datenpakets bzw. des weiteren Datenpakets effizient ermöglicht werden. Die Selektionseinrichtung 103 und/oder die weitere Selektionseinrichtung 103a können jeweils über einen Peripheral Component Interconnect Express, PCle, Kommunikationsbus mit der Datenverarbeitungseinrichtung 107 verbunden sein. Der PCle Kommunikationsbus erlaubt insbesondere eine transparente Anbindung, wodurch jeglicher Datenverkehr gesendet und empfangen werden kann. Die Funktionalitäten der ersten Netzwerkschnittstelle 101, der Selektionseinrichtung 103, der weiteren Selektionseinrichtung 103a, des Co-Prozessors 105, und/oder der zweiten Netzwerkschnittstelle 109 können beispielsweise in Form einer FPGA-Erweiterungskarte bzw. FPGA-Steckkarte zur Anbindung an die Datenverarbeitungseinrichtung 107 bereitgestellt werden. Dadurch können insbesondere Datenpakete über datenintensive Kommunikationsverbindungen effizient behandelt werden, ohne dass die Datenverarbeitungseinrichtung 107 hierdurch belastet wird.
-
Das Gateway kann ferner eine dritte Netzwerkschnittstelle 115 umfassen, wobei die Datenverarbeitungseinrichtung 107 ausgebildet sein kann, über die dritte Netzwerkschnittstelle 115 über ein drittes Kommunikationsnetzwerk zu kommunizieren. Die dritte Netzwerkschnittstelle 115 kann als Netzwerkkarte (engl. Network Interface Card, NIC) implementiert sein.
-
Im Folgenden soll exemplarisch der Aufbau eines Virtual Private Network, VPN, zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk beschrieben werden, wobei IPSec-Datenpakete verwendet werden:
-
In einer Initialisierungsphase kann eine Kommunikationsverbindung für die IPSec-Datenpakete aufgebaut werden. Die Datenverarbeitungseinrichtung 107 kann hierfür das Internet Key Exchange, IKE, Protokoll durchführen, beispielsweise über die Selektionseinrichtung 103, welche den Datenverkehr transparent weiterleiten kann. Ferner kann der Datenverkehr beispielsweise über die dritte Netzwerkschnittstelle 115 erfolgen. Beispielsweise können hierdurch kryptographische Parameter ausgetauscht bzw. verhandelt werden. Zumindest ein kryptographischer Schlüssel können anschließend in den Co-Prozessor 105 übernommen bzw. eingetragen werden. Dies kann beispielsweise derart erfolgen, dass ein zugehöriger Datenfluss sodann unabhängig hardwarebasiert von der Datenverarbeitungseinrichtung 107 behandelt werden kann. Andernfalls kann entschieden werden, dass die Datenverarbeitungseinrichtung 107 die zugehörigen IPSec-Datenpakete selbst behandelt und transparent durch die hardwarebasierten Komponenten hindurch kommuniziert. Dies ist insbesondere dann vorteilhaft, wenn bestimmte Algorithmen in dem Co-Prozessor 105 nicht implementiert sind.
-
In einer Betriebsphase erfolgt die Kommunikation über die hardwarebasierten Komponenten. Eingehende IPSec-Datenpakete werden mittels der Selektionseinrichtung 103 durch einen entsprechenden Eintrag in der Flusstabelle erkannt. Ferner können die zugehörigen kryptographischen Parameter ausgelesen und/oder bestimmt werden. Der Co-Prozessor 105 kann als optimierter Teil der hardwarebasierten Komponenten eine Entschlüsselung und/oder Authentifizierung durchführen. Die verarbeiteten Datenpakete können anschließend über die zweite Netzwerkschnittstelle 109 nach extern ausgesendet werden oder ggf. an die Datenverarbeitungseinrichtung 107 zur Weiterverarbeitung weitergeleitet werden. Eine Verschlüsselung von Datenpaketen kann entsprechend in Gegenrichtung durchgeführt werden. Dabei kann ein weiterer Datenfluss beispielsweise anhand von Netzwerkadressen der eingehenden weiteren Datenpakete bestimmt werden. Die weitere Selektionseinrichtung 103a kann entsprechend selbständig den Ablauf übernehmen. Die verschlüsselten Datenpakete können dann über die erste Netzwerkschnittstelle 101 nach extern oder an die Datenverarbeitungseinrichtung 107 zur Weiterverarbeitung weitergeleitet werden. Das Gateway 100 operiert folglich als VPN-Gateway zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk. Durch den Co-Prozessor 105 kann eine Beschleunigung des VPN erreicht werden.
-
Eine Veränderung der Flusstabelle und/oder weiteren Flusstabelle kann beispielsweise durch die Datenverarbeitungseinrichtung 107 durchgeführt werden. Dabei kann durch die hardwarebasierten Komponenten erkannt werden, dass ein entsprechender Eintrag in der Flusstabelle und/oder der weiteren Flusstabelle aktualisiert werden soll. Ebenso kann die Datenverarbeitungseinrichtung 107 mittels einer zyklischen Abfrage (engl. Polling) oder mittels einer Unterbrechungsanforderung (engl. Interrupt Request, IRQ) bemerken, dass ein entsprechender Eintrag in der Flusstabelle und/oder der weiteren Flusstabelle aktualisiert werden soll. Die Datenverarbeitungseinrichtung 107 kann geeignete Schritte einleiten, und die Konfiguration der Komponenten erneuern.
-
Für sonstigen Datenverkehr, welcher den hardwarebasierten Komponenten bislang unbekannt ist, kann beispielsweise auch mittels der Zugriffskontrolllisten die weitere Behandlung definiert werden, beispielsweise ein Verwerfen (engl. Drop), eine Weiterbehandlung durch die softwarebasierten Komponenten (engl. to-Software), oder ein Durchleiten (engl. Pass-through). Hierdurch kann eine transparente Kommunikation der Datenverarbeitungseinrichtung 107 mit externen Servern ermöglicht werden. Die Datenverarbeitungseinrichtung 107 kann dabei über den FPGA bzw. ASIC mit dem ersten Kommunikationsnetzwerk und/oder dem zweiten Kommunikationsnetzwerk kommunizieren. Kommunikationsverbindung mit geringem Datendurchsatz können folglich weiter durch die Datenverarbeitungseinrichtung 107 behandelt werden, und transparent durchgeleitet werden. Ferner können bestimmte netzwerkbasierte Konfigurationsprotokolle weiterhin über die Datenverarbeitungseinrichtung 107 behandelt werden.
-
2 zeigt ein schematisches Diagramm eines Verfahrens 200 zum Betreiben eines Gateways zum Verarbeiten eines Datenpakets.
-
Das Gateway umfasst eine erste Netzwerkschnittstelle, eine Selektionseinrichtung, einen Co-Prozessor, eine Datenverarbeitungseinrichtung, und eine zweite Netzwerkschnittstelle, wobei die Datenverarbeitungseinrichtung ausgebildet ist, Programmcode auszuführen. Das Datenpaket ist einem Datenfluss zugeordnet, wobei das Datenpaket einen Datenflussindikator aufweist, welcher den Datenfluss anzeigt.
-
Das Verfahren 200 umfasst ein Empfangen 201 des Datenpaketes über ein erstes Kommunikationsnetzwerk durch die erste Netzwerkschnittstelle, ein Auswählen 203 eines ersten Verarbeitungspfades oder eines zweiten Verarbeitungspfades für das Datenpaket auf der Basis des Datenflussindikators durch die Selektionseinrichtung, ein Weiterleiten 205 des Datenpaketes über den ersten Verarbeitungspfad oder über den zweiten Verarbeitungspfad durch die Selektionseinrichtung, ein Verarbeiten 207 des Datenpaketes durch den Co-Prozessor, falls das Datenpaket über den ersten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten, ein Verarbeiten 209 des Datenpaketes unter Verwendung des Programmcodes durch die Datenverarbeitungseinrichtung, falls das Datenpaket über den zweiten Verarbeitungspfad weitergeleitet wird, um ein verarbeitetes Datenpaket zu erhalten, und ein Aussenden 211 des verarbeiteten Datenpaketes über ein zweites Kommunikationsnetzwerk durch die zweite Netzwerkschnittstelle.
-
Das Verfahren 200 kann weitere Merkmale umfassen, welche unmittelbar aus den Merkmalen und/oder der Funktionalität des Gateways resultieren. Das Verfahren 200 kann mittels eines Computerprogramms implementiert werden.
-
Zusammenfassend werden Operationen, welche durch eine hardwarebasierte Komponente ausgeführt werden können, sofern möglich, durch diese durchgeführt. Entsprechend kann diese Komponente, beispielsweise in Form der Selektionseinrichtung, am Anfang des Verarbeitungspfades angeordnet sein, wodurch auch eine Belastung der Datenverarbeitungseinrichtung 107 als Rückfallsystem vermieden werden kann.
-
Ferner kann eine Kommunikation zwischen den hardwarebasierten Komponenten und der Datenverarbeitungseinrichtung 107 als softwarebasierte Komponente sowohl für Konfigurationsdaten als auch für Nutzdaten stattfinden. Dabei besteht beispielsweise auch die Möglichkeit der Übertragung von Metadaten zusätzlich zu regulären Daten. Diese Metadaten können dann beispielsweise zur weiteren Optimierung der Datenverarbeitung verwendet werden. Die Datenverarbeitungseinrichtung 107 als softwarebasierte Komponente kann weiterhin befähigt sein, sämtliche Operationen durchzuführen und kann insbesondere diejenigen Funktionen ausführen, die durch die hardwarebasierten Komponenten aufgrund ihrer Komplexität oder wegen Ressourcenengpässen nicht erbracht werden können.
-
In dem Gateway 100 kann die Datenverarbeitungseinrichtung 107 die hardwarebasierten Komponenten ggf. weiterhin so nutzen, wie dies auch ohne die beschriebenen Funktionen möglich ist. Beispielsweise können die hardwarebasierten Komponenten zusätzlich als allgemeine Netzwerkkarte (engl. Network Interface Card, NIC) verwendet werden.
-
Durch das Gateway 100 kann eine Steigerung zentraler Performancecharakteristika, wie beispielsweise Datendurchsatz, und eine Verringerung der Latenz ermöglicht werden. Zugleich kann eine weitere Optimierung der Software der Datenverarbeitungseinrichtung 107 vermieden werden, welche ab einem bestimmten Punkt überproportional aufwändig werden kann. Ferner können besonders geeignete Funktionalitäten für hardwarebasierte Datenverarbeitung in den hardwarebasierten Komponenten implementiert werden.
-
Das Gateway 100 ermöglicht somit eine effiziente Nutzung der jeweiligen Stärken von hardware- und softwarebasierten Ansätzen zur Verarbeitung von Datenpaketen.
-
Alle in Verbindung mit einzelnen Ausführungsform beschriebenen und/oder gezeigten Merkmale können in beliebiger Kombination in dem erfindungsgemäßen Gegenstand vorgesehen sein, um gleichzeitig deren vorteilhafte Wirkungen zu realisieren.
-
Bezugszeichenliste
-
- 100
- Gateway
- 101
- Erste Netzwerkschnittstelle
- 103
- Selektionseinrichtung
- 103a
- Weitere Selektionseinrichtung
- 105
- Co-Prozessor
- 107
- Datenverarbeitungseinrichtung
- 109
- Zweite Netzwerkschnittstelle
- 111
- Prozessor
- 113
- Speicher
- 115
- Dritte Netzwerkschnittstelle
- 200
- Verfahren zum Betreiben eines Gateways
- 201
- Empfangen eines Datenpaketes
- 203
- Auswählen eines ersten Verarbeitungspfades oder eines zweiten Verarbeitungspfades
- 205
- Weiterleiten des Datenpaketes über den ersten Verarbeitungspfad oder über den zweiten Verarbeitungspfad
- 207
- Verarbeiten des Datenpaketes durch einen Co-Prozessor
- 209
- Verarbeiten des Datenpaketes durch eine Datenverarbeitungseinrichtung
- 211
- Aussenden eines verarbeiteten Datenpaketes