-
Die vorliegende Erfindung bezieht sich auf ein Verfahren, um Priorisierungen für zeitdeterministische Firewalls zu realisieren.
-
Firewalls werden in Computernetzwerken dazu benötigt, die im Netzwerk versendeten Datenpakete zu filtern und nach Regeln weiterzuleiten oder zu verwerfen.
-
Paketfilter (Firewall, Switch mit ACL Regeln) betrachten Pakete und entscheiden anhand eines Regelwerks. Das verstärkte Aufkommen von Echtzeitverkehr bedingt, dass auch Firewalls Pakete in Echtzeit (also mit vorgegebener Verzögerung bzw. Bearbeitungszeit) bearbeiten können. Das zur Verfügung stehende Zeitbudget kann dabei zu klein für die vollständige Analyse des Pakets bezüglich aller Firewall-Regeln sein. Dies kann von der Last der Firewall (z.B. Firewall benötigt zu lange, da andere Rechenoperationen vorrangig bearbeitet wurden) oder von parallelen Prozessen auf der Firewall (CPU wird für etwas anderes verwendet) anhängen.
-
Heute kennen Firewalls keine Zeitbudgets. Daher führt dies dazu, dass Firewalls Pakete mit zu hoher Verzögerung/Latenz weiterleiten und so zeitkritische Pakete zu spät beim Empfänger im Netzwerk ankommen. Ebenso verursacht eine stark variierende Bearbeitungszeit Probleme, da es dadurch zu stoßweiser Paketbearbeitung und dem aufstauen von Paketen kommen kann. Eine konstante Bearbeitungszeit ist daher in vielen Fällen von Vorteil, insbesondere für die genaue Vorhersage und Planung von Paketflüssen im Netzwerk.
-
Bisher wurde dieses Problem in der Forschung nicht intensiver betrachtet, da Firewalls nicht im Zusammenspiel mit zeitkritischem Verkehr eingesetzt wurden. Diese Erfindung beschreibt ein Verfahren, um mit dieser Situation umzugehen.
-
Aufgabe der vorliegenden Erfindung ist es somit, ein Verfahren zu realisieren, um zeitkritische Pakete rechtzeitig beim Empfänger ankommen zu lassen. Entsprechend stellt sich die Erfindung die Aufgabe, ein Verfahren für zeitdeterministische Firewalls aufzuzeigen.
-
Diese Aufgabe wird durch die Merkmale des Hauptanspruchs gelöst.
-
Dazu wird ein Verfahren mit einem Computernetzwerk vorgeschlagen, mit einer Firewall sowie einem Zwischenspeicher in der Firewall.
-
Nach dem Verfahren wird zunächst jedem Datenpaket eine Priorisierung zugewiesen. Der Versand des Datenpakets soll wie üblich nach vollständiger Verarbeitung der Filterregeln in der Firewall geschehen.
-
Während der Filterung von Paketen kann es passieren, dass sich ein Paket mit niedriger Priorisierung bereits in der Filterung befindet, während ein Paket mit hoher Priorisierung an der Firewall eintrifft. Das langsame Paket verzögert in diesem Fall die Bearbeitung des hochpriorisierten Pakets. Dies kann verhindert werden, indem man einen Zwischenspeicher nutzt, um die Bearbeitung des langsamen Pakets beim Eintreffen eines dringenden Pakets zu unterbrechen und später fortzusetzen.
-
Zu diesem Zweck beobachtet die Firewall die eingehenden Pakete und stellt diese in eine Warteschlange (dies ist noch ganz normales Verhalten). Wenn nun ein hochpriorisiertes Paket empfangen wird, während ein Paket mit niederer Priorität bereits gefiltert wird, so kann das hochpriorisierte Paket vorrangig gefiltert werden in dem es a) an die Spitze der Warteschlange gestellt wird und b) die Bearbeitung des niederpriorisierten Pakets angehalten wird.
-
Die Bearbeitung des niederpriorisierten Datenpakets wird bei Empfang eines hochpriorisierten Datenpakets unterbrochen, wenn die Filterung noch andauert. Das niederpriorisierte Paket wird dann mit einem Vermerk der letzten getesteten Regel in einen Pufferspeicher geschrieben. Die Filterung wird darauf abgebrochen. Nun kann das hochpriorisierte Paket direkt gefiltert werden.
-
Wenn das hochpriorisierte Datenpakt abschließend von der Firewall bearbeitet wurde, kann die Bearbeitung des im Puffer befindlichen niederpriorisierten Datenpakets fortgeführt werden.
-
Wenn weitere hochpriorisierte Pakete vorhanden sind, können auch diese vorrangig gefiltert werden. Nach Abschluss der Filterung aller vorrangig gefilterten Pakete kann die Filterung des niederpriorisierten Pakets an der Stelle der Unterbrechung erneut aufgenommen werden. Etwaige Zeitbudgets können für die Entscheidung, wie lange das niederpriorisierte Paket im Puffer geparkt werden kann berücksichtigt werden.
-
Es ist auch möglich eine Regelposition festzulegen, ab welcher Regel keine Unterbrechung mehr stattfinden soll. So kann vermieden werden, dass ein niederpriorisiertes Paket, das sich z.B. an Stelle 99 von 100 bei der Abarbeitung von Regeln befindet, aufgrund einer einzigen verbleibenden Regel mit höherem Aufwand zwischengespeichert wird.
-
Die Priorisierung der Datenpakete kann in Abhängigkeit von der Verkehrsklasse des Netzwerks (LAN, WAN, etc.) festgelegt werden. Ebenso kann die Priorisierung nach einer Eigenschaft des Datenpakets (Größe, Inhalt, etc.) festgelegt werden. Auch die Festlegung nach Herkunft oder Ziel ist denkbar (Port, Netzwerk, VLAN, etc).
-
Weitere Merkmale ergeben sich aus den beigefügten Figuren. Es zeigen
- 1: Zeitdiagramm für eine Paketfilterung mit zwei unterschiedlich priorisierten Datenpaketen;
- 2: Zeitdiagramm für eine Paketfilterung mit drei unterschiedlich priorisierten Datenpaketen;
- 3: Zeitdiagramm für eine Paketfilterung mit vier unterschiedlich priorisierten Datenpaketen;
-
1 zeigt ein erfindungsgemäßes Verfahren mit einer Firewall 2 in einem Netzwerk 1. Die Firewall 2 beinhaltet definierbare Regeln, nach welchen eingehende Datenpakete 3 untersucht werden. Je nach Ergebnis der Untersuchung wird anschließend eine Firewall-Aktion ausgeführt, was ein Senden der Datenpakete 3 oder ein Verwerfen der Datenpakete 3 beinhalten kann.
-
Das erste, am Eingang 4 der Firewall 2 ankommende Datenpaket 3 wird zur Bearbeitung 5 weitergeleitet. Die Bearbeitung 5 beinhaltet das Abarbeiten der Regeln, welche in der Firewall definiert wurden. Der Zeitpunkt des Beginns der Regelbearbeitung wird als Bearbeitungsbeginn 7 festgehalten.
-
Je nach Arbeitslast der Firewall, seiner Leistungsfähigkeit und der Anzahl der zu verarbeitenden Datenpakete 3, 3', benötigt die Bearbeitung der Filterregeln eine bestimmte Zeit, welche variieren kann und mit tprocess definiert wird. tprocess0 wird somit für das Datenpaket 3 definiert.
-
Nach bisherigen Firewalls wird nach Bearbeitungsende ein Datenpaket je nach Ergebnis der Bearbeitung an den Ausgang 6 der Firewall 2 weitergeleitet und somit ins Netzwerk 1 gesendet oder das Datenpaket 3 wird verworfen. Auch denkbar wäre als Firew-Allaktion ein Markieren des Datenpakets.
-
Erfindungsgemäß wird nun jedem Datenpaket eine Priorisierung für die Verarbeitung in der Firewall zugewiesen. Diese kann abhängig davon sein, von welcher Quelle das Datenpaket gesendet wurden, zu welchem Ziel es gesendet werden soll oder von der Klasse des Netzwerks. In einem Automatisierungsnetzwerk sind bspw. angeschlossene Steuerungen zeitkritischer als normale Netzwerkteilnehmer, wie z.B. Überwachungsteilnehmer oder PCs.
-
Wird nun ein Datenpaket 3' mit einer höheren Priorität am Eingang 4 der Firewall 2 empfangen, als das gerade in Bearbeitung 5 befindliche Datenpaket 3, wird erfindungsgemäß die Bearbeitung 5 der Regeln für das Datenpaket 3 mit der niedrigeren Priorität unterbrochen. Die Bearbeitung 5 von Datenpaket 3 wird pausiert und die Bearbeitung 5 von Datenpaket 3' beginnt 8.
-
Damit die Bearbeitung eines Datenpakets 3 unterbrochen und später wieder aufgenommen werden kann, wird vorgeschlagen, der Firewall 2 einen Zwischenspeicher zu integrieren. Hier kann das Datenpaket 3 sowie weitere Datenpakete abgelegt werden, so lange diese sich nicht in der Bearbeitung 5 befinden.
-
Die Bearbeitung 5 dauert für das hochpriorisierte Datenpaket 3' die Zeit tprocess1. Nachdem alle Regeln durch die Bearbeitung 5 in der Firewall 2 für das Datenpaket 3' abgearbeitet wurden, ist das Bearbeitungsende 9 erreicht. Entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3' an den Ausgang der Firewall 2 sein kann.
-
Nachdem das hochpriorisierte Datenpaket 3' abgearbeitet wurde, kann nun das Datenpaket 3 wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu an der Stelle fortgeführt 7', wo abgebrochen wurde. Es werden also nun nicht mehr alle Regeln abgearbeitet, sondern nur noch die bisher nicht bearbeiteten Regeln. Damit wird nun nur noch die Differenz an Zeit benötigt, welche durch tprocess0 und der bisher benötigten Bearbeitungszeit für Datenpaket 3 (t1-t0) definiert ist.
-
Anschließend sind alle Regeln auch für das Datenpaket 3 abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3 an den Ausgang der Firewall 2 sein kann.
-
2 zeigt ein erfindungsgemäßes Verfahren mit einer Firewall 2 in einem Netzwerk 1, jedoch mit drei Datenpakete 3, 3', 3" mit ansteigender Priorität. Die Firewall 2 beinhaltet definierbare Regeln, nach welchen eingehende Datenpakete 3 untersucht werden. Je nach Ergebnis der Untersuchung wird anschließend eine Firewall-Aktion ausgeführt, was ein Senden der Datenpakete 3 oder ein Verwerfen der Datenpakete 3 beinhalten kann.
-
Das erste, am Eingang 4 der Firewall 2 ankommende Datenpaket 3 wird zur Bearbeitung 5 weitergeleitet. Die Bearbeitung 5 beinhaltet das Abarbeiten der Regeln, welche in der Firewall definiert wurden.
-
Je nach Arbeitslast der Firewall, seiner Leistungsfähigkeit und der Anzahl der zu verarbeitenden Datenpakete 3, 3', 3", benötigt die Bearbeitung der Filterregeln eine bestimmte Zeit, welche variieren kann und mit tprocess definiert wird. tprocess0 bezeichnet dabei die Bearbeitungszeit für Datenpaket 3.
-
Wird nun ein Datenpaket 3' mit einer höheren Priorität am Eingang 4 der Firewall 2 empfangen, als das gerade in Bearbeitung 5 befindliche Datenpaket 3, wird erfindungsgemäß die Bearbeitung 5 der Regeln für das Datenpaket 3 mit der niedrigeren Priorität unterbrochen. Die Bearbeitung 5 von Datenpaket 3 wird pausiert und die Bearbeitung 5 von Datenpaket 3' beginnt. Die bisher benötigte Bearbeitungszeit für Datenpaket 3 wird als tprocess0.1 definiert.
-
Damit die Bearbeitung eines Datenpakets 3 unterbrochen und später wieder aufgenommen werden kann, wird vorgeschlagen, der Firewall 2 einen Zwischenspeicher zu integrieren. Hier kann das Datenpaket 3 sowie weitere Datenpakete abgelegt werden, so lange diese sich nicht in der Bearbeitung 5 befinden.
-
Die Bearbeitung 5 dauert für das höher priorisierte Datenpaket 3' die Zeit tprocess1.1. Wird nun ein Datenpaket 3" mit einer höheren Priorität am Eingang 4 der Firewall 2 empfangen, als das gerade in Bearbeitung 5 befindliche Datenpaket 3', wird erfindungsgemäß die Bearbeitung 5 der Regeln für das Datenpaket 3' unterbrochen. Die Bearbeitung 5 von Datenpaket 3' wird pausiert und die Bearbeitung 5 von Datenpaket 3" beginnt. Die bisher benötigte Bearbeitungszeit für Datenpaket 3' wird als tprocess1.1 definiert.
-
Damit die Bearbeitung eines Datenpakets 3' ebenfalls unterbrochen und später wieder aufgenommen werden kann, wird vorgeschlagen, das Datenpaket 3' eebenfalls in dem Zwischenspeicher zu speichern. Hier kann das Datenpaket 3' sowie weitere Datenpakete abgelegt werden, so lange diese sich nicht in der Bearbeitung 5 befinden.
-
Nachdem alle Regeln durch die Bearbeitung 5 in der Firewall 2 für das Datenpaket 3" abgearbeitet wurden, ist das Bearbeitungsende erreicht. Entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3" an den Ausgang der Firewall 2 sein kann. Die Bearbeitungszeit für Datenpaket 3" wird als tprocess2 definiert.
-
Nachdem das hochpriorisierte Datenpaket 3" abgearbeitet wurde, kann nun das nächsthöher priorisierte Datenpaket 3' wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu an der Stelle fortgeführt, wo abgebrochen wurde. Es werden also nun nicht mehr alle Regeln abgearbeitet, sondern nur noch die bisher nicht bearbeiteten Regeln. Damit wird nun nur noch die Differenz an Zeit tprocess1.2 benötigt, welche durch tprocess1 und der bisher benötigten Bearbeitungszeit für Datenpaket 3' tprocess1.1 definiert ist.
-
Anschließend sind alle Regeln auch für das Datenpaket 3' abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3' an den Ausgang der Firewall 2 sein kann.
-
Nachdem das höher priorisierte Datenpaket 3' abgearbeitet wurde, kann nun das niedrig priorisierte Datenpaket 3 wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu an der Stelle fortgeführt, wo abgebrochen wurde. Es werden also nun nicht mehr alle Regeln abgearbeitet, sondern nur noch die bisher nicht bearbeiteten Regeln. Damit wird nun nur noch die Differenz an Zeit tprocess0.2 benötigt, welche durch tprocess0 und der bisher benötigten Bearbeitungszeit für Datenpaket 3 tprocess0.1 definiert ist.
-
Anschließend sind alle Regeln auch für das Datenpaket 3 abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3 an den Ausgang der Firewall 2 sein kann.
-
3 zeigt ein erfindungsgemäßes Verfahren mit einer Firewall 2 in einem Netzwerk 1, jedoch mit vier Datenpakete 3, 3', 3'', 3''' mit unterschiedlichen Prioritäten. Das Datenpaket 3'' ist dabei das höchstpriorisierte, Datenpaket 3' das nächsthöher priorisierte, Datenpaket 3''' ist das zweitniedrigst priorisierte und Datenpaket 3 das niedrigst priorisierte. Die Firewall 2 beinhaltet definierbare Regeln, nach welchen eingehende Datenpakete 3 untersucht werden. Je nach Ergebnis der Untersuchung wird anschließend eine Firewall-Aktion ausgeführt, was ein Senden der Datenpakete 3 oder ein Verwerfen der Datenpakete 3 beinhalten kann.
-
Das erste, am Eingang 4 der Firewall 2 ankommende Datenpaket 3 wird zur Bearbeitung 5 weitergeleitet. Die Bearbeitung 5 beinhaltet das Abarbeiten der Regeln, welche in der Firewall definiert wurden.
-
Je nach Arbeitslast der Firewall, seiner Leistungsfähigkeit und der Anzahl der zu verarbeitenden Datenpakete 3, 3', 3'', 3''', benötigt die Bearbeitung der Filterregeln eine bestimmte Zeit, welche variieren kann und mit tprocess definiert wird. tprocess0 bezeichnet dabei die Bearbeitungszeit für Datenpaket 3.
-
Wird nun ein Datenpaket 3' mit einer höheren Priorität am Eingang 4 der Firewall 2 empfangen, als das gerade in Bearbeitung 5 befindliche Datenpaket 3, wird erfindungsgemäß die Bearbeitung 5 der Regeln für das Datenpaket 3 mit der niedrigeren Priorität unterbrochen. Die Bearbeitung 5 von Datenpaket 3 wird pausiert und die Bearbeitung 5 von Datenpaket 3' beginnt. Die bisher benötigte Bearbeitungszeit für Datenpaket 3 wird als tprocess0.1 definiert.
-
Damit die Bearbeitung eines Datenpakets 3 unterbrochen und später wieder aufgenommen werden kann, wird vorgeschlagen, der Firewall 2 einen Zwischenspeicher zu integrieren. Hier kann das Datenpaket 3 sowie weitere Datenpakete abgelegt werden, so lange diese sich nicht in der Bearbeitung 5 befinden.
-
Wird nun ein Datenpaket 3" mit einer höheren Priorität am Eingang 4 der Firewall 2 empfangen, als das gerade in Bearbeitung 5 befindliche Datenpaket 3', wird erfindungsgemäß die Bearbeitung 5 der Regeln für das Datenpaket 3' mit der niedrigeren Priorität unterbrochen. Die Bearbeitung 5 von Datenpaket 3' wird pausiert und die Bearbeitung 5 von Datenpaket 3" beginnt. Die bisher benötigte Bearbeitungszeit für Datenpaket 3' wird als tprocess1.1 definiert.
-
Damit die Bearbeitung eines Datenpakets 3' unterbrochen und später wieder aufgenommen werden kann, wird vorgeschlagen, das Datenpaket 3 sowie weitere Datenpakete im Zwischenspeicher abzulegen, so lange diese sich nicht in der Bearbeitung 5 befinden.
-
Wird nun ein Datenpaket 3''' mit einer niedrigeren Priorität am Eingang 4 der Firewall 2 empfangen, als das Datenpaket 3'', welches sich gerade in der Bearbeitung 5 befindet, wird die Bearbeitung nicht unterbrochen und das Datenpaket 3''' in den Zwischenspeicher zur späteren Bearbeitung gespeichert.
-
Vorteilhafter Weise wird vorgeschlagen, zu den Datenpaketen im Zwischenspeicher jeweils die bisherigen Bearbeitungszeiten und/oder die bereits bearbeiteten Regeln zu speichern, um bei Entnahme der Datenpakete aus dem Zwischenspeicher die noch zu bearbeiteten Regeln bestimmen zu können.
-
Nachdem alle Regeln durch die Bearbeitung 5 in der Firewall 2 für das Datenpaket 3" abgearbeitet wurden, ist das Bearbeitungsende erreicht. Entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3" an den Ausgang der Firewall 2 sein kann. Die Bearbeitungszeit für Datenpaket 3" wird als tprocess2 definiert.
-
Nachdem das hochpriorisierte Datenpaket 3" abgearbeitet wurde, kann nun das nächsthöher priorisierte Datenpaket 3' wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu an der Stelle fortgeführt, wo abgebrochen wurde. Es werden also nun nicht mehr alle Regeln abgearbeitet, sondern nur noch die bisher nicht bearbeiteten Regeln. Damit wird nun nur noch die Differenz an Zeit tprocess1.2 benötigt, welche durch tprocess1 und der bisher benötigten Bearbeitungszeit für Datenpaket 3' tprocess1.1 definiert ist.
-
Anschließend sind alle Regeln auch für das Datenpaket 3' abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3' an den Ausgang der Firewall 2 sein kann.
-
Nachdem das Datenpaket 3' abgearbeitet wurde, kann nun das nächsthöher priorisierte Datenpaket 3''' wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu von Beginn an gestartet, da das Datenpaket 3''' bisher nicht bearbeitet wurde. Damit wird nun volle Bearbeitungszeit Zeit tprocess3 benötigt.
-
Anschließend sind alle Regeln auch für das Datenpaket 3''' abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3''' an den Ausgang der Firewall 2 sein kann.
-
Nachdem das Datenpaket 3''' abgearbeitet wurde, kann nun das niedrigst priorisierte Datenpaket 3 wieder aus dem Zwischenspeicher entnommen werden und der weiteren Bearbeitung 5 zugeführt werden. Die Bearbeitung 5 wird dazu an der Stelle fortgeführt, wo abgebrochen wurde. Es werden also nun nicht mehr alle Regeln abgearbeitet, sondern nur noch die bisher nicht bearbeiteten Regeln. Damit wird nun nur noch die Differenz an Zeit tprocess0.2 benötigt, welche durch tprocess0 und der bisher benötigten Bearbeitungszeit für Datenpaket 3 tprocess0.1 definiert ist.
-
Anschließend sind alle Regeln auch für das Datenpaket 3 abgearbeitet und entsprechend des Ergebnisses der Bearbeitung wird nun eine Firewall-Aktion durchgeführt, was bspw. das Weiterleiten des Datenpakets 3 an den Ausgang der Firewall 2 sein kann.
-
Bezugszeichenliste
-
- 1
- Netzwerk
- 2
- Firewall
- 3
- Datenpaket
- 3'
- Datenpaket
- 3"
- Datenpaket
- 3'''
- Datenpaket
- 4
- Eingang
- 5
- Bearbeitung
- 6
- Ausgang
- 7
- Bearbeitungsbeginn von 3
- 7'
- Bearbeitung 7 fortführen
- 8
- Pausieren von 3, Bearbeitungsbeginn von 3'
- 9
- Bearbeitungsende von 3'
- 10
- Bearbeitungsende von 3