DE202019104801U1 - Elastische Modifikation von Anwendungsinstanzen in einer Netzwerksichtbarkeitsinfrastruktur - Google Patents

Elastische Modifikation von Anwendungsinstanzen in einer Netzwerksichtbarkeitsinfrastruktur Download PDF

Info

Publication number
DE202019104801U1
DE202019104801U1 DE202019104801.8U DE202019104801U DE202019104801U1 DE 202019104801 U1 DE202019104801 U1 DE 202019104801U1 DE 202019104801 U DE202019104801 U DE 202019104801U DE 202019104801 U1 DE202019104801 U1 DE 202019104801U1
Authority
DE
Germany
Prior art keywords
application
network
traffic
instance
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202019104801.8U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gigamon Inc
Original Assignee
Gigamon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gigamon Inc filed Critical Gigamon Inc
Publication of DE202019104801U1 publication Critical patent/DE202019104801U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Datenträger mit darauf gespeicherten Daten, oder Daten repräsentierende Signalsequenz, die ausgebildet ist, über ein Computernetzwerk übertragen zu werden, wobei die Daten Programmanweisungen repräsentieren, die bei Ausführung durch ein System, das einen oder mehrere Prozessoren beinhaltet, das System veranlassen, Operationen durchzuführen, die beinhalten:Empfangen von virtualisiertem Verkehr, der durch eine virtuelle Maschine ausgegebene Datenpakete bezeichnet;Bestimmen, dass der virtualisierte Verkehr eine Kapazitätsbegrenzung einer ersten Instanz einer Anwendung übersteigt,wobei die erste Instanz der Anwendung in einem ersten Knoten einer Sichtbarkeitsstruktur ausgeführt wird;Erzeugen, in Echtzeit ansprechend auf ein Ergebnis des Bestimmens, einer zweiten Instanz der Anwendung auf einem zweiten Knoten in der Sichtbarkeitsstruktur;Trennen des virtualisierten Verkehrs in eine erste Gruppe von Datenpaketen und eine zweite Gruppe von Datenpaketen;Weiterleiten der ersten Gruppe von Datenpaketen an die erste Instanz der Anwendung zur Verarbeitung; undWeiterleiten der zweiten Gruppe von Datenpaketen an die zweite Instanz der Anwendung zur Verarbeitung.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft Verfahren für ein elastisches Modifizieren der Anzahl von Instanzen einer Softwareanwendung beruhend auf dem durch einen Satz von Netzwerkanwendungen empfangenen Verkehrsvolumen.
  • HINTERGRUND
  • Datenverkehr (oder einfach „Verkehr“) in einem Computernetzwerk kann analysiert werden, um eine Echtzeit-Entscheidungsfindung für Netzwerkoperationen, Sicherheitsverfahren etc. zu verbessern. Der Verkehr kann an zahlreichen Punkten mittels einer Vielzahl von Einrichtungen/Anwendungen (die insgesamt als „Knoten“ im Computernetzwerk bezeichnet werden) bezogen werden, und dann an eine Netzwerksichtbarkeitseinrichtung weitergeleitet werden, die fähig ist, eine umfassende Sichtbarkeit eines Verkehrsstroms zu liefern. In Anbetracht der Komplexität von Verkehr, der durch viele Infrastrukturen geleitet wird, werden häufig verschiedene Arten von Softwareanwendungsprogrammen (oder einfach „Anwendungen“) verwendet, um unterschiedliche Datenpaket-Handhabungsdienste bereitzustellen. Beispielsweise kann eine Anwendung für ein Erzeugen, Aggregieren, Filtern, Prüfen und/oder Modifizieren des durch eine Netzwerksichtbarkeitseinrichtung empfangenen Verkehrs verantwortlich sein.
  • Jedoch haben in dieser Weise verwendete Anwendungen verschiedene Nachteile. Beispielsweise weist, obschon der Verkehrsdurchsatz beständig zugenommen hat (z. B. aufgrund von Verbesserungen bei der Netzwerkinfrastruktur), jede auf einer Netzwerkeinrichtung eingesetzte Anwendung eine feste Kapazitätsbegrenzung auf, die einschränkt, wie viel Verkehr sie gleichzeitig handhaben kann. Als weiteres Beispiel ergeben sich bei dem durch eine Anwendung zu verarbeitenden Verkehrsvolumen häufig drastische zeitliche Schwankungen. Zur Vergrößerung der Verarbeitungskapazität kann ein Netzwerkadministrator entweder manuell die bestehende Anwendung auf eine neuere Version aktualisieren, die eine Begrenzung auf eine höhere Kapazität aufweist, oder die bestehende Anwendung durch eine unterschiedliche Anwendung ersetzen, die eine Begrenzung auf eine höhere Kapazität aufweist. Jedoch können diese Wahlmöglichkeiten teuer und in einigen Fällen schwierig zu implementieren sein.
  • Figurenliste
  • Verschiedene technische Merkmale gehen für Fachleute aus der detaillierten Beschreibung in Verbindung mit den Zeichnungen klar hervor. Ausführungsformen des technischen Verfahrens sind in den Zeichnungen beispielhaft und nicht einschränkend dargestellt, wobei gleiche Bezugszeichen ähnliche Elemente bezeichnen.
    • 1A zeigt ein Beispiel einer Netzwerkanordnung, bei der eine Netzwerkeinrichtung Datenpakete von mehreren Einrichtungen/Anwendungen (insgesamt als „Knoten“ bezeichnet) in einem Computernetzwerk empfängt.
    • 1B zeigt einen beispielhaften Pfad von Datenpaketen bei der Bewegung des Datenpakets von einem Quellengerät zu einem Zielgerät.
    • 2 zeigt ein Beispiel, wie eine Sichtbarkeitsplattform, die eine Netzwerkeinrichtung beinhaltet, in eine Cloud-Computing-Plattform integriert werden kann, um einem Endbenutzer einen kohärenten Überblick eines virtualisierten Verkehrs zu liefern, der sich durch die öffentliche Cloud-Infrastruktur bewegt.
    • 3 zeigt ein Ausführungsbeispiel einer Sichtbarkeitsplattform, die vollständig in einer Cloud-Umgebung oder einer Nicht-Cloud-Umgebung betrieben werden kann (z. B. als virtuelle Maschine).
    • 4 zeigt, wie eine herkömmliche Netzwerkeinrichtung häufig Datenpakete während Überlastungszeiträumen wahllos verwirft.
    • 5A zeigt ein erstes Szenario, bei dem eine einzige Anwendungsinstanz den gesamten Verkehr handhaben kann, der an diese durch die Netzwerkeinrichtung weitergeleitet wird.
    • 5B zeigt ein zweites Szenario, bei dem zwei Anwendungsinstanzen benötigt werden, um den gesamten Verkehr zu handhaben, der durch die Netzwerkeinrichtung weitergeleitet wird.
    • 5C zeigt ein drittes Szenario, bei dem drei Anwendungsinstanzen benötigt werden, um den gesamten Verkehr zu handhaben, der durch die Netzwerkeinrichtung weitergeleitet wird.
    • 6 zeigt ein Beispiel eines Lastverteilers, der konfiguriert ist, um von einem Quellenknoten empfangene Datenpakete zwischen mehreren Zielknoten gemäß einer Lastverteilungsstrategie zu verteilen.
    • 7 zeigt ein Beispiel einer Sichtbarkeitsplattform, die drei Netzwerkeinrichtungen beinhaltet, wobei jedes von diesen eine separate Anwendungsinstanz beinhaltet, die zur Verarbeitung von Datenpaketen ausgelegt ist.
    • 8 zeigt ein Beispiel einer verteilten Sichtbarkeitsstruktur, die mehrere Netzwerkeinrichtungen beinhaltet, wobei auf jeder von diesen eine separate Instanz einer Anwendung ausgeführt wird.
    • 9 zeigt einen Prozess für ein elastisches Variieren der Verarbeitungskapazität einer Sichtbarkeitsplattform durch Variieren der Anzahl von bestehenden Anwendungsinstanzen.
    • 10 zeigt einen Prozess zum Modifizieren der Anzahl von Anwendungsinstanzen, auf die von einer Sichtbarkeitsplattform zugegriffen werden kann, um Schwankungen des virtualisierten Verkehrsvolumens dynamisch Rechnung zu tragen.
    • 11 zeigt einen Graphen, der die Netzwerkstruktur einer Sichtbarkeitsplattform darstellt.
    • 12 beinhaltet ein Blockdiagramm, das ein Beispiel eines Verarbeitungssystems darstellt, in dem zumindest einige hier beschriebene Operationen implementiert werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Wird in dieser Beschreibung auf „ein Ausführungsbeispiel“ oder „ein (einzelnes) Ausführungsbeispiel“ verwiesen, bedeutet dies, dass das spezielle Merkmal, Funktion, Struktur oder Eigenschaft, das/die hier beschrieben wird, in mindestens einem Ausführungsbeispiel enthalten ist. Derartige Formulierungen beziehen sich nicht notwendigerweise bei jedem Auftreten auf das gleiche Ausführungsbeispiel, noch beziehen sie sich notwendigerweise auf alternative Ausführungsbeispiele, die einander wechselseitig ausschließen.
  • Eine Netzwerksichtbarkeitseinrichtung (oder einfach „Netzwerkeinrichtung“) kann konfiguriert sein, um Datenpakete von einem oder mehreren Knoten in einem Computernetzwerk zu empfangen. Die Netzwerkeinrichtung kann mit einem oder mehreren Netzwerk-Werkzeugen verbunden sein, die konfiguriert sind, die Datenpakete (oder Kopien der Datenpakete) zu analysieren, den Verkehr im Computernetzwerk zu überwachen, oder die Übertragung von regelwidrigen (z. B. bösartigen) Datenpaketen zu blockieren.
  • Netzwerkeinrichtungen haben herkömmlicherweise eines oder mehrere Softwareanwendungsprogramme (oder einfach „Anwendungen“) beinhaltet, die Datenpaket-Handhabungsdienste bereitstellen. Beispielsweise kann eine Anwendung konfiguriert sein, den Inhalt eines ankommenden Datenpaketes (z. B. im Header oder den Nutzdaten) zu handhaben. Als weiteres Beispiel kann eine Anwendung konfiguriert sein, den Inhalt eines ankommenden Datenpaketes zu untersuchen, um aus diesem gewisse Informationen herauszubekommen (z. B. hinsichtlich einer Nachrichtenübertragung oder einer Sitzung). Somit kann eine Anwendung für ein Erzeugen, Aggregieren, Filtern, Prüfen und/oder Modifizieren des durch eine Netzwerkeinrichtung empfangenen Verkehrs verantwortlich sein.
  • Jedoch haben in dieser Weise verwendete Anwendungen verschiedene Nachteile. Beispielsweise weist, obschon der Verkehrsdurchsatz beständig zugenommen hat (z. B. aufgrund von Verbesserungen bei der Netzwerkinfrastruktur), jede auf einer Netzwerkeinrichtung eingesetzte Anwendung eine statische Kapazitätsbegrenzung auf, die einschränkt, wie viel Verkehr sie gleichzeitig handhaben kann. Als weiteres Beispiel ergeben sich bei dem durch eine Anwendung zu verarbeitenden Verkehrsvolumen häufig drastische zeitliche Schwankungen, (z. B. können einige Zeitintervalle < 10 % der verfügbaren Verarbeitungskapazität erfordern, hingegen können andere Zeitintervalle > 90 % der verfügbaren Verarbeitungskapazität erfordern. Zur Vergrößerung der Verarbeitungskapazität kann ein Netzwerkadministrator entweder manuell die bestehende Anwendung auf eine neuere Version aktualisieren, die eine Begrenzung auf eine höhere Kapazität aufweist, oder die bestehende Anwendung durch eine unterschiedliche Anwendung ersetzen, die eine Begrenzung auf eine höhere Kapazität aufweist.
  • Diese Wahlmöglichkeiten können teuer und in einigen Fällen schwierig zu implementieren sein. Dieses Problem wird sogar noch größer im Kontext von virtualisiertem Verkehr. Im Zuge eines exponentiellen Wachstums der Arbeitslasten in physischen Datenzentren haben viele Endbenutzer begonnen, Arbeitsprozesse und Daten in Cloud-Computing-Plattformen zu verlagern. Zur Überwachung des einem einzelnen Endbenutzer zugehörigen virtualisierten Verkehrs kann es erforderlich sein, dass eine Netzwerkeinrichtung Verkehr von Hunderten oder Tausenden von virtuellen Maschinen empfängt. Jedoch kann eine einzige Instanz einer Anwendung häufig das Volumen des zu berücksichtigenden Verkehrs nicht handhaben.
  • Es werden hier daher Sichtbarkeitsplattformen vorgestellt, deren Verarbeitungsgesamtkapazität dynamisch verändert werden kann, und zwar ansprechend auf eine Bestimmung, wie viel Verkehr aktuell zu berücksichtigen ist. Eine Sichtbarkeitsplattform kann eine oder mehrere Netzwerkeinrichtungen beinhalten, von denen jede mindestens eine Instanz einer Anwendung beinhaltet, die zur Verarbeitung von Datenpaketen konfiguriert ist. Anstatt den gesamten Verkehr zu einer einzigen Anwendungsinstanz zur Verarbeitung weiterzuleiten, kann der Verkehr stattdessen zwischen einem Pool von Anwendungsinstanzen aufgeteilt werden, die insgesamt gewährleisten, dass keine Datenpakete aufgrund von Überlastung verworfen werden.
  • Die Sichtbarkeitsplattform kann so ausgelegt sein, dass Anwendungsinstanzen nach Bedarf elastisch hinzugefügt/entfernt werden können, und zwar basierend auf dem aktuell zu berücksichtigenden Verkehrsvolumen. Anders gesagt, kann ein Hinzufügen/Entfernen von Anwendungsinstanzen erfolgen, während andere Instanzen der Anwendung eine Abwicklung von Datenverkehr durchführen. Beispielsweise können, ansprechend auf eine Bestimmung, dass die Menge an zu berücksichtigendem Verkehr einen oberen Verarbeitungskapazitätsschwellenwert der bestehenden Anwendungsinstanz(en) übersteigt, eine oder mehrere neue Anwendungsinstanzen hinzugefügt werden. Als weiteres Beispiel können ansprechend auf eine Bestimmung, dass die Menge des zu berücksichtigenden Datenverkehrs unter einen unteren Verarbeitungskapazitätsschwellenwert der bestehenden Anwendungsinstanz(en) fällt, eine oder mehrere bestehende Anwendungsinstanzen entfernt werden. Somit kann die Anzahl von bestehenden Anwendungsinstanzen dynamisch modifiziert werden (z. B. in automatischer Weise, während eine oder mehrere andere Instanzen der Anwendungen Datenpakete verarbeiten), um zu gewährleisten, dass ein geeignetes Ausmaß an Verarbeitungskapazität zur Verfügung steht, ohne dass man zulässt, dass zu viel an Verarbeitungskapazität ungenutzt bleibt.
  • NETZWERKEINRICHTUNGSARCHITEKTUR
  • 1A zeigt ein Beispiel einer Netzwerkanordnung 100a, bei der eine Netzwerkeinrichtung 102 Datenpakete von mehreren Einrichtungen/Anwendungen (insgesamt als „Knoten“ bezeichnet) in einem Computernetzwerk 110 empfängt. Die Knoten verbinden eine Quellenvorrichtung 104 (z. B. ein Desktop-Computersystem) mit einer Zielvorrichtung 108 (z. B. einem Server). Somit ermöglichen die Knoten, dass Datenpakete zwischen der Quellenvorrichtung 104 und der Zielvorrichtung 108 übertragen werden. Beispiele von Knoten beinhalten Switches (z. B. Switches 106a, 106d), Router (z. B. Router 106b, 106c), Netzwerkabgriffe etc.
  • Jeder Knoten repräsentiert einen Eintrittspunkt in das Computernetzwerk 110. Bei den Eintrittspunkten könnte es sich, und dies ist häufig der Fall, um unterschiedliche Punkte im Computernetzwerk 110 handeln. Im Allgemeinen sind zumindest einige der Knoten fähig, als Verkehr empfangene Datenpakete (oder Duplikate der Datenpakete) an eine Netzwerkeinrichtung 102 zur Analyse zu senden. Verkehr kann an die Netzwerksichtbarkeitseinrichtung 102 durch einen Knoten geleitet werden, der einen Eintrittspunkt in das Computernetzwerk 110 bereitstellt.
  • Ob ein Knoten die ursprünglichen Datenpakete oder Kopien der ursprünglichen Datenpakete an eine hinter den Knoten befindliche Einrichtung (z. B. die Netzwerkeinrichtung 102) sendet, hängt davon ab, ob es sich bei der dahinter befindlichen Einrichtung um eine Inline-Einrichtung oder eine Out-of-Band-Einrichtung handelt. Wie zuvor angemerkt, empfangen Inline-Einrichtungen die ursprünglichen Datenpakete, hingegen empfangen Out-of-Band-Einrichtungen Kopien der ursprünglichen Datenpakete.
  • Dabei kann die Netzwerkeinrichtung 102 Datenpakete vom Knoten 106b empfangen (z. B. über den Übertragungspfad 114a) und zumindest einige der Datenpakete an den Knoten 106c weiterleiten (z. B. über den Übertragungspfad 114b). Da der Knoten 106b fähig ist, eine stromabwärts gerichtete Übertragung eines Netzwerkverkehrs in Datenverkehrsrichtung hindurch durch die Netzwerkeinrichtung 102 durchzuführen, braucht der Knoten 106b nicht direkt mit dem Knoten 106c verbunden sein (d. h. möglicherweise ist der Übertragungspfad 114c nicht vorhanden). Einige oder alle der Knoten im Computernetzwerk 110 können in ähnlicher Weise konfiguriert sein.
  • Wenn die Netzwerkeinrichtung 102 als Inline-Einrichtung eingesetzt wird, werden Datenpakete durch die Netzwerkeinrichtung 102 an einem Netzwerkanschluss (der auch als „Eingangsanschluss“ bezeichnet wird) empfangen. Beispielsweise werden Datenpakete, die durch den Knoten 106b über den Übertragungspfad 114a übertragen werden, durch die Netzwerkeinrichtung 102 an einem speziellen Eingangsanschluss empfangen. Die Netzwerkeinrichtung 102 kann mehrere Eingangsanschlüsse beinhalten, die mit unterschiedlichen Knoten im Computernetzwerk 110 verbunden sind. Bei einigen Ausführungsbeispielen ist die Netzwerkeinrichtung 102 beispielsweise eine physische Überwachungsplattform, die ein Gehäuse und austauschbare Blades beinhaltet, welche verschiedene Funktionalitäten bieten, beispielsweise erweiterte Fähigkeiten zur Paketverteilung sowie -maskierung und -filterung. Bei weiteren Ausführungsbeispielen ist die Netzwerkeinrichtung 102 eine virtuelle Überwachungsplattform, die auf einer Cloud-Computing-Plattform oder auf einer durch ein Unternehmen verwalteten, vor Ort befindlichen Rechnerumgebung gehostet wird.
  • Die Netzwerkeinrichtung 102 kann auch Datenpakete von einem Netzwerkanschluss (der auch als „Ausgangsanschluss“ bezeichnet wird) übertragen. Beispielsweise kann die Netzwerkeinrichtung 102 mehrere Ausgangsanschlüsse beinhalten, die mit mehreren Netzwerk-Werkzeugen 112a-n verbunden sind. Jedes Netzwerk-Werkzeug 102a-n kann jederzeit als Inline-Einrichtung oder als Out-of-Band-Einrichtung eingesetzt werden. Wenn ein Netzwerk-Werkzeug als Out-of-Band-Einrichtung eingesetzt wird, erzeugt die Netzwerkeinrichtung 102 ein Duplikat von mindestens einigen der Datenpakete, die durch die Netzwerkeinrichtung 102 empfangen wurden, und gibt dann die Duplikate an einen Ausgangsanschluss für eine stromabwärts gerichtete Übertragung an das Out-of-Band-Netzwerk-Werkzeug weiter. Wenn ein Netzwerk-Werkzeug als Inline-Einrichtung eingesetzt wird, gibt die Netzwerkeinrichtung 102 zumindest einige der ursprünglichen Datenpakete an einen Ausgangsanschluss für eine stromabwärts gerichtete Übertragung an das Inline-Netzwerk-Werkzeug weiter, und diese Datenpakete werden dann normalerweise an einem separaten Netzwerkanschluss der Netzwerkeinrichtung 102 von dem Werkzeug kommend wieder zurückerhalten (d. h. unter der Annahme, dass die Datenpakete nicht durch das Werkzeug blockiert werden).
  • 1B zeigt einen beispielhaften Pfad von Datenpaketen bei der Bewegung des Datenpakets von einem Quellengerät 104 zu einem Zielgerät 108. Spezieller zeigt 1B eine Netzwerkanordnung 100b, bei der sowohl das die Netzwerkeinrichtung 102 als auch ein Netzwerk-Werkzeug 112a als Inline-Einrichtungen eingesetzt werden (d. h. innerhalb des Netzwerkverkehrsstroms). Obschon die Übertragungspfade 114a, 114b, die die Netzwerkeinrichtung 102 und das Netzwerk-Werkzeug 112a verbinden, Halbduplex-Leitungen sind (d. h. Information lediglich in einer einzigen Richtung übertragen), könnten auch Vollduplex-Leitungen, die fähig sind, Information in beide Richtungen zu übertragen, für einige oder alle Übertragungswege zwischen Knoten des Computernetzwerks 110 verwendet werden.
  • Nach einem Empfangen eines Datenpaketes von dem Knoten 106b ermittelt die Netzwerkeinrichtung 102 eine dem Datenpaket entsprechende Zuordnung, die auf einer oder mehreren Eigenschaften des Datenpaketes basiert. Beispielsweise könnte(n) die Eigenschaft(en) das Kommunikationsprotokoll, dem das Datenpaket zugehörig ist (z. B. HTTP, TCP, IP) oder ein Sitzungsmerkmal beinhalten (z. B. einen Zeitstempel). Alternativ oder zusätzlich könnte eine geeignete Zuordnung basierend auf dem Netzwerkanschluss der Netzwerkeinrichtung 102, bei welcher das Datenpaket empfangen wurde, dem Quellenknoten, von dem aus das Datenpaket empfangen wurde, etc. ermittelt werden.
  • Die Zuordnung repräsentiert eine Richtlinie, wie das Datenpaket durch die Netzwerkeinrichtung 102 gehandhabt werden soll. Beispielsweise könnte die Zuordnung spezifizieren, dass das Datenpaket in einer Eins-an-Eins-Konfiguration übertragen werden sollte (d. h. von einem Eingangsanschluss der Netzwerkeinrichtung 102 an einen Ausgangsanschluss der Netzwerkeinrichtung 102, einer Eins-an-Viele-Konfiguration (d. h. von einem Eingangsanschluss der Netzwerkeinrichtung 102 an mehrere Ausgangsanschlüsse der Netzwerkeinrichtung 102), oder einer Viele-an-Eins-Konfiguration (d. h. von mehreren Eingangsanschlüssen der Netzwerkeinrichtung 102 an einen Ausgangsanschluss der Netzwerkeinrichtung 102). Somit könnte ein einzelner Ausgangsanschluss der Netzwerkeinrichtung 102 Datenpakete von einem oder mehreren Eingangsanschlüssen der Netzwerkeinrichtung 102 empfangen. Häufig erfolgt eine Weitergabe des Datenpaketes (z. B. durch einen Prozessor der Netzwerkeinrichtung 102) an einen Ausgangsanschluss für eine stromabwärts gerichtete Übertragung zu einem Netzwerk-Werkzeug zur weiteren Verarbeitung.
  • Eine Zuordnung kann spezifizieren, dass eine Weitergabe des Datenpaketes durch die Netzwerkeinrichtung 102 an einen Werkzeuganschluss für eine stromabwärts gerichtete Übertragung zu einem Netzwerk-Werkzeug 112a erfolgen soll. Die Netzwerkeinrichtung 102 kann ein Aggregieren oder Modifizieren des Datenpaketes gemäß der durch die Zuordnung spezifizierten Richtlinie vornehmen, bevor eine Weitergabe des Datenpaketes zu dem Ausgangsanschluss für eine stromabwärts gerichtete Übertragung zum Netzwerk-Werkzeug 112a erfolgt. Bei einigen Ausführungsformen beinhaltet die Netzwerkeinrichtung 102 mehrere Ausgangsanschlüsse, von denen jeder mit einem unterschiedlichen Netzwerk-Werkzeug oder einer weiteren Netzwerkeinrichtung verbunden ist.
  • Nach dem Analysieren des Datenpaketes überträgt das Netzwerk-Werkzeug 102a normalerweise das Datenpaket zurück an die Netzwerkeinrichtung 102 (d. h. unter der Annahme, dass das Netzwerk-Werkzeug 112a nicht bestimmt, dass das Paket blockiert werden sollte), welches eine Weitergabe des Datenpaketes an einen Netzwerkanschluss für eine stromabwärts gerichtete Übertragung zu einem weiteren Knoten (z. B. Knoten 106c) vornimmt.
  • 2 zeigt ein Beispiel, wie eine Sichtbarkeitsplattform 202, die eine Netzwerkeinrichtung beinhaltet, in eine Cloud-Computing-Plattform 200 integriert werden kann, um einem Endbenutzer einen kohärenten Überblick eines virtualisierten Verkehrs zu liefern, der sich durch die öffentliche Cloud-Infrastruktur bewegt. Viele Endbenutzer (z. B. Einzelpersonen und Firmen) haben damit begonnen, Arbeitsprozesse und Daten in Cloud-Computing-Plattformen zu verlagern. Durch Installieren von Agenten 204 bei einigen oder allen der zum Endbenutzer gehörenden virtuellen Maschinen 206 kann die Sichtbarkeitsplattform 202 Datenpakete (oder Duplikate der Datenpakete), die eine öffentliche Cloud-Infrastruktur durchqueren, zur weiteren Analyse beschaffen, um den Einblick in mögliche Sicherheitsrisiken zu verbessern.
  • Bei einigen Ausführungsformen ist die Sichtbarkeitsplattform 202 mit einem oder mehreren Netzwerk-Werkzeugen 208 kommunikativ verbunden, um den virtualisierten Verkehr zu analysieren. Das/die Netzwerk-Werkzeug(e) 208 können als Teil der Sichtbarkeitsplattform 202 lokal (d. h. auf der Cloud-Computing-Plattform 200) oder entfernt gehostet sein (z. B. in einer vom Endbenutzer kontrollierten, vor Ort befindlichen Rechnerumgebung). Wenn die Sichtbarkeitsplattform 202 vollständig virtuell ist (z. B. die Netzwerkeinrichtung aus einem virtuellen programmierbaren Switch besteht), baut die Sichtbarkeitsplattform 202 einen Tunnel auf, um den virtualisierten Verkehr an das/die Netzwerk-Werkzeug(e) 208 zu liefern, ungeachtet dessen, wo sich das oder die Netzwerk-Werkzeuge 208 befinden. Wenn jedoch die Sichtbarkeitsplattform 202 physisch ist (z. B. die Netzwerkeinrichtung aus einem physischen programmierbaren Switch besteht), ist es möglich, dass die Sichtbarkeitsplattform 202 einen Tunnel lediglich für solche (eines oder mehrere) Netzwerk-Werkzeuge 208 aufbaut, die entfernt gehostet sind (z. B. nicht direkt mit der Sichtbarkeitsplattform 202 unter Verwendung von physischen Kabeln verbunden sind.
  • Ein „Tunnel“ ist ein Mechanismus, der verwendet werden kann, um eine zuverlässige Übertragung von Verkehr über ein Netzwerk durchzuführen. Bevor virtualisierter Verkehr durch die Sichtbarkeitsplattform 202 zum Tunnel für eine Übertragung zu dem/den Netzwerk-Werkzeugen) 208 weitergeleitet wird, kann die Sichtbarkeitsplattform 202 einen äußeren Mantel für den virtualisierten Verkehr (und jeglichen weiteren Netzwerkinhalt) basierend auf dem Tunneltyp erzeugen. Beispielsweise könnten die im Inneren befindlichen Nutzdaten durch die Sichtbarkeitsplattform 202 gekapselt werden, und zwar in einer Kapselung gemäß einem VXLAN-Protokoll (VXLAN = Virtual Extensible LAN) oder einem GRE-Protokoll (GRE = Generic Routing Encapsulation). Das/die Netzwerk-Werkzeug(e) 208 können dann den äußeren Mantel bei Empfang entfernen und bestimmen, wie die im Inneren befindlichen Nutzdaten (z. B. der tatsächliche virtualisierte Verkehr) gehandhabt werden sollte.
  • Die Sichtbarkeitsplattform 202 kann als Cloud-native virtuelle Maschine vorhanden sein (auch als „nicht-native virtuelle Maschine“ bezeichnet), die einen virtualisierten Verkehr analysiert, der die Cloud-Computing-Plattform 200 durchquert. Demgemäß ist es möglich, dass die Sichtbarkeitsplattform 202 nicht durch Computerhardware eingeschränkt wird, die für die Unterstützung der Cloud-Computing-Plattform 200 verantwortlich ist.
  • 3 zeigt ein Ausführungsbeispiel einer Sichtbarkeitsplattform 300, die vollständig in einer Cloud-Umgebung oder einer Nicht-Cloud-Umgebung betrieben werden kann (z. B. als virtuelle Maschine). Somit kann die Sichtbarkeitsplattform 300 auf einer Cloud-Computing-Plattform gehostet werden, kann auf einer dedizierten Computer-Hardware laufen (z.B. einer Überwachungsplattform, die ein Gehäuse und austauschbare Blades beinhaltet, welche verschiedene Funktionalitäten bieten), oder irgendeine Kombination daraus. Beispielsweise könnte die Sichtbarkeitsplattform 300 eine Netzwerkeinrichtung 304 beinhalten, das sich auf einem eigenständigen Personal-Computer, einem dedizierten Netzwerk-Server oder irgendeiner anderen Rechnervorrichtung mit einer x86-Befehlssatz-Architektur befindet.
  • In einigen Fällen kann es erwünscht sein, dass die Netzwerkeinrichtung 304 als virtuelle Maschine auf einer Cloud-Computing-Plattform läuft (z. B. der Cloud-Computing-Plattform 200 von 2). Beispielsweise kann die Sichtbarkeitsplattform 300 im Inneren einer VPC (Virtual Private Cloud) vorliegen, die sich in einem dedizierten Abschnitt eines virtuellen Netzwerks eines Endbenutzers in AWS (Amazon Web Services), VMware, OpenStack etc. befindet. Eine derartige Anordnung ermöglicht der Sichtbarkeitsplattform 300 ein intelligentes Optimieren, Filtern und Analysieren von virtualisiertem Verkehr über Hunderte oder Tausende virtueller Maschinen vorzunehmen. Zu beachten ist jedoch, dass die Sichtbarkeitsplattform 300 auch außerhalb der VPC vorliegen kann.
  • Die Sichtbarkeitsplattform 300 kann beinhalten: einen oder mehrere Agenten 302 für ein Mirroring von virtualisiertem Verkehr, der eine Cloud-Computing-Plattform durchquert, eine Netzwerkeinrichtung 304 für ein Aggregieren, Filtern, und Verarbeiten des virtualisierten Verkehrs, einen oder mehrere Controller 306, und einen Client 308 für eine Verwaltung der Sichtbarkeitsplattform 300 in ihrer Gesamtheit. Weitere Ausführungsbeispiele können eine Teilmenge dieser Komponenten beinhalten.
  • Wie hier dargestellt, ist jeder Agent 302 vollständig in einer entsprechenden virtuellen Zielmaschine 310 enthalten, deren virtueller Verkehr überwacht werden soll. Der Begriff „virtualisierter Verkehr“ bezeichnet allgemein einen Verkehr, der durch eine virtuelle Maschine gehandhabt wird (z. B. erzeugt oder empfangen wird). Obschon der eine oder die mehreren Agenten 302 durch den/die Controller 306 ausgegebene Anfragen bedienen, kann jeder Agent 302 für das Konfigurieren seiner eigenen Schnittstellen-Mirror, Tunnel etc. verantwortlich sein.
  • Die Netzwerkeinrichtung 304 kann einen programmierbaren Switch (auch als „Switching-Engine“ bezeichnet) beinhalten. Bei dem programmierbaren Switch kann es sich um einen physischen Switch oder einen virtuellen Switch handeln, beispielsweise einen SDN-Switch (SDN = Software-defined Networking). Die Netzwerkeinrichtung 304 ist verantwortlich für ein Aggregieren von virtualisiertem Verkehr, bei dem ein Mirroring durch den/die Agent(en) 302 durchgeführt wird. Die Netzwerkeinrichtung 304 kann den aggregierten virtualisierten Verkehr beispielsweise an eine Anwendung oder ein Netzwerk-Werkzeug zur weiteren Analyse weiterleiten. Hier ist die Netzwerkeinrichtung 304 beispielsweise konfiguriert, zumindest einen Teil des aggregierten virtualisierten Verkehrs an eines oder mehrere Netzwerk-Werkzeuge 312 zur weiteren Analyse weiterzuleiten. Bei einigen Ausführungsbeispielen führt die Netzwerksichtbarkeitseinrichtung 304 ein Untersuchen, ein Filtern (z. B. Slicing, Maskieren oder Sampling) und/oder ein Replizieren des aggregierten virtualisierten Verkehrs durch, bevor es ein stromabwärts gerichtetes Weiterleiten von diesem an das/die Netzwerk-Werkzeug(e) 312 durchführt.
  • Indessen können der/die Controller 306 durch den Endbenutzer über den Client 308 gesteuert werden, der auf der Cloud-Computing-Plattform in einer vom Endbenutzer kontrollierten, vor Ort befindlichen Rechnerumgebung gehostet sein kann. Bei einigen Ausführungsbeispielen ist ein einziger Controller 306 konfiguriert, den/die Agent(en) 302 und die Netzwerkeinrichtung 304 zu steuern, hingegen sind bei weiteren Ausführungsbeispielen mehrere Controller 306 konfiguriert, den/die Agent(en) 302 und die Netzwerkeinrichtung 304 zu steuern. Dabei steuert beispielsweise ein erster Controller den/die Agent(en) 302 und ein zweiter Controller steuert die Netzwerkeinrichtung 304. Jedoch könnte jeder Agent 302 auch einem dedizierten Controller zugehörig sein.
  • Gemeinsam ermöglichen der Client 308 und der/die Controller 306 eine zentralisierte Verwaltung der Sichtbarkeitsplattform 300 in ihrer Gesamtheit. Beispielsweise kann der Client 308 konfiguriert sein, um mit einer oder mehreren von der Cloud-Computing-Plattform angebotenen Anwendungsprogrammschnittstellen (APIs) 314 integriert zu werden, um relevante Information betreffend den überwachten virtualisierten Verkehr abzufragen (z. B. Endbenutzer-Zugangsdaten, Adressen der virtuellen Maschine, Eigenschaften des virtualisierten Verkehrs). Bei einigen Ausführungsbeispielen unterstützt der Client 308 eine ,Ziehen-und-Ablegen‛-Benutzerschnittstelle (Drag-and-Drop-Benutzerschnittstelle), die vom Endbenutzer verwendet werden kann, um Verkehrsrichtlinien zu erzeugen und zu implementieren. Außerdem kann der Client 308 einem Endbenutzer oder einem Administrator (z. B. dem Verwalter der Sichtbarkeitsplattform 300) Verkehrsrichtlinien-Statistiken für eine Problemlösung in Echtzeit bereitstellen.
  • Durch Identifizieren des/der Netzwerkobjekt(e), die durch eine Sichtbarkeitsstruktur untereinander verbunden sind, kann ein Verkehrsstrom ohne Weiteres überwacht werden, ungeachtet dessen, ob die Netzwerkeinrichtung 304 Datenpakete überwacht, die ein physisches Gerät oder eine virtuelle Umgebung durchqueren. Beispiele für Netzwerkobjekte beinhalten rohe Endpunkte, Tunnel-Endpunkte, Anwendungsendpunkte und Zuordnungen. Eine Netzwerkeinrichtung kann einen oder mehrere rohe Endpunkte beinhalten, die einen Verkehr von entsprechenden Netzwerkkarten (NICs) oder virtuellen Netzwerkkarten (vNICs) empfangen. Die Netzwerkeinrichtung kann auch einen oder mehrere Tunnel-Endpunkte beinhalten, die ein Senden/Empfangen von Verkehr an/von entfernte(n) Standorte(n) durchführen. Beispiele für entfernte Standorte beinhalten weitere Netzwerksichtbarkeitseinrichtungen, vor Ort befindliche Rechnerumgebungen etc. Tunnel-Endpunkte können durch die Netzwerkeinrichtung unter Verwendung von APIs erzeugt werden, und Tunnel-Endpunkte sind typischerweise sowohl einem entfernten Endpunkt als auch einem spezifischen Typ (z. B. VXLAN oder GRE) zugehörig.
  • Wie später noch ausführlicher beschrieben wird, kann die Netzwerksichtbarkeitseinrichtung auch einen oder mehrere Anwendungsendpunkte beinhalten, die ein Senden/Empfangen von Paketen an/von Anwendungsprogramme(n) (oder einfach „Anwendungen“) durchführen. Anwendungen können für ein Erzeugen, Aggregieren, Filtern und/oder Modifizieren des Verkehrs verantwortlich sein, der von der Netzwerkeinrichtung empfangen wird. Beispiele für Anwendungen können Maskierprogramme, Programme zur tiefen Paketinspektion (Deep Packet Inspection), Nettostrom-Generierungsprogramme, Deduplizierungsprogramme etc. beinhalten.
  • Die Netzwerkeinrichtung kann Verkehr an rohen Endpunkten, Tunnel-Endpunkten und Anwendungsendpunkten empfangen und die Netzwerkeinrichtung kann Verkehr an Tunnel-Endpunkten und Anwendungsendpunkten ausgeben. Rohe Endpunkte können daher lediglich ankommenden Verkehr empfangen, hingegen sind Tunnel-Endpunkte und Anwendungsendpunkte generell bidirektional (d. h. sie können ein Empfangen und Senden von Verkehr über unterschiedliche Eingangs- und Ausgangsschnittstellen durchführen).
  • Rohe Endpunkte können Verkehr direkt von (v)NICs empfangen. Jedoch sind Tunnel-Endpunkte häufig die vorherrschende Weise, ein Routing von Verkehr weg von einer Netzwerkeinrichtung durchzuführen (z. B. hinein in eine vor Ort befindliche Umgebung, die eines oder mehrere Netzwerk-Werkzeuge enthält). Außerdem befindet sich, obschon Anwendungsendpunkte ein Routing von virtuellem Verkehr in eine durch eine Anwendung verwaltete Umgebung durchführen, die Umgebung typischerweise weiterhin innerhalb der Netzwerksichtbarkeitseinrichtung.
  • ELASTISCHE MODIFIKATION VON ANWENDUNGSINSTANZEN
  • Netzwerkeinrichtungen haben herkömmlicherweise eine oder mehrere Anwendungen beinhaltet, die konfiguriert sind, Datenpaket-Handhabungsdienste bereitzustellen. Beispielsweise kann eine Anwendung konfiguriert sein, den Inhalt eines Datenpaketes zu handhaben, den Inhalt eines Datenpaketes zu untersuchen, etc. Somit kann eine Anwendung für ein Erzeugen, Aggregieren, Filtern, Prüfen und/oder Modifizieren des durch eine Netzwerkeinrichtung empfangenen Verkehrs verantwortlich sein.
  • Jedoch haben Anwendungen einige Nachteile. Beispielsweise ist, während ein Verkehrsdurchsatz beständig zugenommen hat (z. B. bedingt durch Verbesserungen bei der Netzwerkinfrastruktur) jede auf einer Netzwerkeinrichtung eingesetzte Anwendung mit einer statischen Kapazitätsbegrenzung verbunden, die begrenzt, wie viel Verkehr gleichzeitig gehandhabt werden kann.
  • 4 zeigt, wie eine herkömmliche Netzwerkeinrichtung 400 Datenpakete während Überlastungszeiträumen wahllos verwirft. Die Netzwerkeinrichtung 400 kann einen oder mehrere Eingangsanschlüsse 402a-c beinhalten, über die Datenpakete empfangen werden. Dabei beinhaltet die Netzwerkeinrichtung 400 beispielsweise drei Eingangsanschlüsse 402a-c (d. h. Eingangsanschluss 1 (I1 ) 402a, Eingangsanschluss 2 (I2 ) 402b, und Eingangsanschluss 3 (13) 402c), die konfiguriert sind, um Datenpakete zur Verarbeitung an eine Anwendung 404 weiterzuleiten. Jedoch können einige Ausführungsbeispiele der Netzwerkeinrichtung 400 lediglich einen einzigen Eingangsanschluss beinhalten.
  • Nach einem Empfangen von Datenpaketen an den Eingangsanschlüssen 402a-c kann die Netzwerkeinrichtung 402 eine Datenstromzuordnung für die an einem jeweiligen Eingangsanschluss empfangenen Datenpakete identifizieren. Die Datenstromzuordnungen können spezifizieren, dass die an mehreren Eingangsanschlüssen empfangenen Datenpakete zur Verarbeitung an eine Anwendung, und dann für eine stromabwärts gerichtete Übertragung an einen Ausgangsanschluss weitergeleitet werden sollten. Dabei spezifiziert beispielsweise eine erste Datenstromzuordnung, dass die am Eingangsanschluss 1 (I1 ) 402a empfangenen Datenpakete an die Anwendung 1 (A1 ) 404 und dann weiter zum Ausgangsanschluss 1 (E1 ) 406 weitergeleitet werden sollten, eine zweite Datenstromzuordnung spezifiziert, dass die am Eingangsanschluss 2 (I2 ) 402b empfangenen Datenpakete an die Anwendung 1 (A1 ) 404 und dann weiter zum Ausgangsanschluss 1 (E1 ) 406 weitergeleitet werden sollten, und eine dritte Datenstromzuordnung spezifiziert, dass die am Eingangsanschluss 3 (I3 ) 402c empfangenen Datenpakete an die Anwendung 1 (A1 ) 404 und dann weiter zum Ausgangsanschluss 1 (E1 ) 406 weitergeleitet werden sollten.
  • Jedem der Eingangsanschlüsse 402a-c ist eine Kapazitätsbegrenzung zugehörig (auch als „Durchsatzbegrenzung“ oder „Bandbreitenbegrenzung“ bezeichnet). Dabei hat beispielsweise jeder der Eingangsanschlüsse 402a-c eine identische Kapazitätsbegrenzung von 10 Gigabyte. Man beachte jedoch, dass jedem der Eingangsanschlüsse 402a-c eine unterschiedliche Kapazitätsbegrenzung zugehörig sein könnte.
  • Wenn der Verkehrsstrom durch die Eingangsanschlüsse 402a-c gering ist, können alle Datenpakete problemlos an die Anwendung 404 weitergeleitet werden. Das heißt, wenn die Nutzung der Eingangsanschlüsse 402a-c insgesamt geringer als die Kapazitätsbegrenzung der Anwendung 404 ist (d. h. I1 + I2 + I3 ≤ 100 % der Kapazität von A1 ), werden keine Datenpakete durch die Netzwerkeinrichtung 400 verworfen. Jedoch bewirkt eine derartige Konfiguration, dass die Anwendung 404 während Überlastungszeiträumen überbeansprucht wird. Beispielsweise kann eine Nutzung der Eingangsanschlüsse 402a-c gelegentlich die Kapazität der Anwendung übersteigen. Bei einem derartigen Szenario werden von der Netzwerkeinrichtung 400 einige der Datenpakete entsprechend einer jeweiligen Datenstromzuordnung wahllos verworfen, einfach da die Anwendung 404 nicht den gesamten Verkehr handhaben kann. Im Allgemeinen werden alle Datenstromzuordnungen, die bewirken, dass Datenpakete zu der überlasteten Anwendung weitergeleitet werden, ein Verwerfen von Datenpaketen erfahren, und das Verwerfen erfolgt typischerweise gleichmäßig über alle Datenstromzuordnungen. Jedoch kann dies beträchtliche Störungen beim Verkehrsstrom zur Folge haben, insbesondere wenn die Netzwerkeinrichtung 400 als Inline-Einrichtung eingesetzt wird.
  • Um die Verarbeitungskapazität zu vergrößern, kann ein Netzwerkadministrator:
    • • die bestehende Anwendung manuell auf eine neuere Version mit einer Begrenzung auf eine höhere Kapazität aktualisieren; oder
    • • die bestehende Anwendung manuell durch eine unterschiedliche Anwendung mit einer Begrenzung auf eine höhere Kapazität ersetzen.
  • Diese Wahlmöglichkeiten können teuer sein und können in einigen Fällen schwierig zu implementieren sein. Das Problem wird sogar noch größer im Kontext eines virtualisierten Verkehrs. Zur Überwachung des virtualisierten Verkehrs, der einem Endbenutzer zugehörig ist, kann es erforderlich sein, dass eine Netzwerkeinrichtung einen Verkehr von Hunderten oder Tausenden von virtuellen Maschinen empfängt. Jedoch kann eine einzige Instanz einer Anwendung häufig das hier betrachtete Verkehrsvolumen nicht handhaben.
  • Es werden hier daher Sichtbarkeitsplattformen vorgestellt, deren Verarbeitungsgesamtkapazität dynamisch verändert werden kann, und zwar ansprechend auf eine Bestimmung, wie viel Verkehr aktuell zu berücksichtigen ist. Eine Sichtbarkeitsplattform kann eine oder mehrere Netzwerkeinrichtungen beinhalten, von denen jede mindestens eine Instanz einer Anwendung beinhaltet, die zur Verarbeitung von Datenpaketen konfiguriert ist. Anstatt den gesamten Verkehr zu einer einzigen Anwendungsinstanz zur Verarbeitung weiterzuleiten, kann der Verkehr stattdessen zwischen einem Pool von Anwendungsinstanzen aufgeteilt werden, die insgesamt gewährleisten, dass keine Datenpakete aufgrund von Überlastung verworfen werden.
  • Wie später noch ausführlicher beschrieben wird, kann die Sichtbarkeitsplattform so ausgelegt sein, dass Anwendungsinstanzen nach Bedarf elastisch hinzugefügt/entfernt werden, und zwar basierend auf dem aktuell zu berücksichtigenden Verkehrsvolumen. Beispielsweise können, ansprechend auf eine Bestimmung, dass die Menge an zu berücksichtigendem Verkehr einen oberen Verarbeitungskapazitätsschwellenwert der bestehenden Anwendungsinstanz(en) übersteigt, eine neue Anwendungsinstanz hinzugefügt werden. Der obere Verarbeitungskapazitätsschwellenwert kann der Verarbeitungskapazität aller aktuell bestehenden Anwendungsinstanzen entsprechen. Als weiteres Beispiel können, ansprechend auf eine Bestimmung, dass die Menge des zu berücksichtigenden Datenverkehrs unter einen unteren Verarbeitungskapazitätsschwellenwert der bestehenden Anwendungsinstanz(en) fällt, eine bestehende Anwendungsinstanz entfernt werden. Der untere Verarbeitungskapazitätsschwellenwert kann der Verarbeitungskapazität aller aktuell bestehenden Anwendungsinstanzen minus Eins entsprechen.
  • 5A-C zeigen, wie die hier beschriebene Technik ermöglicht, dass die Anzahl von Anwendungsinstanzen elastisch verändert wird, um zu gewährleisten, dass eine geeignete Menge an Verarbeitungskapazität zur Verfügung steht. Wenn Verkehr durch eine Netzwerkeinrichtung 500 an einem oder mehreren Eingangsanschlüssen 502a-c empfangen wird, kann die Netzwerkeinrichtung 500 die Datenstromzuordnung(en) identifizieren, die regeln, wie der Verkehr durch die Netzwerkeinrichtung 500 gehandhabt wird. Dabei spezifiziert beispielsweise eine erste Datenstromzuordnung, dass die am Eingangsanschluss 1 (ii) 502a empfangenen Datenpakete zur Anwendungsinstanz 1 (A1 ) 504a und dann weiter zum Ausgangsanschluss 1 (E1 ) 506 weitergeleitet werden sollten, eine zweite Datenstromzuordnung spezifiziert, dass die am Eingangsanschluss 2 (I2 ) 502b empfangenen Datenpakete zur Anwendungsinstanz 1 (A1 ) 504a und dann weiter zum Ausgangsanschluss 1 (E1 ) 506 weitergeleitet werden sollten, und eine dritte Datenstromzuordnung spezifiziert, dass die am Eingangsanschluss 3 (I3 ) 502c empfangenen Datenpakete zur Anwendungsinstanz 1 (A1 ) 504 und dann weiter zum Ausgangsanschluss 1 (E1 ) 506 weitergeleitet werden sollten. Der zusammengesetzte Verkehrsstrom, der aus jeglichen Datenpaketen besteht, die eine Verarbeitung durch die Anwendungsinstanz 1 (A1 ) 504a überdauern, kann an ein Netzwerk-Werkzeug, eine weitere Netzwerkeinrichtung, einen Knoten in einem Computer-Netzwerk etc. stromabwärts weitergeleitet werden.
  • Es können zwar Anwendungen so ausgelegt werden, dass sie ausgefeilte Funktionalitäten bieten, jedoch sind diese auch ressourcenintensiv, und haben demzufolge eingeschränkte Verarbeitungskapazität. Während Zeiträumen eines hohen Verkehrsvolumens kann eine Anwendung überfordert werden. Als Ergebnis kann ein unbeabsichtigtes Verwerfen von Datenpaketen erfolgen. Jedoch können diese Datenpakete wertvolle Information beinhalten, die zum besseren Verständnis des Inhalts des Verkehrs, Bedrohungen des Computernetzwerks etc. nützlich ist.
  • Um ein unbeabsichtigtes Verwerfen von Datenpaketen zu vermeiden, kann die Netzwerkeinrichtung 500 die Anzahl von Anwendungsinstanzen, die für eine Verarbeitung von ankommendem Verkehr zuständig sind, dynamisch verändern. Bei einigen Ausführungsbeispielen verwendet die Netzwerkeinrichtung 500 eine Durchsatzmesseinrichtung, um die Anzahl von Datenpaketen zu detektieren, die für eine Anwendungsinstanz bestimmt sind. Dabei kann beispielsweise die Netzwerkeinrichtung 500 veranlassen, dass die an einem jeweiligen der Eingangsanschlüsse 502a-c empfangenen Datenpakete durch eine (nicht dargestellte) Durchsatzmesseinrichtung der Anwendungsinstanz 504a untersucht wird. Die Netzwerkeinrichtung 500 kann Durchsatzmesseinrichtungen auf einer je Datenstromzuordnung bezogenen Basis implementieren. Demzufolge kann die Netzwerkeinrichtung 500 mehrere Durchsatzmesseinrichtungen beinhalten (z. B. eine separate Durchsatzmesseinrichtung entsprechend jeder Anwendungsinstanz).
  • Die Durchsatzmesseinrichtung kann mit einer oder mehreren Schwellenwertraten programmiert sein, die verwendet werden, um die geeignete für die Datenpakete zu ergreifende Aktion zu bestimmen. Beispielsweise kann die Durchsatzmesseinrichtung ein erstes Filter, das mit einer oberen Schwellenwertrate programmiert ist, und/oder ein zweites Filter beinhalten, das mit einer unteren Schwellenwertrate programmiert ist. Die oberen und unteren Schwellenwertraten sind im Allgemeinen in Form von Gigabyte pro Sekunde (G/s) oder Datenpakete je Sekunde (Paket/sec) definiert. Bei einigen Ausführungsbeispielen ermöglicht die Durchsatzmesseinrichtung einem Administrator, ein spezielles Kapazitätsprofil für eine Anwendung festzulegen, das verhindert, dass eine jeweilige Instanz mehr Verkehr erhält als sie handhaben kann. Bei weiteren Ausführungsbeispielen nimmt die Durchflussmesseinrichtung eine automatische Konfiguration des Kapazitätsprofils für die Anwendung basierend auf einer Eigenschaft der Anwendung vor. Beispielsweise kann das Kapazitätsprofil jede Instanz auf eine Verwendung eines vorbestimmten Prozentsatzes der verfügbaren Gesamtkapazität begrenzen.
  • 5A zeigt ein erstes Szenario, bei dem eine einzige Anwendungsinstanz den gesamten Verkehr handhaben kann, der durch die Netzwerkeinrichtung 500 an sie weitergeleitet wird.
  • Dabei erfährt jeder der Eingangsanschlüsse 502a-c eine Portnutzung von 30 %. Bei einem derartigen Szenario empfängt die Anwendungsinstanz 1 (A1 ) 504a eine Menge von 3G an Verkehr vom Eingangsanschluss 1 (I1 ) 502a, eine Menge von 3G an Verkehr vom Eingangsanschluss 2 (12) 502b, und eine Menge von 3G an Verkehr vom Eingangsanschluss 3 (13) 502c. Da die Gesamtmenge an Verkehr, die durch die Anwendungsinstanz 1 (A1 ) 504a empfangen wird, unterhalb von deren Kapazitätsschwellenwert liegt (d. h. 3G + 3G + 3G < 10G) werden keine Datenpakete verworfen. Eine einzige Anwendungsinstanz kann in einem derartigen Szenario problemlos den gesamten Verkehr handhaben.
  • Jedoch wird das an den Eingangsanschlüssen 502a-c empfangene Verkehrsvolumen den Kapazitätsschwellenwert der Anwendungsinstanz 504a gelegentlich übersteigen. 5B zeigt ein zweites Szenario, bei dem zwei Anwendungsinstanzen benötigt werden, um den gesamten Verkehr zu handhaben, der durch die Netzwerkeinrichtung 500 weitergeleitet wird. Wie in 5B dargestellt, erfährt der Eingangsanschluss 3 (I3 ) 502c nun eine Anschlussnutzung von 50 %, hingegen erfahren der Eingangsanschluss 1 (I1 ) 502a und der Eingangsanschluss 2 (I2 ) 502b weiterhin eine Anschlussnutzung von 30 %. Herkömmlicherweise würde der gesamte an den Eingangsanschlüssen 502a-c empfangene Verkehr zur Anwendungsinstanz 1 (A1 ) 504a weitergeleitet werden, und einige Datenpakete würden unbeabsichtigt verworfen, da die gesamte Menge an Verkehr, die durch die Anwendungsinstanz 1 (A1 ) 504a empfangen wird, deren Kapazitätsschwellenwert übersteigt (d. h. 3G + 3G + 5G > 10G). Hier instanziiert jedoch die Netzwerkeinrichtung 500 eine zweite Anwendungsinstanz (d. h. die Anwendungsinstanz 2 (A2 ) 504b). Ankommende Datenpakete können dann zwischen der Anwendungsinstanz 1 (A1 ) 504a und der Anwendungsinstanz 2 (A2 ) 504b kaskadiert werden.
  • 5C zeigt ein drittes Szenario, bei dem drei Anwendungsinstanzen benötigt werden, um den gesamten Verkehr zu handhaben, der durch die Netzwerkeinrichtung 500 weitergeleitet wird. Wie in 5C dargestellt, erfährt der Eingangsanschluss 1 (I1 ) 502a nun eine Anschlussnutzung von 70 %, der Eingangsanschluss 2 (I2 ) 502b eine Anschlussnutzung von 50 %, und der Eingangsanschluss 3 (I3 ) 502c erfährt nun eine Anschlussnutzung von 60 %. Da die Gesamtmenge an Verkehr nicht durch die Anwendungsinstanz 1 (A1 ) 504a und die Anwendungsinstanz 2 (A2 ) 504b verarbeitet werden kann, hat die Netzwerkanwendung 500 eine dritte Anwendungsinstanz instanziiert (d. h. die Anwendungsinstanz 3 (A3 ) 504c). Ankommende Datenpakete können dann zwischen der Anwendungsinstanz 1 (A1 ) 504a, der Anwendungsinstanz 2 (A2 ) 504b, und der Anwendungsinstanz 3 (A3 ) 504c kaskadiert werden.
  • Um Datenpakete zwischen mehreren Instanzen einer Anwendung aufzuteilen, kann eine Netzwerkeinrichtung einen Lastverteiler verwenden. 6 zeigt ein Beispiel eines Lastverteilers 600, der konfiguriert ist, um von einem Quellenknoten 602 empfangene Datenpakete zwischen mehreren Zielknoten 604a-n gemäß einer Lastverteilungsstrategie zu verteilen. Der Quellenknoten 602 kann ein Agent sein, der auf einer virtuellen Maschine eingesetzt wird, ein Verkehrsstromsammler, der außerhalb einer virtuellen Maschine eingesetzt wird, eine Cloud-Computing-Plattform etc. Indessen kann es sich bei den Zielknoten 604a-n um separate Instanzen einer Anwendung handeln. Bei einigen Ausführungsbeispielen befinden sich diese Anwendungsinstanzen auf einer einzigen Netzwerkeinrichtung einer Sichtbarkeitsplattform, hingegen befinden sich bei anderen Ausführungsbeispielen diese Anwendungsinstanzen auf mehreren Netzwerkeinrichtungen einer Sichtbarkeitsplattform. Der Lastverteiler 600 kann gewährleisten, dass Verkehr, der durch eine Sichtbarkeitsplattform empfangen wird, zwischen den mehreren Netzwerkeinrichtungen in annähernd äquivalenter Weise aufgeteilt wird.
  • Der Lastverteiler 600 untersucht ankommenden Verkehr, um zu bestimmen, zu welchem Zielknoten von den mehreren Zielknoten 604a-n ein jeweiliges Datenpaket weitergeleitet werden sollte. Für eine geeignete Verteilung des ankommenden Verkehrs auf die mehreren Zielknoten 604a-n kann der Lastverteilungsmechanismus 600 eine Transformationsfunktion anwenden, die einen Wert für jedes Datenpaket erzeugt, und dann den geeigneten Zielknoten für ein jeweiliges Datenpaket basierend auf dem entsprechenden Wert identifizieren. Ein Beispiel für eine Transformationsfunktion ist der HRW-Hashing-Algorithmus (HRW = „Highest Random Weight“, oder auch „Rendezvous Hashing“). Der HRW-Hashing-Algorithmus ist ausgelegt, um eine verteilte Vereinbarung betreffend einen Satz von k Optionen aus einem möglichen Satz von n Optionen zu erzielen.
  • Bei Ausführung durch den Lastverteiler 600 wird vom HRW-Hashing-Algorithmus jedem Zielknoten (VDj ) eine Gewichtung für jedes Datenpaket im ankommenden Verkehr zugewiesen, und dann jedes Datenpaket dem die größte Gewichtung aufweisenden Zielknoten zugewiesen. Es können mehrere Lastverteiler verwendet werden, um zu gewährleisten, dass Duplikate von Datenpaketen zu demselben Zielknoten weitergeleitet werden. Eine geeignete Verteilung erfordert jedoch, dass jeder Lastverteiler die gleiche Transformationsfunktion ausführt. Beispielsweise kann jeder bei einem verteilten Deduplizierungsmodell beteiligte Lastverteiler eine identische Hash-Funktion anwenden. Wenn sich alle Lastverteiler in einer Sichtbarkeitsstruktur auf eine Transformationsfunktion geeinigt haben, kann jeder Lastverteiler unabhängig ein Routing von Verkehr basierend auf unter Verwendung der Transformationsfunktion berechneten Werten durchführen. Beispielsweise kann jeder Lastverteiler in unabhängiger Weise Gewichtungen unter Verwendung des HRW-Hashing-Algorithmus berechnen und dann denjenigen Zielknoten auswählen, welcher der größten Gewichtung entspricht. Demgemäß können bei einer hierarchischen Anordnung von Netzwerkeinrichtungen (von denen jedes eine separate Anwendungsinstanz aufweist) die in derselben Ebene befindlichen Netzwerkeinrichtungen die gleiche Lastverteilungsstrategie ausführen. Eine derartige Aktion gewährleistet, dass identische Datenpakete, die durch unterschiedliche Anwendungsinstanzen in derselben Hierarchieebene empfangen wurden, diese Datenpakete an dieselbe Anwendungsinstanz in einer niedrigeren Ebene weiterleiten.
  • In 5B-C ist jede Anwendungsinstanz als innerhalb der Netzwerkeinrichtung befindlich dargestellt. Anders gesagt befindet sich jede zusätzliche Anwendungsinstanz, die durch die Netzwerkeinrichtung instanziiert wird, auf der Netzwerkeinrichtung selbst. Jedoch befinden sich bei einigen Ausführungsbeispielen zumindest einige der in einer Sichtbarkeitsstruktur instanziierten zusätzlichen Anwendungsinstanzen außerhalb der Netzwerkeinrichtung. 7 zeigt ein Beispiel einer Sichtbarkeitsplattform 700, die drei Netzwerkeinrichtungen 702a-c beinhaltet, von denen jedes eine zur Verarbeitung von Paketdaten ausgelegte separate Anwendungsinstanz 708a-c beinhaltet. Zusammen bilden diese Anwendungsinstanzen einen „Pool“ von Anwendungsinstanzen, an den die Sichtbarkeitsplattform Verkehr verteilen kann.
  • Bei einer derartigen Anordnung kann es erforderlich sein, dass die Netzwerkeinrichtungen 702a-c Datenpakete untereinander über einen Tunnel austauschen, der eine Verbindung zwischen einem Ausgangsanschluss der einen Netzwerkeinrichtung und einem Eingangsanschluss einer anderen Netzwerkeinrichtung herstellt. Dabei wird beispielsweise Verkehr anfänglich durch die Netzwerkeinrichtung 702a an einem Eingangsanschluss 1 (I1 ) 704a empfangen. Die Netzwerkeinrichtung 702a kann das Volumen von ankommendem Verkehr überwachen, um zu bestimmen, wie viele Anwendungsinstanzen benötigt werden. Beispielsweise kann die Netzwerkeinrichtung 702a bestimmen (z. B. basierend auf einer Ausgangsgröße von einer Durchsatzmesseinrichtung), dass mehrere Anwendungsinstanzen zur Verarbeitung des Verkehrs benötigt werden. Hier hat die Netzwerkeinrichtung 700a bestimmt, dass drei Anwendungsinstanzen 708a-c benötigt werden, um den Verkehr ohne ein unbeabsichtigtes Verwerfen von Datenpaketen zu handhaben.
  • Ein bei der Netzwerkeinrichtung 702a befindlicher Lastverteiler 706 kann gewährleisten, dass der Verkehr zwischen den mehreren Anwendungsinstanzen 708a-c in geeigneter Weise verteilt wird. Anwendungsinstanzen, die sich bei der Netzwerkeinrichtung 402a befinden, können Datenpakete direkt vom Lastverteiler 706 empfangen. Datenpakete, die an eine außerhalb der Netzwerkeinrichtung 702a befindliche Anwendungsinstanz weiterzuleiten sind, können über einen mit der Netzwerkeinrichtung 702a verbundenen Tunnel übertragen werden. Hier können beispielsweise Datenpakete, die durch die Anwendungsinstanz 2 (A2 ) 708b zu verarbeiten sind, an den Ausgangsanschluss 1 (E1 ) 710a der Netzwerkeinrichtung 702a weitergeleitet werden. Der Ausgangsanschluss 1 (E1 ) 710a kann mit dem Eingangsanschluss 2 (12) 704b der Netzwerkeinrichtung 702b über einen Tunnel verbunden sein. Als weiteres Beispiel können Datenpakete, die durch die Anwendungsinstanz 3 (A3 ) 708c zu verarbeiten sind, an den Ausgangsanschluss 2 (E2 ) 710b der Netzwerkeinrichtung 702a weitergeleitet werden. Der Ausgangsanschluss 2 (E2 ) 710b kann mit dem Eingangsanschluss 3 (I3 ) 704c der Netzwerkeinrichtung 700c über einen weiteren Tunnel verbunden sein.
  • 8 zeigt ein Beispiel einer verteilten Sichtbarkeitsstruktur 800, die mehrere Netzwerkeinrichtungen 802a-c beinhaltet, auf denen jeweils eine separate Instanz 804a-c einer Anwendung ausgeführt wird. Einige oder alle der Netzwerkeinrichtungen 802a-c können auch einen (nicht dargestellten) Lastverteiler beinhalten.
  • Ein Controller 806 kann verantwortlich sein, um die Anzahl von Anwendungsinstanzen nach Bedarf elastisch zu verändern, um dem durch die Sichtbarkeitsstruktur 800 empfangenen Verkehrsvolumen Rechnung zu tragen. Wie zuvor angegeben kann, anstatt dass der gesamte Verkehr an eine einzige Anwendungsinstanz zur Verarbeitung weitergeleitet wird, der Verkehr stattdessen zwischen mehreren Anwendungsinstanzen verteilt werden, um insgesamt zu gewährleisten, dass kein Verwerfen von Datenpaketen aufgrund von Überlastung erfolgt. Der Controller 806 kann, sobald er entdeckt, dass das Volumen von ankommendem Verkehr nicht durch die aktuell in der Sichtbarkeitsstruktur vorhandene(n) Anwendungsinstanz(en) gehandhabt werden kann, eine neue Anwendungsinstanz hinzufügen. In ähnlicher Weise kann der Controller 806, sobald er entdeckt, dass das Volumen an ankommendem Verkehr durch eine Teilmenge der momentan in der Sichtbarkeitsstruktur 800 bestehenden Anwendungsinstanz(en) gehandhabt werden kann, eine bestehende Anwendungsinstanz entfernen. Somit kann der Controller 806 veranlassen, dass eine oder mehrere Anwendungsinstanzen im Zeitverlauf dynamisch hinzugefügt und/oder entfernt werden, um Schwankungen des ankommenden Verkehrs Rechnung zu tragen. Eine derartige Aktion kann im Verlauf der zeitlichen Änderungen des Verkehrsvolumens in Echtzeit durchgeführt werden.
  • Bei einigen Ausführungsbeispielen verwaltet eine einzige Steuereinrichtung alle Netzwerkeinrichtungen (und somit alle Anwendungsinstanzen) in der Sichtbarkeitsstruktur 800. Bei weiteren Ausführungsbeispielen wird jede Netzwerkeinrichtung in der Sichtbarkeitsstruktur 800 durch einen separaten Controller gehandhabt.
  • 9 zeigt einen Prozess 900 für ein elastisches Variieren der Verarbeitungskapazität einer Sichtbarkeitsplattform durch Variieren der Anzahl von bestehenden Anwendungsinstanzen. Zu Anfang empfängt eine Sichtbarkeitsplattform einen Verkehr (Schritt 901). Der Verkehr kann beispielsweise virtualisierten Verkehr beinhalten, der einer oder mehreren virtuellen Maschinen zugehörig ist.
  • Die Sichtbarkeitsplattform kann dann den ankommenden Verkehr überwachen. Beispielsweise kann ein Controller die Ausgangsgröße einer Durchflussmesseinrichtung überwachen, um das Verkehrsvolumen zu detektieren, das an einem oder mehreren Eingangsanschlüssen einer Netzwerkeinrichtung empfangen wird. In einigen Fällen wird die Sichtbarkeitsplattform bestimmen, dass der Verkehr eine Kapazitätsbegrenzung einer ersten Anwendungsinstanz überschreitet, an die der ankommende Verkehr zur Verarbeitung geroutet werden soll (Schritt 902). Um jegliches Verwerfen von Datenpaketen zu vermeiden, kann die Sichtbarkeitsplattform eine zweite Anwendungsinstanz instanziieren (Schritt 903). Bei einigen Ausführungsbeispielen befindet sich die zweite Anwendungsinstanz bei derselben Netzwerkeinrichtung wie die erste Anwendungsinstanz. Bei weiteren Ausführungsbeispielen befinden sich die erste und die zweite Anwendungsinstanz bei separaten Netzwerkeinrichtungen, die miteinander kommunikativ verbunden sind.
  • Die Sichtbarkeitsplattform kann dann den ankommenden Verkehr zwischen der ersten und der zweiten Anwendungsinstanz aufteilen. Spezieller kann ein Lastverteiler den ankommenden Verkehr in mehrere Gruppen von Datenpaketen aufteilen, beispielsweise basierend auf Werten, die durch die Anwendung einer Transformationsfunktion erzeugt werden (Schritt 904). Beispielsweise kann der Lastverteiler eine erste Gruppe, die alle Datenpakete beinhaltet, welche mit einem ersten Kriterium übereinstimmen (z. B. einer ersten Datenstrom-Zuordnung zugehörig sind), und eine zweite Gruppe erzeugen, die alle Datenpakete beinhaltet, welche mit einem zweiten Kriterium übereinstimmen (z. B. einer zweiten Datenstrom-Zuordnung zugehörig sind), etc.
  • Die Sichtbarkeitsplattform kann veranlassen, dass die erste Gruppe von Datenpaketen an die erste Anwendungsinstanz zur Verarbeitung weitergeleitet wird (Schritt 905). Außerdem kann die Sichtbarkeitsplattform veranlassen, dass die zweite Gruppe von Datenpaketen an die zweite Anwendungsinstanz zur Verarbeitung weitergeleitet wird (Schritt 906). Datenpakete, die eine Überprüfung durch die erste und die zweite Anwendungsinstanz überdauern, können auf mehrere unterschiedliche Weisen behandelt werden. Wenn die Sichtbarkeitsplattform als Inline-Verkehrsverwaltungslösung eingesetzt wird, dann können die überdauernden Datenpakete zu einem zusammengesetzten Strom kombiniert werden, um stromabwärts weitergeleitet zu werden (z. B. durch die Netzwerkeinrichtung, die die erste Anwendungsinstanz und/oder die zweite Anwendungsinstanz beinhaltet). Umgekehrt können, wenn die Sichtbarkeitsplattform als Out-of-Band-Verkehrsverwaltungslösung eingesetzt wird, die überdauernden Datenpakete zur weiteren Analyse gesammelt werden (d. h. da es nicht erforderlich ist, dass die überdauernden Datenpakete wieder in das Computernetzwerk eingebracht werden).
  • Wie zuvor angegeben, kann die Sichtbarkeitsplattform konfiguriert sein, den ankommenden Verkehr periodisch oder kontinuierlich zu überwachen, um zu bestimmen, ob eine Änderung der Anzahl von Anwendungsinstanzen erforderlich ist. Beispielsweise ist es möglich, dass die Sichtbarkeitsplattform erkennt, dass der ankommende Verkehr die Kapazitätsbegrenzung der ersten Anwendungsinstanz nicht mehr überschreitet (Schritt 907). Bei derartigen Ausführungsbeispielen kann die Sichtbarkeitsplattform die zweite Anwendungsinstanz entfernen (Schritt 908). Durch dynamisches Modifizieren der Anzahl von Anwendungsinstanzen, die zu irgendeinem gegebenen Zeitpunkt zur Verfügung stehen, kann die Sichtbarkeitsplattform gewährleisten, dass ein geeignetes Maß an Verarbeitungskapazität zur Verfügung steht, ohne zuzulassen, dass zu viel Verarbeitungskapazität ungenutzt bleibt.
  • 10 zeigt einen Prozess 1000 zum Modifizieren der Anzahl von Anwendungsinstanzen, auf die von einer Sichtbarkeitsplattform zugegriffen werden kann, um Schwankungen des virtualisierten Verkehrsvolumens dynamisch Rechnung zu tragen. Es werden zwar Schritte des Prozesses 1000 so beschrieben, dass sie durch eine Netzwerkeinrichtung durchgeführt werden, jedoch ist es für Fachleute klar, dass die Schritte auch durch einen Controller durchgeführt werden könnten, der für die Verwaltung der einen oder der mehreren Netzwerkeinrichtungen der Sichtbarkeitsplattform verantwortlich ist.
  • Zu Anfang bezieht die Netzwerkeinrichtung virtualisierten Verkehr, der für Datenpakete bezeichnend ist, die eine virtuelle Maschine durchqueren (Schritt 1001). Die virtuelle Maschine kann eine von mehreren virtuellen Maschinen sein, von denen die Netzwerkeinrichtung virtualisierten Verkehr bezieht. Die Netzwerkeinrichtung kann dann den virtualisierten Verkehr mit einer verfügbaren Verarbeitungskapazität einer Anwendung vergleichen, die zur Verarbeitung des virtualisierten Verkehrs konfiguriert ist (Schritt 1002). Eine derartige Aktion kann wiederholt durchgeführt werden (d. h. auf einer kontinuierlichen Basis), um zu gewährleisten, dass Schwankungen des virtualisierten Verkehrsvolumens in Echtzeit entdeckt werden. Jede Instanz der Anwendung weist typischerweise eine Begrenzung auf eine feste Verarbeitungskapazität auf, die einschränkt, wie viel virtualisierter Verkehr gleichzeitig gehandhabt werden kann. Demgemäß kann die verfügbare Verarbeitungskapazität auf der Anzahl von aktuell bestehenden Anwendungsinstanzen basieren.
  • Basierend auf einem Ergebnis des Vergleichs kann die Netzwerkeinrichtung die Anzahl von bestehenden Instanzen der Anwendung modifizieren, um Schwankungen des virtualisierten Verkehrsvolumens dynamisch Rechnung zu tragen (Schritt 1003). Beispielsweise kann, ansprechend auf eine Bestimmung, dass der virtualisierte Verkehr nicht durch die bestehende Anwendungsinstanz(en) gehandhabt werden kann, eine neue Anwendungsinstanz hinzugefügt werden. Als weiteres Beispiel kann, ansprechend auf eine Bestimmung, dass der virtualisierte Verkehr durch eine geringere Anzahl von Anwendungsinstanzen gehandhabt werden könnte, eine bestehende Anwendungsinstanz entfernt werden.
  • Diese Schritte können in verschiedenen Abfolgen durchgeführt werden. Beispielsweise kann die Netzwerkeinrichtung kontinuierlich zwischen den Schritten 1002 und 1003 abwechseln, um Situationen zu entdecken, bei denen der virtualisierte Verkehr nicht durch die bestehende(n) Anwendungsinstanz(en) gehandhabt werden kann, und zwar fast in Echtzeit, und dann die Anzahl von bestehenden Anwendungsinstanzen dynamisch anpassen, um die Anzahl von verlorenen Datenpaketen zu verringern.
  • GRAPHENBASIERTE SICHTBARKEITSSTRUKTUR EINER SICHTBARKEITS-PLATTFORM
  • Wie zuvor angegeben, kann ein Client (z. B. der Client 308 von 3) mit der/den Netzwerkeinrichtung(en) (z. B. der Netzwerkeinrichtung 304 von 3) einer Sichtbarkeitsplattform verbunden sein. Bei einigen Ausführungsbeispielen unterstützt der Client eine Benutzerschnittstelle (z. B. einer „Ziehen und Ablegen“-Benutzerschnittstelle (Drag-and-Drop-Benutzerschnittstelle)), die einem Endbenutzer ermöglicht, die Sichtbarkeitsstruktur der Sichtbarkeitsplattform zu modifizieren.
  • Ein Graph ist eine Sammlung von Knoten, die mit Kanten (auch als „Verbindungen“ bezeichnet) verbunden sind. Dabei repräsentieren die Knoten separate Netzwerkobjekte (z. B. rohe Endpunkte, Tunnel-Endpunkte, Anwendungsendpunkte oder Zuordnungen), und die Verbindungen stellen dar, wie ein Verkehr zwischen diesen Netzwerkobjekten fließt. Bei einigen Ausführungsbeispielen beinhaltet jeder Datenstrom Datenpakete, die durch eine virtuelle Maschine ausgegeben werden, welche mit der Sichtbarkeitsplattform kommunikativ verbunden ist.
  • Im Allgemeinen ist der Graph als gerichteter azyklischer Graph (DAG) modelliert, bei dem es sich um einen gerichteten Graphen ohne Zyklen handelt. Ein DAG ist aus einer topologischen Sequenz von Knoten ausgebildet, derart, dass es keinen an einem gegebenen Knoten beginnenden Pfad gibt, der schließlich in einer Schleife zurück zum gegebenen Knoten geht. DAGs werden zur Darstellung von Sichtbarkeitsstrukturen bevorzugt, da Schleifen für Netzwerke schlecht sind (z. B. kann ein kontinuierliches „Herumschieben“ von Verkehr erfolgen und dabei Bandbreite verbraucht werden). Obschon der Nutzen individueller graphischer Darstellungen in einigen Fällen begrenzt sein kann, kann eine problemlosere Auslegung und Erstellung von Netzwerklösungen unter Verwendung der hier beschriebenen graphischen Darstellungen erfolgen.
  • Die Knoten in einem Graphen können mehrere unterschiedliche Arten von Netzwerkobjekten repräsentieren, einschließlich:
    • • roher Endpunkte, die Verkehr von (v)NICs empfangen;
    • • Tunnel-Endpunkten, an denen ein Senden/Empfangen von Verkehr an/von entfernten Orten (z. B. solchen außerhalb der Sichtbarkeitsplattform) erfolgt;
    • • Zuordnungen, die Paketfilter repräsentieren, welche auf die den Verkehr bildenden Datenpakete angewendet werden können; und
    • • Anwendungsendpunkten, bei denen ein Senden/Empfangen von Verkehr an/von Anwendungen erfolgt.
  • Die Verbindungen stellen dar, wie ein Verkehrsfluss zwischen den Knoten erfolgt. Die Verbindungen dienen als Verknüpfungen, um die Netzwerkobjekte in der gewünschten Weise zu verbinden. Wie zuvor angegeben, verhindern die Eigenschaften des DAG, dass Schleifen gebildet werden. Somit kann jede Verbindung eine gerichtete Kante sein, die angibt, dass Verkehr lediglich in einer einzigen Richtung fließt.
  • Hier tritt beispielsweise Verkehr in die Netzwerksichtbarkeitseinrichtung an zwei rohen Endpunkten 1102a-b und dem Tunnel-Endpunkt 1104 ein. Rohe Endpunkte sind im Allgemeinen der/die erste(n) Knoten in dem Graphen, da sie Verkehr direkt von (v)NICs empfangen. Verkehr, der an dem Tunnel-Endpunkt 1104 empfangen wird, wird direkt zu veth0 1106a (d. h. einem virtuellen Port) geroutet. Verkehr, der an einem rohen Endpunkt 1102 empfangen wird, wird zu einer Zuordnung 1108 geroutet, hingegen wird Verkehr, der am rohen Endpunkt 1102b empfangen wird, sowohl zum Tunnel-Endpunkt 1104 als auch der Zuordnung 1108 geroutet.
  • Datenpakete können nach Bedarf repliziert werden, wenn sie ein Netzwerkobjekt verlassen, entsprechend einem Knoten, der mehrere ausgehende Verbindungen hat. Beispielsweise können Datenpakete, welche die rohe Schnittstelle 1102b verlassen, dupliziert werden, so dass identische Verkehrsströme zum Tunnel-Endpunkt 1104 und der Zuordnung 1108 geroutet werden.
  • Die Zuordnung 1108 ermöglicht der Sichtbarkeitsplattform, einen in Frage stehenden Verkehr durch Abgleichen gegen in der Zuordnung 1108 definierte spezielle Kriterien auszuwählen. Beispielsweise kann ein Verkehr, der einem ersten speziellen Kriterium genügt, zu veth0 1106a geroutet werden, und Verkehr, der einem zweiten spezifischen Kriterium genügt, kann zu einer Anwendung 1110 geroutet werden, die zumindest einen Teil des Verkehrs zu veth1 1106b (d. h. einem weiteren virtuellen Anschluss) weiterleitet.
  • Demgemäß kann eine Sichtbarkeitsplattform, die einen Prozessor und eine Eingangsschnittstelle beinhaltet (bei der Datenpakete empfangen werden) eine Sequenz von Netzwerkobjekten identifizieren, durch die hindurch ein an der Eingangsschnittstelle empfangener Verkehrsstrom geroutet werden sollte, und dann den Verkehrsstrom hindurch durch die Abfolge von Netzwerkobjekten routen, gemäß einem Graphen, der die Sichtbarkeitsstruktur der Sichtbarkeitsplattform definiert.
  • Ein einziger Graph kann verwendet werden, um alle aktiven Diensteketten in einer Sichtbarkeitsstruktur (die sich über eine einzige Sichtbarkeitsplattform oder mehrere Sichtbarkeitsplattformen erstrecken kann) zu repräsentieren. Außerdem kann ein Endbenutzer (z. B. ein Netzwerkadministrator), da der Graph aus Knoten und Verbindungen aufgebaut ist, ohne Weiteres die Verbindungen als Verknüpfungen verwenden, um die Netzwerkobjekte in beliebiger gewünschter Weise zu verbinden. Somit kann der Endbenutzer den Graphen verwenden, um ein problemloseres Verwalten von Verkehr durchführen, der über Cloud-Architekturen und/oder Nicht-Cloud-Architekturen fließt. Beispielsweise kann der Endbenutzer den Graphen auf einer Benutzerschnittstelle nochmals durchsehen und den/die Verkehrsroute(n) durch Ziehen von Verbindungen zwischen Knoten, Löschen von bestehenden Verbindungen etc. modifizieren. Die durch den Graphen repräsentierte Sichtbarkeitsstruktur kann dynamisch verändert werden, immer wenn ein Hinzufügen, Entfernen oder Modifizieren von Knoten/Verbindungen durchgeführt wird.
  • Wie in 11 dargestellt, kann die Anwendung 1110 in vereinfachter Weise dargestellt werden, sogar wenn der Endbenutzer bestätigt hat, dass die Anzahl von Instanzen der Anwendung 1110 dynamisch modifiziert werden kann. Anstatt dass der Graph eine Reihe von visuellen Komponenten entsprechend den separaten Anwendungsinstanzen beinhaltet, kann er lediglich eine einzige visuelle Komponente für die Anwendung beinhalten, ungeachtet dessen, wie viele Instanzen aktuell vorhanden sind. Man beachte jedoch, dass die Benutzerschnittstelle dem Endbenutzer ermöglichen kann, zu spezifizieren, ob es der Sichtbarkeitsplattform gestattet ist, die Anzahl von Anwendungsinstanzen automatisch zu verändern, ohne dass dafür eine explizite Eingabe vom Endbenutzer nötigt ist. Das heißt, die Benutzerschnittstelle kann dem Endbenutzer ermöglichen, zu spezifizieren, ob eine derartige Funktionalität aktiviert oder deaktiviert sein sollte.
  • Um den in 11 dargestellten Graphen zu erzeugen, kann der Client zu Anfang einen DAG konstruieren, um eine Sichtbarkeitsstruktur einer Sichtbarkeitsplattform visuell darzustellen. Spezieller kann der Client einen Knoten in dem DAG für jedes der Sichtbarkeitsplattform zugehörige Netzwerkobjekt erzeugen, sowie auch eine Verbindung zwischen einem Paar von Knoten in dem DAG für jeden Verkehrsstrom zwischen einem Paar von Netzwerkobjekten erzeugen. Danach kann der Client eine Eingabe erhalten, die eine Anfrage bezeichnet, eine Anwendung in die Sichtbarkeitsstruktur einzufügen. Der Client kann, ansprechend auf einen Empfang der Eingabe, ein Anzeigen des DAG auf einer dem Endbenutzer zugänglichen Rechnervorrichtung veranlassen. Die Anwendung kann durch eine einzige visuelle Komponente repräsentiert sein, und das Aussehen der einzigen visuellen Komponente kann unverändert bleiben, obschon die Anzahl von Instanzen der Anwendung elastisch modifiziert werden kann, um Schwankungen bei dem von der Sichtbarkeitsplattform bezogenen Verkehr Rechnung zu tragen.
  • VERARBEITUNGSSYSTEM
  • 12 beinhaltet ein Blockdiagramm, das ein Beispiel eines Verarbeitungssystems 1200 darstellt, in dem zumindest einige der hier beschriebenen Operationen implementiert werden können. Beispielsweise kann das Verarbeitungssystem 1200 für die Erzeugung einer Schnittstelle verantwortlich sein, über die ein Endbenutzer mehrere Netzwerksichtbarkeitseinrichtungen einer Sichtbarkeitsplattform verwaltet. Als weiteres Beispiel kann zumindest ein Teil des Verarbeitungssystems 1200 in einer Rechnervorrichtung (z. B. einem Server) enthalten sein, die eine Netzwerksichtbarkeitseinrichtung und/oder eine Cloud-Rechnerplattform unterstützt. Das Verarbeitungssystem 1200 kann einen oder mehrere Prozessoren 1202, einen Hauptspeicher 1206, einen nicht-flüchtigen Speicher 1210, einen Netzwerkadapter 1212 (z. B. Netzwerkschnittstellen), eine Anzeige 1218, Eingabe-/Ausgabevorrichtungen 1220, eine Steuervorrichtung 1222 (z. B. eine Tastatur und Zeigegeräte), eine Laufwerkeinheit 1224, die ein Speichermedium 1226 beinhaltet, und eine Signalgeneratorvorrichtung 1230 beinhalten, die mit einem Bus 1216 kommunikativ verbunden sind. Der Bus 1216 ist abstrakt dargestellt und repräsentiert eines oder mehrere der beiden folgenden Elemente, und zwar separaten physischen Bussen, Punkt-zu-Punkt-Verbindungen, oder beide, wobei diese durch geeignete Brücken, Adapter oder Steuereinrichtungen verbunden sind. Der Bus 1216 kann daher beispielsweise einen Systembus, einen PCI-Bus (PCI = Peripheral Component Interconnect) oder einen PCI-Express-Bus, einen HyperTransport oder ISA-Bus (ISA = Industry Standard Architecture), einen SCSI-Bus (SCSI = Small Computer System Interface), einen USB-Bus (USB = Universal Serial Bus), einen IIC- oder I2C-Bus, oder einen Bus gemäß dem IEEE-Standard 1354 (IEEE = Institute of Electrical and Electronics Engineers) beinhalten, der auch als „Fireware“ bezeichnet wird. Ein Bus kann auch für eine Weitergabe von Datenpaketen (z. B. über Voll- oder Halbduplexleitungen) zwischen Komponenten einer Netzwerkeinrichtung, wie beispielsweise einer Switching-Engine, einem oder mehreren Netzwerkanschlüssen, einem oder mehreren Werkzeuganschlüssen etc. verantwortlich sein.
  • Bei verschiedenen Ausführungsbeispielen arbeitet das Verarbeitungssystem 1200 als eigenständiges Gerät, obschon das Verarbeitungssystem 1200 mit weiteren Geräten verbunden sein kann (z. B. kabelgebunden oder drahtlos). Beispielsweise kann das Verarbeitungssystem 1200 ein Endgerät beinhalten, das direkt mit einer Netzwerkeinrichtung verbunden ist. Als weiteres Beispiel kann das Verarbeitungssystem 1200 mit der Netzwerkeinrichtung drahtlos verbunden sein.
  • Bei verschiedenen Ausführungsbeispielen kann das Verarbeitungssystem 1200 ein Server-Computer, ein Client-Computer, ein Personal-Computer (PC), ein Benutzergerät, ein Tablet-PC, ein Laptop-Computer, ein persönlicher digitaler Assistent (PDA), ein Mobiltelefon, ein iPhone, ein iPad, ein Blackberry, ein Prozessor, ein Telefon, eine Web-Anwendung, ein Netzwerk-Router, ein Switch oder eine Bridge, eine Konsole, eine tragbare Konsole, ein (tragbares) Spielgerät, ein Musikabspielgerät, jegliches tragbare mobile Handgerät, oder jegliche Maschine sein, die fähig ist, einen Satz von (sequentiellen oder anderen) Anweisungen auszuführen, die Aktionen spezifizieren, welche durch das Verarbeitungssystem 1200 vorzunehmen sind.
  • Obschon der Hauptspeicher 1206, der nicht-flüchtige Speicher 1210 und das Speichermedium 1226 (auch als „maschinenlesbares Medium“ bezeichnet), als einzelnes Medium dargestellt sind, sollte der Begriff „maschinenlesbares Medium“ und „Speichermedium“ so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien umfasst (z. B. eine zentrale oder verteilte Datenbank, und/oder zugehörige Cache-Speicher und Server), die einen oder mehrere Sätze von Anweisungen 1228 speichern. Der Begriff „maschinenlesbares Medium“ und „Speichermedium“ sollen ebenfalls so verstanden werden, dass sie jegliches Medium beinhalten, welches fähig ist, einen Satz von Anweisungen zur Ausführung durch das Verarbeitungssystem 1200 zu speichern, zu codieren oder zu tragen und welches das Verarbeitungssystem 1200 veranlasst, eine oder mehrere der Methodiken der vorliegend offenbarten Ausführungsbeispiele durchzuführen.
  • Im Allgemeinen können die Routinen, die zur Implementierung der Methode ausgeführt werden, als Teil eines Betriebssystems oder einer speziellen Anwendung, Komponente, Programm, Objekt, Modul oder Abfolge von Anweisungen (die insgesamt als „Computerprogramme“ bezeichnet werden) implementiert sein. Die Computerprogramme beinhalten typischerweise eine oder mehrere Anweisungen (z. B. Anweisungen 1204, 1208, 1228), die zu verschiedenen Zeiten in verschiedenen Arbeitsspeicher- und Festspeichervorrichtungen in einem Computer festgelegt sind und die bei Lesen und Ausführen durch eine oder mehrere Verarbeitungseinheiten oder Prozessoren 1202 das Verarbeitungssystem 1200 veranlassen, Operationen durchzuführen, um Elemente auszuführen, welche die verschiedenen Aspekte der Offenbarung involvieren.
  • Außerdem verstehen Fachleute, obschon eine Beschreibung von Ausführungsformen im Kontext von vollständig funktionsfähigen Computern und Computersystemen erfolgte, dass die verschiedenen Ausführungsbeispiele als Programmprodukt in vielfältiger Form vertrieben werden können, und dass die Offenbarung, ungeachtet des speziellen Typs von maschinen- oder computerlesbaren Medien, die für die tatsächliche Durchführung des Vertriebs verwendet werden, in gleicher Weise Gültigkeit hat.
  • Weitere Beispiele für maschinenlesbare Speichermedien, maschinenlesbare Medien oder computerlesbare (Speicher-)Medien beinhalten Medien vom beschreibbaren Typ, wie beispielsweise flüchtige und nicht-flüchtige Speichervorrichtungen 1210, Disketten und andere Wechselplatten, Festplattenlaufwerke, optische Platten (z. B. CD-ROMs (CD-ROM = Compact Disk Read-Only Memory), DVDs (DVD = Digital Versatile Disk) und Medien vom Übertragungstyp wie beispielsweise digitale und analoge Kommunikationsverbindungen.
  • Der Netzwerkadapter 1212 ermöglicht dem Verarbeitungssystem 1200, Daten in einem Netzwerk 1214 mit einer sich außerhalb des Verarbeitungssystems 1200 befindlichen Entität auszutauschen, beispielsweise einer Netzwerkeinrichtung, und zwar mittels jeglichem bekannten und/oder zweckmäßigen Kommunikationsprotokoll, das durch das Verarbeitungssystem 1200 und die externe Entität unterstützt wird. Der Netzwerkadapter 1212 kann eine oder mehrere der folgenden Elemente beinhalten, und zwar eine Netzwerkadapterkarte, eine drahtlose Netzwerkschnittstellenkarte, einen Router, einen Access-Point, einen drahtlosen Router, einen Switch, einen Multilayer-Switch, einen Protokollwandler, ein Gateway, eine Bridge, einen Bridge-Router, einen Hub, einen digitalen Medienempfänger und/oder einen Repeater.
  • Der Netzwerkadapter 1212 kann eine Firewall beinhalten, die bei einigen Ausführungsbeispielen Berechtigungen für einen Zugriff/stellvertretenden Zugriff auf Daten in einem Computernetzwerk regeln und/oder verwalten kann, und verschiedene Vertrauensebenen zwischen unterschiedlichen Maschinen und/oder Anwendungen nachverfolgen kann. Die Firewall kann eine beliebige Anzahl von Modulen beinhalten, die eine beliebige Kombination von Hardware- und/oder Softwarekomponenten aufweisen, welche fähig sind, einen vorbestimmten Satz von Zugriffsrechten zwischen einem speziellen Satz von Maschinen und Anwendungen, Maschinen und Maschinen, und/oder Anwendungen und Anwendungen durchzusetzen, beispielsweise, um den Verkehrsstrom und eine gemeinsame Nutzung von Ressourcen zwischen diesen verschiedenen Entitäten zu regeln. Zusätzlich kann die Firewall eine Zugangskontrollliste verwalten und/oder Zugriff auf diese haben, wobei in dieser Liste Berechtigungen detailliert angegeben sind, einschließlich beispielsweise der Rechte einer Einzelperson, einer Maschine und/oder einer Anwendung für das Zugreifen auf und das Operieren mit einem Objekt, sowie die Umstände, unter welchen diese Berechtigungen Gültigkeit haben.
  • Weitere Netzwerksicherheitsfunktionen können durch die Funktionen der Firewall durchgeführt werden oder in diesen enthalten sein, einschließlich einer Angriffsabwehr, einer Angriffserkennung, einer Next-Generation-Firewall, einer Personal-Firewall etc.
  • Wie zuvor angegeben, sind die hier vorgestellten Verfahren beispielsweise implementiert durch: programmierbare Schaltkreise (z. B. einen oder mehrere Mikroprozessoren), mittels Programmierung mit Software und/oder Firmware, vollständig als spezielle fest verdrahtete (d. h. nicht-programmierbare) Schaltkreise, oder als Kombination solcher Formen. Spezialschaltkreise können beispielsweise in Form von einer oder mehreren ASICs (ASIC = Application-specific Integrated Circuit = anwendungsspezifische integrierte Schaltung), PLDs (PLD = Programmable Logic Device = programmierbare logische Schaltung), FPGAs (FPGA = Field Programmable Gate Array) etc. vorliegen.
  • Man beachte, dass jede der zuvor beschriebenen Ausführungsformen mit einer weiteren Ausführungsform kombiniert werden kann, außer insoweit zuvor anders angegeben oder insoweit irgendwelche dieser Ausführungsformen sich gegenseitig funktionell und/oder strukturell ausschließen.
  • Obschon die vorliegende Erfindung mit Bezug auf spezielle beispielhafte Ausführungsformen beschrieben wurde, versteht es sich, dass die Erfindung nicht auf die beschriebenen Ausführungsformen eingeschränkt ist, sondern innerhalb des Schutzumfangs der anliegenden Ansprüche mit Modifikationen und Änderungen umgesetzt werden kann. Demgemäß sind die Beschreibung und die Zeichnungen als erläuternd und nicht einschränkend anzusehen.

Claims (27)

  1. Datenträger mit darauf gespeicherten Daten, oder Daten repräsentierende Signalsequenz, die ausgebildet ist, über ein Computernetzwerk übertragen zu werden, wobei die Daten Programmanweisungen repräsentieren, die bei Ausführung durch ein System, das einen oder mehrere Prozessoren beinhaltet, das System veranlassen, Operationen durchzuführen, die beinhalten: Empfangen von virtualisiertem Verkehr, der durch eine virtuelle Maschine ausgegebene Datenpakete bezeichnet; Bestimmen, dass der virtualisierte Verkehr eine Kapazitätsbegrenzung einer ersten Instanz einer Anwendung übersteigt, wobei die erste Instanz der Anwendung in einem ersten Knoten einer Sichtbarkeitsstruktur ausgeführt wird; Erzeugen, in Echtzeit ansprechend auf ein Ergebnis des Bestimmens, einer zweiten Instanz der Anwendung auf einem zweiten Knoten in der Sichtbarkeitsstruktur; Trennen des virtualisierten Verkehrs in eine erste Gruppe von Datenpaketen und eine zweite Gruppe von Datenpaketen; Weiterleiten der ersten Gruppe von Datenpaketen an die erste Instanz der Anwendung zur Verarbeitung; und Weiterleiten der zweiten Gruppe von Datenpaketen an die zweite Instanz der Anwendung zur Verarbeitung.
  2. Datenträger oder Signalsequenz nach Anspruch 1, wobei die Operationen weiter beinhalten: Erkennen, dass der virtualisierte Verkehr die Kapazitätsbegrenzung der ersten Instanz der Anwendung nicht überschreitet; Entfernen, in Echtzeit ansprechend auf das Erkennen, der zweiten Instanz der Anwendung aus dem zweiten Knoten in der Sichtbarkeitsstruktur; und Weiterleiten aller Datenpakete in dem virtualisierten Verkehr an die erste Instanz der Anwendung zur Verarbeitung.
  3. Datenträger oder Signalsequenz nach Anspruch 1 oder Anspruch 2, wobei das Trennen umfasst: Generieren eines Hash-Wertes für jedes in dem virtualisierten Verkehr enthaltenen Datenpaket, um eine Mehrzahl von Hash-Werten zu erzeugen; Zugreifen auf eine Datenstruktur, welche die Mehrzahl von Hash-Werten einer Mehrzahl von Instanzen der Anwendung zuordnet, wobei jeder Hash-Wert einer separaten Instanz der Anwendung zugeordnet wird, und wobei jede Instanz der Anwendung in einem unterschiedlichen Knoten der Sichtbarkeitsstruktur ausgeführt wird; Bestimmen, dass jedes Paket in der ersten Gruppe von Datenpaketen einem Eintrag in der Datenstruktur entspricht, der die erste Instanz der Anwendung bezeichnet; und Bestimmen, dass jedes Paket in der zweiten Gruppe von Datenpaketen einem Eintrag in der Datenstruktur entspricht, der die zweite Instanz der Anwendung bezeichnet.
  4. Datenträger oder Signalsequenz nach einem der Ansprüche 1-3, wobei sich der erste und der zweite Knoten bei einer Netzwerkeinrichtung befinden.
  5. Datenträger oder Signalsequenz nach einem der Ansprüche 1-4, wobei der virtualisierte Verkehr einer Mehrzahl von virtuellen Maschinen zugehörig ist, die einem Endbenutzer zugeordnet sind.
  6. Datenträger oder Signalsequenz nach einem der Ansprüche 1-5, wobei die Operationen weiter beinhalten: Erzeugen eines gefilterten Stroms von Datenpaketen durch Kombinieren zumindest eines Teils der ersten Gruppe von Datenpaketen mit zumindest einem Teil der zweiten Gruppe von Datenpaketen, wobei der zumindest eine Teil der ersten Gruppe von Datenpaketen solche Datenpakete sind, die eine Prüfung durch die erste Instanz der Anwendung überdauert haben, und wobei der zumindest eine Teil der zweiten Gruppe von Datenpaketen solche Datenpakete sind, die eine Prüfung durch die zweite Instanz der Anwendung überdauert haben; und Weiterleiten des gefilterten Stroms von Datenpaketen an einen Ausgangsanschluss für eine stromabwärts gerichtete Übertragung zu einem Ziel.
  7. Datenträger mit darauf gespeicherten Daten, oder Daten repräsentierende Signalsequenz, die ausgebildet ist, über ein Computernetzwerk übertragen zu werden, wobei die Daten Programmanweisungen repräsentieren, die bei Ausführung durch ein System, das einen oder mehrere Prozessoren beinhaltet, das System veranlassen, Operationen durchzuführen, die beinhalten: Beziehen, durch eine Netzwerkeinrichtung, von virtuellem Verkehr, der durch eine virtuelle Maschine ausgegebene Datenpakete bezeichnet; Vergleichen, und zwar wiederholt durch die Netzwerkeinrichtung, einer Menge des während eines Zeitraums bezogenen virtualisierten Verkehrs mit einer verfügbaren Verarbeitungskapazität einer Anzahl von bestehenden Instanzen der Anwendung, die zur Verarbeitung des virtuellen Verkehrs konfiguriert sind; Modifizieren, und zwar in Echtzeit durch die Netzwerkeinrichtung, der Anzahl von bestehenden Instanzen der Anwendung, beruhend auf einem Ergebnis des Vergleichens.
  8. Datenträger oder Signalsequenz nach Anspruch 7, wobei das Modifizieren umfasst: Erzeugen einer neuen Instanz der Anwendung; oder Entfernen einer bestehenden Instanz der Anwendung.
  9. Datenträger oder Signalsequenz nach Anspruch 7 oder Anspruch 8, wobei jede Instanz der Anwendung eine feste Verarbeitungskapazitätsbegrenzung aufweist, die einschränkt, wie viel virtualisierter Verkehr gleichzeitig gehandhabt werden kann.
  10. Datenträger oder Signalsequenz nach einem der Ansprüche 7-17, wobei jede Instanz der Anwendung auf einer unterschiedlichen Netzwerkeinrichtung in einer Sichtbarkeitsstruktur ausgeführt wird.
  11. Datenträger oder Signalsequenz nach Anspruch 10, wobei jede Netzwerkeinrichtung in der Sichtbarkeitsstruktur durch einen entsprechenden Controller verwaltet wird.
  12. Datenträger oder Signalsequenz nach Anspruch 10, wobei alle Netzwerkeinrichtungen in der Sichtbarkeitsstruktur durch einen einzigen Controller verwaltet werden.
  13. Datenträger oder Signalsequenz nach einem der Ansprüche 7-12, wobei der virtualisierte Verkehr von einer für mehrere Benutzer ausgelegten Cloud-Computing-Plattform über ein Netzwerk bezogen wird.
  14. Datenträger oder Signalsequenz nach einem der Ansprüche 7-13, wobei die Operationen weiter beinhalten: Verteilen, durch die Netzwerkeinrichtung, des virtualisierten Verkehrs an die bestehenden Instanzen der Anwendung, um ein Verwerfen von Datenpaketen aufgrund Überlastung zu verhindern.
  15. Datenträger oder Signalsequenz nach einem der Ansprüche 7-14, wobei mindestens eine Instanz der Anwendung bei einer weiteren Netzwerkeinrichtung ausgeführt wird, und wobei die Operationen weiter beinhalten: Weiterleiten, durch die Netzwerkeinrichtung, einer Gruppe von Datenpaketen an einen Ausgangsanschluss für eine Übertragung an die weitere Netzwerkeinrichtung.
  16. Datenträger oder Signalsequenz nach Anspruch 15, wobei der Ausgangsanschluss einem Ende eines Tunnels entspricht, der eine Verbindung zwischen der Netzwerkeinrichtung und der weiteren Netzwerkeinrichtung herstellt.
  17. Datenträger mit darauf gespeicherten Daten, oder Daten repräsentierende Signalsequenz, die ausgebildet ist, über ein Computernetzwerk übertragen zu werden, wobei die Daten Programmanweisungen repräsentieren, die bei Ausführung durch ein System, das einen oder mehrere Prozessoren beinhaltet, das System veranlassen, Operationen durchzuführen, die beinhalten: Konstruieren eines gerichteten azyklischen Graphen, um eine Sichtbarkeitsstruktur einer Netzwerkeinrichtung zu repräsentieren, und zwar durch Erzeugen eines Knotens in dem gerichteten azyklischen Graphen für jedes Netzwerkobjekt einer Mehrzahl von Netzwerkobjekten, die der Netzwerkeinrichtung zugehörig sind, und Erzeugen einer Verbindung zwischen einem Paar von Knoten in dem gerichteten azyklischen Graphen für jeden Verkehrsstrom zwischen einem Paar von Netzwerkobjekten der Mehrzahl von Netzwerkobjekten; Empfangen einer Eingabe, die eine Anfrage angibt, eine Anwendung in die Sichtbarkeitsstruktur einzufügen; und Bewirken einer Anzeige eines für den gerichteten azyklischen Graphen repräsentativen Bildes auf einer Rechnervorrichtung, auf die durch einen Benutzer zugegriffen werden kann, wobei die Anwendung durch eine einzige visuelle Komponente in dem gerichteten azyklischen Graphen repräsentiert ist, und wobei ein Aussehen der einzigen visuellen Komponente unverändert bleibt, obschon eine Anzahl von Instanzen der Anwendung elastisch modifiziert werden kann, um Schwankungen des die Sichtbarkeitsstruktur durchquerenden Verkehrs Rechnung zu tragen.
  18. Datenträger oder Signalsequenz nach Anspruch 17, wobei die Operationen weiter beinhalten: dem Benutzer zu ermöglichen, eine modifizierte Netzwerkstruktur durch Modifizieren des gerichteten azyklischen Graphen zu spezifizieren.
  19. Datenträger oder Signalsequenz nach Anspruch 17 oder Anspruch 18, wobei die Mehrzahl von Netzwerkobjekten einen rohen Endpunkt, einen Tunnel-Endpunkt, einen Anwendungsendpunkt, eine Zuordnung oder eine beliebige Kombination von diesen beinhaltet.
  20. System mit einem Prozessor oder mehreren Prozessoren, wobei das System ausgebildet ist, Operationen durchzuführen, welche die Operationen nach einem der Ansprüche 1-19 beinhalten.
  21. System mit einem Speicher oder mehreren Speichern und einem Prozessor oder mehreren Prozessoren, wobei der eine Speicher oder die mehreren Speicher mit Programmanweisungen gemäß den Daten programmiert ist/sind, die in dem Datenträger oder durch die Signalsequenz nach einem der Ansprüche 1-19 gespeichert bzw. repräsentiert sind.
  22. Netzwerkeinrichtung, aufweisend: einen Eingangsanschluss, durch den virtualisierter Verkehr zu empfangen ist; einen Ausgangsanschluss, über den ein Routing von Datenpaketen von der Netzwerkeinrichtung weg erfolgt; und einen Prozessor, der konfiguriert ist für ein: Überwachen eines Volumens eines virtualisierten Verkehrs, der an dem Eingangsanschluss über ein vorbestimmtes Zeitintervall empfangen wird, Bestimmen, dass das Volumen eine Verarbeitungskapazität einer ersten Instanz einer Anwendung überschreitet, Veranlassen, dass eine zweite Instanz der Anwendung erzeugt wird, und Verteilen des virtualisierten Verkehrs zwischen der ersten und der zweiten Instanz der Anwendung.
  23. Netzwerkeinrichtung nach Anspruch 22, wobei der Ausgangsanschluss einem Ende eines Tunnels entspricht, der eine Verbindung zwischen der Netzwerkeinrichtung und einer weiteren Netzwerkeinrichtung herstellt, auf dem die zweite Instanz der Anwendung ausgeführt wird, und wobei das Verteilen beinhaltet: Weiterleiten eines Teils des virtualisierten Verkehrs zu einem Ausgangsanschluss für eine Übertragung an die weitere Netzwerkeinrichtung über den Tunnel.
  24. Netzwerkeinrichtung nach Anspruch 22 oder Anspruch 23, wobei der Eingangsanschluss einem Ende eines Tunnels entspricht, der eine Verbindung zwischen der Netzwerkeinrichtung und einer virtuellen Maschine herstellt.
  25. Netzwerkeinrichtung nach einem der Ansprüche 22-24, wobei der Prozessor weiter konfiguriert ist für ein: Bestimmen, dass das Volumen die Verarbeitungskapazität der ersten Instanz der Anwendung nicht überschreitet, und Veranlassen, dass die zweite Instanz der Anwendung zerstört wird.
  26. Netzwerkeinrichtung, die dazu ausgebildet ist, Operationen auszuführen, die beinhalten: Beziehen von virtuellem Verkehr, der durch eine virtuelle Maschine ausgegebene Datenpakete bezeichnet; wiederholtes Vergleichen einer Menge des während eines Zeitraums bezogenen virtualisierten Verkehrs mit einer verfügbaren Verarbeitungskapazität einer Anzahl von bestehenden Instanzen der Anwendung, die zur Verarbeitung des virtuellen Verkehrs konfiguriert sind; Modifizieren, und zwar in Echtzeit, der Anzahl von bestehenden Instanzen der Anwendung, und zwar beruhend auf einem Ergebnis des Vergleichens.
  27. Netzwerkeinrichtung nach Anspruch 26, wobei die Netzwerkeinrichtung weiter dazu ausgebildet ist, Operationen durchzuführen, welche die Operationen nach einem der Ansprüche 7-16 beinhalten.
DE202019104801.8U 2018-08-31 2019-08-30 Elastische Modifikation von Anwendungsinstanzen in einer Netzwerksichtbarkeitsinfrastruktur Active DE202019104801U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/119,093 2018-08-31
US16/119,093 US10855590B2 (en) 2018-08-31 2018-08-31 Elastic modification of application instances in a network visibility infrastructure

Publications (1)

Publication Number Publication Date
DE202019104801U1 true DE202019104801U1 (de) 2020-01-07

Family

ID=67840927

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202019104801.8U Active DE202019104801U1 (de) 2018-08-31 2019-08-30 Elastische Modifikation von Anwendungsinstanzen in einer Netzwerksichtbarkeitsinfrastruktur

Country Status (3)

Country Link
US (2) US10855590B2 (de)
EP (1) EP3618367A3 (de)
DE (1) DE202019104801U1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11570244B2 (en) * 2018-12-11 2023-01-31 Amazon Technologies, Inc. Mirroring network traffic of virtual networks at a service provider network
RU2750629C2 (ru) * 2019-07-17 2021-06-30 Акционерное общество "Лаборатория Касперского" Система и способ выявления аномалий в технологической системе
CN111988239B (zh) * 2020-08-21 2022-07-15 哈尔滨工业大学 一种用于Android应用的软件纯净流量获取方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069903B2 (en) * 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US9929945B2 (en) * 2015-07-14 2018-03-27 Microsoft Technology Licensing, Llc Highly available service chains for network services

Also Published As

Publication number Publication date
EP3618367A2 (de) 2020-03-04
EP3618367A3 (de) 2020-05-06
US20200076738A1 (en) 2020-03-05
US20210083978A1 (en) 2021-03-18
US11750518B2 (en) 2023-09-05
US10855590B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
DE202019103185U1 (de) Verteilte Deduplizierung von Paketen
DE102013209118B4 (de) Beibehaltung und Änderung von Netzwerküberlastungsbenachrichtigungen während der Übertragung von Netzwerkdaten zwischen einem physischen Netzwerk und einem virtuellen Netzwerk
DE112015004008B4 (de) Selektives abtasten von netzwerkpaketverkehr unter verwendung von virtuelle-maschinen-werkzeugplattformen auf cloud-basis
DE202019104801U1 (de) Elastische Modifikation von Anwendungsinstanzen in einer Netzwerksichtbarkeitsinfrastruktur
DE112016003726B4 (de) Dynamisch definierte virtuelle private Netzwerktunnel in hybriden Cloud-Umgebungen
DE112018008119T5 (de) Modifizieren einer Ressourcenzuweisung oder einer Strategie in Reaktion auf Steuerungsinformationen von einer virtuellen Netzwerkfunktion
DE602005001965T2 (de) Methodologie und Protokolle für Hochgeschwindigkeitsverkehrmessung und Analyse
DE112011100339B4 (de) System zum Gegensteuern bei Netzwerk-Datenüberlastungen
WO2018082697A1 (en) System and methods for monitoring performance of slices
DE602005003948T2 (de) Optimiertes gleichzeitiges datenherunterladen in einer gitter-datenverarbeitungsumgebung
DE112019007229T5 (de) Heuristische sd-wan-routen-neukonfiguration
DE112016004860T5 (de) Verteilte Regelbereitstellung in einer Extended Bridge
DE112014000322T5 (de) Skalierbare Fluss- und Überlastungssteuerung in einem Netzwerk
DE102017122738A1 (de) Virtueller Router mit dynamischer Flussauslagerungsfähigkeit
DE112013006417B4 (de) Verlustfreie Schalterstruktur mit niedriger Latenzzeit zum Gebrauch in einem Rechenzentrum
DE202016107454U1 (de) System für die Aufrechterhaltung der Service-Level von Netzwerken
DE102014117461A1 (de) Hybrider SDN-Controller
US10164908B2 (en) Filtration of network traffic using virtually-extended ternary content-addressable memory (TCAM)
EP0632617A2 (de) Verfahren und Einrichtung zur Unterstützung des Netzwerkmanagements
DE102015001024A1 (de) Verfahren und Systeme zum Erkennen von Extrusion und Intrusion in einer Cloud-Computer-Umgebung, welche Netzwerkkommunikationsgeräte verwendet
DE102021109176A1 (de) Intelligente weiterleitung des datenverkehrs in einem weitverkehrsnetz
DE102015111820B4 (de) Auswählen eines Netzwerkes
DE102016104264A1 (de) Übertragen von Mehrfachzielpaketen in Overlay-Netzwerken
DE202016009092U1 (de) System zum Ausgleichen von Speicherdatenverkehr in konvergierten Netzwerken
DE102016203598A1 (de) Gemeinschaftliche sammlung von diagnosedaten von softwareprogrammen

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years