-
Die
vorliegende Erfindung betrifft ein Verfahren zur Verarbeitung von
Datenpaketen gemäß Regeln, die
an jedes Datenpaket in Abhängigkeit
von in diesem Paket enthaltenen Daten angewendet werden.
-
Sie
betrifft insbesondere ein Verfahren zur Konfiguration einer besonderen
Speichervorrichtung, die für
die Verarbeitung von Datenpaketen verwendet wird.
-
Die
Patentanmeldung FR-A-2 812 491, die am 1. Februar 2002 veröffentlicht
wurde, offenbart eine Zugriffskontrollvorrichtung für ATM-Netze.
Diese Vorrichtung enthält
einen Zugriffskontroller, der Verkehrsanalysatoren konfiguriert,
um die den ATM-Verkehr
tragenden Zellen einzeln zu verarbeiten. Die Verkehrsanalysatoren
gehen durch Analyse des Inhalts der ATM-Verkehr tragenden Zellen
vor, indem sie ihnen mittels eines assoziativen Speichers vom Typ
Trie Weiterleitungsreferenzen zuordnen. Solche Vorrichtungen können auch in
IP-Routern, Sicherheitsvorrichtungen ("Firewall"), Verkehrsmessvorrichtungen usw. verwendet
werden. Gemäß diesen
Anwendungen kann die jedem Datenpaket zugeteilte Verarbeitung eine
Adressierung dieses Pakets, eine Veränderung von Daten dieses Pakets,
die Aufzeichnung einer ausgehend von diesem Paket erstellten Information
oder allgemein eine bestimmte Aktion ausgehend vom Inhalt dieses
Pakets sein.
-
Der
Vorteil der Verwendung eines Speichers vom Typ Trie ist es, eine
schnelle und in beliebiger Reihenfolge stattfindende Analyse von
Teilen der Inhalte der Verkehr tragenden Zellen zu erlauben. Ein
solcher Speicher und seine Verwendung bei der Analyse von Datenpaketen
sind in der Patentanmeldung
EP-A-1
030 493 beschrieben, die am 23. August 2000 veröffentlicht
wurde.
-
Die
Konfiguration des Trie-Speichers wird auf der Ebene der Zugriffskontrollverwaltung
eingesetzt.
-
Ein
Ziel der vorliegenden Erfindung ist es, eine Konfiguration dieses
Speichers zu erhalten, die es ermöglicht, jedem Datenpaket in
Abhängigkeit
von Teilen seines Inhalts eine geeignete Verarbeitung zuzuweisen.
-
Die
Erfindung schlägt
ein Verfahren zur Konfiguration eines assoziativen Speichers vom
Typ Trie für die
Verarbeitung von Datenpaketen in Abhängigkeit von einem Satz von
Regeln vor. Der Trie-Speicher wird für die Analyse von Binärketten
verwendet, die sich an bestimmten Stellen jedes Datenpakets befinden.
Jede Regel teilt einem Paket eine Aktion in Abhängigkeit von den Werten der
Binärketten
zu. Der Trie-Speicher weist Register auf, die aus einer bestimmten
Anzahl von Elementarzellen zusammengesetzt sind, um entsprechende
Referenzen zu empfangen.
-
Erfindungsgemäß weist
das im Anspruch 1 definierte Verfahren einen Schritt auf, während dem
der Satz von Regeln in einen Paketanalysebaum umgesetzt wird, der
Knoten, die in aufeinander folgenden Stufen verteilt sind, die je
den in einer bestimmten Reihenfolge berücksichtigten Stellen zugeordnet
sind, Bögen
und Blätter
aufweist, die durch die Regeln zuteilbaren Aktionen entsprechen.
Jeder Bogen hat einen Anfangsknoten, der einer Stelle zugeordnet
ist, und einen Ankunftspunkt, der entweder aus einem Knoten der
auf die Stufe des Anfangsknotens folgenden Stufe oder aus einem
Blatt besteht. Die erste Stufe weist einen einzigen Wurzelknoten
auf. Jeder Bogen des Baums ist einer Domäne von Binärkettenwerten zugeordnet, die
an der Stelle auftreten können,
die der Stufe seines Anfangsknotens zugeordnet ist. Der Analysebaum
definiert so Wege, die je aus einer Folge von n Bögen bestehen,
wobei n eine ganze Zahl mindestens gleich 1 ist, derart, dass der
Ankunftspunkt jedes anderen Bogens als der letzte Bogen eines Wegs
der Anfangsknoten des folgenden Bogens des Wegs ist, und dass der
Ankunftspunkt des letzten Bogens des Wegs ein Blatt ist, das einer
Aktion entspricht, die gemäß dem Satz
von Regeln jedem Paket zugeordnet wird, das an den n Stellen, die
je den Stufen der Anfangsknoten der n Bögen des Baums zugeordnet sind,
Binärkettenwerte
hat, die unter die n Domänen
fallen, die den Bögen
zugeordnet sind.
-
Das
Verfahren weist weiter einen Schritt auf, während dem eine Gruppe von Registern
des Trie-Speichers einschließlich
eines "Portier"-Registers jedem
Knoten des Analysebaums zugewiesen wird, der zu einer einer Stelle
zugeordneten Stufe gehört,
und in den Zellen dieser Gruppe von Registern werden derartige Referenzen
gespeichert, dass man, wenn man ausgehend vom "Portier"-Register den Binärkettenwert analysiert, der
an der Stelle in einem Paket enthalten ist, eine Endreferenz erhält, die
davon abhängt,
welche Domäne unter
den den Bögen,
die den Knoten als Anfangsknoten haben, zugeordneten Wertedomänen den
Wert enthält,
und derart, dass:
- – wenn der Bogen, der der den
Wert enthaltenden Domäne
zugeordnet ist, als Ankunftspunkt ein Blatt hat, das einer Aktion
entspricht, die Endreferenz die Aktion als dem Paket zugeteilt bezeichnet;
und
- – wenn
der Bogen, der der den Wert enthaltenden Domäne zugeordnet ist, einen anderen
Knoten der folgenden Stufe als Ankunftspunkt hat, die Endreferenz
den anderen Knoten bezeichnet, um fortzufahren mit der Analyse des
Binärkettenwerts,
der in dem Paket an der Stelle enthalten ist, die der folgenden
Stufe zugeordnet ist.
-
Ein
solcher Konfigurationsmodus des Trie-Speichers bietet eine große Flexibilität, um eine
große
Vielfalt von Klassifizierungsregeln des Verkehrs zu berücksichtigen,
die verschiedenen Aktionen entsprechen können, die an den Datenpaketen
in Abhängigkeit
vom Inhalt der analysierten Stellen durchzuführen sind. Die Wege des Baums
entsprechen Analysegraphen, die mit Hilfe von Indexierungs- und
Indirektionsoperationen im so konfigurierten Trie-Speicher durchlaufen
werden.
-
Eine
solche Organisation des Analyseaufbaus ermöglicht es, zu gewährleisten,
dass die Analysedauer eines beliebigen Datenpakets von einer Obergrenze
begrenzt wird, die durch die betreffende Analyse festgelegt wird.
Diese Grenze entspricht der Höhe
des Analysebaums, d.h. der Anzahl von zu analysierenden Feldern.
Dies ermöglicht
es dem die Erfindung nutzenden Kommunikationsnetzbetreiber, eine
Echtzeitverarbeitung der Datenpakete durchzuführen, die am Eingang des Verkehrsanalysators
auftreten, indem er ausreichend Analysemittel zuteilt.
-
Erfindungsgemäß ergibt
sich die im Schritt der Konstruktion des Analysebaums in Betracht
gezogene Reihenfolge aus einem Sortieren der Stellen, das nach Zählung von
Elementarintervallen durchgeführt
wird. Für
jede der Stellen werden aufeinander folgende Elementarintervalle
definiert, die Binärkettenwerte
abdecken, die an dieser Stelle erscheinen können, wobei jedes Elementarintervall
so ist, dass die von jeder der Regeln zugeteilte Aktion nicht innerhalb
des Elementarintervalls von einer Veränderung des Werts der Binärkette verändert wird,
die sich an der Stelle in einem verarbeiteten Paket befindet. Das
Sortieren der Stellen wird dann in einer solchen Reihenfolge durchgeführt, dass
die Stelle, für
die die größte Zahl
von Elementarintervallen definiert wurde, als letzte angeordnet
wird. Man kann insbesondere die Stellen in der Reihenfolge der steigenden Zahlen
von Elementarintervallen sortieren.
-
Ein
Vorteil solcher Sortierungen von Stellen liegt in der Minimierung
der Größe des Trie-Speichers,
der für
die Analyse des Inhalts jedes Datenpakets notwendig ist, von dem
ausgehend jedem Paket eine Aktion gemäß dem Satz von Regeln zugeteilt
wird. So kann eine große
Zahl von Datenpaketen, die einer großen Vielfalt von Aktionen entspricht,
die jedem von ihnen zugeteilt sind, mit einer einzigen Analyseoperation
der Inhalte dieser Pakete verarbeitet werden.
-
Im
Allgemeinen hat ein Trie-Speicher die Form einer Tabelle, deren
Zeilen, Register genannt, eine feste Anzahl von Zellen aufweisen,
zum Beispiel 4, 8, 16 oder 32 Zellen. Die Größe des Trie-Speichers entspricht dann
der Anzahl von Registern dieses Speichers. Die vorliegende Erfindung
ermöglicht
es also, die Anzahl von Registern zu reduzieren, die notwendig sind,
um eine gegebene Analyse des Inhalts der Datenpakete durchzuführen.
-
Das
Konfigurationsverfahren des erfindungsgemäßen Trie-Speicher enthält die Transkription des Analysebaums
in diesen Speicher in Form von Referenzen, die in die Zellen des
Speichers eingetragen werden. Ein voluminöser Analysebaum erfordert im
Allgemeinen einen umso größeren Trie-Speicher.
Es ist folglich vorteilhaft, den Analysebaum und seine Transkription
so zu gestalten, dass die notwendige Größe des Trie-Speichers reduziert wird.
-
Die
Anzahl von Stufen von Knoten des Analysebaums entspricht der Anzahl
von Stellen im Inneren der Datenpakete, an denen die Binärfelder
zu lesen sind.
-
Man
kann eine Obergrenze der Abmessung des Analysebaums folgendermaßen bestimmen.
Die erste Stufe des Analysebaums enthält den Wurzelknoten als einzigen
Knoten. Die zweite Stufe des Analysebaums enthält eine Anzahl von Knoten höchstens
gleich der Anzahl von Elementarintervallen, die für die Stelle definiert
sind, die gemäß der für die Stellen
gewählten
Reihenfolge als erste angeordnet ist. Die Anzahl von Knoten der
dritten Stufe des Analysebaums ist höchstens gleich dem Produkt
der zwei Anzahlen von Elementarintervallen, die für die zwei
Stellen definiert sind, denen die beiden ersten Stufen von Knoten
zugeordnet sind. In wiederholter Weise ist die Anzahl von Knoten
einer beliebigen Stufe des Analysebaums, die einer gegebenen Stelle
zugeordnet ist, geringer als das oder gleich dem Produkt der Anzahlen
von Elementarintervallen, die jeweils für alle Stellen definiert sind,
die vor der Stelle liegen, der die betrachtete Stufe gemäß der Sortierungsfolge
der Stellen zugeordnet ist.
-
Wenn
N die Anzahl von Binärkettenstellen
bezeichnet, die in den Datenpaketen definiert sind, auf denen die
Analyse der Pakete beruht, ist die Anzahl von Knoten der letzten
Stufe des Analysebaums also geringer als das Produkt der (N-1) Anzahlen
von Elementarintervallen, die den (N-1) ersten Stellen gemäß der Sortierungsfolge
der Stellen entsprechen. Anders gesagt, ist sie geringer als der
wert gleich dem Produkt aller Anzahlen von Elementarintervallen
dividiert durch die Anzahl von Elementarintervallen der letzten
Stelle gemäß dieser
Reihenfolge. Dieser Wert stellt also eine Obergrenze der Anzahl
von Knoten der letzte Stufe des Analysebaums dar, die einer oberen
Begrenzung der notwendigen Größe des Trie-Speichers
entspricht. Für
Elementarintervalle, die für
alle Stellen festgelegt sind, ist diese Obergrenze die kleinste,
wenn die Sortierreihenfolge der Stellen so ist, dass als letzte
diejenige der Stellen angeordnet ist, für die die größte Anzahl
von Elementarintervallen definiert wurde.
-
Bei
bestimmten Anwendungen des erfindungsgemäßen Verfahrens sind die an
den Stellen gelesenen Binärketten
Zahlen oder Zahlen enthaltende Werte. Dann ist es besonders bequem,
die Elementarintervalle zu definieren, indem eine Reihenfolgenbeziehung
zwischen diesen Zahlen beachtet wird, oder indem eine an den Aufbau
der gelesenen werte angepasste Reihenfolgenbeziehung verwendet wird,
um eine schnelle Konfiguration des Trie-Speichers zu ermöglichen.
-
In
einer bevorzugten Ausführungsform
des erfindungsgemäßen Verfahrens
ist die Umsetzung des Satzes von Regeln in einen Analysebaum so,
dass mindestens ein Knoten des Analysebaums der Ankunftspunkt mehrerer
Bögen ist,
die von unterschiedlichen Anfangsknoten der vorhergehenden Stufe
stammen. Diese Ausführungsform
ermöglicht
eine Komprimierung der im Trie-Speicher definierten Klassifizierungsstrukturen,
die zu einem großen
Raumgewinn in diesem Speicher führt.
-
Hierzu
wird jedem Knoten des Analysebaums, der nicht die Wurzel des Analysebaums
ist, ein Unterbaum zugeordnet. Dieser Unterbaum hat eine Wurzel,
die vom Knoten gebildet wird, und ist aus den Knoten, Bögen und
Blättern
zusammengesetzt, die ausgehend vom Knoten entlang der verschiedenen
durch den Knoten verlaufenden. Wege angetroffen werden. Die Umsetzung
des Satzes von Regeln wird dann so vorgenommen, dass der Analysebaum
keine ersten und zweiten Unterbäume
aufweist, die unterschiedliche Wurzeln haben und so sind, dass man
ihre jeweiligen Knoten, Bögen
und Blätter
paaren kann, so dass jeder Knoten des ersten Unterbaums mit einem
Knoten des zweiten Unterbaums gepaart ist, der zur gleichen Stufe
gehört,
dass jedes Blatt des ersten Unterbaums mit einem Blatt des zweiten
Unterbaums gepaart ist, der einer gleichen Aktion entspricht, und
dass zwei gepaarte Bögen
des ersten und des zweiten Unterbaums gepaarte Anfangsknoten und
gepaarte Ankunftspunkte haben und der gleichen Wertedomäne zugeordnet
sind.
-
Gemäß einer
besonderen Formulierung der Regeln des Satzes wird jede Regel durch
eine Aktion und durch Wertebereiche definiert, die je zumindest
bestimmten der Stellen entsprechen, und teilt die Aktion den Paketen
zu, die an den Stellen Binärkettenwerte
haben, die in die jeweiligen Bereiche fallen. Für eine generische Verarbeitung
aller Regeln wird auf die folgende Vorsichtsmaßnahme zurückgegriffen: Wenn für eine gegebene
Stelle eine Regel keinen expliziten Bereich enthält, wird ihr ein Bereich hinzugefügt, der
dieser Stelle entspricht und der die Gesamtheit der Binärkettenwerte
enthält,
die in Datenpaketen an dieser Stelle gelesen werden können.
-
Für eine solche
Formulierung der Regeln wird jedem Knoten einer (p+1)-ten Stufe
des Analysebaums eine Untergruppe von Regeln zugeordnet, wobei p
eine ganze Zahl größer als
0 ist . Die Untergruppe ist aus solchen Regeln des Satzes zusammengesetzt,
dass jeder Wertebereich, der einer Stelle entspricht, die einer der
ersten p Stufen des Baums zugeordnet ist, eine nicht leere Überlappung
mit der Wertedomäne
hat, die dem Bogen jedes Wegs zugeordnet ist, der durch den Knoten
verläuft
und dessen Anfangsknoten sich in dieser Stufe befindet.
-
Dem
Wurzelknoten wird eine Untergruppe zugeordnet, die aus dem Satz
von Regeln besteht.
-
Die
Umsetzung des Satzes von Regeln enthält dann die folgenden Schritte
für jeden
Knoten der p-ten Stufe, der einer ersten Untergruppe von Regeln
zugeordnet ist:
- – Bestimmung der Wertedomänen, die
Binärkettenwerte
abdecken, die an der p-ten Stelle gemäß der Reihenfolge auftreten
können,
wobei jede Domäne
so ist, dass die von jeder der Regeln der ersten Untergruppe zugeteilte
Aktion nicht innerhalb der Domäne
durch einer Veränderung
des Werts der Binärkette,
die sich an der p-ten Stelle in einem verarbeiteten Paket befindet,
verändert
wird; und
- – für jede der
Wertedomänen:
- – Erzeugung
eines der Domäne
zugeordneten Bogens, der den Knoten der p-ten Stufe als Anfangsknoten hat;
- – Erfassung
jeder Regel der ersten Untergruppe, die durch mindestens einen Wertebereich
definiert wird, der die Domäne
enthält;
- – wenn
gar keine Regel erfasst wird, Zuteilung eines Blatts des Baums entsprechend
einer Standardaktion als Ankunftspunkt des Bogens;
- – wenn
für jede
erfasste Regel kein Wertebereich einer beliebigen der Stellen nach
der p-ten Stelle gemäß der Reihenfolge
entspricht, Zuteilung eines Blatts des Baums entsprechend einer
Aktion einer erfassten Regel als Ankunftspunkt des Bogens;
- – wenn
für mindestens
eine erfasste Regel ein Wertebereich einer der Stellen nach der
p-ten Stelle gemäß der Reihenfolge
entspricht, Zuteilung eines Knotens der (p+1)-ten Stufe des Baums
als Ankunftspunkt des Bogens, wobei der Knoten der (p+1)-ten Stufe
einer zweiten Untergruppe zugeordnet ist, die aus den erfassten
Regeln der ersten Untergruppe besteht.
-
Den
Regeln des Satzes können
jeweils Prioritäten
zugewiesen werden. In diesem Fall ist, wenn mehrere Regeln erfasst
werden und keiner ihrer Wertebereiche einer der Stellen nach der
p-ten Stelle entspricht, die Aktion, die dem Blatt des Baums entspricht,
das dem Bogen zugeteilt ist, diejenige einer der erfassten Regeln,
die auf der Basis der zugewiesenen Prioritäten ausgewählt wird.
-
Um
zu verhindern, dass der Analysebaum Unterbäume aufweist, die unterschiedliche
jeweilige Wurzeln haben und von denen man die Knoten, Bögen und
Blätter
untereinander paaren kann, die je zu jedem von ihnen gehören, werden
die folgenden Schritte durchgeführt,
wenn mindestens eine Regel erfasst wurde, die einen Wertebereich
hat, der einer der Stellen nach der p-ten Stelle entspricht:
- – Suche,
ob bereits ein Knoten der (p+1)-ten Stufe des Baums erzeugt wurde,
der der zweiten Untergruppe zugeordnet ist;
- – wenn
die Suche fehlschlägt,
Erzeugung eines solchen Knotens in der (p+1)-ten Stufe;
- – wenn
die Suche einen Knoten der (p+1)-ten Stufe identifiziert, Zuteilung
des identifizierten Knotens als Ankunftspunkt des Bogens.
-
Die
vorliegende Erfindung betrifft auch eine im Anspruch 11 definierte
Vorrichtung zur Verarbeitung von Datenpaketen, die einen assoziativen
Speicher vom Typ Trie und einen Kontroller aufweist, der ausgelegt ist,
um ein wie oben definiertes Verfahren zur Konfiguration des Trie-Speichers
durchzuführen.
Diese Vorrichtungen können
insbesondere in den folgenden Anwendungen genutzt werden:
- – die
Weiterleitung von Datenpaketen über
ein Kommunikationsnetz in Abhängigkeit
von an diese Pakete angewendeten Weiterleitungsregeln;
- – die
Zugriffskontrolle zu einem Kommunikationsnetz durch Datenpakete
in Abhängigkeit
von Zugriffskontrollregeln zu diesem Netz, die an diese Pakete angewendet
werden;
- – die
Erfassung von Informationen, die Datenpakete betreffen, die von
einem Kommunikationsnetz übertragen
werden.
-
Die
Datenpakete können
insbesondere ATM-Zellen sein, die AAL-5-Rahmen oder IP-Pakete tragen.
-
Weitere
Besonderheiten und Vorteile des Verfahrens der vorliegenden Erfindung
gehen aus der nachfolgenden Beschreibung von nicht einschränkend zu
verstehenden Anwendungsbeispielen hervor, die sich auf die beiliegenden
Zeichnungen bezieht. Es zeigen:
-
1 ein
Funktionsschaltbild einer Zugriffskontrollvorrichtung, bei der das
erfindungsgemäße Verfahren
angewendet wird;
-
2 eine
Tabelle, die Informationen darstellt, die von Verkehrsanalysatoren
der Vorrichtung der 1 verarbeitet werden;
-
3 einen
Analysebaum, der aus zwei besonderen Regeln resultiert, die an Paare
von Zahlen (x,y) angewendet werden, und nicht die vorliegende Erfindung
verwendet;
-
4 einen
zweiten Analysebaum, der den gegebenen Regeln für den Analysebaum der 3 entspricht,
unter Verwendung der Klassifizierung der Stellen gemäß der vorliegenden
Erfindung;
-
5 einen
Analysebaum, der aus drei besonderen Regeln resultiert, die an Tripletts
von Zahlen (x,y,z) angewendet werden, und nicht die vorliegende
Erfindung verwendet;
-
6 einen
zweiten Analysebaum, der den gegebenen Regeln für den Analysebaum der 5 entspricht,
unter Verwendung der Klassifizierung der Stellen gemäß der vorliegenden
Erfindung;
-
7 einen
dritten Analysebaum entsprechend den für den Analysebaum der 5 gegebenen
Regeln, bei dem außerdem
die Zusammenfassungen von Unterbäumen
gemäß der vorliegenden
Erfindung verwendet wird;
-
8 ein
Funktionsschaltbild der Schritte der Erzeugung eines neuen Bogens
gemäß der bevorzugten
Anwendungsform des erfindungsgemäßen Verfahrens;
-
9 einen
vierten Analysebaum entsprechend den für den Analysebaum der 5 gegebenen
Regeln, unter Verwendung der Klassifizierung der Stellen und der
Methode zur Erzeugung der Bögen
der 8.
-
Der
Aufbau einer zwischen zwei ATM-Übertragungsnetzen
("Asynchronous Transfer
Mode") angeordneten
Zugriffskontrollvorrichtung, bei der das erfindungsgemäße Verfahren
angewendet werden kann, ist ausführlich
in der Patentanmeldung WO 0209367, veröffentlicht am 31. Januar 2002,
beschrieben. Wie in 1 gezeigt, kann eine Zugriffskontrollvorrichtung
aus zwei Hauptteilen 1, 2 bestehen, die mit einem
ATM-Schalter 3 zusammenwirken.
Der erste Teil 1 ist der Berücksichtigung einer Zugriffskontrollpolitik
und der Analyse der ATM-Signalisierung gewidmet. Das Ergebnis dieser
Analyse wird verwendet, um dynamisch eine Konfiguration zu konstruieren.
Diese wird vom zweiten Teil 2 verwendet, um einen Zugriffskontrolldienst
zu liefern, der auf den Informationen basiert, die in den ATM-Zellen
transportiert werden. Dieser zweite Teil 2 ist in der Lage,
die ATM-Ebene-, IP- und Transport-Informationen zu sammeln, um zu entscheiden,
ob eine Kommunikation erlaubt oder verboten werden soll. Die Konfiguration
der Einheit erfolgt mit Hilfe einer einzigen Programmsprache.
-
Der
Teil 1 kann mittels einer Arbeitsstation hergestellt werden,
wie zum Beispiel eine Station, die von der Firma Sun Microsystem,
Inc. vertrieben wird. Der Signalisierungsanalysator 4 ist
das Element dieses Teils 1, das die Aktionen der Zugriffskontrolle
auf der Ebene der ATM-Signalisierung in Kombination mit der Zugriffskontrollverwaltung 7 durchführt.
-
Der
Teil 2 kann mit Hilfe einer Station vom Typ PC hergestellt
werden, die zum Beispiel mit dem Betriebsprogramm Solaris x86 arbeitet.
Diese Station ist mit Karten 20, 21 zur Echtzeitanalyse
der ATM-Zellen, oder
Verkehrsanalysatoren, nachfolgend IFT-Karten ("IP Fast Translator") genannt, ausgestattet, die die Aktionen
der Zugriffskontrolle ATM-Zelle für ATM-Zelle gewährleisten.
-
Um
den Ausdruck von Zugriffskontrollpolitiken zu ermöglichen,
wird eine Sprache der Definition der Zugriffskontrollpolitik (ACPDL, "Access Control Policy
Description Language")
verwendet. Die Definition der ACPDL basiert auf der Politikbeschreibungssprache
(PDL), die derzeit in der Arbeitsgruppe definiert wird, die an den
Politiken bei der IETF arbeitet (siehe J. Strassner, et al, "Policy Framework
Definition Language", draft-ietf-policy-framework-pfdl-00.txt,
Internet Engineering Task Force, 17. November 1998). In dieser Sprache
wird eine Politik durch einen Satz von Regeln definiert, wobei jede
Regel selbst aus einem Satz von Bedingungen und einer Aktion besteht,
die ausgeführt
wird, wenn der Satz von Bedingungen erfüllt ist. Der folgende Ausdruck
(ausgedrückt
in dem Formalismus Backus Naur, BNF) beschreibt die allgemeine Form
einer Regel:
Rule :: = IF <Conditions> THEN <Action>
-
Alle
Bedingungen haben den gleichen generischen Aufbau, der nachfolgend
mittels des Formalismus BNF ausgedrückt wird:
Condition ::
= <ACCESS CONTROL
PARAMETER> <RELATIONAL OPERATOR> <VALUE>
-
In
Abhängigkeit
von der Ebene im Protokollstapel können mehrere Typen von Zugriffskontrollparametern
verwendet werden:
- – auf der ATM-Ebene sind die
interessanten Parametern im Artikel von O. Paul, et al. "Manageable parameters
to improve access control in ATM networks", HP-OVUA Workshop, Rennes, Frankreich,
April 1998 beschrieben. Darunter kann man den Verkehrstyp, den Verbindungsidentifikator,
die Adressierinformationen, die QoS-Deskriptoren und die Dienst-Deskriptoren
wählen;
- – auf
der Transportebene sind die meisten in Betracht gezogenen Parameter
diejenigen, die üblicherweise verwendet
werden, um die Filterung der Pakete in den filternden Routern durchzuführen (zum
Beispiel die Adressierinformationen, die Quellen- und Ziel-Ports,
die Marker im Fall der TCP-Verbindungen, usw.);
- – auf
der Anwendungsebene werden zwei generische Parameter in Betracht
gezogen: der Identifikator des Benutzers der Anwendung sowie der
Zustand der Anwendung;
- – zeitliche
Informationen gehören
ebenfalls dazu, um zu spezifizieren, wann eine Regel angewendet
werden soll.
-
Die
Aktionen haben ebenfalls einen generischen Aufbau (Schreibweise
BNF):
Action : = <ACTION> <ACTION LEVEL> <LOG
LEVEL>
-
Eine
Aktion zerfällt
in drei Teile. Der erste gibt an, ob die von den Bedingungen beschriebene
Kommunikation erlaubt oder verboten werden soll. Der Parameter <ACTION LEVEL> entspricht der Protokollschicht, in
der die Aktion durchgeführt
werden soll. Der letzte Teil beschreibt die Bedeutung, die dem Zugriffskontrollereignis
zugeordnet wird, und ermöglicht
die Klassifikation der Ergebnisse.
-
Der
folgende Absatz zeigt, wie die Sprache ACPDL verwendet werden kann,
um ein Beispiel eines Zugriffskontrolldiensts auszudrücken. In
diesem Beispiel wird jede Einrichtung durch ihre Quellenadresse (IP_SRC_ADDRESS)
und durch ihre Zieladresse (IP_DST_ADDRESS) identifiziert. Der Dienst
WWW wird durch die Quellen-(SRC_PORT) und Zielports (DST_PORT) identifiziert.
Die zweite im Beispiel angegebene Steuerzeile wird verwendet, um
die Verbindungsanforderungen mit dem Port WWW einer internen Station
zu verbieten.
IF (IP_SRC_ADDRESS = 192.165.203.5 255.255.255.255)
AND (IP_DST_ADDRESS = 0.0.0.0 0.0.0.0) AND (SRC_PORT > 1023) AND (DST_PORT
= 80) THEN PERMIT TRANSP_CONNECTION;
IF (IP_SRC_ADDRESS = 0.0.0.0
0.0.0.0) AND (IP_DST_ADDRESS = 192.165.203.5 255.255.255.255) AND (SRC_PORT
= 80) AND (DST_PORT > 1023)
AND (TCP_FLAG <> SYN) THEN PERMIT TRANSP_CONNECTION;
-
Die
Zugriffskontrollpolitik wird durch den Sicherheitsoffizier mittels
einer Mensch-Maschine-Schnittstelle
(IHM) 6 der Station 1 unter Verwendung der Sprache
ACPDL definiert. Sie wird verwendet, um die zwei Teile des Kontrollers
zu konfigurieren. Diese Politik kann aber nicht direkt von den beiden Zugriffskontrollwerkzeugen 4, 20/21 verwendet
werden. Der Verwaltung 7 ist der Modul, der es ermöglicht,
dieses Problem zu lösen,
indem die Zugriffskontrollpolitik in Konfigurationssteuerungen für die beiden
Werkzeuge umgesetzt wird.
-
Dieser
Umsetzungsprozess kann in zwei Hauptteile aufgeteilt werden. Der
erste ist die Umsetzung der Politik in drei statische Konfigurationen:
- – auf
der Ebene der ATM-Signalisierung enthält diese Konfiguration eine
Beschreibung der Kommunikationen, die kontrolliert werden sollen.
Jede Kommunikation wird von einem Satz von Informationselementen (IE)
und von einer Aktion (Erlauben oder Verbieten) beschrieben. Diese
Konfiguration wird an den Signalisierungsanalysator 4 geschickt:;
- – auf
der TCP/IP-Ebene weist die Konfiguration eine Beschreibung der Pakete
auf, die kontrolliert werden sollen. Dieser Teil der Politik kann
generisch sein, was bedeutet, dass die Regeln, die dort beschrieben sind,
nicht einer besonderen ATM-Verbindung
gewidmet sind. Dieser Teil kann auch durch den Ausdruck von Bedingungen,
die sich auf Verbindungsidentifikatoren beziehen, mit einer ATM-Verbindung
verknüpft sein;
- – auf
der Ebene der ATM-Zelle weist die Konfiguration eine Beschreibung
der ATM-Zellen auf, die kontrolliert werden sollen. Diese Zellen
sind gemäß den Feldern
aufgeteilt, die sie enthalten können.
Die Gesamtheit der Werte, die jedes Feld annehmen kann, wird durch
einen Baum beschrieben. Diese Konfiguration wird an die IFT-Karten 20, 21 geschickt.
-
Der
zweite Teil des Konfigurationsprozesses findet statt, wenn eine
Verbindungsanforderung vom Signalisierungsanalysator 4 empfangen
wird. Wenn der Zugriffskontrollprozess durchgeführt wurde, sendet der Signalisierungsanalysator 4 an
die Verwaltung 7 die Informationen, die notwendig sind,
um die dynamische Konfiguration der IFT-Karten 20, 21 durchzuführen. Die
vom Signalisierungsanalysator 4 gelieferten Informationen
enthalten:
- – die Verbindungsidentifikatoren
VPI und VCI ("Virtual
Path Identifier", "Virtual Channel Identifier");
- – die
ATM-Adressen Quelle und Ziel;
- – einen
Dienstdeskriptor (Classical IP over ATM (CLIP), systemeigene ATM-Anwendungen).
Wenn eine zusätzliche
Schicht über
dem ATM-Modell verwendet wird, liefert der Signalisierungsanalysator 4 ebenfalls die
Verkapselung (mit oder ohne Kopfzeile SNAP/LLC);
- – die
Richtung der Kommunikation.
-
In
einer CLIP-Umgebung verwendet die Verwaltung 7 die ATM-Adressen
Quelle und Ziel, um die entsprechenden IP-Adressen zu finden. Diese Umsetzung
erfolgt mittels einer Datei, die die Korrespondenzen zwischen IP-
und ATM-Adressen beschreibt. Sie kann auch einen Adressenauflösungsserver
(ATMARP) verwenden.
-
Die
Verwaltung 7 versucht anschließend, eine Korrespondenz zwischen
den IP-Adressen und den generischen Regeln der Zugriffskontrolle
der Ebene TCP/IP zu finden. Die erhaltene Untergruppe von Regeln wird
mit den IP-Adressen instanziiert und den anderen Informationen zugeordnet
(Adressen, Verkapselung, Verbindungsidentifikatoren, Richtung).
Dieser Satz von Informationen wird von der Verwaltung verwendet,
um den Analysebaum zu konstruieren, der verwendet werden wird, um
die IFT-Karten zu konfigurieren, und wird während der ganzen Dauer der
Verbindung beibehalten. Beim Beenden der Verbindung empfängt die
Verwaltung 7 ein Signal vom Signalisierungsanalysator 4,
um ggf. die IFT-Karten 20, 21 neu zu konfigurieren,
indem die Informationen bezüglich
der Verbindung gelöscht
werden. Die Verwaltung zerstört
anschließend
die der Verbindung zugeordneten Informationen.
-
Der
Signalisierungsanalysator 4 beruht auf zwei Funktionen.
Die erste ist die Umlenkung der vom internen und externen Netz kommenden
Signalisierungsmitteilungen zu einem Filter, das zum Analysator 4 gehört. Die
zweite ist die Fähigkeit,
die Signalisierungsmitteilungen gemäß der Spezifikation UNI 3.1
des ATM-Forums ("ATM
User-Network Interface Specification, Version 3.1", ATM Forum, Juli
1994) zu zerlegen und diese Mitteilungen abhängig von der von der Verwaltung 7 gelieferten
Zugriffskontrollkonfiguration zu übertragen oder zu löschen.
-
Die
Station 1 ist mit zwei ATM-Schnittstellenkarten 8, 9 versehen,
die mit zwei Schnittstellen 12 bzw. 13 des Schalters 3 verbunden
sind. Die anderen dargestellten Schnittstellen des Schalters 3 sind
mit 10 (internes Netz), 11 (externes Netz), 14 und 15 (IFT-Karten 20 und 21)
bezeichnet.
-
Um
die Signalisierung umzulenken, ist der ATM-Schalter 3 so
konfiguriert, dass er die Signalisierungsmitteilungen zur Station 1 lenkt.
Diese Konfiguration kann erhalten werden durch Deaktivieren des
Signalisierungsprotokolls an den Schnittstellen 10, 11, 12 und 13.
Ein virtueller Kanal (VC) muss anschließend zwischen jedem Paar von
Schnittstellen für
jeden Signalisierungskanal konstruiert werden. Die Signalisierungskanäle werden
zum Beispiel durch eine virtuelle Kanalkennung (VCI) gleich 5 gekennzeichnet.
-
Mit
der vorhergehenden Konfiguration werden die vom externen Netz kommenden
Signalisierungsmitteilungen zur Schnittstelle 13 der Station 1 gelenkt,
während
die vom internen Netz kommenden Mitteilungen zur Schnittstelle 12 gelenkt
werden.
-
Wenn
Signalisierungsmitteilungen vom Signalisierungsanalysator 4 empfangen
werden, werden sie in Informationselemente gemäß der Spezifikation UNI 3.1
zerlegt. Die Informationselemente werden anschließend in
Elementarinformationen wie die Adressen, die Verbindungsidentifikatoren,
die Call-Reference,
die Dienstqualitätsdeskriptoren
und die Dienstidentifikatoren zerlegt. Der Analysator 4 sucht
anschließend
mittels des Typs der Mitteilung und der Call-Reference, ob die Mitteilung
einer vorhandenen Verbindung zugeordnet werden kann. Wenn die Verbindung
neu ist, wird ein Verbindungsdeskriptor konstruiert, der diese Informationen
enthält.
Wenn die Verbindung bereits besteht, wird der Verbindungsdeskriptor
aktualisiert. Der Verbindungsdeskriptor ist dem Zustand der Verbindung
und der Anfangs-Schnittstelle zugeordnet. Er wird durch einen Verbindungsidentifikator
identifiziert. Der Deskriptor wird anschließend an das Filter des Signalisierungsanalysators 4 gesendet,
um analysiert zu werden.
-
Wenn
das Filter des Signalisierungsanalysators 4 einen Verbindungsdeskriptor
empfängt,
vergleicht es die die Verbindung beschreibenden Parameter mit der
Gruppe der Kommunikationen, die von der Zugriffskontrollpolitik
beschrieben wird. Wenn eine Entsprechung gefunden wird, wendet das
Filter die der Kommunikation zugeordnete Aktion an. Im gegenteiligen
Fall wendet es die Standard-Aktion an, die darin besteht, die Verbindung
zu verbieten. Wenn die Aktion aus einem Verbot besteht, zerstört das Filter
den Verbindungsdeskriptor. Im gegenteiligen Fall sendet es den Verbindungsdeskriptor
an einen Konstruktionsmodul der Mitteilungen. Wenn der Verbindungsdeskriptor
anzeigt, dass eine Mitteilung CONNECT empfangen wurde, wird eine Untergruppe
der Parameter des Verbindungsdeskriptors wie nachfolgend angegeben
an die Verwaltung 7 gesendet:
- – die Verbindungsidentifikatoren
VPI/VCI, die ausgehend von dem IE "Connection Identifier" erhalten werden;
- – Die
ATM-Adressen Quelle und Ziel, die von den IE "Called Party Identifier" und "Calling Party Identifier" geliefert werden;
- – die
Dienstdeskriptoren, die ausgehend von den IE "Broadband Higher Layer Identifier (BHLI)" und "Broadband Lower Layer
Identifier (BLLI)" erhalten
werden;
- – die
Richtung, geliefert vom Namen der dem Verbindungsdeskriptor zugeordneten
Schnittstelle.
-
Wenn
der Verbindungsdeskriptor den Empfang einer Mitteilung RELEASE_COMPLETE
anzeigt, die die Freigabe einer Verbindung vollendet, wird der Verbindungsdeskriptor
erneut zur Verwaltung 7 gesendet. Die Kommunikationen zwischen
der Verwaltung 7 und dem Signalisierungsfilter können in
klassischer Weise mit Hilfe eines gemeinsam genutzten Speichersegments
und von Signalen erfolgen.
-
Die
hier für
die Anwendung der Erfindung in Betracht gezogenen IFT-Karten sind
von dem in der europäischen
Patentanmeldung
EP 1 030 493 beschriebenen
Typ, die am 9. Februar 2000 von der Anmelderin angemeldet und am
23. August 2000 veröffentlicht
wurde. Sie basieren auf der Verwendung eines assoziativen Speichers
vom Typ Trie für
die Analyse von Teilen des Inhalts von ATM-Zellen, und für die Zuteilung einer Aktion
zu jeder Zelle des gleichen Rahmens, die durch die Zugriffskontrollpolitik
definiert wird. Diese Karten besitzen die folgenden bemerkenswerten
Eigenschaften:
- – sie ermöglichen die Analyse der ersten
Zelle jedes AAL5-Rahmens ("ATM
Adaptation Layer n° 5") und die Veränderung
der entsprechenden Zellen in Abhängigkeit
von der Analyse;
- – sie
können
aufgrund eines schnellen und flexiblen Analyseverfahrens mit der
Geschwindigkeit von 622 Mbits/s arbeiten;
- – die
durch die Analyse eingeführte
Verzögerung
kann begrenzt werden und hängt
von der Konfiguration der Karte ab;
- – sie
können
dynamisch konfiguriert werden, ohne den Analyseprozess zu unterbrechen;
- – sie
können
in Einrichtungen vom Typ PC mit dem Betriebsprogramm Solaris integriert
werden.
-
2 beschreibt
die Informationen, die von den IFT-Karten 20, 21 analysiert
werden können
für den Fall
der Protokolle CLIP (CLIP1) und CLIP ohne Verkapselung SNRP-LLC
(CLIP2). Die Felder UD und TD zeigen den Anfang der Datensegmente
für die
Protokolle UDP bzw. TCP an. Dies bedeutet, dass im allgemeinen Fall
die IFT-Karten Zugriff auf die Informationen der ATM-, IP-, TCP-,
UDP-Ebenen und in bestimmten Fallen der Anwendungsebene haben. Es
ist aber anzumerken, dass die optionalen Felder, die sich im IP-Paket
befinden können,
nicht dargestellt sind. Das Vorhandensein dieser Felder (veränderlicher
Länge)
kann die Informationen der TCP- oder UDP-Ebene in die zweite ATM-Zelle
verschieben.
-
Wie
im Fall der Signalisierung besteht der erste Teil des Zugriffskontrollprozesses
auf der Ebene der ATM-Zelle
darin, den vom internen und vom externen Netz kommenden Verkehr
zu den IFT-Karten 20, 21 umzulenken. In diesem
Fall muss aber die Konfiguration die für die Kontrolle der Signalisierung
hergestellte Konfiguration beibehalten. Zum Beispiel werden die
durch einen Wert von VCI gleich 31 identifizierten virtuellen Kanäle absichtlich
freigelassen, um es dem ATM-Schalter 3 zu ermöglichen,
die ATM-Zellen zurückzuweisen, die
zu einer Kommunikation gehören,
die verboten werden soll. Der ATM-Schalter 3 wird dann
so konfiguriert, dass ein virtueller Kanal für jeden Wert von VCI anders
als 5 und als 31 zwischen jedem Schnittstellenpaar (10, 14)
und (11, 15) erzeugt wird.
-
Die
in Betracht gezogenen IFT-Karten ermöglichen nur die Analyse von
unidirektionalen Strömen.
Das heißt,
dass die vom internen und vom externen Netz kommenden Ströme getrennt
werden müssen.
Dieser Vorgang ist besonders einfach im Fall einer physikalischen
Schicht vom Typ Mono-Mode Fiber, die von den Karten verwendet wird,
da die Sende- und Empfangsfasern physikalisch getrennt sind.
-
Der
zweite Teil des Zugriffskontrollprozesses ist die Konfiguration
der IFT-Karten 20, 21, damit sie den gewünschten
Zugriffskontrolldienst liefern. Wie oben angegeben, wird diese Konfiguration
von der Verwaltung 7 durchgeführt. Die IFT-Karten wurden
ursprünglich
konzipiert, um aus der Ferne von mehreren Verwaltungen verwaltet
zu werden. Eine entsprechende Software 27 (Dämon RPC)
wird dann in der Station 2 verwendet, um die Anforderungen
zu serialisieren, die an die Steuerschaltung 28 (Driver)
der Karten 20, 21 gerichtet werden. Auf der Seite
der Verwaltung 7 bietet eine Programmbibliothek den Zugriff
auf die Konfigurationsfunktionen. Diese Programmbibliothek setzt
die lokalen Anrufe in Fernanrufe in der Station 2 um. Die
Kommunikationen zwischen den beiden Einrichtungen erfolgen zum Beispiel über ein
dediziertes Netz vom Typ Ethernet.
-
Die
Konfiguration der Trie-Speicher der Karten 20, 21 beruht
auf einer Beschreibung der zu kontrollierenden Kommunikationen in
Form von Bäumen.
Jeder Zweig des Baums beschreibt den codierten Wert einer Binärkette,
zum Beispiel von 4 Bits, der während
des Analyseprozesses gefunden werden kann. Dieser Prozess besteht
darin, den zu analysierenden ATM-Zellenabschnitt
in Scheiben von 4 aufeinander folgenden Bits zu durchlaufen, die
dazu dienen, auf den Inhalt des Trie-Speichers zuzugreifen, der
in jeder IFT-Karte enthalten ist. Ein Analysebaum, der ausgehend
von einer von der Verwaltung 7 gelieferten Zugriffskontrollanweisung konstruiert
wird, entspricht einer gegebenen Verkettung von Scheiben von 4 Bits,
die beim Durchlaufen der ATM-Zelle an bestimmten Stellen gefunden
werden. Die Wurzel des Baums entspricht einem "Portier", der erkannt wird, um die Analyse des
Baums zu beginnen. Beispiele von Analysebäumen und von resultierenden Konfigurationen
von Trie-Speichern von IFT-Karten werden nun vorgestellt.
-
Allgemein
weist jede zu analysierende Stelle oder Feld eine durch die Abmessung
des Felds festgelegte Anzahl von Bits auf, zum Beispiel 32 Bits.
Ihre scheibenweise Analyse wird so durchgeführt, dass die Werte, die jede
Scheibe annehmen kann, den Elementarzellen eines oder mehrerer Register
des verwendeten Trie-Speichers entsprechen: Ein Quartett, das 24=16 Werte annehmen kann, ist insbesondere
für einen Trie-Speicher
geeignet, bei dem jedes Register 16 Elementarzellen enthält. Mehrere
Register, sogar eine große
Zahl von Registern, sind also für
die Analyse eines Felds notwendig, je nach der Größe dieses
Felds bezüglich
der Anzahl von Elementarzellen eines Registers.
-
Die
Analyse eines Felds enthält
im Allgemeinen die Analysen einer großen Zahl von aufeinander folgend
verketteten Bit-Scheiben bis zur Fortsetzung durch die Analyse eines
anderen Felds des gleichen Rahmens, oder bis zum Erhalt einer dem
analysierten Rahmen zugeordneten Aktion durch die Zugriffskontrollpolitik.
Aus Gründen
der Vereinfachung und der Klarheit der Darstellung der Erfindung,
auch wenn dies nicht einer realen Situation entspricht, weisen die
nachfolgend vorgestellten Beispiele je nur ein einziges Quartett
für jedes
Feld auf, auf das sich die Analyse bezieht. Aus den gleichen Gründen der
Vereinfachung und der Klarheit sind die Anzahl von in Betracht gezogenen
Regeln und die Anzahl von für
die Analyse in Betracht gezogenen Felder stark reduziert, während eine
reale Zugriffskontrollpolitik viele Zugriffsregeln enthalten kann,
die sich auf eine größere Anzahl
von Protokollkontrolle-Informationsfeldern beziehen.
-
Ein
erstes Beispiel wird für
zwei Felder x und y angegeben, die in ATM-Zellen gelesen werden,
dargestellt durch Paare (x,y). Die in den Feldern x und y gelesenen
Binärketten
sind Quartette, die durch Hexadezimalzahlen dargestellt werden,
die zwischen 0 und F liegen.
-
Die
zwei betrachteten Regeln sind die folgenden:
- – Regel
Re1: wenn x ≥ 7
und 3 ≤ y ≤ 8, wird eine
Aktion A1 durchgeführt;
- – Regel
Re2: wenn 2 ≤ x ≤ B und y ≥ 3, wird eine
Aktion A2 durchgeführt.
-
Von
der Regel Re1 wird angenommen, dass sie bezüglich der Regel Re2 prioritär ist, so
dass die Aktion A1 alleine ausgeführt wird, wenn sie gleichzeitig
mit der Aktion A2 einem gleichen Paar (x,y) jeweils von jeder Regel
zugeteilt wird. Wenn die Bedingung keiner der zwei Regeln Re1 und
Re2 von einem gegebenen Paar (x,y) erfüllt wird, dann wird diesem
Paar eine Standard-Aktion
O zugeteilt.
-
Die
Aktionen A1, A2 und O können
einfache Aktionen der Zurückweisung
("DENY") oder der Annahme ("PERMIT") der Rahmen sein.
Sie können
auch komplexeren Aktionen entsprechen, wie zum Beispiel der Fortsetzung
der Zugriffskontrolle durch die Untersuchung anderer Parameter,
wie erlaubte Domänen,
die einem Empfänger
des betrachteten Rahmens zugeteilt sind.
-
Die
Aktion der Zurückweisung
oder der Annahme wird mittels eines besonderen Knotens codiert,
der das Ende der Analyse bewirkt und den Verbindungsidentifikator
zurücksendet,
der allen Zellen des entsprechenden AAL5-Rahmens zugeteilt werden wird. Die Aktion "DENY" wird codiert, indem
der Rahmen zum nicht konfigurierten Kanal (VCI 31) auf
der Ebene des Schalters 3 gelenkt wird. Der VCI 31 wird
so als VCI-Papierkorb verwendet, um alle die ATM-Zellen wegzuwerfen,
die nicht der Sicherheitspolitik entsprechen. Die Aktion "PERMIT" wird codiert, indem
der Verbindungsidentifikator unverändert gelassen wird.
-
Die
Gesamtheit der Zahlen, die in dem Feld x gelesen werden können, wird
von den Regeln Re1 und Re2 gemäß den 4
folgenden Intervallen verteilt: x < 2,
2 ≤ x < 7, 7 < x ≤ B und x > B. Analog wird die
Gesamtheit der Zahlen, die im Feld y gelesen werden können, gemäß den 3
folgenden Intervallen verteilt: y < 3,
3 ≤ y ≤ 8 und y > 8.
-
Ein
Analysebaum, der aus der Anwendung der zwei Regeln Re1 und Re2 an
die Paare (x,y) resultiert, ist in 3 dargestellt,
indem zunächst
der Wert von x und dann der Wert von y analysiert wird. Der Wurzelknoten 100 stellt
den Ausgangspunkt der Analyse der Paare (x,y) dar. Drei Knoten 101,
die je mit dem Wurzelknoten 100 über einen Bogen 130 verbunden
sind, entsprechen Ergebnissen der Analyse des Werts von x bezüglich der
4 für x
identifizierten Intervalle. Knoten 102 oder Blätter des
Analysebaums, die mit den Knoten 101 über Bögen 131 verbunden
sind, entsprechen je für
die vorhergehenden Ergebnisse der Analyse des Werts von x den Ergebnissen
der Analyse des Werts von y bezüglich
der 3 für
y identifizierten Intervalle. Für
bestimmte Werte von x, zum Beispiel x < 2, erfordert die Analyse der Paare
(x,y) keine Analyse des Werts von y, um die Aktion zu bestimmen,
die durch die beiden Regeln Re1 und Re2 zugeteilt wird. In diesem
Fall verbindet ein Bogen 131 direkt ein Blatt 102 mit
dem Wurzelknoten 100. In anderen Fällen, 2 ≤ x < 7 und x > B, verwendet die Analyse des Werts von
y nicht alle für
y definierte Intervallgrenzen. Manche Intervalle, die für y definiert werden,
können
nämlich
vereint werden, wenn sie jeweiligen gleichen Aktionen entsprechen,
die von den zwei Regeln zugeteilt werden.
-
Zeilen 110 und 111 zeigen
je die Blätter 102 an,
für die
die Aktion A2 und/oder die Aktion A1 von den Regeln Re2 und Re1
zugeteilt wird, getrennt betrachtet. Schließlich zeigt in Abhängigkeit
von der Priorität
dieser Aktionen eine Zeile 120 die Aktion AA an, die jedem
Blatt 102 entspricht, das aus der Anwendung der zwei kombinierten
Regeln Re1 und Re2 resultiert. So nimmt die Zeile 120 die
Zeile 111 wieder auf, indem sie sie durch die Aktion A2
für diejenigen
der Blätter 102 vervollständigt, für die die
Zeile 110 die Aktion A2 zuteilt, während die Zeile 111 ihnen
keine Aktion zuteilt. Außerdem
teilt die Zeile 120 die Standard-Aktion O den Blättern 102 zu, die
von keiner der zwei Zeilen 110 und 111 in Betracht
gezogen werden.
-
Es
wird ein Trie-Speicher verwendet, dessen aufeinander folgende Register
RO, R1, R2,... alle sechzehn Elementarzellen enthalten. Ein Konfigurationsbeispiel dieses
Trie-Speichers entsprechend dem Analysebaum der
3 ist
wie folgt:
-
In
dieser Konfiguration des Trie-Speichers ist das "Portier"-Register RO der Analyse des Werts von
x zugeordnet, und die Register R1, R2 und R3 sind der Analyse des
Werts von y zugeordnet. RO ist also das Register, mit dem die Analyse
jedes Paars (x,y) begonnen wird. Je nach dem Wert von x des analysierten Paars
(x,y) leitet das Register R0 an eines der Register R1, R2 oder R3
für die
Fortsetzung der Analyse zurück. Dieses
letzte Register zeigt dann in Abhängigkeit vom Wert von y des
analysierten Paars (x,y) die durchzuführende Aktion an, die dem Blatt 102 des
Analysebaums zugeordnet ist, an dem der weg mündet, der den aufeinander folgenden
Ergebnissen der Analysen von x und von y entspricht . Gemäß dieser
Konfiguration sind 4 Trie-Speicher-Register notwendig, um die Analyse
aller möglichen
Paare (x,y) zu erlauben.
-
Indem
zunächst
der Wert y und dann der Wert x für
die Anwendung der gleichen Regeln Re1 und Re2 analysiert wird, erhält man einen
Analysebaum, wie er in 4 dargestellt ist. Gleiche Bezugszeichen
in den 3 und 4 entsprechen gleichen Bedeutungen.
In 4 entsprechen die Zwischenknoten 103 den
Ergebnissen der Analyse des Werts von y, die zuerst durchgeführt wird, wenn
die Analyse des Werts von x anschließend durchgeführt werden
soll. Für
jedes Zahlenpaar (x,y) zeigt dieser Baum das gleiche Anwendungsergebnis
der Regeln Re1 und Re2 in Form der Aktion AA an, die von der Zeile 120 angezeigt
wird.
-
Durch
Anwendung der gleichen Methode wie oben für die Konfiguration des Trie-Speichers
ausgehend vom Analysebaum der
4 erhält man:
-
So
ermöglicht
es die erfindungsgemäße Klassifizierung
der zwei Stellen x und y in diesem Beispiel, die Größe des Trie-Speichers,
die notwendig ist, um die Anwendung der gleichen Verarbeitungsregeln
durchzuführen,
um ein Register zu reduzieren.
-
Ein
zweites Beispiel betrifft einen Satz von Regeln, die an Tripletts
von Zahlen (x,y,z) angewendet werden, wobei jede dieser Zahlen noch
eine Hexadezimalzahl ist:
- – Regel Re1: wenn x ≥ A und 3 ≤ z ≤ 8, dann wird
eine Aktion A1 ausgeführt;
- – Regel
Re2: wenn x > 5 und
2 ≤ y ≤ 9 und z ≥ 6, dann wird
eine Aktion A2 ausgeführt;
- – Regel
Re3: wenn 3 ≤ x ≤ C, dann wird
eine Aktion A3 ausgeführt.
-
In
diesem Beispiel ist die Prioritätsbeziehung
zwischen den drei Regeln gleich: Re2 > Re1 > Re3.
Nur die Aktion mit der höchsten
Priorität
unter den Aktionen, die von jeder der drei Regeln zugeteilt werden,
wird noch schließlich
jedem Triplett zugeordnet. Eine Standard-Aktion O wird noch einem Triplett (x,y,z)
zugeordnet, das die Bedingungen keiner der drei Regeln erfüllt.
-
Diese
drei Regeln definieren 5 Intervalle für das Feld x: x < 3 , 3 ≤ x ≤ 5, 5 < x < A, A ≤ x ≤ C, und x > C, 3 Intervalle für das Feld
y: y < 2, 2 ≤ y ≤ 9 und y > 9, und 4 Intervalle
für das
Feld z: z < 3,
3 ≤ z < 6, 6 ≤ z ≤ 8 und z > 8.
-
5 zeigt
einen Analysebaum entsprechend den obigen drei Regeln Re1, Re2 und
Re3, indem zunächst
der Wert von x, dann der Wert von y und schließlich der Wert von z analysiert
wird. Dieser Analysebaum wird in gleicher Weise konstruiert wie
die Bäume
der 3 und 4. Die Bezugszeichen 100 und 120 haben die
bereits erwähnten
Bedeutungen. Knoten 104 entsprechen den Ergebnissen der
Analyse des Werts von x, die es nicht erlauben, direkt die von jeder
Regel angezeigte Aktion zu bestimmen, nämlich 5 < x < A,
A ≤ x ≤ C und x > C. In gleicher Weise
entsprechen die Knoten 105 den Ergebnissen der Analyse
des Werts von y, wenn die Analyse der Tripletts noch fortgesetzt
werden muss durch die Analyse des Werts von z. Je nach den Wegen
sind die Blätter 106 des
Analysebaums über
direkte Bögen
mit den Knoten 100, 104 oder 105 verbunden.
-
Zeilen 112, 113 und 114 zeigen
für jedes
der Blätter 106 die
Aktionen an, die je von jeder der drei Regeln angezeigt werden,
die in der ansteigenden Prioritätsreihenfolge
genommen werden. Eine Zeile 120 bezeichnet die End-Aktion,
die jedem Triplett (x,y,z) in Abhängigkeit von der Priorität zwischen
den von den drei Regeln angezeigten Aktionen zugeordnet wird.
-
Es
wird zum Beispiel noch ein Trie-Speicher mit sechzehn Elementarzellen
pro Register verwendet. In diesem Fall erfordert die Konfiguration
des Trie-Speichers
gemäß diesem
ersten Analysebaum ebenso viele Register wie Knoten 100, 104 oder 105,
d.h. insgesamt 9 Register.
-
Ein
Beispiel einer Konfiguration dieses Trie-Speichers entsprechend
dem Analysebaum der
5 ist wie folgt:
-
In
gleicher Weise stellt 6 einen den Regeln Re1, Re2
und Re3 entsprechenden Analysebaum dar, indem zunächst der
Wert von y, dann der Wert von z und als letztes der Wert von x analysiert
wird, entsprechend der ansteigenden Reihenfolge der Anzahl von Intervallen,
die jeweils für
x, y und z definiert werden. Zwei Zwischenknoten 107 entsprechen
den Ergebnissen der Analyse der Werte von y, die zuerst durchgeführt wird,
und sechs Zwischenknoten 108 den Ergebnissen der Analyse
der Werte von z, die anschließend
durchgeführt
wird.
-
In
diesem Analysebaum der 6 sind die Unterbäume, die
den folgenden Ergebnissen der Analysen von y und dann z [(y < 2 oder y > 9) und (z < 3 oder z > 8)] einerseits und
[2 ≤ y ≤ 9 und z < 3] andererseits entsprechen,
homolog. Gleiches gilt für
die Unterbäume
[(y < 2 oder y > 9) und 3 ≤ z ≤ 8] einerseits
und [2 ≤ y ≤ 9 und 3 ≤ z < 6] andererseits.
Außerdem
sind in 6 die Aktionen AA, die in Abhängigkeit
von dem Wert von x gemäß der Zeile 120 für Werte
von y und z derart zugeteilt werden, dass gilt [2 ≤ y ≤ 9 und 6 ≤ z ≤ 8] einerseits
und [2 ≤ y ≤ 9 und z > 8] andererseits, identisch.
Der Analysebaum der 7 entspricht dann demjenigen
der 6, indem er die homologen Unterbäume zusammenfasst.
-
Die
Konfiguration des Trie-Speichers gemäß diesem letzten Analysebaum
erfordert ebenso viele Register wie Knoten
100,
107 oder
108,
d.h. insgesamt 6 Register. So wurden 3 Trie-Speicher-Register im
Vergleich mit der Konfiguration des vom Analysebaum der
5 stammenden
Trie-Speichers eingespart. Ein Konfigurationsbeispiel des Trie-Speichers,
das dem Analysebaum der
7 entspricht, ist wie folgt:
-
8 zeigt
im Einzelnen die verschiedenen Schritte der Erzeugung eines neuen
Bogens des Analysebaums gemäß der bevorzugten
Anwendungsform des erfindungsgemäßen Verfahrens,
die ausgehend von der Konstruktion des Analysebaums die Erzeugung
von homologen Unterbäumen
vermeidet. Es geht darum, den Ankunftspunkt eines neuen Bogens zu
bestimmen, der von einem Knoten NP einer p-ten Stufe des Analysebaums stammt und
einer bestimmten Domäne
D für die
der p-ten Stufe zugeordnete Stelle Ep zugeordnet ist.
-
Die
beschriebene Methode wird wiederholt in jeder Stufe des Analysebaums
angewendet, die gemäß der Reihenfolge
der den Stufen zugeordneten Stellen genommen wird. Diese Methode
generiert die Knoten des Analysebaums zur gleichen Zeit, zu der
sie jedem erzeugten Knoten eine Untergruppe von Regeln zuteilt. So
ist vor der Anwendung der vorliegenden Methode an den Knoten NP
eine Untergruppe {Rj} von Regeln bereits
diesem Knoten zugeordnet, wobei j eine ganze Nummerierungszahl ist.
-
Es
wird angenommen, dass jede Regel Rj eine
Aktion zuteilt, wenn für
bestimmte. Stellen die an dieser Stelle gelesene Binärkette sich
in einem Wertebereich befindet, der von dieser Regel spezifiziert
wird. Diese Form der Regeln Rj entspricht
derjenigen der vorhergehenden Beispiele.
-
In
einer ersten Abfrage 200 werden diejenigen der Regeln Rj gesucht, von denen ein Bereich die Domäne D enthält, für die der
zugeordnete Bogen gerade erzeugt wird. Wenn keine der Regeln Rj einen die Domäne D enthaltenden Bereich besitzt,
ist der Ankunftspunkt des Bogens ein Blatt 102, 106,
das der Aktion O zugeordnet ist, die standardmäßig gemäß dem Schritt 201 definiert
wird.
-
Im
positiven Fall besteht die zweite Abfrage 210 darin, unter
den im Schritt 200 identifizierten Regeln Rj1 die
Regeln Rj2 zu suchen, von denen mindestens
ein Bereich in der Sortierreihenfolge der Stellen einer Stelle Eq nach der Stelle Ep entspricht.
wenn keine der Regeln Rj1 einen Bereich
entsprechend einer Stelle nach Ep besitzt,
ist (Schritt 211) der Ankunftspunkt des Bogens ein Blatt 102, 106,
das der Aktion der Regel zugeordnet ist, die unter den im Schritt 200 identifizierten
Regeln Rj1 die höchste Priorität hat.
-
Wenn
die Regeln Rj2 im Schritt 210 identifiziert
werden, sucht man dann in einem Schritt 220 festzustellen,
ob ein bereits in der Stufe (p+1) des Analysebaums erzeugter Knoten
NP+1 der Untergruppe {Rj2}
der identifizierten Regeln zugeordnet ist. Im positiven Fall ist
dieser Knoten der Ankunftspunkt des neuen Bogens, der vom Knoten
NP stammt (Schritt 222). Im negativen Fall wird ein neuer
Knoten NP+1 in der Stufe (p+1) erzeugt und
der Untergruppe {Rj2} von Regeln zugeordnet,
die im Schritt 210 identifiziert wurden (Schritt 221).
-
Diese
Analyse wird für
jede der für
die Stelle EP bestimmten Domänen D wiederholt,
um den vom Knoten NP stammenden Bogen aufzubauen,
der jeder von ihnen zugeordnet ist. Sie wird anschließend identisch für einen
folgenden Knoten der p-ten Stufe des Analysebaums wiederholt, bis
zur Erschöpfung
der Knoten dieser Stufe. Schließlich
wird sie noch für
alle Knoten der folgenden Stufe (p+1) wiederholt, um die Konstruktion des
Analysebaums fortzusetzen.
-
Diese
Methode der Erzeugung von neuen Bögen wird für die Konstruktion eines vierten
Baums angewendet, der den unter Bezugnahme auf 5 angegebenen
Regeln entspricht. Wie für 6 sind
die Stellen gemäß der erfindungsgemäßen Reihenfolge
klassifiziert. Der resultierende Baum ist in 9 dargestellt.
-
Für jeden
Knoten des Baums ist die Untergruppe von diesem Knoten zugeordneten
Regeln {Rj2} angezeigt. Für die Blätter 106 zeigt
die Zeile 121 die Regeln Rj1 an,
die in Abhängigkeit
von ihren relativen Prioritäten
die Aktionen bestimmen, die diesen Blättern zugeordnet und durch
die Zeile 120 angezeigt sind.
-
Die
verschiedenen Konfigurationsbeispiele von Trie-Speichern, die ausführlich in dieser Patentanmeldung
beschrieben wurden, zeigen den Vorteil des erfindungsgemäßen Verfahrens
für die
Konfiguration eines Trie-Speichers. Aufgrund der Klassifizierung
der Stellen, ggf. kombiniert mit der Zusammenfassung der homologen
Analyse-Unterbäume,
ermöglicht
dieses Verfahren die Reduzierung der Anzahl von notwendigen Registern
eines Trie-Speichers, der verwendet wird, um ATM-Zellen Aktionen
zuzuordnen, die von festgelegten Regeln bezeichnet werden. Die in
den beschriebenen Beispielen erhaltenen Reduzierungen sind mit der
Einfachheit dieser Beispiele verbunden. Für reale Zugriffskontrollpolitiken
können
die durch Anwendung der gleichen Prinzipien erhaltenen Reduzierungen
je nachdem in Abhängigkeit
von der Anzahl von Regeln, der Anzahl und der Größe der betrachteten Felder
und der den Feldern zugeordneten Elementarintervalle konsequent
sein.
-
In
der Praxis wird die Konfiguration des erfindungsgemäßen Trie-Speichers
im Lauf des Einführens neuer
Regeln oder des Löschens
von Regeln auf der Ebene der Zugriffskontrollverwaltung durchgeführt. Diese Verwaltung
enthält
einen Kompilierungsmodul, der die Analysebäume in Abhängigkeit von den Aktualisierungen
der eingeführten
Regeln konstruiert und verändert,
ehe er die vorhandene Konfiguration des Trie-Speichers verändert.