-
HINTERGRUND DER ERFINDUNG
-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft eine Vorrichtung zur Hochleistungsvermittlung
(Hochleistungs-Switching) in lokalen Kommunikationsnetzen, wie etwa
Token-Ring-, ATM-, Ethernet-, Fast-Ethernet-, 1 Gigabit- und 10.000MBit/s-Ethernet-Umgebungen,
die allgemein als LANs bekannt sind. Insbesondere betrifft die Erfindung ein
Verfahren zum Handhaben von Datenpaketen in einem Netzwerk-Switch
und einen Netzwerk-Switch
zur Netzwerkkommunikation.
-
BESCHREIBUNG
DES RELEVANTEN STANDES DER TECHNIK
-
Da
sich die Computerleistung in den letzten Jahren verbessert hat,
sind die Anforderungen an Computernetzwerke erheblich gestiegen;
schnellere Computerprozessoren und höhere Speicherfähigkeiten
benötigen
Netzwerke mit hohen Bandbreitenfähigkeiten,
um eine Hochgeschwindigkeitsübertragung
erheblicher Datenmengen zu ermöglichen.
Die wohlbekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards
basiert, ist ein Beispiel für
eine Computer-Netzwerk-Managementtechnologie,
die so modifiziert und verbessert werden konnte, dass sie eine brauchbare
Datenverarbeitungstechnologie geblieben ist. Eine ausführlichere
Besprechung bekannter Netzwerk-Managementsysteme findet sich z.B.
in SWITCHED AND FAST ETHERNET von Breyer und Riley (Ziff-Davies,
1996) und zahlreichen IEEE-Publikationen, die IEEE-802-Standards
betreffen.
-
Basierend
auf dem Open-Systems-Interconnect-(OSI)-7-Schichten-Referenzmodell
haben sich die Netzwerkfähigkeiten
durch die Entwicklung von Repeatern, Brücken (Bridges), Routern und
in jüngerer
Zeit von "Switches" verbessert, welche
mit verschiedenen Arten von Kommunikationsmedien arbeiten. Thickwire-, Thinwire-,
Twisted-Pair- und Glasfaserkabel sind Beispiele für Medien,
die für
Computernetzwerke verwendet worden sind. Switches sind, soweit sie
sich auf das Computer-Netzwerk-Management
und auf Ethernet beziehen, hardware-basierte Vorrichtungen, die
den Fluss von Datenpaketen oder Zellen basierend auf Zieladresseninformationen
steuern, welche in jedem Paket verfügbar sind. Ein ordnungsgemäß konzipierter
und implementierter Switch sollte dazu imstande sein, ein Paket
zu empfangen und das Paket mit so genannter Wirespeed oder Linespeed,
welche die maximal erreichbare Geschwindigkeit des spezifischen
Netzwerks ist, an einen geeigneten Ausgangsport zu vermitteln.
-
Die
Wirespeed von Basic-Ethernet beträgt bis zu 10 Megabit pro Sekunde
und von Fast-Ethernet bis zu 100 Megabit pro Sekunde. Das neueste
Ethernet wird als 10.000MBit/s-Ethernet bezeichnet und kann Daten
mit einer Rate von bis zu 10.000 Megabit pro Sekunde über ein
Netzwerk übertragen.
Da sich die Geschwindigkeit erhöht
hat, sind die Konstruktionsbeschränkungen und Konstruktionsanforderungen
im Hinblick auf die Beachtung geeigneter Konstruktions- und Protokollregeln
und das Vorsehen einer kostengünstigen, kommerziell
brauchbaren Lösung
immer komplexer geworden. Beispielsweise beim Filtern von Paketen
in einem Switch basierend auf zugewiesenen Kriterien, wird es, wenn
das Filterverfahren die Verarbeitung eines Pakets verzögert, nahezu
unmöglich,
den Switch oder das Netzwerk mit Linespeed zu betreiben.
-
Ein
System zum Filtern von Paketen in einem Netzwerk-Switch ist in der
US-Patentschrift 2001/012294
beschrieben. Ein derartiger Switch verwendet einen Fast-Filtering-Prozessor
(FFP), um die gewünschte
Filterung durchzuführen.
Filtermasken werden auf Abschnitte des eingehenden Pakets angelegt
und eine Regeln-Tabelle wird nach Aktionen durchsucht, die durchzuführen sind,
wenn eine Übereinstimmung
mit einem in der Regeln-Tabelle vorhandenen Schlüssel vorliegt. Das allgemeine
Verfahren des Filterns mit dem FFP ist nachfolgend in Bezug auf
die vorliegende Erfindung besprochen.
-
US 6,104,696 beschreibt
ein Verfahren zum Senden von Paketen zwischen Bündelports (Trunk-Ports) von
Netzwerk-Switches über
eine Bündelverbindung.
Eine Regeln-Tabelle ist vorgesehen, die einen Satz Regeln definiert,
die angeben welcher Port der Bündelverbindung
zur Datenübertragung
verwendet wird. Ein Paket wird dann an eine Zieladresse an dem angegebenen
Bündelport übermittelt.
-
WO
01/19040 A1 beschreibt eine Vorrichtung und ein Verfahren zum Vermitteln
von Voice-over-IP-(VOIP-)Paketen in einem Datennetz. Ein mit einer
Filtertabelle in Verbindung stehender Fast-Filtering-Prozessor identifiziert
eine VOIP-Ruf-Installationsnachricht und bestimmt anschließend einen VOIP-Port,
so dass nachfolgende VOIP-Pakete gefiltert und ihnen eine angemessene
Priorität
zugewiesen werden kann.
-
Ein
weiterer wichtiger Aspekt in einer Netzwerkumgebung ist das Policing
(Kontrollieren) des Datenverkehrs (Traffic). Traffic-Policing ist
beim Betreiben eines Netzwerks aus Sicherheits- und Leistungsgründen von
großer
Bedeutung. Eine für
eine Netzwerkumgebung implementierte Policy (Richtlinie oder Politik)
bestimmt, welche Art von Datenverkehr für das Netzwerk zugelassen wird.
Das Implementieren einer Zugriffssteuerliste (Access Control List – ACL) ist
ein grundlegender Mechanismus für
einen Netzwerk-Administrator zum Steuern des Datenverkehrs. Bekannte
Switches und Systeme haben jedoch Beschränkungen, die die Gesamteffektivität eines
solchen Policing behindern und die Betriebsgeschwindigkeit eines
Switches nachteilig beeinflussen können. Es ist daher notwendig,
eine Zugriffssteuerung oder -kontrolle für durch einen Netzwerk-Switch
vermittelte Daten bereitzustellen, die die Datenverarbeitung durch
diesen Switch nicht behindert. Das vorstehende und weitere Ziele
werden durch einen in Anspruch 1 definierten Netzwerk-Switch und
ein in Anspruch 7 definiertes Verfahren zum Handhaben von Datenpaketen
erreicht.
-
Die
vorliegende Erfindung betrifft eine Switch-on-Chip-Lösung für einen
Switch, die Ethernet-, Fast-Ethernet- und 1-Gigabit- und 10.000-MBit/s-Ethernet-Systeme verwenden
kann, wobei die gesamte Hardware auf einem einzelnen Mikrochip angeordnet
ist. Die vorliegende Erfindung betrifft außerdem Verfahren, die dazu
eingesetzt werden, den Zugriff auf einen Netzwerk-Switch zu ermöglichen
und zu steuern.
-
Die
Erfindung betrifft daher einen Netzwerk-Switch zur Netzwerkkommunikation,
wobei der Daten-Switch eine Datenport-Schnittstelle umfasst, die
eine Mehrzahl Datenports zum Senden und Empfangen von Daten unterstützt. Der
Switch umfasst außerdem
eine CPU-Schnittstelle, die dafür
konfiguriert ist, mit einer CPU und einer Speicher-Managementeinheit
zu kommunizieren, die eine Speicherschnittstelle zum Übertragen
von Daten von der Datenport-Schnittstelle an einen Switch-Speicher
umfasst. Es ist außerdem
ein Kommunikationskanal vorgesehen, der Daten überträgt und Informationen übermittelt,
und zwar zwischen der Datenport-Schnittstelle, der CPU-Schnittstelle,
dem Switch-Speicher und der Speicher-Managementeinheit. Die Datenport-Schnittstelle
umfasst ferner eine Zugriffssteuereinheit, die an der Datenport-Schnittstelle
eingehende Daten filtert und an den Daten selektive Aktionen oder
Tätigkeiten
durchführt,
indem ein Satz Filterregeln so angewandt wird, dass der Zugriff
auf den Switch durch den Satz Filterregeln gesteuert wird.
-
Die
Zugriffssteuereinheit kann durch Eingänge von der CPU über die
CPU-Schnittstelle
programmiert werden. Die Datenport-Schnittstelle kann außerdem eine Filtermaskentabellenschnittstelle
und eine Filterregelntabelle umfassen, wobei der Satz Filterregeln
in der Filterregelntabelle enthalten ist. Darüber hinaus legt die Zugriffssteuereinheit
eine Filtermaske an ein eingehendes Paket an, um ein Filterergebnis
vorzusehen, wobei das Filterergebnis auf die Filterregeln in der
Filterregelntabelle angewandt wird und wobei basierend auf dem Filterergebnis
an den Daten eine Aktion durchgeführt wird. Alternativ können die
Datenport-Schnittstelle, die CPU-Schnittstelle, die Speicher-Managementeinheit,
der Kommunikationskanal und die Zugriffssteuereinheit alle auf einem
gemeinsamen Halbleitersubstrat implementiert werden.
-
Bei
einem erfindungsgemäßen Netzwerk-Switch
können
die Funktionen des Zugriffssteuerfilters durch einen Fast-Filtering-Prozessor
ausgeführt
werden. Des Weiteren kann der Switch den Zugriff auf eingehende Daten
unabhängig
von der CPU-Schnittstelle, d.h. ohne mit der CPU zu kommunizieren,
oder in Verbindung mit einer Kommunikation mit der CPU über die
CPU-Schnittstelle steuern. In jedem Fall können die Filterregeln des Netzwerk-Switch
durch die CPU, basierend auf der in der CPU festgelegten Zugriffssteuerliste,
geändert werden.
Jeder Filterregel des Filterregelsatzes kann ein Index zugeordnet
sein, wobei gegensätzliche
Filterergebnisse basierend auf der Anwendung der Filterregeln durch
die zugeordneten Indices der Filterregeln geklärt werden können.
-
Die
Erfindung betrifft außerdem
ein Verfahren zum Handhaben von Datenpaketen, welches das Platzieren
eingehender Pakete in einer Eingangswarteschlange umfasst. Das eingehende
Paket wird dann durch Anwenden eines Satzes Filterregeln durch eine
Zugriffssteuereinheit gefiltert, um zu bestimmen, ob das eingehende
Paket durch den Netzwerk-Switch Zugriff haben sollte. Dann wird
das Paket basierend auf der Anwendung des Satzes Filterregeln verworfen, übermittelt
oder modifiziert. Der Filterregelsatz kann durch Kommunikation mit
einer CPU über
eine CPU-Schnittstelle
empfangen werden. Die CPU kann ferner die Filterregeln des Filterregelsatzes
basierend auf einer in der CPU festgelegten Zugriffssteuerliste
aktualisieren, wobei das Aktualisieren das Hinzufügen weiterer
Filterregeln umfassen kann. Darüber
hinaus kann jede Filterregel des Filterregelsatzes einen zugeordneten
Index besitzen, der dazu verwendet werden kann, gegensätzliche Filterergebnisse
basierend auf der Anwendung der Filterregeln zu klären.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Ziele und Merkmale der Erfindung gehen durch Bezugnahme auf die
folgende Beschreibung und die beigefügten Zeichnungen genauer hervor.
Es zeigt:
-
1 ein
allgemeines Blockdiagramm erfindungsgemäßer Elemente,
-
2 ein
Blockdiagramm von Elementen des erfindungsgemäßen Switch-on-Chip,
-
3 den
Datenfluss in den Ingress des erfindungsgemäßen Switches,
-
4 ein
Blockdiagramm eines Fast-Filtering-Prozessors (FFP),
-
5 eine
Reihe von Schritten, die zum Programmieren eines FFP verwendet werden,
-
6 eine
Netzwerk-Architektur, die mit der vorliegenden Erfindung verwendet
werden kann,
-
7 eine
schematische Darstellung, die Router und den Netzwerk-Switch zeigt,
und
-
8 Voice-over-IP,
wobei ein solcher Zugriff durch die erfindungsgemäßen Verfahren
vermittelt werden kann.
-
GENAUE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
erfindungsgemäßen Verfahren
und Vorrichtungen ermöglichen
ein auf Zugriffssteuerlisten basierendes Traffic-Policing. Die vorliegende
Erfindung unterstützt
das Traffic-Policing aufgrund der in die Struktur des Netzwerk-Switches
eingebauten, nachfolgend beschriebenen Merkmale sowie der in die
Software eingebauten Intelligenz, welche bei dem Netzwerk-Switch
verwendet wird. Die allgemeine Struktur eines die vorliegenden Erfindung
verkörpernden
Netzwerk-Switches
wird nachfolgend besprochen und dann das allgemeine Verfahren zum
Filtern von Daten genauer beschrieben. Als Nächstes folgt eine kurze Übersicht
der Zugriffssteuerung, wobei die spezifischen Merkmale der vorliegenden
Erfindung besprochen werden, die für das Traffic-Policing relevant
sind, und es wird dargelegt wie diese Merkmale auf einige Traffic-Policing-Anwendungen angewandt
werden.
-
1 zeigt
eine Konfiguration, bei der ein Switch-on-Chip (SOC – auf dem
Chip befindlicher Switch) 10 erfindungsgemäß funktionell
mit externen Einrichtungen 11, einer Zentraleinheit (CPU) 52,
Gigabit-Ethernet-Ports 15 und Ethernet-Ports verbunden
ist. Für
die Zwecke dieser Ausführungsform
sind die Gigabit-Ethernet-Ports 15,
welche Hochgeschwindigkeits-Ethernet-Ports sind, dazu in der Lage,
mit 1.000 MBps zu arbeiten, sie können jedoch auch mit Geschwindigkeiten
zwischen 10 MBps und 100 MBps arbeiten. Obgleich der Switch-on-Chip
auch mit Ethernet-Ports verbunden dargestellt ist, sind die Ausführungsformen
der Erfindung auch auf Switches anwendbar, die nur mit Gigabit-Ethernet-Ports
verbunden sind. Die externen Einrichtungen 11 könnten weitere
Vermittlungseinrichtungen zum Erweitern der Vermittlungsfähigkeiten
oder andere Einrichtungen umfassen, die für eine spezielle Anwendung
erforderlich sein können.
Die CPU 52 kann nach Bedarf zum Programmieren des SOC 10 mit
zur Steuerung der Paketverarbeitung geeigneten Regeln verwendet
werden. Sobald der SOC 10 jedoch in geeigneter Weise programmiert
oder konfiguriert worden ist, arbeitet der SOC 10 so weit
als möglich
in freilaufender Weise, ohne mit der CPU 52 zu kommunizieren.
Da die CPU 52 nicht jeden Aspekt des Betriebs des SOC 10 steuert,
sind die Leistungsanforderungen an die CPU 52, zumindest
im Hinblick auf den SOC 10, relativ gering. Es kann daher
im Vergleich zu bekannten Netzwerk-Switches eine weniger leistungsstarke
und somit kostengünstigere
CPU 52 verwendet werden.
-
Es
wird darauf hingewiesen, dass eine beliebige Anzahl an Gigabit-Ethernet-Ports 15 oder
Ethernet-Ports vorgesehen werden kann. Bei einer Ausführungsform
können
8 Gigabit-Ports 15 vorgesehen werden. In ähnlicher
Weise können
weitere Verbindungsleitungen zu weiteren externen Einrichtungen 11 und CPUs 52 bei
Bedarf bereitgestellt werden.
-
Der
SOC 10 umfasst mehrere Ethernet-Port-Schnittstellensteuereinheiten
(EPICs – Ethernet
Port Interface Controllers), mehrere Gigabit-Port-Schnittstellensteuereinheiten
(GPICs – Gigabit
Port Interface Controllers) 30a, 30b, etc., eine
CPU-Management-Schnittstellensteuereinheit (CMIC – CPU Management
Interface Controller) 40, einen gemeinsamen Pufferspeicherpool
(CBP – Common
Buffer Memory Pool) 50, eine Pipelined-Speicher-Managementeinheit
(PMMU – Pipelined
Memory Management Unit) 70, die einen gemeinsamten Puffer-Manager
(CBM – Common
Buffer Manager) umfasst und eine systemweite Bus-Struktur, die als CPS- Kanal 80 bezeichnet
wird. Die PMMU 70 kommuniziert mit einem externen Speicher,
der einen globalen Pufferspeicherpool (GBP – Global Buffer Memory Pool)
umfasst. Der CPS-Kanal 80 umfasst einen C-Kanal 801 , einen P-Kanal 802 und
einen S-Kanal 83.
-
Der
CPS-Kanal wird auch als Zellen-Protokoll-Seitenbandkanal (Cell Protocol
Sideband Channel) bezeichnet und ist ein 17-GBps-Kanal, der die
verschiedenen Module "zusammenschweißt" oder miteinander verbindet.
Wie ebenfalls in 2 gezeigt, können andere Hochgeschwindigkeitsverbindungen,
wie etwa eine erweiterbare Hochgeschwindigkeitsverbindung, vorgesehen
werden. Bei einer Ausführungsform
der Erfindung kann diese Verbindung die Form einer Verbindungsport-Schnittstellensteuereinheit
(IPIC – Interconnect
Port Interface Controller) haben, die dazu in der Lage ist, den
CPS-Kanal 80 über
eine erweiterbare Hochgeschwindigkeitsverbindung an die externen
Einrichtungen 11 anzuschließen.
-
Wie
nachfolgend besprochen, steht jede EPIC und jede GPIC 30a und 30b,
die allgemein als GPIC 30 bezeichnet werden, mit geeigneten
Adressenauflösungslogik-
und Layer-3-Vermittlungstabellen 31a, 31b, Regeln-Tabellen 31a, 31b und
VLAN-Tabellen 31a, 31b in enger Wechselbeziehung.
Diese Tabellen werden jeweils allgemein mit 31, 32 bzw. 33 bezeichnet.
Diese Tabellen sind, wie andere Tabellen auf dem SOC 10,
als zweidimensionale Anordnungen in Silizium implementiert.
-
Bei
einer bevorzugten Ausführungsform
der Erfindung unterstützt
jede EPIC 8 Fast-Ethernet-Ports und vermittelt, je nach
Bedarf, Pakete zu und/oder von diesen Ports. Die Ports sind daher
unter Verwendung bekannter Medienverbindungstechnologien mit dem
Netzwerkmedium (Koaxial-, TP-, Glasfaserkabel etc.) verbunden und
kommunizieren mit dem CPS-Kanal 80 auf dessen anderer Seite.
Die Schnittstelle jeder EPIC zum Netzwerkmedium kann durch eine
reduzierte interne Medienschnittstelle (RMII – Reduced Media Internal Interface)
bereitgestellt werden, die eine direkte Mediumverbindung mit dem
SOC 10 ermöglicht.
Wie im Stand der Technik bekannt, ist die Autonegotiation ein Aspekt
von Fast-Ethernet, wobei das Netzwerk basierend auf den Fähigkeiten
der jeweiligen Einrichtungen eine höchste Übertragungsgeschwindigkeit
zwischen einer Quelle und einem Ziel aushandeln kann. Die Übertragungsgeschwindigkeit
kann, wie vorstehend erwähnt,
zwischen 10 MBps und 100 MBps variieren, die Autonegotiationsfähigkeit
ist daher direkt in jedes EPIC-Modul eingebaut.
-
Die
Adressenauflösungslogik-(ARL – Address
Resolution Logic) und Layer-3-Tabellen
(ARL/L3), die Regeln-Tabelle und die VLAN-Tabellen sind so konfiguriert,
dass sie in effizienter und zweckmäßiger Weise einen Teil der
zugeordneten EPIC bilden oder an diese angeschlossen sind, um ebenfalls
einen Wirespeed-Paketfluss zu unterstützen.
-
Jede
EPIC weist separate Ingress- und Egress-Funktionen auf. Auf der
Ingress-Seite kann ein selbstinitiiertes und ein durch die CPU initiiertes
Lernen von Level-2-Adresseninformationen erfolgen. Die Adressenauflösungslogik
wird dazu verwendet, bei dieser Aufgabe zu helfen. Address-Aging
(Adressenalterungsprüfung)
ist als Merkmal eingebaut, um die Speicherung von Adresseninformationen
zu beenden, die nicht länger gültig oder
brauchbar sind. Die EPIC führt
ebenfalls eine Layer-2-Spiegelung durch. Ein Fast-Filtering-Prozessor
(FFP) ist in die EPIC eingebaut, um die Paketübermittlung zu beschleunigen
und den Paketstrom zu verstärken.
Die Ingress-Seite jeder EPIC und GPIC verfügt über ein erhebliches Maß an Komplexität, um eine beträchtliche
Anzahl an unterschiedlichen Paketarten, die am Port eingehen können, ordnungsgemäß verarbeiten
zu können,
und zwar zur Linespeed-Zwischenspeicherung und zum anschließenden geeigneten
Transfer an den Egress. Funktionell weist jeder Port an jedem Modul
des SOC 10 ein ihm zugeordnetes, separates Ingress-Untermodul
auf. Aus der Perspektive der Implementierung werden jedoch, um die
auf dem Ein-Chip-SOC 10 implementierte Hardwaremenge zu
minimieren, im Silizium gemeinsame Hardwareelemente verwendet, um
mehrere Ingress-Untermodule auf jedem spezifischen Modul auszuführen. Die
hierin besprochene Konfiguration des SOC 10 ermöglicht eine
gleichzeitige Durchführung
von Lookups und Filterung und daher eine Verarbeitung von bis zu
6,6 Millionen Paketen pro Sekunde. Layer-2-Lookups, Layer-3-Lookups und
die Filterung können
gleichzeitig erfolgen, um dieses Leistungsniveau zu erreichen.
-
Auf
der Egress-Seite ist die EPIC, basierend entweder auf einer Egress-Management- oder
Dienstklasse-(CoS-/Class-of-Service-) Funktion, dazu in der Lage,
eine Paketabfrage zu unterstützen.
Ein Rerouting/Scheduling von zu sendenden Paketen kann erfolgen,
ebenso wie eine Head-of-Line-(HOL)-Blocking-Benachrichtigung, Paket-Aging,
erneute Zusammensetzung von Zellen sowie andere der Ethernet-Port-Schnittstelle
zugeordnete Funktionen.
-
Jede
GPIC 30 ist jeder EPIC ähnlich,
unterstützt
jedoch nur einen Gigabit-Ethernet-Port
und nutzt eine portspezifische ARL-Tabelle, anstelle einer ARL-Tabelle, die gemeinsam
mit anderen Ports benutzt wird. Darüber hinaus ist jeder GPIC-Port
unter Verwendung einer medienunabhängigen Gigabit-Schnittstelle
(GMII –Gigabit
Media Independent Interface), anstelle einer RMII, an das Netzwerkmedium
angeschlossen.
-
Die
CMIC 40 dient als Gateway (Netzübergang) zwischen dem SOC 10 und
der Host-CPU. Die Kommunikation kann beispielsweise längs eines
PCI-Busses oder eines anderen akzeptablen Kommunikationsbusses stattfinden.
Die CMIC 40 kann sequenzielle, direkt abgebildete Zugriffe
(Direct Mapped Accesses – DMA)
zwischen der Host-CPU 52 und dem SOC 10 vorsehen.
Die CPU 52 kann, über
die CMIC 40, auf zahlreiche Ressourcen des SOC 10 zugreifen,
welche MIB-Zähler,
programmierbare Register, Status- und Steuerregister, Konfigurationsregister,
ARL-Tabellen, portbasierte
VLAN-Tabellen, IEEE802.1q-VLAN-Tabellen, Layer-3-Tabellen, Regeln-Tabellen, CBP-Adressen-
und Datenspeicher sowie GBP-Adressen-
und Datenspeicher umfassen. Wahlweise kann die CMIC 40 eine
DMA-Unterstützung, DMA-Verkettung
(DMA-Chaining) und Scatter-Gather sowie einen Master- und Target-PCI64
umfassen.
-
Ein
gemeinsamer Pufferspeicherpool oder CBP 50 kann als auf
dem Chip befindlicher Datenspeicher betrachtet werden. Bei einer
Ausführungsform
der Erfindung ist der CBP 50 ein Hochgeschwindigkeits-SRAM-Speicher
erster Ebene, um die Leistung zu maximieren und die Hardware-Overhead-Anforderungen
zu minimieren. Der CBP kann eine Größe von z.B. 720 Kilobyte haben
und mit 132 MHz laufen. Im CBP 50 gespeicherte Pakete werden
typischerweise als Zellen, anstatt als Pakete, gespeichert. Wie
in der Figur gezeigt, umfasst die PMMU 70 auch den gemeinsamen
Puffer-Manager (CBM). Der CBM handhabt das Warteschlangen-Management und ist
dafür verantwortlich,
eingehenden Zellen Zellenzeiger zuzuordnen sowie gemeinsame Paket-IDs
(CPID – Common
Paket ID) zuzuweisen, sobald das Paket vollständig in den CBP geschrieben
worden ist. Der CBM kann auch das Management des auf dem Chip befindlichen
freien Adressenzeigerpools (on-chip free address pointer pool) handhaben,
aktuelle Datentransfers zu und von dem Datenpool steuern und ein
Speicher-Budget-Management vorsehen.
-
Ein
globaler Speicherpufferpool oder GBP dient als Speicher zweiter
Ebene und kann sich auf dem Chip oder nicht auf dem Chip befinden.
Bei der bevorzugten Ausführungsform
befindet sich der GBP in Bezug auf den SOC 10 nicht auf
dem Chip. Wenn er sich nicht auf dem Chip befindet, wird der GBP
als Teil eines oder insgesamt als externer Speicher(s) betrachtet.
Als Speicher zweiter Ebene muss der GBP kein teurer Hochgeschwindigkeits-SRAM
sein und kann ein langsamerer und kostengünstigerer Speicher, wie etwa
ein DRAM, sein. Der GBP ist eng mit der PMMU 70 verbunden
und arbeitet insofern wie der CBP als dass Pakete als Zellen gespeichert
werden. Bei Broadcast- und Multicast-Nachrichten wird nur eine Kopie
des Pakets im GBP gespeichert.
-
Die
PMMU 70 befindet sich zwischen dem GBP und dem CPS-Kanal 80 und
dient als externe Speicherschnittstelle. Zur Optimierung der Speichernutzung
umfasst die PMMU 70 mehrere Lese-/Schreibpuffer und unterstützt zahlreiche
Funktionen, einschließlich
eines globalen Warteschlangen-Management, das im Allgemeinen die
Zuweisung von Zellenzeigern an umgeleitete (rerouted) eingehende
Pakete, die Aufrechterhaltung des globalen FAP, ein zeitoptimiertes
Zellen-Management,
ein globales Speicherbudget-Management, eine GPID-Zuweisung und
eine Egress-Manager-Benachrichtigung, ein Schreibpuffer-Management,
Lese-Prefetches,
die auf Egress-Manager-/Dienstklasseanfragen basieren, und eine
Smart-Memory-Control (intelligente Speichersteuerung) umfasst.
-
9 zeigt
einige Details der gleichzeitig stattfindenden Filterung und Lookups
eines an der Ingress-Seite eines Ports des Switches eingehenden
Pakets. 9 widmet sich der Anwendung
von Filter-, Adressenauflösungs-
und Regeln-Anwendungssegmenten
des SOC 10. Diese Funktionen werden bezogen auf den vorstehend
besprochenen CBP-Einlass gleichzeitig ausgeführt. Ein Paket wird an einem
Eingangsport einer EPIC oder GPIC 30 empfangen. Dann wird
es zum Eingangs-FIFO 33 geleitet. Sobald die ersten sechzehn
Bytes des Pakets am Eingangs-FIFO 33 ankommen, wird eine
Adressenauflösungsanfrage
an die ARL-Maschine 24 gesendet
(Schritt 2a), wodurch der Lookup in den ARL/L3-Tabellen
initiiert wird.
-
Wenn
das Paket einen 802.1q-Tag aufweist, führt die ARL-Maschine den Lookup
basierend auf dem 802.1q-Tag in der TAGBASIERTEN VLAN-TABELLE durch.
Wenn das Paket keinen 802.1q-Tag enthält, findet die ARL-Maschine
das VLAN basierend auf dem Ingress-Port in der PORTBASIERTEN VLAN-TABELLE.
Sobald das VLAN des eingehenden Pakets identifiziert worden ist,
führt die
ARL-Maschine die
ARL-Tabellesuche basierend auf der Quellen-MAC-Adresse und der Ziel-MAC-Adresse
durch. Der bei dieser Suche verwendete Schlüssel ist die MAC-Adresse + VLAN-ID.
Wenn das Ergebnis der ARL-Suche eine der L3-Schnittstellen-MAC-Adressen ist,
dann wird die L3-Suche durchgeführt,
um den Route-Eintrag zu finden. Wenn eine L3-Suche erfolgreich ist,
wird das Paket gemäß den Paket-Routing-Regeln modifiziert.
-
In
Schritt 2b wird, sobald die ersten 64 Bytes am Eingangs-FIFO
ankommen, eine Filteranfrage an eine Zugriffssteuereinheit (ACU – Access
Control Unit) oder einen Fast-Filtering-Prozessor (FFP) 27 gesendet. Das
Ergebnis der ARL-Suche, Schritt 3a, umfasst den oder die
Egress-Ports, die Dienstklasse (COS), eine ungetaggte Port-Bit-Karte
(Port Bitmap) sowie außerdem,
in Schritt 3b, das im Hinblick auf den Tag-Header oder L3-Header
und L2-Header gemäß den Routing-Regeln
modifizierte Paket. Bei der folgenden Beschreibung versteht es sich,
dass, obgleich der FFP so dargestellt ist, dass er das Filterverfahren
durchführt,
die ACU ebenfalls ausdrücklich
zu nennen ist, wenn der Zugriff auf den Switch gesteuert wird. Der
FFP wendet alle konfigurierten Filter an, wobei Ergebnisse aus der
REGELN-TABELLE erhalten werden.
-
Das
Ergebnis der Filterlogik, 3c, entscheidet, ob das Paket
verworfen werden, an die CPU gesendet oder, in Schritt 3d,
das Paket im Hinblick auf den 802.1q-Header oder das TOS-Precedence-Feld
im IP-Header modifiziert werden muss. Wenn das TOS-Precedence-Feld
im IP-Header modifiziert wird, muss die IP-Prüfsumme neu berechnet und im
IP-Header modifiziert werden.
-
Das
Ergebnis des FFP und der ARL-Maschine, 31, wird in Schritt 4a angewandt,
um das Paket im Puffer-Slicer 32 zu modifizieren. Basierend
auf dem Ergebnis der ARL-Maschine und des FFP, Schritt 4b,
wird der Nachrichten-Header 28 so gebildet, dass er bereit
ist, an den Protokollkanal zu gehen. Die Verteilereinheit (Dispatch-Unit) 29 sendet
das modifizierte Paket in Schritt 5a an den Zellenkanal
(C-Kanal) 80 und gleichzeitig in Schritt 5b die
Steuernachricht an den Protokollkanal (P-Kanal) 80. Die
Steuernachricht enthält
Informationen, wie etwa die Quellenportnummer, die COS, Marken (Flags),
Zeitstempel und die Bit-Karte all der Ports, an die das Paket ausgesendet
werden sollte, sowie die ungetaggte Bit-Karte.
-
Der
FFP 27 ist im Wesentlichen eine durch eine Zustandsmaschine
betriebene, programmierbare Regeln-Maschine. Die vom FFP verwendeten
Filter sind 64 (vierundsechzig) Bytes breit und werden an ein eingehendes
Paket angelegt, wobei ein beliebiger Versatz (Offset) verwendet
werden kann, eine bevorzugte Ausführungsform verwendet jedoch
einen Versatz von null und arbeitet daher mit den ersten 64 Bytes
oder 512 Bits eines Pakets. Die vom Filter durchgeführten Aktionen
umfassen Tag-Einfügung,
Prioritäts-Mapping, TOS-Tag-Einfügung, Senden
des Pakets an die CPU, Verwerfen des Pakets, Übermitteln des Pakets an einen Egress-Port und Senden des
Pakets an einen gespiegelten Port.
-
Die
vom FFP 27 genutzten Filter werden durch die Regeln-Tabelle 22 definiert.
Die Regeln-Tabelle 22 kann vollständig durch die CPU 52, über die
CMIC 40, programmiert werden. Die Regeln-Tabelle kann beispielsweise
256 Einträge
umfassen und in einschließende
und ausschließende
Filter unterteilt sein, mit, wiederum als Beispiel, 128 Einträgen für einschließende Filter
und 128 Einträgen
für ausschließende Filter.
Eine Filterdatenbank im Filter 27 umfasst mehrere einschließende Maskenregister
und ausschließende
Maskenregister, so dass die Filter basierend auf den Regeln in der
Regeln-Tabelle 22 gebildet werden und die Filter daher
im Wesentlichen eine 64 Byte breite Maske oder Bit-Karte bilden,
die an das eingehende Paket angelegt wird.
-
Wenn
das Filter als ausschließendes
Filter festgelegt ist, schließt
es alle Pakete aus, sofern keine Übereinstimmung vorhanden ist.
Mit anderen Worten, das ausschließende Filter erlaubt es nur
dann einem Paket das Forwarding-Verfahren (Überermittlungsverfahren) zu
durchlaufen, wenn eine Filterübereinstimmung vorliegt.
Wenn keine Filterübereinstimmung
vorliegt, wird das Paket verworfen. Bei einem einschließenden Filter
wird, wenn keine Übereinstimmung
vorliegt, keine Aktion durchgeführt,
das Paket jedoch nicht verworfen. Die Aktion an einem ausschließenden Filter
erfordert eine genaue Übereinstimmung
aller Filterfelder. Wenn eine genaue Übereinstimmung mit einem ausschließenden Filter
vorhanden ist, wird daher eine gemäß dem Aktionsfeld spezifizierte
Aktion durchgeführt,
wobei die durchführbaren
Aktionen vorstehend ausgeführt
sind. Wenn keine vollständige
oder genaue Übereinstimmung
mit sämtlichen
Filterfeldern vorliegt, jedoch eine teilweise Übereinstimmung vorhanden ist,
wird das Paket verworfen. Eine teilweise Übereinstimmung wird entweder
als Übereinstimmung
mit dem Ingress-Feld, Egress-Feld oder den Filterauswahlfeldern
definiert. Wenn weder eine vollständige noch eine teilweise Übereinstimmung
zwischen dem Paket und dem ausschließenden Filter vorhanden ist,
wird keine Aktion durchgeführt
und das Paket durchläuft
das Forwarding-Verfahren. Die FFP-Konfiguration, die basierend auf
den ersten 64 Bytes eines Pakets tätig wird, verbessert die Handhabung des
Echtzeitverkehrs, da Pakete "on
the fly" gefiltert
und Aktionen "on
the fly" durchgeführt werden
können. Ohne
einen erfindungsgemäßen FFP
müsste
das Paket an die CPU übermittelt
werden, um die geeignete Aktion zu bestimmen und durchzuführen. Bei
einschließenden
Filtern wird, wenn eine Filterübereinstimmung
vorhanden ist, eine Aktion durchgeführt und, wenn keine Filterübereinstimmung
vorhanden ist, keine Aktion durchgeführt, die Pakete werden jedoch
bei einschließenden
Filtern nicht auf der Basis einer Übereinstimmungs- oder Nicht-Übereinstimmungssituation
verworfen.
-
Kurz
gesagt, der FFP umfasst eine Filterdatenbank mit acht Sätzen einschließender Filter
und acht Sätzen
ausschließender
Filter als separate Filtermasken. Wenn ein Paket in den FFP eingeht,
werden die Filtermasken an das Paket angelegt, mit anderen Worten,
es wird mit der Maske und dem Paket eine logische UND-Operation durchgeführt. Wenn
eine Übereinstimmung
vorliegt, werden die übereinstimmenden
Einträge an
die Regeln-Tabelle 22 angelegt, um zu bestimmen, welche
spezifischen Aktionen durchgeführt
werden sollen. Wie vorstehend erwähnt, umfassen die Aktionen
802.1p-Tag-Einfügung,
802.1p-Prioritäts-Mapping, IP-TOS-(Type-of-Service-/Dienstleistungsfeld-)
Tag-Einfügung,
das Senden des Pakets an die CPU, das Verwerfen oder Entfernen des
Pakets, das Übermitteln
des Pakets an einen Egress-Port und das Senden des Pakets an den
gespiegelten Port.
-
Da
in der Regeln-Tabelle eine begrenzte Anzahl an Feldern vorhanden
ist und da bei verschiedenen Paketarten bestimmte Regeln angewandt
werden müssen,
werden die Anforderungen an die Regeln-Tabelle bei der vorliegenden
Erfindung minimiert, indem die vorliegende Erfindung alle eingehenden
Pakete als "mit Tags
versehene" oder "getaggte" Pakete festlegt,
weshalb alle ungetaggten Pakete einer 802.1p-Tag-Einfügung unterzogen
werden, um die Anzahl der Einträge
zu reduzieren, die in der Regeln-Tabelle erforderlich sind. Diese
Aktion macht Einträge
betreffend die Handhabung ungetaggter Pakete überflüssig. Es wird darauf hingewiesen,
dass spezifische Paketarten durch verschiedene IEEE- und andere
Netzwerkstandards definiert und daher hierin nicht näher ausgeführt sind.
-
Wie
vorstehend ausgeführt,
werden ausschließende
Filter in der Regeln-Tabelle
als Filter definiert, die Pakete ausschließen, bei denen keine Übereinstimmung
vorliegt, wobei ausgeschlossene Pakete verworfen werden. Bei einschließenden Filtern
werden die Pakete jedoch unter keinen Umständen verworfen. Wenn eine Übereinstimmung
vorliegt, wird, wie vorstehend ausgeführt, eine Aktion durchgeführt, wenn
keine Übereinstimmung
vorliegt, wird keine Aktion durchgeführt und das Paket durchläuft das
Forwarding-Verfahren. Der FFP 27 umfasst eine Filtermasken
enthaltenden Filterdatenbank, die mit einer Logikschaltung zum Bestimmen
der Paketarten und zum Anlegen der geeigneten Filtermasken in Verbindung
steht. Wenn die Pakete basierend auf den Flüssen gefiltert werden, wie
nachfolgend ausgeführt,
wird eine Flussüberwachungseinrichtung
dazu verwendet, die Flüsse
durch den Switch zu verfolgen. Nachdem die Filtermaske wie vorstehend
erwähnt
angelegt worden ist, wird das Ergebnis des Anlegens auf die Regeln-Tabelle 22 zur
Durchführung
eines geeigneten Lookups und einer geeigneten Aktion angewandt.
Es wird darauf hingewiesen, dass die Filtermasken, Regeln-Tabellen
und Logik, obgleich sie durch die CPU 52 programmierbar
sind, sich zu ihrer Verarbeitung und Berechnung nicht auf die CPU 52 stützen. Nach
der Programmierung ist eine Hardware-Konfiguration vorgesehen, die
eine Linespeed-Filteranwendung und einen Linespeed-Lookup ermöglicht.
-
Bezug
nehmend nochmals auf 9, bestimmt die Logik im FFP 27 die
geeignete Aktion und führt
sie durch, und zwar nachdem der FFP 27 die geeigneten konfigurierten
Filter angelegt hat und aus den geeigneten Regeln-Tabellen 22 Ergebnisse
erhalten worden sind. Die Filterlogik kann das Paket verwerfen,
das Paket an die CPU 52 senden, den Paket-Header oder IP-Header
modifizieren und beliebige IP-Prüfsummenfelder
neu berechnen oder bezogen auf die Header andere geeignete Aktionen
durchführen.
Die Modifikation findet im Puffer-Slicer 32 statt und das
Paket wird auf dem C-Kanal 80 platziert. Die Steuernachrichten-
und Nachrichten-Header-Informationen werden vom FFP 27 und
der ARL-Maschine 24 zugeführt und der Nachrichten-Header
auf dem P-Kanal 80 platziert. Die Verteilereinheit 29 koordiniert
sämtliche
Verteilungen an den C-Kanal, P-Kanal und S-Kanal.
-
Wie
vorstehend erwähnt,
ist jedes EPIC-Modul, GPIC-Modul 30, die PMMU 70,
etc. jeweils individuell dafür
konfiguriert, über
den CPS-Kanal zu kommunizieren. Jedes Modul kann unabhängig modifiziert
werden, wobei, solange die CPS-Kanalschnittstellen beibehalten werden,
interne Modifikationen an beliebigen Modulen, wie etwa der EPIC,
kein anderes Modul, wie etwa eine EPIC oder eine beliebige GPIC 30,
beeinträchtigen sollten.
-
Wie
vorstehend erwähnt,
kann der FFP 27 durch den Benutzer über die CPU 52 basierend
auf den spezifischen Funktionen programmiert werden, die von jedem
FFP 27 gehandhabt werden sollen. Ein FFP-Programmierschritt
wird vom Benutzer initiiert. Sobald die Programmierung initiiert
worden ist, legt der Benutzer die Protokollfelder des Pakets fest,
die für
das Filter von Interesse sein sollen. Dann werden die Paketart und
die Filterbedingungen bestimmt und eine Filtermaske basierend auf
der festgelegten Paketart und den gewünschten Filterbedingungen konstruiert.
Die Filtermaske ist im Wesentlichen eine Bit-Karte, die auf ausgewählte Felder
des Pakets angelegt oder mit diesen einer UND-Verknüpfung unterzogen
wird. Nach dem Konstruieren der Filtermaske wird bestimmt, ob das
Filter ein einschließendes
oder ausschließendes
Filter sein soll, und zwar in Abhängigkeit von den Problemen,
die gelöst,
den Paketen, die übermittelt,
und den Aktionen, die durchgeführt
werden sollen, etc. Dann wird bestimmt, ob sich das Filter am Ingress-Port
befindet oder nicht, und ob sich das Filter am Egress-Port befindet
oder nicht. Wenn sich das Filter am Ingress-Port befindet, wird
eine Ingress-Portmaske verwendet. Wenn bestimmt wird, dass sich
das Filter am Egress-Port befindet, wird in diesem Schritt eine
Egress-Maske verwendet. Basierend auf diesen Schritten, wird dann
ein Regeln-Tabelleneintrag
für die
Regeln-Tabelle 22 konstruiert und der Eintrag oder die
Einträge
in die geeignete Regeln-Tabelle eingefügt. Diese Schritte werden durch
den Benutzer vorgenommen, der spezifische Sätze an Regeln und Informationen über eine
geeignete Eingabeeinrichtung in die CPU 52 eingibt, wobei
die CPU 52 die geeignete Aktion im Hinblick auf die Erzeugung
der Filter durch die CMIC 40 und die geeigneten Ingress- oder
Egress-Untermodule an einem geeigneten EPIC-Modul oder GPIC-Modul 30 durchführt.
-
Eine
veranschaulichende Systemkonfiguration ist allgemein dargestellt.
Bei dieser Konfiguration ermöglichen
es zwei Personal-Computer (PCs), von denen jeder über Netzwerk-Zugriffsfähigkeit
verfügt,
den Benutzern, über
ein IP-Netzwerk Daten auszutauschen. Bei dieser Art von System und/oder
Konfiguration werden die Datenübertragungen über ein
IP-Datennetz gesendet. Jeder der Netzwerk-Switches, die im Wesentlichen
dem vorstehend beschriebenen beispielhaften Netzwerk-Switch (SOC 10)
entsprechen und am äußeren Rand
oder der Grenze eines IP-Netzes angeordnet sind, ist dafür konfiguriert,
den Fast-Filtering-Prozessor (FFP) dafür zu nutzen, verwandte Pakete
zu identifizieren und an den identifizierten Paketen geeignete Aktionen
durchzuführen,
um die Übertragung
von Paketen durch das Netz zu erleichtern. Der Fast-Filtering-Prozessor
des Netzwerk-Switches ist dafür
ausgelegt, die vorstehend besprochene Filtermaske auf den Paket-Header
eines jeden Pakets anzulegen, das durch den Netzwerk-Switch tritt.
-
Beim
Anlegen der Maske an den Paket-Header werden die verbliebenen Information
dann mit Einträgen
verglichen, die in der im Netzwerk-Switch befindlichen Regeln-Tabelle 22 vorhanden
sind. Wenn zwischen den mit Masken versehenen Informationen aus
dem Paket-Header und einem Eintrag in der Regeln-Tabelle 22 des
Netzwerk-Switches eine Übereinstimmung
festgestellt wird, führt
der Fast-Filtering-Prozessor
an dem Paket gemäß einem
vordefinierten Aktionsfeld, das im Netzwerk-Switch gespeichert ist,
eine Aktion durch. Alternativ könnte
ein ausschließendes
Filterschema eingesetzt werden, bei dem eine durch einen Keine-Übereinstimmungszustand
ausgelöste
Aktion gemäß den Aktionsfeldern
durchgeführt
wird. Dennoch können
die dem vorgegebenen Aktionsfeld entsprechenden Aktionen das Ändern oder
Modifizieren der dem Paket zugeordneten Layer-2-Priorität, das Ändern des
dem Paket zugeordneten Dienstleistungsfeldes (TOS), das Modifizieren
des dem Paket zugeordneten Differentiated Services Code Point (DSCP),
das Senden des Pakets an eine Warteschlange bei einer vordefinierten
Dienstklasse (COS), das Senden des Pakets an die CPU über die CPU-Schnittstelle
oder das Verwerfen des Paket zusätzlich
zu anderen Vermittlungsaktionen umfassen.
-
Eine
Anwendung, die in einer Netzwerkumgebung verwendet wird und die
für die
erfindungsgemäße Zugriffssteuerung
von besonderem Interesse ist, ist Voiceover-IP (VOIP). Wenn eine
stimmliche Unterhaltung über
ein Datennetz gesendet wird, muss sie in kleine Audio-"Stücke" zerlegt werden.
Jedes dieser Stücke,
die als Sprachpaket oder Sprach-Frame bezeichnet werden, besteht
aus Audiodaten sehr kurzer Dauer, im Allgemeinen zwischen 10 und
30 ms. Eine Folge von Sprachpaketen, die im zusammengesetzten Zustand
einen kontinuierlichen Audiostrom bilden, wird im Allgemeinen komprimiert,
mittels eines gemeinsamen Paket-Headers miteinander verknüpft und über das
Datennetz an die Ziel-IP-Adresse gesendet.
-
Bei
der Beschreibung der erfindungsgemäßen Zugriffssteuerung muss
die Rolle der Zugriffssteuerliste besprochen werden. Die für Netzwerk-Switches
relevantesten Zugriffssteuermerkmale sind die Zugriffserlaubnis
und -verweigerung. Die Zugriffserlaubnis ist in den meisten Fällen eine
Ausnahme von einer allgemeinen Zugriffsverweigerungspolitik. Desgleichen
ist eine Zugriffsverweigerung eine Ausnahme von einer allgemeinen Erlaubnis.
Bei der vorliegenden Erfindung wird die Zugriffssteuerung auf einer
Pro-Fluss-Basis ermöglicht.
Ein Verkehrsfluss kann als auf den Netzadressen, der Anwendungsart
und anderen Kriterien basierender Datenverkehr definiert werden.
-
Bei
der vorliegenden Erfindung können
Befehle unter Verwendung des FFP zum Steuern des Zugriffs ausgeführt werden.
Die Befehle und Beispiele für
die Verwendung der Befehle basieren auf dem Dokument "Cisco IOS IP and
IP Routing Command Interface".
Die für
den Strata-Switch relevanten Befehle betreffen hauptsächlich das
Traffic-Policing. Eine Zugriffssteuerliste (ACL) spezifiziert den
Verkehr, dem der Zugriff auf die Netzwerkgeräte erlaubt oder verweigert
wird. Sie besteht aus einem oder mehreren Zugriffssteuerbefehlen. Bei
den für
die vorliegende Erfindung relevanten Zugriffssteuerungen hat ein
Befehl das folgende Format:
access-list<access-list identifier>permit | deny<parameter> ... (Zugriffsliste<Zugriffslistenkennung> zulassen | nicht zulassen <Parameter>).
-
Die
Parameter spezifizieren welche Art von Datenverkehr zugriffsgesteuert
wird, d.h. für
das Netzwerk zugelassen oder nicht zugelassen wird. Der Verkehr
kann basieren auf Netzadresse/Teilnetz, Anwendungsart, Protokollart,
etc. In der folgenden Tabelle sind die Parameter beschrieben, die
für die
Befehle zulassen oder nicht zulassen am relevantesten sind: Tabelle
1
-
Wie
vorstehend in Bezug auf den FFP beschrieben, verwendet der FFP jede
Filtermaske dazu, gewisse Felder des Pakets auszublenden und zu
bestimmen, ob das ausgeblendete Paket mit den relevanten Filterregeln übereinstimmt.
Die Maske deckt vier der ersten fünf 16-Byte-Segmente des Pakets
ab. Wenn eine Übereinstimmung
vorliegt, wird eine spezifische Aktion durchgeführt.
-
Wenn
der Switch beispielsweise alle Pakete einer bestimmten Anwendung,
wie etwa RTSP (Real-Time Streaming Protocol), auffangen möchte, wird
die folgende Filtermaske verwendet:
-
Bei
jedem Paket, das mit dieser Maske ausgeführt wird, bleiben nur die Bytes
(0-basiert) 40 und 41 unberührt.
Nach dem Maskieren wird das Paket mit allen Regeln abgeglichen,
die dieser Maske zugeordnet sind, von denen, bei den Bytes 40 und
41, eine den Wert 0 × 022A
(554 dezimal) hat, wie nachfolgend gezeigt:
-
Wenn
das Paket ein RTSP-Paket ist, hat es daher den Wert 554 in seinem
TCP-Zielportfeld und führt zu
einer Übereinstimmung.
Paketklassifizierungen führen
zu übereinstimmenden
Paketen, die eine spezielle Verarbeitung erhalten. Die zwei auf
das Traffic-Policing bezogenen Aktionen umfassen das Verwerten eines Pakets
und das explizite Vermitteln eines Pakets.
-
Der
erfindungsgemäße Switch-on-Chip
verfügt über einen
eingebauten Mechanismus, um Filterregelkonflikte zu lösen. Filterungskonflikte
treten auf, wenn zwei Regeln mit demselben Paket übereinstimmen,
wobei die zwei Regeln die Durchführung
von zwei gegensätzlichen
Aktionen erforderlich machen, wie etwa das Verwerfen eines Pakets
und das Ändern
der Priorität
des Pakets. Wenn zwei Regeln mit demselben Paket übereinstimmen,
wird die Aktion ausgeführt,
die dem Filter eines höheren
Maskenindex (dem Filterauswahlfeld der Regel) zugeordnet ist. In
Anbetracht dessen muss der Netzwerk-Administrator, der die Zugriffssteuerung implementiert,
die Filtermasken sorgfältig
ordnen, so dass sich die Konfliktlösung wie erwartet verhält.
-
Einige
beispielhafte Anwendungen der erfindungsgemäßen Zugriffssteuerung sind
nachfolgend beschrieben. Obgleich die folgenden Anwendungen im Detail
besprochen sind, ist die Beschreibung dieser Anwendungen nicht als
Einschränkung
zu verstehen, die vorliegende Erfindung kann vielmehr dazu verwendet werden,
bei einer Vielzahl von Anwendungen eine Zugriffssteuerung zu ermöglichen.
Bei einem LAN wird, wenn der Administrator den gesamten Web-Browsing-Verkehr
sperren möchte,
d.h. es kann kein HTTP-Verkehr hindurch, eine einfache Verkehrsverweigerung
in Kraft gesetzt.
-
Zur
Implementierung dieser Zugriffssteuerung ist nur ein Zugriffssteuerbefehl
erforderlich. Dieser Befehl hätte
die Form:
access-list 101 deny ip any any eq http.
-
Die
vorstehend Zugriffssteuerung benötigt
eine Filtermaske (Tabelle 2) und eine Filterregel (Tabelle 3), um
diese Zugriffssteuerliste zu aktivieren: Tabelle
2
Tabelle
3
-
Diese
Filterregel stimmt mit allen Paketen überein, die in ihrem Layer-2-Frame-Protokollfeld
0 × 0800, wodurch
ein IP-Paket angezeigt wird, und in ihrem TCP-/UDP-Zielportfeld
0 × 0050
aufweisen, was dem Well-Known-Port (WKP) bei einer HTTP-Nachricht
entspricht. Die bei einer Regelübereinstimmung
durchzuführende
Aktion besteht darin, das Paket zu verwerfen, was dadurch angezeigt
wird, dass das Bit 4 (wobei das am wenigsten signifikante Bit das
Bit 0 ist) gesetzt ist. Dies wird durch den Wert 0 × 10 im
AKTIONS-Feld spezifiziert.
-
Bei
einer anderen Anwendung kann der LAN-Besitzer oder -Administrator
wie bei dem vorherigen Beispiel den Netzzugriff sperren wollen,
jedoch nur während
bestimmter Stunden. Die Zugriffssteuerliste benötigt daher eine Qualifizierung,
die in dem Zeitbereich besteht, in dem die Zugriffssteuerliste wirksam
ist:
time-range no http (Zeitbereich kein http)
periodic
weekdays 8:00 to 18:00 (periodisch, Wochentage 8.00 bis 18.00 Uhr)
!
access-list
101 deny tcp any any eq http time-range
-
Dieser
Befehl wird zusammen der CPU implementiert, die das Filter an jedem
Wochentag um 8.00 Uhr in die Filtertabelle setzt und es um 18.00
Uhr entfernt. Das Filter ist dasselbe, das bei dem vorherigen Beispiel verwendet
wurde, zeigt jedoch die Erweiterbarkeit des Filterverfahrens.
-
Bei
einem anderen Beispiel kann der LAN-Administrator den gesamten IP-Verkehr mit Ausnahme
des ICMP-Verkehrs, der vom Teilnetz 192.168.3.xx stammt, sperren
wollen. Zur Implementierung dieser Politik, besteht die Zugriffssteuerliste
aus zwei Befehlen und den folgenden Filtermasken (Tabelle 4) und
Filterregeln (Tabelle 5):
access-list 102 deny ip 192.168.3.0.0.0.0.255
any
access-list 102 permit icmp 192.168.3.0.0.0.0.255 any Tabelle
4
Tabelle
5
-
Dieses
Beispiel zeigt die Anwendung einer Konfliktlösung im FFP. Bei diesem Szenario
wird der gesamte vom 192.168.3.xx-Teilnetz stammende IP-Verkehr
verworfen. Dies wird durch die erste Regel implementiert, wobei:
- • Layer-III-Protokolltyp
= 0 × 0800
(IP) und
- • IP-Quellenadresse
= 0 × C0A803
(192.168.3.xx).
-
Jedes übereinstimmende
Paket wird verworfen, wie durch AKTION = 0 × 10 spezifiziert. Eine Ausnahme
von diesem Szenario besteht jedoch darin, dass, wenn vom 192.168.3.xx-Teilnetz
stammender Verkehr vorhanden ist, dieser vermittelt werden sollte.
Dies wird durch die zweite Regel unterstützt, wobei:
- • Layer-IV-Protokolltyp
= 0 × 01
(ICMP) und
- • IP-Quellenadresse
= 0 × C0A803
(192.168.3.xx).
-
Die
Aktion der zweiten Regel ist 0 × 2000.
Wenn Bit 13 gesetzt ist, verwirft der FFP das Paket nicht. Wenn
ein Paket mit beiden Regeln übereinstimmt
und die Aktionen gegensätzlich
sind (verwerfen gegenüber nicht
verwerfen) setzt sich die Regel mit den höheren zugeordneten Filtermasken
durch. In diesem Fall gewinnt, da der Filterauswahlwert der ersten
Regel 0 beträgt,
während
der der zweiten Regel 1 beträgt,
die zweite Regel den Tiebreak.
-
Eine
weitere Anwendung, die ein komplexeres Verkehrserlaubnisschema benötigt, ist
nachfolgend beschrieben. Bei diesem Beispiel wird ein Teil des Anwendungsverkehrs,
der nicht nur einem Well-Known-Port (WKP) zugeordnet ist, berücksichtigt.
Das Zulassen eines solchen Verkehrs ist komplizierter. In einem
Fall, in dem der allgemeine Verkehr gesperrt ist, jedoch nur eine
spezielle Anwendung zugelas sen wird, ist es erforderlich, den gesamten
Verkehr dieser Anwendungsart zuzulassen. Bei gewissen Anwendungen
schließt
dies einige dynamische Ports zusätzlich
zum WKP der Anwendung ein.
-
Ein
LAN kann beispielsweise nur eine gewisse Art von IP-Fernsprechverkehr
in einem bestimmten Teilnetz zulassen, während der gesamte andere Verkehr
in diesem Teilnetz gesperrt wird. Der zugelassene Verkehr wird durch
das Session-Initiation-Protocol-(SIP-)
Standardprotokoll repräsentiert.
Dieses Szenario wird durch die folgende Zugriffssteuerliste dargestellt:
access-list
122 deny ip 192.168.5.0.0.0.0.255 192.168.5.0.0.0.0.255
access-list
122 permit ip 192.168.5.0.0.0.0.255 192.168.5.0.0.0.0.255 eq SIP
-
Zum
Implementieren dieser Zugriffssteuerliste sind die folgenden Filtermasken
(Tabelle 6) und Regeln (Tabelle 7) erforderlich: Tabelle
6
Tabelle
7
-
Die
zweite Regel stimmt mit allen Paketen im Teilnetz 192.168.5.xx überein,
wobei die Zielportnummer gleich 5060 (0 × 13C4) ist, was dem WKP bei
SIP entspricht, wobei jedoch alle derartigen SIP-Pakete ebenfalls mit
der ersten Regel übereinstimmen.
Da die zweite Regel einen höheren
Filterauswahlwert hat, gewinnt sie den Tiebreak. Daher werden die
SIP-Pakete nicht verworfen.
-
Diese
zwei Regeln sind notwendig, jedoch nicht ausreichend. Bei einer
SIP-Sitzung (SIP
session) wird der WKP nur zur Sitzungsinstallation (session setup)
verwendet. Sobald eine Sitzung installiert worden ist, wird das
IP-Telefongespräch
zwischen zwei Ports übertragen,
die nicht den WKP umfassen. Diese Ports, welche als dynamische Ports
bekannt sind, werden zwischen den zwei IP-Telefonen während der
Installation ausgehandelt. Sie variieren von Anruf zu Anruf.
-
Die
vorliegende Erfindung verfügt über die
Fähigkeit,
SIP-Sitzungsinstallationsnachrichten aufzufangen und die für die Sprachübertragung
zu verwendenden dynamischen Ports ausfindig zu machen. Daher werden
zwei zusätzliche
Regeln in die Regelntabelle eingefügt, um den gesamten Verkehr
zwischen diesen zwei Ports zuzulassen. Beispielsweise bei einer
Sitzung zwischen zwei den IP-Telefonen, 192.168.5.22 und 192.168.5.203,
sind, wenn der Sprachverkehr von 192.168.5.22 zu 192.168.5.203 den
Port 7001 (0 × 1B59) verwendet,
während
der Verkehr in die andere Richtung den Port 7105 (0 × 1BC1)
verwendet, außerdem
die folgenden zwei Regeln erforderlich: Tabelle
8
-
Diese
zwei Regeln haben nur eine Lebensdauer, die der Dauer des Anrufs
entspricht. Wenn der Anruf getrennt wird, werden sie aus der Regelntabelle
entfernt. Die den WKP betreffende Regel hat andererseits eine Lebensdauer,
die der Zeitspanne entspricht, in der die Zugriffssteuerliste wirksam
ist.
-
Das
Gegenstück
des vorherigen Beispiels besteht darin, den gesamten Verkehr einer
spezifischen Anwendung zu sperren. Bei Anwendungen, die mehr als
den WKP umfassen, benötigt
das Verweigern eines solchen Verkehrs mehr als eine einzelne Regel.
Tatsächlich
kann eine erhebliche Anzahl an Regeln nötig sein, wenn die Zugriffsverweigerung
zu einem Zeitpunkt beginnt, zu dem viel laufender Verkehr dieser
Anwendung vorhanden ist. Nehmen wir beispielsweise an, dass der
LAN-Administrator
den gesamten SIP-Verkehr in einem bestimmten Teilnetz sperren oder
verweigern möchte.
Die Zugriffssteuerliste (ACL) für
diesen Zweck lautet wie folgt:
access-list 122 deny ip 192.168.5.0.0.0.0.255
192.168.5.0.0.0.0.255 eq SIP
-
Dies
kann durch Verwendung der folgenden Maske und Regel implementiert
werden: Tabelle
9
Tabelle
10
-
Diese
Regel ist jedoch nicht ausreichend. Nehmen wir an, es gäbe bereits
mehrere laufende SIP-Anrufe im LAN. Da jeder dieser Anrufe seinen
eigenen dynamischen Port verwendet, kann die obige Regel den Verkehr
zwischen diesen dynamischen Ports nicht stoppen. Im Wesentlichen
wird sie verhindern, dass ein neuer Anruf verbunden wird, sie kann
jedoch keine laufenden Anrufe trennen.
-
Es
sind Informationen betreffend den laufenden Anruf erforderlich,
um neue Regeln zum Handhaben dieser Situation zu erzeugen. Die vorliegende
Erfindung kann jeden SIP-Anruf verfolgen, einschließlich der verwendeten
dynamischen Ports. Sobald die ACL in Kraft gesetzt ist, werden solche
Informationen dazu verwendet, die neuen Regeln zu erzeugen, um die
Sprachpakete zwischen den dynamischen Ports zu verwerfen. Beispielsweise
bei einem laufenden Anruf zwischen 192.168.3.42 und 192.168.3.55
verwendet der Sprachverkehr von 192.168.3.42 zu 192.168.3.55 den
dynamischen Port 7510 (0 × 1D56),
während
der Sprachverkehr in die andere Richtung den dynamischen Port 7530
(0 × 1D6A)
verwendet, wobei die folgenden zwei Regeln erforderlich sind, um
die Sprachpakete zwischen den beiden explizit zu verwerten: Tabelle
11
-
Des
gibt keinen definitiven Weg zu bestimmen, wie lange diese Regeln
in der Regelntabelle verbleiben. Wenn die zwei am Telefon sprechenden
Parteien die Stimme des jeweils anderen nicht mehr hören können, besteht
die wahrscheinlichste Konsequenz darin, den Hörer aufzulegen, wodurch die
Regeln redundant werden. Die Regeln können nach einem vorgegebenen
Zeitintervall aus der Tabelle entfernt werden. Die den WKP von SIP
betreffende Regel bleibt so lange in der Tabelle so lange die ACL
in Kraft ist, um zu verhindern, dass neue Anrufe verbunden werden.
-
Der
FFP der vorliegenden Erfindung stellt ein leistungsstarkes Werkzeug
(Tool) zur Steuerung des Netzverkehrs bereit. Der FFP ist dazu in
der Lage, den Netzverkehr gemäß einer
spezifizierten Zugriffssteuerliste zu regeln. Kurz gesagt, die meisten
Zugriffssteuerbefehle können
direkt durch den FFP implementiert werden. Der FFP kann die Zugriffssteuerung
basierend auf einem Fluss zulassen, welcher bei einer spezifischen Anwendung,
spezifischen Adressen, Teilnetzen und anderen Kriterien als Verkehr
definiert wird. Unter den FFP-Merkmalen sind Aktionen, wie das Verwerfen
von Paketen und das Zulassen von Paketen, die den Zugriff gemäß den Übereinstimmungskriterien
der Filter steuern. Mit Hilfe der CPU kann die Zugriffs steuerung
basierend auf der aktuellen Uhrzeit, dem Datum und anderen Bedingungen
auch dynamisch aktiviert und deaktiviert werden.
-
Wenn
er mit intelligenter Software in der CPU verbunden ist, kann der
erfindungsgemäße Netzwerk-Switch
auch bei komplexerem Netzverkehr eine Zugriffssteuerung vorsehen.
Die Software verfügt über die
Intelligenz, im durch den Switch hindurchtretenden Verkehr "herumzuschnüffeln" und Informationen
abzurufen, die den Verkehr verschiedener Anwendungen, wie etwa Voice-over-IP
und Streaming-Media,
betreffen. Mit dieser Fähigkeit
stellt die vorliegende Erfindung ein Policing von Verkehrsflüssen bereit,
das vormals unbekannt war.
-
Die
Zugriffssteuerung von komplexerem Netzverkehr ist nachfolgend beschrieben.
Filter werden in der Filtertabelle basierend auf dem Anwendungsschichtprotokolltyp
installiert, d.h. Pakete werden basierend auf Informationen in der
Transportschicht (Schicht 4 im ISO-7-Schichten-Modell) gefiltert.
Nachdem die ursprünglichen
Filter gesetzt worden sind, kann die Zugriffssteuereinheit (ACU)
den Filtertabellen neue Filter hinzuzufügen, wenn am Switch gewisse
Paketarten vorkommen. Diese dynamische Erzeugung von Filterregeln
ist nachfolgend in Bezug auf eine spezifische Anwendung beschrieben.
-
Die
dynamische Erzeugung von Filterregeln kann beispielsweise bei der
Installation und Verarbeitung von Voice-over-IP-(VOIP-) Anwendungen
erfolgen. Das Verfahren beginnt mit Paketarten, die als Installationspakete
bezeichnet werden. Diese Pakete enthalten Informationen betreffend
die Medienkanäle,
die in der anschließenden
VOIP-Sitzung verwendet werden. Solche Informationen gehören zur
Transportschicht.
-
Die
ACU ist dazu imstande, das Paket zu decodieren und derartige Transportschichtinformationen
zu extrahieren. Die ACU erzeugt basierend auf den extrahierten Transportschichtinformationen
neue Filter. Solche neuen Filter filtern sämtliche Mediapakete (Sprach-
oder Videopakete), die durch den Switch hindurchtreten. Die Zugriffssteuerung
(zulassen oder nicht zulassen) wird dann auf diese Mediapakete angewandt.
-
Wenn
die Mediapakete zugelassen werden, entfernt die ACU das Filter nach
dem Trennen des Anrufs. Wenn die Mediapakete nicht zugelassen werden,
verbleibt das Filter unbefristet in der Tabelle. Die ACU benötigt einen
Zeitintervallmechanismus, um das Filter zu entfernen. Daher ermöglicht die
vorliegende Erfindung einen auf der Anwendung basierenden dynamischen
Zugriff und lässt
sogar dann eine Verkehrssteuerung zu, wenn die genauen Kennungen
von Paketdaten anfangs nicht bekannt sind.
-
Die
vorstehend besprochene Konfiguration der Erfindung wird bei einer
bevorzugten Ausführungsform auf
einem Halbleitersubstrat ausgeführt,
wie etwa Silizium, wobei geeignete Halbleiterherstellungstechniken und
ein darauf basierendes Schaltungslayout anhand der vorstehend beschriebenen
Ausführungsformen
für Fachleute
auf dem Gebiet ersichtlich sollten. Ein Fachmann auf dem Gebiet
der Halbleiterkonzipierung und -herstellung sollte dazu in der Lage
sein, basierend auf der vorstehenden architektonischen Beschreibung,
die verschiedenen Module, Schnittstellen und Tabellen, Puffer, etc.
der vorliegenden Erfindung auf einem einzelnen Halbleitersubstrat
zu implementieren. Es läge
ebenfalls im Schutzumfang der Erfindung, die offenbarten Elemente
der Erfindung als diskrete elektronische Komponenten auszuführen und
dabei die Vorteile der funktionellen Aspekte der Erfindung zu nutzen,
ohne die Vorteile durch die Verwendung eines einzelnen Halbleitersubstrats
zu maximieren.
-
Obgleich
die Erfindung basierend auf diesen bevorzugten Ausführungsformen
beschrieben worden ist, ist es für
Fachleute auf dem Gebiet ersichtlich, dass gewisse Modifikationen,
Variationen und alternative Ausgestaltungen offensichtlich sind,
ohne den Schutzumfang der Erfindung zu verlassen. Zur Bestimmung
des Maßes
und Ziels der Erfindung sollte daher auf die anhängigen Ansprüche Bezug
genommen werden.