-
TECHNISCHES GEBIET DER ERFINDUNG
-
Im Allgemeinen beziehen sich Ausführungsformen der vorliegenden Erfindung auf eine Vernetzung von Computern. Im Besonderen beziehen sich Ausführungsformen der vorliegenden Erfindung auf ein Verwalten eines Paketflusses zwischen Firewalls in einer vernetzten Datenverarbeitungsumgebung (z.B. einer Cloud-Datenverarbeitungsumgebung).
-
HINTERGRUND DER ERFINDUNG
-
Computer sind wertvolle Werkzeuge, im Wesentlichen wegen ihrer Fähigkeit zum Datenaustausch mit anderen Computersystemen und zum Abrufen von Daten über Computernetzwerke. Netzwerke weisen in der Regel eine miteinander verbundene Gruppe von Computern auf, die über Leitungen, Lichtwellenleiter, Funk oder andere Datenübertragungsmittel miteinander gekoppelt sind, um die Computer in die Lage zu versetzen, Daten von Computer zu Computer zu übertragen. Das Internet dürfte das bekannteste Computernetzwerk sein und ermöglicht Millionen von Menschen den Zugriff auf Millionen anderer Computer, indem sie z.B. Webseiten anzeigen, eMails senden oder einen anderweitigen Datenaustausch zwischen Computern durchführen.
-
Da das Internet so groß und die Interessen der Internet-Nutzer so verschieden sind, versuchen böswillige Nutzer jedoch allzu oft, mit Computern anderer Nutzer auf eine Art und Weise Daten auszutauschen, die eine Gefahr für die anderen Nutzer darstellt. Aus diesem Grund verwenden viele Unternehmen, Institutionen und sogar Privatnutzer eine Netzwerk-Firewall oder eine ähnliche Einheit zwischen ihrem lokalen Netzwerk und dem Internet. Die Firewall ist üblicherweise eine computergestützte Netzwerkeinheit, die durch sie hindurch geleiteten Netzwerkverkehr überprüft und dabei eine Durchleitung von erwünschtem Netzwerkverkehr auf Grundlage eines Satzes von Regeln gestattet. Zur Durchführung ihrer Filterfunktionen beobachten Firewalls Datenübertragungspakete wie z.B. TCP/IP-Pakete (Transmission Control Protocol/Internet Protocol) oder andere Netzwerkprotokollpakete und untersuchen Merkmale wie z.B. die Quelle und das Ziel von Netzwerkadressen, verwendete Anschlüsse und den Zustand oder die Geschichte der Verbindung. Einige Firewalls untersuchen zudem Pakete, die zu oder von einer bestimmten Anwendung transportiert werden oder als eine Proxy-Einheit fungieren, indem sie ausgewählte Netzwerkanforderungen zwischen einem geschützten Nutzer und externen vernetzten Computern verarbeiten und weiterleiten.
-
OFFENBARUNG DER ERFINDUNG
-
Hier beschriebene Ausführungsformen stellen einen Ansatz für ein regionales Firewall-Clustering zum optimalen gemeinsamen Zugreifen auf einen Zustand verschiedener Standorte in einer virtualisierten/vernetzten (z.B. Cloud-)Datenverarbeitungsumgebung bereit. Bei einer typischen Ausführungsform wird jede Firewall in einer gegebenen Region über einen Registrierungsprozess bei einem zentralen Server über ihre Peer-Firewalls informiert. Jede Firewall eröffnet einen auf einem Internet-Protokoll (IP) beruhenden Datenübertragungskanal zu jedem ihrer Peers in der Region, um gemeinsam auf Zustandstabellendaten zuzugreifen. Dies ermöglicht asymmetrische Firewall-Datenflüsse durch das Netzwerk und gestattet Routing-Protokollen, den besten Pfad zu einem gegebenen Ziel zu ermitteln, ohne dafür die Position einer Firewall berücksichtigen zu müssen.
-
Ein erster Aspekt stellt ein Verfahren zum Verwalten eines Firewall-Clusters in einer vernetzten Datenverarbeitungsumgebung bereit, das die folgenden computerrealisierten Schritte aufweist: Empfangen eines Pakets in einer ersten Firewall in dem Firewall-Cluster zwischen einer Quelle und einem Ziel, wobei das Paket einen unbekannten Sitzungszustand aufweist; Lesen einer Sitzungszustandstabelle, um auf der Grundlage der Quelle und des Ziels eine Übereinstimmung eines Sitzungszustands zu ermitteln; Zwischenspeichern des Pakets für die Dauer einer vorgegebenen Zeitspanne, wenn keine Übereinstimmung eines Sitzungszustands gefunden wird; und Weiterleiten des Pakets an das Ziel, wenn vor dem Ablauf der vorgegebenen Zeitspanne von einer zweiten Firewall in dem Firewall-Cluster Sitzungszustandsdaten empfangen werden.
-
Ein zweiter Aspekt stellt ein System zum Verwalten eines Firewall-Clusters in einer vernetzten Datenverarbeitungsumgebung bereit, aufweisend: eine erste Firewall in dem Firewall-Cluster, die so konfiguriert ist, dass sie ein Paket, das für ein Ziel vorgesehen ist, von einer Quelle empfängt, wobei das Paket einen unbekannten Sitzungszustand aufweist; einen Server für die Cluster-Synchronisierung, der so konfiguriert ist, dass er eine Sitzungszustandstabelle speichert; wobei die erste Firewall des Weiteren so konfiguriert ist, dass sie die Sitzungszustandstabelle liest, um auf der Grundlage der Quelle und des Ziels eine Übereinstimmung eines Sitzungszustands zu ermitteln; wobei die erste Firewall des Weiteren so konfiguriert ist, dass sie das Paket für die Dauer einer vorgegebenen Zeitspanne zwischenspeichert, wenn keine Übereinstimmung eines Sitzungszustands gefunden wird; und wobei die erste Firewall des Weiteren so konfiguriert ist, dass sie das Paket an das Ziel weiterleitet, wenn vor dem Ablauf der vorgegebenen Zeitspanne von einer zweiten Firewall in dem Firewall-Cluster Sitzungszustandsdaten empfangen werden.
-
Ein dritter Aspekt stellt ein Computerprogrammprodukt zum Verwalten eines Firewall-Clusters in einer vernetzten Datenverarbeitungsumgebung bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium und Programmbefehle aufweist, die auf dem computerlesbaren Speichermedium gespeichert sind, um: ein Paket in einer Firewall zwischen einer Quelle und einem Ziel zu empfangen, wobei das Paket einen unbekannten Sitzungszustand aufweist; um eine Sitzungszustandstabelle zu lesen, um auf der Grundlage der Quelle und des Ziels eine Übereinstimmung eines Sitzungszustands zu ermitteln; um das Paket für die Dauer einer vorgegebenen Zeitspanne zwischenzuspeichern, wenn keine Übereinstimmung eines Sitzungszustands gefunden wird; und um das Paket an das Ziel weiterzuleiten, wenn vor dem Ablauf der vorgegebenen Zeitspanne von einer zweiten Firewall in dem Firewall-Cluster Sitzungszustandsdaten empfangen werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Diese und andere Merkmale dieser Erfindung werden verständlicher anhand der folgenden ausführlichen Beschreibung der verschiedenen Aspekte der Erfindung in Verbindung mit den beigefügten Zeichnungen, bei denen:
- 1 einen Cloud-Datenverarbeitungsknoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 2 eine Cloud-Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 3 Ebenen eines Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 4 ein Architekturschaubild darstellt, das einen asymmetrischen Paketfluss in einer nicht zustandsgesteuerten Firewall-Filterkonfiguration zeigt;
- 5 ein Architekturschaubild gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 6 einen Verfahrensablaufplan zum Ermitteln eines Cluster-Verzögerungsintervalls gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
- 7 ein Architekturschaubild darstellt, das ein Multipfadverfahren gemäß einer Ausführungsform der vorliegenden Erfindung zeigt; und
- 8 einen Verfahrensablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
Die Zeichnungen sind nicht zwingend maßstabsgetreu. Die Zeichnungen sind lediglich schematische Darstellungen und nicht als Wiedergabe der spezifischen Parameter der Erfindung gedacht. Die Zeichnungen sollen lediglich typische Ausführungsformen der Erfindung darstellen und sind daher nicht als Beschränkung des Geltungsumfangs der Erfindung zu verstehen. In den Zeichnungen stehen gleichlautende Ziffern für identische Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Nachfolgend werden veranschaulichende Ausführungsformen mit Blick auf die beigefügten Zeichnungen ausführlicher beschrieben. Dabei kann diese Offenbarung jedoch in vielen unterschiedlichen Formen ausgeführt sein und sollte nicht so verstanden werden, als sei sie auf die hier dargelegten Ausführungsformen beschränkt. Vielmehr werden diese Ausführungsformen bereitstellt, damit diese Offenbarung gründlich und vollständig ist und den Geltungsumfang der Offenbarung dem Fachmann umfassend vermittelt. In der Beschreibung kann auf Einzelheiten bekannter Merkmale und Techniken verzichtet werden, um zu verhindern, dass die dargelegten Ausführungsformen unnötigerweise unklar gemacht werden.
-
Die hier verwendete Begrifflichkeit dient lediglich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Beschränkung dieser Offenbarung gedacht. Im hier verwendeten Sinne sollen die Singularformen „ein/eine/einer“ und „der/die/das“ auch die Pluralformen beinhalten, sofern der Kontext dies nicht eindeutig anderweitig vorgibt. Des Weiteren stellt die Verwendung der Begriffe „ein/eine/einer“ usw. keine mengenmäßige Beschränkung dar, sondern kennzeichnet vielmehr das Vorhandensein von mindestens einem der Elemente, auf die Bezug genommen wird. Der Begriff „Satz“ soll eine Anzahl von mindestens einem Element angeben. Ebenso offensichtlich dürfte sein, dass die Verben „weist auf‟ und/oder „aufweisend“ bzw. „beinhaltet“ und/oder „beinhaitend“ in dieser Patentschrift das Vorhandensein von genannten Merkmalen, Regionen, Ganzzahlen, Schritten, Vorgängen, Elementen undloder Komponenten angeben, ohne jedoch das Vorhandensein oder die Hinzufügung ein oder mehrerer anderer Merkmale, Regionen, Ganzzahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen derselben auszuschließen. Wie hier verwendet, bezieht sich der Begriff „Region“ auf jeden Bereich oder Teil einer vernetzten Datenverarbeitungsumgebung, der definierbare Merkmale und/oder feste Grenzen aufweist.
-
Wie oben erwähnt, werden Ansätze für eine Paketflussverwaltung zwischen Firewalls in einer virtualisierten/vernetzten (z.B. Cloud-)Datenverarbeitungsumgebung bereitgestellt. In einer typischen Umgebung wird eine in der Vergangenheit erfolgte Befehlsverwendung innerhalb einer Server-Umgebung analysiert, um die Merkmale der für eine Cloud-Ressource ausgeführten Befehle festzustellen und mit einer Konfidenzbewertung zu ermitteln, mit welcher Wahrscheinlichkeit die Befehle durch einen bestimmten Nutzer ausgeführt werden. Ein derartiger Ansatz ermöglicht eine wirkungsvollere Verwaltung einer Benutzeridentität, um Cloud-Sicherheit und Systemadministration zu optimieren.
-
Obwohl diese Offenbarung eine ausführliche Beschreibung der Cloud-Datenverarbeitung beinhaltet, sollte vorab klar sein, dass die Realisierung der hier dargelegten Lehren nicht auf eine Cloud-Datenverarbeitungsumgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jeder anderen Art von Datenverarbeitungsumgebung nach dem derzeitigen oder künftigen Stand der Technik realisiert werden.
-
Eine Cloud-Datenverarbeitung ist ein Modell einer Dienstbereitstellung, um einen komfortablen, bedarfsgesteuerten Netzwerkzugriff auf einen gemeinsam genutzten Vorrat von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die mit möglichst geringem Verwaltungsaufwand und möglichst wenig Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Das Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle beinhalten.
-
Merkmale lauten wie folgt:
- Bedarfsgesteuerte Selbstbedienung: Ein Cloud-Verbraucher kann einseitig und automatisch nach Bedarf Datenverarbeitungsfähigkeiten wie z.B. Server-Zeit und Netzwerkspeicher bereitstellen, ohne dass hierfür eine menschliche Interaktion mit dem Anbieter des Dienstes notwendig ist.
-
Breiter Netzwerkzugriff: Fähigkeiten werden über ein Netzwerk zur Verfügung gestellt und über Standardmechanismen zugeordnet, die eine Verwendung durch verschiedenartige Thin- oder Thick-Client-Plattformen ermöglichen (z.B. Mobiltelefone, Laptops und PDAs).
-
Ressourcenbündelung: Die Datenverarbeitungsressourcen des Anbieters sind gebündelt, um unter Verwendung eines Multi-Tenant-Modells mehreren Verbrauchern bereitzustehen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen bzw. neu zugewiesen werden. Standortunabhängigkeit ist insofern gegeben, als der Verbraucher im Allgemeinen den genauen Standort der bereitgestellten Ressourcen weder kontrolliert noch kennt, jedoch unter Umständen in der Lage ist, auf einer höheren Abstraktionsebene (z.B. Land, Bundesland oder Rechenzentrum) einen Standort festzulegen.
-
Flexible Anpassungsfähigkeit: Fähigkeiten lassen sich schnell und elastisch (in einigen Fällen automatisch) bereitstellen, um eine rasche Skalierung nach oben zu ermöglichen, sowie - für eine rasche Skalierung nach unten - schnell wieder freigegeben zu werden. Für den Verbraucher scheinen die zur Bereitstellung verfügbaren Fähigkeiten häufig unbegrenzt zu sein und können jederzeit in jeder beliebigen Menge erworben werden.
-
Dienstmessung: Cloud-Systeme kontrollieren und optimieren die Ressourcennutzung automatisch, indem sie in einer bestimmten, der Art des Dienstes angemessenen Abstraktionsschicht eine Messfunktion nutzen (z.B. Speicherung, Verarbeitung, Bandbreite und aktive Verbraucherkonten). Die Ressourcennutzung kann überwacht, kontrolliert und protokolliert werden, wodurch sowohl für den Anbieter als auch für den Verbraucher des genutzten Dienstes Transparenz bereitgestellt wird.
-
Dienstmodelle lauten wie folgt:
- Software as a Service (SaaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht darin, die in einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu verwenden. Der Zugriff auf die Anwendungen kann über eine Thin-Client-Schnittstelle wie z.B. einen Web-Browser von verschiedenen Client-Einheiten aus erfolgen (z.B. eine eMail-Nachricht auf der Grundlage des Webs). Mit Ausnahme beschränkter verbraucherspezifischer Einstellungen der Anwendungskonfiguration wird die darunterliegende Cloud-Infrastruktur wie Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen vom Verbraucher weder verwaltet noch kontrolliert.
-
Platform as a Service (PaaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht daraus, vom Benutzer erzeugte oder erworbene Anwendungen, die anhand von vom Anbieter bereitgestellten Programmiersprachen und Werkzeugen erstellt wurden, in der Cloud-Infrastruktur bereitzustellen. Die darunterliegende Infrastruktur wie Netzwerke, Server, Betriebssysteme oder Speicher wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Umgebung für das Anwend ungs-Hosting.
-
Infrastructure as a Service (laaS): Die dem Verbraucher bereitgestellte Fähigkeit besteht darin, Verarbeitung, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Verbraucher in der Lage ist, frei wählbare Software wie z.B. Betriebssysteme und Anwendungen bereitzustellen und auszuführen. Die darunterliegende Cloud-Infrastruktur wird vom Verbraucher weder verwaltet noch kontrolliert, er hat jedoch die Kontrolle über Systeme und Einheiten (z.B. Betriebssysteme, Speicher, bereitgestellte Anwendungen usw.) und möglicherweise eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Bereitstellungsmodelle lauten wie folgt:
- Private Cloud: Die Cloud-Infrastruktur wird für lediglich eine Organisation betrieben. Sie kann von der Organisation selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
-
Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt, und eine spezifische Gemeinschaft mit gemeinsamen Anliegen wird unterstützt (z.B. Aufgabe, Sicherheitsanforderungen, Richtlinie und Einhaltung von Gesetzen und Richtlinien). Sie kann von den Organisationen selbst oder von einem Dritten verwaltet werden und sich an Ort und Stelle oder an einem anderen Ort befinden.
-
Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Branchengruppe bereitgestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid-Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren (privaten, Gemeinschafts- oder öffentlichen) Clouds, die eigenständige Einheiten bleiben, aber durch eine standardisierte oder herstellerspezifische Technologie miteinander verbunden sind, die eine Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. das Cloud Bursting für den Lastausgleich zwischen Clouds).
-
Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert, wobei der Schwerpunkt auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Kompatibilität liegt. Im Mittelpunkt einer Cloud-Datenverarbeitung steht eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
-
Mit Blick auf 1 wird ein beispielhaftes Schema eines Cloud-Datenverarbeitungsknotens gezeigt. Ein Cloud-Datenverarbeitungsknoten 10 ist lediglich ein Beispiel für einen geeigneten Cloud-Verarbeitungsknoten und nicht als eine wie auch immer geartete Beschränkung von Verwendungsumfang oder Funktionalität von Ausführungsformen der hier beschriebenen Erfindung gedacht. Unabhängig davon kann der Cloud-Datenverarbeitungsknoten 10 mit jeder hier dargelegten Funktionalität realisiert sein und/oder diese durchführen.
-
In dem Cloud-Datenverarbeitungsknoten 10 gibt es ein Computersystem/einen Server 12, das bzw. der mit zahlreichen anderen Universal- oder Spezialsystemumgebungen oder -konfigurationen betrieben werden kann. Beispiele bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für eine Verwendung mit einem Computersystem/Server 12 geeignet sein könnten, sind, ohne darauf beschränkt zu sein, Personal-Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Mini-Computersysteme, Großrechner-Computersysteme sowie verteilte Cloud-Datenverarbeitungsumgebungen, die eine(s) der obigen Systeme oder Einheiten beinhalten, und dergleichen.
-
Das Computersystem/der Server 12 lässt sich im allgemeinen Zusammenhang von Befehlen beschreiben, die durch ein Computersystem ausführbar sind, wie z.B. Programmmodule, die von einem Computersystem ausgeführt werden. Allgemein können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. beinhalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Datenverarbeitungsumgebungen eingesetzt werden, wo Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien wie beispielsweise Arbeitsspeichereinheiten befinden.
-
1 zeigt das Computersystem/den Server 12 in dem Cloud-Datenverarbeitungsknoten 10 als eine Universal-Datenverarbeitungseinheit. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemarbeitsspeicher 28 und einen Bus 18 beinhalten, der verschiedene Systemkomponenten wie z.B. den Systemarbeitsspeicher 28 mit dem Prozessor 16 verbindet, ohne jedoch darauf beschränkt zu sein.
-
Der Bus 18 steht für mindestens eine von mehreren Arten von Busstrukturen wie z.B. ein Speicherbus oder eine Arbeitsspeicher-Steuereinheit, ein Peripheriebus, ein Accelerated Graphics Port (AGP) und ein Prozessor oder lokaler Bus, wobei eine beliebige aus einer Vielzahl von Busarchitekturen verwendet werden kann. Beispielhaft und nicht als Beschränkung zu verstehen, beinhalten derartige Architekturen den ISA-Bus (Industry Standard Architecture), den MCA-Bus (Micro Channel Architecture), den EISA-Bus (Enhanced ISA), den lokalen VESA-Bus (Video Electronics Standards Association) und den PCI-Bus (Peripheral Component Interconnects).
-
Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von computersystemlesbaren Medien. Derartige Medien können beliebige verfügbare Medien sein, auf die das Computersystem/der Server 12 zugreifen kann, und beinhalten sowohl flüchtige als auch nicht flüchtige, entfernbare und nicht entfernbare Medien.
-
Der Systemarbeitsspeicher 28 kann ein computersystemlesbares Medium in Form eines flüchtigen Arbeitsspeichers wie z.B. eines Direktzugriffsspeichers (Random Access Memory, RAM) 30 und/oder eines Cache-Speichers 32 sein. Das Computersystem 12 kann des Weiteren andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien beinhalten. Lediglich beispielhaft kann ein Speichersystem 34 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges Medium (das nicht abgebildet ist und bei dem es sich üblicherweise um ein Festplattenlaufwerk handelt) bereitgestellt werden. Obwohl hier nicht abgebildet, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine entfernbare, nicht flüchtige Magnetplatte (z.B. eine Diskette) sowie ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine entfernbare, nicht flüchtige optische Platte wie z.B. ein CD-ROM, ein DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. In diesen Fällen kann jedes Laufwerk über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie weiter unten ausführlicher dargestellt und beschrieben, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz von (z.B. mindestens einem) Programmmodulen beinhalten, wobei diese so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung durchführen.
-
Die Ausführungsformen der Erfindung können als ein computerlesbares Signalmedium realisiert sein, das ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode enthalten kann (z.B. als Basisband oder als Teil einer Trägerwelle). Ein derartiges weitergeleitetes Signal kann eine beliebige Vielfalt von unterschiedlichen Formen annehmen, einschließlich, ohne auf diese beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder auch jede geeignete Kombination derselben. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm übermitteln, weiterleiten oder übertragen kann, welches für die Nutzung durch oder in Verbindung mit einem/einer der Befehlsausführung dienenden System, Vorrichtung oder Einheit vorgesehen ist.
-
Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, HF- und andere Medien oder eine beliebige Kombination derselben.
-
Ein Programm/Dienstprogramm 40 mit einem Satz von (mindestens einem) Programmmodulen 42 kann beispielsweise, und ohne als Beschränkung verstanden zu werden, in dem Arbeitsspeicher 28 gespeichert sein. Der Arbeitsspeicher 28 kann außerdem ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten aufweisen. Jedes Betriebssystem, das eine oder die mehreren Anwendungsprogramme, die anderen Programmmodule und die Programmdaten oder eine Kombination hiervon können jeweils eine Realisierung einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methoden von Ausführungsformen der hier beschriebenen Erfindung aus.
-
Das Computersystem/der Server 12 kann zudem mit einer oder mehreren externen Einheiten 14 Daten austauschen, z.B. mit einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; mit einer oder mehreren Einheiten, die einem Benutzer gestatten, mit dem Computersystem/Server 12 zu interagieren; und/oder mit beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenübertragungseinheiten Daten auszutauschen. Eine solche Datenübertragung kann über E/A-Schnittstellen 22 erfolgen. Darüber hinaus kann das Computersystem/der Server 12 über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, z.B. einem Nahbereichsnetz (Local Area Network, LAN), einem allgemeinen Weitverkehrsnetz (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 Daten mit den anderen Komponenten des Computersystems/Servers 12 aus. Dabei sollte klar sein, dass - obwohl sie hier nicht abgebildet sind - auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können. Beispiele hierfür sind, ohne darauf beschränkt zu sein, Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerksstapel, RAID-Systeme, Bandlaufwerke und Datenarchivierungsspeichersysteme usw.
-
Mit Blick auf 2 ist eine veranschaulichende Cloud-Datenverarbeitungsumgebung 50 abgebildet. Wie gezeigt, weist die Cloud-Datenverarbeitungsumgebung 50 einen oder mehrere Cloud-Datenverarbeitungsknoten 10 auf, mit denen lokale, von Cloud-Verbrauchern verwendete Datenverarbeitungseinheiten wie z.B. ein persönlicher digitaler Assistent (Personal Digital Assistent, PDA) oder ein Mobiltelefon 54A, ein Desktop Computer 54B, ein Laptop Computer 54C und/oder ein Automobil-ComputerSystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können in einem oder mehreren Netzwerken, z.B. in privaten, Gemeinschafts-, öffentlichen oder Hybrid-Clouds, wie sie hier weiter oben beschrieben sind, oder in einer Kombination hiervon, physisch oder virtuell zusammengefasst sein (nicht abgebildet). Auf diese Weise kann die Cloud-Datenverarbeitungsumgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Verbraucher keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Dabei sollte klar sein, dass die in 2 gezeigten Arten von Datenverarbeitungseinheiten 54A bis N lediglich zur Veranschaulichung gedacht sind und dass die Datenverarbeitungsknoten 10 und die Cloud-Datenverarbeitungsumgebung 50 mit jeder Art von computergestützter Einheit über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z.B. unter Verwendung eines Webbrowsers) Daten austauschen können.
-
Mit Blick auf 3 wird ein Satz von funktionsbezogenen Abstraktionsschichten gezeigt, der von der Cloud-Datenverarbeitungsumgebung 50 (2) bereitgestellt wird. Dabei sollte von Anfang an klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich zur Veranschaulichung gedacht und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet, werden die folgenden Schichten und zugehörigen Funktionen bereitgestellt:
- Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Beispiele für Hardware-Komponenten beinhalten Großrechner. Ein Beispiel hierfür sind IBM® zSeries® Systeme und Server auf der Grundlage der RISC-Architektur (Reduced Instruction Set Computer). In einem Beispiel sind dies IBM pSeries® Systeme, IBM System x® Server, IBM BladeCenter® Systeme, Speichereinheiten, Netzwerke und Netzwerkkomponenten. Beispiele für Software-Komponenten beinhalten Software für Netzwerk-Anwendungs-Server. In einem Beispiel ist dies IBM WebSphere® Anwendungs-Server-Software und Datenbank-Software. In einem Beispiel ist dies IBM DB2® Datenbank-Software. (IBM, zSeries, pSeries, System x, BladeCenter, WebSphere und DB2 sind Handelsmarken der International Business Machines Corporation, die in vielen Gerichtsbarkeiten weltweit eingetragen sind.)
-
Eine Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, welche die folgenden Beispiele für virtuelle Einheiten zur Verfügung stellen kann: virtuelle Server; virtuellen Speicher; virtuelle Netzwerke wie z.B. virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; sowie virtuelle Clients.
-
In einem Beispiel kann eine Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung stellt eine dynamische Beschaffung von Datenverarbeitungs- und anderen Ressourcen bereit, mit denen Aufgaben innerhalb der Cloud-Datenverarbeitungsumgebung durchgeführt werden. Messungs- und Preisermittlungsfunktionen stellen eine Kostenerfassung bei der Nutzung von Ressourcen innerhalb der Cloud-Datenverarbeitungsumgebung sowie eine Fakturierung bzw. Abrechnung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software aufweisen. Eine Sicherheitsfunktion stellt eine Identitätsprüfung für Cloud-Verbraucher und -Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Eine Verbraucherportalfunktion stellt Verbrauchern und Systemadministratoren einen Zugriff auf die Cloud-Datenverarbeitungsumgebung bereit. Eine Dienstgüteverwaltungsfunktion stellt eine Zuordnung und Verwaltung von Cloud-Datenverarbeitungsressourcen bereit, so dass erforderliche Dienstgütestufen erreicht werden. Eine Planungs- und Ausführungsfunktion von Dienstgütevereinbarungen (Service Level Agreement, SLA) stellt eine Vorabfestlegung und Beschaffung von Cloud-Datenverarbeitungsressourcen bereit, für die gemäß einer SLA eine künftige Anforderung erwartet wird. In der Verwaltungsschicht wird des Weiteren eine Firewall-Cluster-Verwaltung gezeigt, bei der es sich um die Funktionalität handelt, die gemäß den Ausführungsformen der vorliegenden Erfindung bereitgestellt wird.
-
Eine Auslastungsschicht 66 stellt Beispiele einer Funktionalität bereit, für welche die Cloud-Datenverarbeitungsumgebung genutzt werden kann. Beispiele für Auslastungen und Funktionen, die von dieser Schicht bereitgestellt werden können, lauten: Zuordnung und Navigation; Software-Entwicklung und Lebenszyklusverwaltung; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; sowie die Speicherung und Sicherung von Verbraucherdaten. Wie oben erwähnt, sind alle mit Blick auf 3 beschriebenen Beispiele lediglich veranschaulichender Natur und ist die Erfindung nicht auf diese Beispiele beschränkt.
-
Es wird vorausgesetzt, dass alle hier beschriebenen Funktionen der vorliegenden Erfindung typischerweise durch die Firewall-Cluster-Verwaltungsfunktionalität (der Verwaltungsschicht 64 ausgeführt sein können, die konkret als Module des Programmcodes 42 des Programms/Dienstprogramms 40 (1) durchgeführt werden. Allerdings muss dies nicht unbedingt der Fall sein. Vielmehr könnte die hier dargelegte Funktionalität auch durch jede andere Schicht 60 bis 66 aus 3 durchgeführt/realisiert und/oder ermöglicht werden.
-
Obwohl diese Offenbarung eine ausführliche Beschreibung der Cloud-Datenverarbeitung beinhaltet, soll erneut darauf hingewiesen werden, dass die Realisierung der hier dargelegten Lehren nicht auf eine Cloud-Datenverarbeitungsumgebung beschränkt ist. Vielmehr sollen die Ausführungsformen der vorliegenden Erfindung in Verbindung mit jeder beliebigen Art von vernetzter Datenverarbeitungsumgebung nach dem derzeitigen oder künftigen Stand der Technik realisierbar sein.
-
Eine Firewall kann entweder auf Software oder auf Hardware beruhen und dient zum Schutz eines Netzwerks. Eine Firewall innerhalb einer vernetzten Datenverarbeitungsumgebung stellt verschiedene Funktionen für die Netzwerkflusssteuerung bereit, z. B. Prüfen von Netzwerkpaketen und Verwerfen oder Zurückweisen von Netzwerkpaketen auf der Grundlage eines Satzes von Firewall-Filterregeln. Firewalls führen ihre Filterfunktionen üblicherweise durch, indem sie Datenübertragungspakete wie z.B. TCP/IP- oder andere Netzwerkprotokollpakete beobachten und Merkmale wie den Zustand der Verbindung überprüfen. Bei der Datenübertragung ist eine zustandsgesteuerte Firewall (d.h. eine beliebige Firewall, die eine zustandsgesteuerte Paketüberprüfung (Stateful Packet Inspection, SPI) oder eine zustandsgesteuerte Prüfung durchführt) eine Firewall, die den Zustand von sie passierenden Netzwerkverbindungen erfasst. Zustandsgesteuerte Firewalls müssen beide Seiten eines Netzwerkdialogs sehen können, um die Verbindung angemessen beobachten und filtern zu können. Die Firewall ist so programmiert, dass sie berechtigte Pakete für verschiedene Arten von Verbindungen unterscheiden kann. Nur Pakete, die zu einer bekannten aktiven Verbindung passen, werden von der Firewall akzeptiert, während die übrigen zurückgewiesen (oder verworfen) werden.
-
Ein Firewall-Clustering erfolgt in der Regel lokal, wobei die Firewalls nicht weiter als die Reichweite eines Ethernet-Kabels auseinander liegen und in redundanten Paaren realisiert sind. Diese Paarung beschränkt das in modernen Netzwerken verfügbare Multipfadverfahren und zwingt der IP-Datenübertragung eine Symmetrie auf, die sich nicht immer leicht oder effizient in dem Netzwerk umsetzen lässt. Mit zunehmender Größe und Komplexität der Netzwerke werden alternative Pfade realisierbar, und die Gefahr von asymmetrischen Datenflüssen durch eine Firewall erhöht sich. Bei der gegenwärtigen Firewall-Technologie tritt ein asymmetrischer Datenfluss bei einem Firewall-Paar ein und bei einem anderen Paar wieder aus. Da die Firewalls nicht in der Lage sind, auf Zustandsinformationen gemeinsam zuzugreifen, empfangen sie unerwartete Pakete für unbekannte Sitzungen. Das Standardverhalten einer Firewall besteht in diesem Fall darin, das Paket zu verwerfen.
-
4 stellt ein Architekturschaubild dar, das einen asymmetrischen Paketfluss in einer nicht zustandsgesteuerten Firewall-Filterkonfiguration zeigt. Das Schaubild enthält ein Firewall-Paar 402, Router 404A bis F, einen Server 406 und ein Firewall-Paar 408. Wie gezeigt, geht ein Sitzungsinitialisierungspaket von einem (nicht abgebildeten) Client über einen Netzwerkpfad 420 bei dem Firewall-Paar 402 ein. Der Server 406 empfängt das Paket und leitet eine Antwort weiter. Der Router 404B ermittelt einen besseren Pfad über einen Netzwerkpfad 422 zurück an den Client.
-
Das Firewall-Paar 408 kennt die Sitzung nicht und verwirft das Paket in Schritt 410.
-
Um das Problem der verworfenen Pakete zu vermeiden, werden die Firewalls von ihrer lokalen Paarung entkoppelt und können über größere Entfernungen unabhängig voneinander betrieben werden. Der gemeinsame Zugriff auf die Zustandstabelle erfolgt so, dass eine größtmögliche Effizienz von Arbeitsspeicher- und Zentraleinheitsressourcen (CPU-Ressourcen) der Einheit erreicht wird. Anstelle ein unbekanntes Paket bei seiner Ankunft zu verwerfen, speichern es die Firewalls für einen vorgegebenen Zeitraum und warten ab, ob von einer weiteren Firewall in dem Cluster synchronisierte Zustandsdaten eingehen. Wenn dies nicht der Fall ist, wird das Paket verworfen und der Arbeitsspeicherbereich freigegebenen.
-
Bei dieser Anordnung kann es mehrere sichere und aktive Pfade in dem Netzwerk geben, wobei die Firewalls mit mehreren Paaren oder sogar mit einzelnen Firewalls Zustandsdaten austauschen können. Dies ermöglicht eine maximale Netzwerkflexibilität, da Standorte Internet- oder Extranet-Ressourcen, die üblicherweise durch eine Firewall gesichert sind, derart gemeinsam nutzen können, dass eine bessere Unterstützung von Netzwerk-Lastausgleich und dynamischer Funktionsübernahme möglich ist.
-
Firewalls registrieren sich bei einem zentralisierten Server für die Cluster-Synchronisierung, der alle Firewalls in einer vordefinierten Region über ihre Peers informiert. In einem Beispiel werden anhand der WAN-Bandbreite optimale Firewall-Registrierungspfade ermittelt. Jede Firewall eröffnet einen Datenübertragungskanal (auf IP-Grundlage) zu jedem ihrer Peers in der Region, um gemeinsam auf Zustandstabellendaten zuzugreifen. Dies ermöglicht asymmetrische Firewall-Datenflüsse durch das Netzwerk und gestattet Routing-Protokollen, den besten Pfad zu einem gegebenen Ziel zu ermitteln, ohne dafür die Position einer Firewall berücksichtigen zu müssen. Firewalls in einem Cluster erhalten ein Cluster-Verzögerungsintervall, indem sie eine Umlaufzeit (Round-Trip Time, RTT) durch den Datenübertragungskanal messen. Der Prozess eines Ermittelns des Cluster-Verzögerungsintervalls wird mit Blick auf 6 ausführlicher beschrieben. Empfangene Pakete, die durch die regionale Richtlinie zugelassen sind (alle Firewalls einer Region müssen über ein und dieselbe Sicherheitsrichtlinie verfügen), jedoch einen unbekannten oder fehlerhaften Zustand aufweisen, werden so lange im Arbeitsspeicher der Firewall gespeichert, bis das Cluster-Verzögerungsintervall abgelaufen ist. Falls aktualisierte Sitzungszustandsdaten für das Paket von einer weiteren Firewall in dem Cluster eingehen, wird das Paket zugelassen; andernfalls wird es verworfen, sobald das Cluster-Verzögerungsintervall abgelaufen ist.
-
Mit Blick auf 5 ist ein Architekturschaubild gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Das Schaubild enthält ein Firewall-Paar 402, Router 404A bis F, einen Server 406, ein Firewall-Paar 408 und einen Server 412 für die Cluster-Synchronisierung. Wie gezeigt, geht ein Sitzungsinitialisierungspaket von einem (nicht abgebildeten) Client über einen Netzwerkpfad 420 bei dem Firewall-Paar 402 ein. Das Firewall-Paar 402 leitet das Paket an den Server 412 für die Firewall-Cluster-Synchronisierung weiter. Der Server 412 für die Firewall-Cluster-Synchronisierung leitet die Zustandsdaten von dem Firewall-Paar 402 an alle Firewalls weiter, die in seiner Region konfiguriert sind (z.B. an das Firewall-Paar 408). Firewalls in derselben Region weisen einen IP-Steuerkanal auf, der so eingerichtet ist, dass er die Latenzzeit zwischen ihnen misst. Wenn das Firewall-Paar 408 ein Paket mit einem unbekannten Sitzungszustand empfängt, speichert es das Paket für die Dauer des Cluster-Verzögerungsintervalls. Der Prozess eines Ermittelns des Cluster-Verzögerungsintervalls wird mit Blick auf 6 ausführlicher beschrieben. Der Server 412 für die Cluster-Synchronisierung empfängt das Paket und leitet eine Antwort weiter. Der Router 404B ermittelt einen besseren Pfad über den Netzwerkpfad 422 zurück an den Client. Aufgrund einer regionsweiten Zustandssynchronisierung kennt das Firewall-Paar 408 nun die Sitzung, und das Firewall-Paar 408 leitet das Paket weiter. Folgenummern und Zustandsdaten werden an den Server 412 für die Cluster-Synchronisierung zurückgesendet. Während der Dauer der Sitzung überträgt der Server 412 für die Cluster-Synchronisierung Sitzungszustandsdaten zwischen dem Firewall-Paar 402 und dem Firewall-Paar 408.
-
6 stellt einen Verfahrensablaufplan zum Ermitteln eines Cluster-Verzögerungsintervalls gemäß einer Ausführungsform der vorliegenden Erfindung dar. In Schritt 602 empfängt ein Firewall-Paar von einem Server für die Cluster-Synchronisierung Daten zu Peers in der Region. In Schritt 604 versucht das Firewall-Paar, auf der Grundlage der empfangenen Daten zu Peers in der Region, einen Steuerkanal zu einem Peer in der Region aufzubauen. Wenn es den Steuerkanal nicht aufbauen kann, informiert das Firewall-Paar in Schritt 606 den Cluster-Server über das Peering-Problem. In einem Beispiel informiert das Firewall-Paar den Cluster-Server, damit dieser das Peering-Problem protokolliert. Wenn der Steuerkanal aufgebaut wird, sendet das Firewall-Paar in Schritt 608 Ping-Signale über den Steuerkanal und misst die RTT der Ping-Signale. Die Schritte 604 bis 608 werden für jeden Peer in der Region durchgeführt. In Schritt 610 wird anhand der längsten innerhalb der Peers festgestellten RTT ein Cluster-Verzögerungsintervall erzeugt. Dabei sollte beachtet werden, dass in dem hier beschriebenen Prozessablaufplan aus 6 einige Schritte hinzugefügt werden können, einige Schritte weggelassen werden können, die Reihenfolge der Schritte geändert werden kann und/oder einige Schritte gleichzeitig stattfinden können.
-
7 stellt ein Architekturschaubild dar, das ein Multipfadverfahren gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Das Schaubild beinhaltet eine Organisation A 702 und eine Organisation B 704. Die Organisation A 702 beinhaltet ein die Organisation A umspannendes WAN 710, einen Nutzer 740 der Organisation A, redundante Firewall-Paare 740A und B, Router 750A bis C und einen Server 760 für die Cluster-Synchronisierung der Organisation A. Die Organisation B 704 beinhaltet ein die Organisation B umspannendes WAN 712, redundante Firewall-Paare 770A und B, Router 780A bis C, einen Server 790 für die Cluster-Synchronisierung der Organisation B und einen Partnerdienst-Server 792 der Organisation B.
-
Da jede Organisation ihre eigenen Firewall-Cluster und Regionen aufweist, können die Firewall-Datenflüsse zwischen Organisation A 702 und Organisation B 704 asymmetrisch sein. Die vorgeschlagene Anordnung ermöglicht eine dynamische Funktionsübernahme zwischen Standorten oder sogar aktiv/aktiv zwischen zwei Standorten (z.B. Standort A 720 und Standort B 722). Dadurch kann das Routing frei die besten Pfade zwischen den Standorten wählen. So nimmt ein Paket von Nutzer 740 der Organisation A z.B. den kürzesten Netzwerkpfad (d.h. Netzwerkpfad 706) zum Partnerdienst-Server 792 der Organisation B. Der Partnerdienst-Server 792 der Organisation B nimmt den kürzesten Pfad (d.h. Netzwerkpfad 708) zurück zu Organisation A 702.
-
Die Lösung ist abhängig von der WAN-Bandbreite. Das Routing ist abhängig von einer Routing-Metrik (so sind z.B. mehrfach serielle DS3-Signale (DS3s) besser als ein Signal, das mittels T1-Standard übertragen wird). Dabei besteht eine Wechselbeziehung mit der zugrunde liegenden Bandbreite. Wenn aufgrund von Bandbreitenbeschränkungen kein Sicherungs-/Alternativpfad verfügbar ist, kann er nicht verwendet werden. In diesem Fall können allerdings die Routing-Protokolle innerhalb des Netzwerks den Netzwerkpfad bestimmen und eine Symmetrie erzwingen. Mehrere Pfade sollten nur dann verwendet werden, wenn sie den Verkehr durchleiten können.
-
8 stellt einen Verfahrensablaufplan gemäß einer Ausführungsform der vorliegenden Erfindung dar. In Schritt 802 empfängt eine Firewall zwischen einer Quelle und einem Ziel ein Paket, wobei entweder die Markierung Synchronize Acknowledge (SYN-ACK; Abgleichen bestätigt) oder Acknowledge (ACK; Bestätigt) gesetzt ist. In Schritt 804 überprüft die Firewall eine Sitzungszustandstabelle (bzw. Tabellen) auf eine Übereinstimmung bei einem Sitzungszustand. Eine Sitzungszustandstabelle kann entweder auf einem Server für die Cluster-Synchronisierung oder - in manchen Fällen - lokal gespeichert sein. In Schritt 806 wird ermittelt, ob zwischen Quelle und Ziel eine übereinstimmende bekannte und aktive Verbindung vorhanden ist. Wenn eine Übereinstimmung gefunden wird, wird das Paket an das Ziel weiterleitet, und in Schritt 808 wird eine Aktualisierung des Sitzungszustands an den Server für die Cluster-Synchronisierung gesendet. Wenn keine übereinstimmende bekannte und aktive Verbindung gefunden wird, wird in Schritt 810 ermittelt, ob das empfangene Paket gemäß der regionalen Richtlinie zulässig ist. Wenn dies nicht der Fall ist, wird das Paket in Schritt 812 verworfen. Wenn das Paket zulässig ist, speichert die Firewall das Paket in Schritt 814 für die Dauer eines Cluster-Verzögerungsintervalls in einem Puffer und wartet auf den Eingang der Sitzungszustandsdaten. In Schritt 816 wird festgestellt, ob die Sitzungszustandsdaten vor dem Ablauf des Cluster-Verzögerungsintervalls eingehen. Wenn vor Ablauf des Cluster-Verzögerungsintervalls keine Sitzungszustandsdaten von einer weiteren Firewall in dem Cluster eingehen, wird das Paket in Schritt 818 verworfen. Wenn vor Ablauf des Cluster-Verzögerungsintervalls Sitzungszustandsdaten von einer weiteren Firewall in dem Cluster eingehen, wird das Paket in Schritt 820 an das Ziel weitergeleitet, und eine Aktualisierung des Sitzungszustands wird an den Server für die Cluster-Synchronisierung gesendet. Dabei sollte beachtet werden, dass in dem hier beschriebenen Prozessablaufplan aus 8 einige Schritte hinzugefügt werden können, einige Schritte weggelassen werden können, die Reihenfolge der Schritte geändert werden kann undloder einige Schritte gleichzeitig stattfinden können.
-
Obwohl die Erfindung hier als eine Lösung für eine Verwaltung eines Firewall-Clusters gezeigt und beschrieben wird, sollte klar sein, dass die Erfindung verschiedene alternative Ausführungsformen bereitstellt. So stellt die Erfindung bei einer Ausführungsform ein computerlesbares/-nutzbares Medium bereit, das Computerprogrammcode beinhaltet, mit dem eine Computerinfrastruktur eine hier dargelegte Funktionalität für eine Identitätsverwaltung bereitstellen kann. Hierfür beinhaltet das computerlesbarel-nutzbare Medium Programmcode, der jeden der verschiedenen Prozesse der Erfindung realisiert. Dabei wird vorausgesetzt, dass die Begriffe computerlesbares Medium oder computernutzbares Medium eine oder mehrere beliebige Arten einer physischen Ausführungsform des Programmcodes aufweisen. Im Besonderen kann das computerlesbare/-nutzbare Medium Programmcode aufweisen, der in einem oder mehreren tragbaren Speicher-Herstellungsgegenständen (z.B. eine CD, eine Magnetplatte, ein Band usw.), in einem oder mehreren Datenspeicherbereichen einer Datenverarbeitungseinheit wie z.B. einem Arbeitsspeicher 28 (1) und/oder einem Speichersystem 34 (1) enthalten ist (z.B. eine Festplatte, ein Festwertspeicher, ein Direktzugriffsspeicher, ein Cache-Speicher usw.).
-
Bei einer weiteren Ausführungsform stellt die Erfindung ein Verfahren bereit, das den Prozess der Erfindung auf der Grundlage eines Abonnements, von Werbung und/oder einer Gebühr durchführt. Dies bedeutet, dass ein Diensteanbieter wie z.B. ein Lösungsintegrator anbieten könnte, eine Funktionalität für eine Verwaltung eines Firewall-Clusters bereitzustellen. in diesem Fall kann der Diensteanbieter eine Computerinfrastruktur wie z.B. das Computersystem 12 (1) erzeugen, verwalten, unterstützen usw., welche die Prozesse der Erfindung für einen oder mehrere Verbraucher durchführt. Der Diensteanbieter wiederum kann von dem/den Verbraucher(n) eine Bezahlung im Rahmen einer Abonnement- undloder Gebührenvereinbarung erhalten, und/oder er kann eine Bezahlung aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte(n) erhalten.
-
Bei einer weiteren Ausführungsform stellt die Erfindung ein computerrealisiertes Verfahren für eine Verwaltung eines Firewall-Clusters bereit. In diesem Fall kann eine Computerinfrastruktur wie z.B. das Computersystem 12 (1) bereitgestellt werden, und ein oder mehrere Systeme zum Durchführen der Prozesse der Erfindung können erhalten (z.B. erzeugt, erworben, verwendet, geändert usw.) und in der Computerinfrastruktur bereitgestellt werden. Dabei kann die Bereitstellung eines Systems einen oder mehrere der folgenden Schritte aufweisen: (1) Installieren von Programmcode auf einer Datenverarbeitungseinheit wie z.B. einem Computersystem 12 (1) von einem computerlesbaren Medium; (2) Hinzufügen von einer oder mehreren Datenverarbeitungseinheiten zu der Computerinfrastruktur; und (3) Eingliedern und/oder Ändern eines oder mehrerer vorhandener Systeme der Computerinfrastruktur, damit die Computerinfrastruktur in der Lage ist, die Prozesse der Erfindung durchzuführen.
-
Die Begriffe „Programmcode“, und „Computerprogrammcode“ sollen im vorliegenden Kontext synonym sein und jeden Ausdruck eines Satzes von Befehlen in allen Sprachen, Codes oder Notationen bezeichnen, mit dem ein Datenverarbeitungssystem, das über eine Datenverarbeitungsfähigkeit verfügt, in die Lage versetzt werden soll, eine bestimmte Funktion entweder direkt oder aber dann durchzuführen, wenn eine oder beide der folgenden Voraussetzungen gegeben sind:
- (a) Konvertierung in eine andere Sprache, einen anderen Code oder eine andere Notation; und/oder (b) Wiedergabe in einer anderen materiellen Form. Hierfür kann ein Programmcode als eines oder mehrere der folgenden Elemente ausgeführt sein: ein Anwendungs-/Software-Programm, eine Komponenten-Software/eine Bibliothek von Funktionen, ein Betriebssystem, ein grundlegendes Einheitensystem bzw. ein grundlegender Einheitentreiber für eine bestimmte Datenverarbeitungseinheit und Ähnliches.
-
In diesem Zusammenhang kann ein Datenverarbeitungssystem bereitgestellt werden, das zum Speichern und/oder Ausführen von Programmcode geeignet ist und mindestens einen Prozessor beinhalten kann, der über einen Systembus direkt oder indirekt kommunikativ mit Arbeitsspeicherelementen gekoppelt ist. Die Arbeitsspeicherelemente können, ohne darauf beschränkt zu sein, einen lokalen Arbeitsspeicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cache-Speicher beinhalten, die eine vorübergehende Speicherung von mindestens einigem Programmcode bereitstellen, um die Häufigkeit zu verringern, mit welcher der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss. Eingabe/Ausgabe- und/oder andere externe Einheiten (einschließlich, ohne auf diese beschränkt zu sein, Tastaturen, Anzeigen, Zeigeeinheiten usw.) können entweder direkt oder über dazwischen geschaltete Einheiten-Controller mit dem System gekoppelt sein.
-
Netzwerkadapter können ebenfalls mit dem System gekoppelt sein, um über jede Kombination von dazwischen geschalteten privaten oder öffentlichen Netzwerken die Kopplung des Datenverarbeitungssystems mit anderen Datenverarbeitungssystemen, mit entfernt angeordneten Druckern, Speichereinheiten und/oder Ähnlichem zu ermöglichen. Veranschaulichende Netzwerkadapter beinhalten, ohne auf diese beschränkt zu sein, Modems, Kabelmodems und Ethernet-Karten.
-
Die obige Beschreibung verschiedener Ausführungsformen der Erfindung dient zur Veranschaulichung und Beschreibung. Sie erhebt nicht den Anspruch, vollständig zu sein oder die Erfindung auf die konkrete hier offenbarte Form zu beschränken, und es sind offensichtlich zahlreiche Änderungen und Abwandlungen möglich. Derartige für einen Fachmann offensichtliche Änderungen und Abwandlungen sollen im Geltungsumfang der Erfindung enthalten sein, wie er in den beigefügten Ansprüchen definiert ist.