DE102015013946A1 - Netzwerkbasiertes Service Function Chaining - Google Patents

Netzwerkbasiertes Service Function Chaining Download PDF

Info

Publication number
DE102015013946A1
DE102015013946A1 DE102015013946.0A DE102015013946A DE102015013946A1 DE 102015013946 A1 DE102015013946 A1 DE 102015013946A1 DE 102015013946 A DE102015013946 A DE 102015013946A DE 102015013946 A1 DE102015013946 A1 DE 102015013946A1
Authority
DE
Germany
Prior art keywords
network
service
packet
service function
service chain
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.)
Pending
Application number
DE102015013946.0A
Other languages
English (en)
Inventor
Nicholas Ilyadis
Ariel Hendel
Hamid Assarpour
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of DE102015013946A1 publication Critical patent/DE102015013946A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

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

Abstract

Dienstbewusste Netzwerkvorrichtungen koordinieren Funktionsketten virtueller Funktionen. Die Netzwerkvorrichtungen haben Kenntnis darüber, welche virtuellen Funktionen existieren, und wie sie auf effizienteste Art und Weise miteinander zu verbinden sind, und definieren und verarbeiten Dienstdiagramme, die gespeichert, überwacht und weitergesendet werden können. Die Netzwerkvorrichtungen selbst implementieren und verwalten die Dienstdiagramme im Gegensatz zu den virtuellen Servern, die die virtuellen Funktionen hosten.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich auf Netzwerkfunktionsvirtualisierung.
  • Hintergrund
  • Die Verarbeitungsleistung, die Speicherkapazität, der verfügbare Speicherplatz und andere für Verarbeitungssysteme verfügbare Ressourcen sind exponentiell gestiegen. Rechnerressourcen haben sich bis zu einem Punkt entwickelt, bei dem ein einziger physikalischer Server viele virtuelle Maschinen und virtualisierte Funktionen hosten kann. Jede virtuelle Maschine stellt typischerweise virtualisierte Prozessoren, Datenspeicher, Speicher, Netzwerkverbindungsfähigkeit und andere Ressourcen bereit. Gleichzeitig sind Hochgeschwindigkeits-Datennetze entstanden und zur Reife gelangt, und bilden nun einen Teil des Rückgrats von dem, was zu einer unverzichtbaren weltweiten Datenverbindungsfähigkeit geworden ist, einschließlich der Verbindungsfähigkeit zu virtuellen Maschinenhosts. Verbesserungen der Virtualisierung treiben die weitere Entwicklung und Nutzung der Virtualisierungsfunktionalität an.
  • Kurzer Überblick über die Erfindung
  • Gemäß einem Aspekt weist ein Netzwerk-Switch auf:
    eine Netzwerkfluss-Schnittstelle zu dem Netzwerk-Switch, wobei die Netzwerkfluss-Schnittstelle dazu konfiguriert ist, einen Netzwerkfluss zu empfangen, der ein Paket aufweist;
    einen Speicher, der dazu konfiguriert ist, eine Netzwerkdienstketten-Definition zu speichern, wobei die Netzwerkdienstketten-Definition ein Dienstfunktions-Spezifikationssymbol einer Dienstfunktion aufweist, die auf einer Server-Ressource getrennt von dem Netzwerk-Switch vorgehalten wird; und
    Dienstketten-Verarbeitungsschaltung, die mit der Netzwerkfluss-Schnittstelle und dem Speicher in Verbindung steht, wobei die Dienstketten-Verarbeitungsschaltung konfiguriert ist zum:
    Bestimmen, dass die Netzwerkdienstketten-Definition für den Netzwerkfluss zutrifft;
    Bestimmen, dass das Paket als nächstes von der Dienstfunktion verarbeitet werden sollte;
    Aktualisieren eines Dienstfunktionsindexes, um den Verlauf des Pakets durch die Netzwerkdienstketten-Definition zu verfolgen;
    Kennzeichnen des Pakets mit einer Netzwerkadresse für die Dienstfunktion; und
    Weiterleiten des Pakets aus dem Netzwerk-Switch zu der Dienstfunktion auf der Server-Ressource.
  • Vorteilhaft ist die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert zum:
    Erhalten einer Flussklassifizierung für das Paket; und
    Abbilden der Flussklassifizierung auf die Netzwerkdienstketten-Definition, um zu bestimmen, dass die Netzwerkdienstketten-Definition für den Netzwerkfluss zutrifft.
  • Vorteilhaft:
    weist die Flussklassifizierung eine Anwendungskennung, eine Teilnehmerkennung oder beides auf.
  • Vorteilhaft:
    spezifiziert die Netzwerkdienstketten-Definition eine sequenzielle Reihenfolge zur Ausführung der Dienstfunktion in der Netzwerkdienstketten-Definition; und
    ist die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert zum:
    Lesen eines Paket-Headers des Pakets, um einen aktuellen Indexwert zu bestimmen; und
    Anpassen des aktuellen Indexwerts an die Netzwerkdienstketten-Definition, um zu bestimmen, dass das Paket als nächstes von der Dienstfunktion verarbeitet werden sollte.
  • Vorteilhaft:
    ist die Dienstketten-Verarbeitungsschaltung des Weiteren dazu konfiguriert, einen Dienstfunktionsindex zu aktualisieren, um die Weiterleitung des Pakets an die Dienstfunktion zur Verarbeitung zu bedingen.
  • Vorteilhaft:
    ist die Dienstketten-Verarbeitungsschaltung des Weiteren dazu konfiguriert, von der Server-Ressource das Paket nach der Verarbeitung durch die Servicefunktion zu empfangen; und
    ein Folgeziel in der Netzwerkdienstketten-Definition basierend auf dem Dienstfunktionsindex zu bestimmen.
  • Vorteilhaft:
    ist die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert zum:
    nochmaligen Aktualisieren des Dienstfunktionsindexes für das Paket, um den Verlauf des Pakets durch die Netzwerkdienstketten-Definition zu verfolgen; und
    Weiterleiten des Pakets aus dem Netzwerk-Switch an das Folgeziel.
  • Vorteilhaft:
    ist das Folgeziel eine andere Dienstfunktion, die auf einer anderen Server-Ressource vorgehalten wird.
  • Vorteilhaft:
    ist die andere Server-Ressource mit einem separaten Netzwerk-Switch verbunden.
  • Gemäß einem Aspekt umfasst ein Verfahren:
    in einem Netzwerk-Switch, der Hostserver miteinander verbindet, auf denen eine erste Dienstfunktion und eine zweite Dienstfunktion vorgehalten werden:
    Definieren, in einem Speicher, einer Netzwerkdienstketten-Definition, die eine Abfolge von Dienstfunktionen spezifiziert, mit:
    der ersten Dienstfunktion; und
    der zweiten Dienstfunktion;
    wobei die Netzwerkdienstketten-Definition aufweist:
    einen ersten Dienstfunktionsindex für die erste Dienstfunktion; und
    einen zweiten Dienstfunktionsindex für die zweite Dienstfunktion;
    wobei der erste und der zweite Dienstfunktionsindex die erste Dienstfunktion vor der zweiten Dienstfunktion anordnen;
    Empfangen eines Pakets, das Teil eines Netzwerkflusses ist;
    Empfangen von Klassifizierungsinformationen für das Paket;
    basierend auf den Klassifizierungsinformationen Bestimmen, dass die Netzwerkdienstkette für den Netzwerkfluss zutrifft;
    Bestimmen, dass die erste Dienstfunktion als nächstes das Paket verarbeiten sollte; und
    Weiterleiten des Pakets an die erste Dienstfunktion.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    Bestimmen einer Dienstkettenkennung und eines Dienstfunktionsindexes für das Paket, nachdem es empfangen wurde und bestimmt wurde, dass die Netzwerkdienstkette für den Netzwerkfluss zutrifft.
  • Vorteilhaft:
    identifiziert die Dienstkettenkennung die Netzwerkdienstketten-Definition; und
    identifiziert der Dienstfunktionsindex die erste Dienstfunktion.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    Hinzufügen eines Dienstfunktionsketten-Headers zu dem Paket, wobei der Dienstfunktionsketten-Header den Dienstfunktionsindex und die Dienstkettenkennung aufweist.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    Einstellen des Dienstfunktionsindexes, um auf die zweite Dienstfunktion zu zeigen, bevor das Paket an die erste Dienstfunktion weitergeleitet wird.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    Abbilden der Dienstkettenkennung und des Dienstfunktionsindexes auf eine Netzwerkadresse für die erste Dienstfunktion.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    wobei die Netzwerkadresse eine virtuelle Switch-Adresse, eine Dienstfunktions-Netzwerkadresse aufweist.
  • Vorteilhaft umfasst das Verfahren des Weiteren:
    vor dem Weiterleiten, Hinzufügen eines Rechenzentrums-Routingheaders zu dem Paket, wobei der Rechenzentrums-Routingheader aufweist:
    eine virtuelle Switch-Adresse eines virtuellen Switches, der als Hostserver für die erste Dienstfunktion dient; und
    eine Dienstfunktions-Netzwerkadresse für die erste Dienstfunktion auf dem Hostserver.
  • Gemäß einem Aspekt weist ein Netzwerk-Switch auf:
    eine Paketschnittstelle, die dazu konfiguriert ist, Pakete in den Netzwerk-Switch zu empfangen und Pakete aus dem Netzwerk-Switch zu kommunizieren;
    einen Speicher, der konfiguriert ist zum Speichern von:
    Netzwerkdienstketten-Definitionen, die aufweisen:
    eine erste Netzwerkdienstketten-Definition, die eine erste Abfolge von Dienstfunktionen spezifiziert, die eine erste Paketverarbeitungskette darstellen; und
    eine erste Dienstkettenkennung für die erste Netzwerkdienstketten-Definition; und
    eine Dienstketten-Abbildungstabelle, die aufweist:
    eine Klassifizierungsabbildung von der Paketklassifizierung auf die Netzwerkdienstketten-Definitionen in dem Speicher;
    einen Dienstketten-Prozessor, der mit der Paketschnittstelle in Verbindung ist, wobei der Dienstketten-Prozessor konfiguriert ist zum:
    Erhalten von Klassifizierungsinformationen für die Pakete;
    Bestimmen, aus den Klassifizierungsinformationen und der Dienstketten-Abbildungstabelle, dass die erste Netzwerkdienstkette die Pakete verarbeiten sollte;
    Bestimmen einer nächsten Dienstfunktion, die auf den Paketen ausgeführt werden soll, aus der ersten Abfolge von Dienstfunktionen;
    Verfolgen des Verlaufs der Pakete durch die erste Netzwerkdienstkette durch Aktualisieren eines Dienstfunktions-Headers der Pakete;
    Hinzufügen eines Routing-Headers zu den Paketen, wobei der Routing-Header aufweist:
    eine virtuelle Switch-Adresse eines virtuellen Switches, der mit einem Hostserver für die nächste Dienstfunktion in Verbindung ist; und
    eine Dienstfunktions-Netzwerkadresse für die nächste Dienstfunktion auf dem Hostserver; und
    Weiterleiten der Pakete aus dem Netzwerk-Switch an die nächste Dienstfunktion auf dem Hostserver.
  • Vorteilhaft:
    weist der Dienstfunktions-Header auf:
    die erste Dienstkettenkennung; und
    einen Dienstfunktionsindex in der ersten Netzwerkdienstkette.
  • Vorteilhaft:
    ist der Netzwerk-Switch dazu konfiguriert:
    die Pakete nach dem Verarbeiten durch die nächste Dienstfunktion an dem Netzwerk-Switch zurück zu empfangen; und wobei:
    der Dienstketten-Prozessor dazu konfiguriert ist:
    den Verlauf zu verfolgen durch Ändern des Dienstfunktionsindexes in der ersten Netzwerkdienstkette, um auf eine folgende Dienstfunktion zu zeigen, die der nächsten Dienstfunktion für die Pakete folgt; und
    die nach der Verarbeitung durch die nächste Dienstfunktion empfangenen Pakete an die folgende Dienstfunktion in der ersten Netzwerkdienstkette weiterzuleiten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Beispiel eines Netzwerks, das virtuelle Maschinenhosts aufweist, die durch Netzwerkvorrichtungen verbunden sind.
  • 2 zeigt einen virtuellen Maschinenhost, der dazu konfiguriert ist, virtuelle Maschinen und virtuelle Funktionen auszuführen.
  • 3 zeigt ein beispielhaftes Netzwerk für Service Function Chaining (Dienstfunktionsverkettung).
  • 4 zeigt ein Beispiel eines Top-of-Rack Switches.
  • 5 zeigt eine Overlay Tunnel Topologie für netzwerkbasiertes Service Function Chaining.
  • 6 zeigt die Weiterleitung in einer Dienstfunktionskette in einem Rack.
  • 7 zeigt die Weiterleitung in einer Dienstfunktionskette, die sich durch Top-of-Rack Switches über Racks hinweg erstreckt.
  • 8 zeigt eine beispielhafte Service Function Chain.
  • 9 zeigt ein weiteres Beispiel der Weiterleitung in einer Dienstfunktionskette, die sich durch Top-of-Rack Switches über Racks hinweg erstreckt.
  • 10 zeigt ein weiteres Beispiel der Weiterleitung in einer Dienstfunktionskette, die sich durch Top-of-Rack Switches über Racks hinweg erstreckt.
  • 11 zeigt ein weiteres Beispiel der Weiterleitung in einer Dienstfunktionskette in einem Rack.
  • 12 zeigt ein Beispiel von Logik, die durch einen Netzwerkknoten implementiert werden kann, um netzwerkbasiertes Service Function Chaining durchzuführen.
  • DETAILLIERTE BESCHREIBUNG
  • Einführung
  • Die 1 und 2 stellen einen Kontext für die weitere Erörterung des netzwerkbasierten Service Function Chaining bereit, das beginnend mit 3 unten näher beschrieben ist. Einige der unten verwendeten SFC-Abkürzungen sind in Tabelle 1 zusammengefasst:
    Tabelle 1
    Abkürzung Bedeutung
    SFC service function chaining [Dienstfunktionsverkettung]
    SC service function chain [Dienstfunktionskette]
    SCID service chain identifier [Dienstkettenkennung]
    SF service function [Dienstfunktion]
    SFI service function index [Dienstfunktionsindex]
    SCC service chain classifier [Dienstkettenklassifizierer]
    SFF service function forwarder [Dienstfunktionsversender]
    VS virtual switch [virtueller Switch]
    VM virtual machine [virtuelle Maschine]
    STEP service tunnel endpoint [Diensttunnelendpunkt]
    XTEP data center endpoint [Rechenzentrumsendpunkt]
    ToR top of rack [Oberseite des Racks]
  • 1 zeigt ein beispielhaftes Netzwerk 100. In dem Netzwerk 100 routen Netzwerkvorrichtungen Pakete (z. B. das Paket 102) von Quellen (z. B. der Quelle 104) an Ziele (z. B. das Ziel 106) über eine beliebige Anzahl und eine beliebige Art von Netzwerken (z. B. das Ethernet/TCP/IP Netzwerk 108). Die Netzwerkvorrichtungen können viele verschiedene Formen annehmen und können in beliebiger Anzahl vorliegen. Das Netzwerk 108 kann zum Beispiel mehrere Router und Switches überspannen. Beispiele für Netzwerkvorrichtungen umfassen Switches, Brücken, Router und Hubs. Andere Arten von Netzwerkvorrichtungen können jedoch ebenso in dem Netzwerk 100 vorhanden sein.
  • Das Netzwerk 100 ist nicht auf eine bestimmte Implementierung oder einen bestimmten geografischen Bereich begrenzt. Um nur einige Beispiele zu nennen, kann das Netzwerk 100 ein privates firmenweites Intranet, ein Fernverteilungsnetz für Kabel- oder Satellitenfernsehen, Internet-Zugang und Audio- und Video-Streaming, oder ein globales Netzwerk (z. B. das Internet) kleinerer miteinander verbundener Netzwerke repräsentieren. In dieser Hinsicht kann das Rechenzentrum 110 eine hoch konzentrierte Serverinstallation 150 mit dazugehörigem Netzwerk-Switch und Router-Verbindungsfähigkeit 152 darstellen. Das Rechenzentrum 110 kann E-Commerce mit extrem großem Volumen, Suchmaschinen, Cloudspeicher und Clouddienste, Streaming Video- oder Audiodienste oder beliebige andere Arten von Funktionalität unterstützen.
  • Bei dem Beispiel von 1 weist das Netzwerk 100 Betreiber und Anbieter von Kabel- oder Satellitenfernsehdiensten, Telefondiensten und Internetdiensten auf. In dieser Hinsicht zeigt 1 zum Beispiel, dass das Netzwerk 100 eine beliebige Anzahl von Cable Modem Termination Systems (CMTSs) 112 aufweisen kann. Die CMTSs 112 können für eine beliebige Anzahl von Gateways, z. B. die Gateways 114, 116, 118, Dienste anbieten. Die Gateways können Kabelmodems, kombinierte Kabelmodems und drahtlose Router oder andere Arten von Eintrittspunktsystemen in beliebige einer breiten Vielfalt von Orten 121 darstellen, zum Beispiel Häuser, Büros, Schulen und Regierungsgebäude. Das Netzwerk 100 kann andere Arten von Endsystemen und Gateways aufweisen. Das Netzwerk 100 kann zum Beispiel Digital Subscriber Line (DSL) Endsysteme und DSL-Modems aufweisen, die als Eintrittspunkte in Häuser, Büros oder andere Orte dienen.
  • An jedem gegebenen Ort kann sich das Gateway mit einer beliebigen Anzahl und einer beliebigen Art von Knoten verbinden. Bei dem Beispiel von 1 weisen die Knoten Digitalempfänger (Set Top Boxes; STBs), zum Beispiel die STBs 120, 122, 124, auf. Andere Beispiele von Knoten weisen netzwerkverbundene intelligente TVs 126, Audio-/Video-Receiver 128, digitale Videorecorder (DVRs) 130, Streaming Media Player 132, Spielesysteme 134, Computersysteme 136 und Player für physikalische Medien (z. B. BluRay) auf. Die Knoten können jede Art von Teilnehmer-Endgeräten (Customer Premises Equipment; CPE) repräsentieren.
  • 2 zeigt einen virtuellen Maschinenhost 200 (”Host”), der dazu konfiguriert ist, virtuelle Switches, virtuelle Maschinen und virtuelle Funktionen auszuführen. Alle der Vorrichtungen in dem Netzwerk 100 können Hosts sein, einschließlich der Knoten, Gateways, CMTSs, Switches, Server, Quellen und Ziele. Die Hosts stellen eine Umgebung bereit, in der jede ausgewählte Funktionalität laufen kann, durch das Netzwerk 100 erreichbar sein kann und die Gesamtheit oder einen Teil einer Kette von Funktionalitäten bilden kann, um jede definierte Verarbeitungs- oder Inhaltslieferungsaufgabe zu erfüllen. Die Funktionalität kann in dem Sinne virtuell sein, dass beispielsweise die virtuellen Funktionen als Software, die auf den Hosts läuft, Funktionen implementieren, die in der Vergangenheit mit dedizierter Hardware ausgeführt wurden.
  • In 2 weist der Host 200 eine oder mehrere Kommunikationsschnittstellen 202, Systemschaltung 204, Eingangs-/Ausgangsschnittstellen 206 und eine Anzeige 208 auf, auf der der Host 200 eine Benutzerschnittstelle 209 erzeugt. Die Kommunikationsschnittstellen 202 können Sender und Empfänger („Transceiver”) 238 und beliebige Antennen 240 aufweisen, die von den Transceivern 238 verwendet werden. Die Transceiver 238 können Bitübertragungsschichtschnittstellen für jedes eines weiten Bereichs von Kommunikationsprotokollen 242 bereitstellen, zum Beispiel jede Art von Ethernet, Data Over Cable Service Interface Specification (DOCSIS), Digital Subscriber Line (DSL), Multimedia over Coax Alliance (MOCA), oder ein anderes Protokoll. Wenn die Kommunikationsschnittstellen 202 mobile Verbindungsfähigkeit unterstützen, kann der Host auch eine SIM-Karten-Schnittstelle 210 und eine SIM-Karte 212 aufweisen. Der Host 200 weist auch Speichervorrichtungen wie zum Beispiel Festplattenlaufwerke (hard disk drives; HDDs) 214 und Festkörperlaufwerke (solid state disk drives; SDDs) 216, 218 auf.
  • Die Benutzerschnittstelle 209 und die Eingangs-/Ausgangsschnittstellen 206 können eine graphische Benutzerschnittstelle (graphical user interface; GUI), eine berührungsempfindliche Anzeige, Sprach- oder Gesichtserkennungseingänge, Schaltflächen, Switches, Lautsprecher und andere Benutzerschnittstellenelemente aufweisen. Zusätzliche Beispiele der Eingangs-/Ausgangs-Schnittstellen 206 weisen Mikrofone, Video- und Standbild-Kameras, Kopfhörer- und Mikrofon-Eingangs-/Ausgangs-Buchsen, Universal Serial Bus (USB) Stecker, Speicherkartenschlitze und andere Arten von Eingängen auf. Die Eingangs-/Ausgangs-Schnittstellen 206 können des Weiteren magnetische oder optische Medienschnittstellen (z. B. ein CDROM- oder DVD-Laufwerk), serielle und parallele Busschnittstellen und Tastatur- und Mausschnittstellen aufweisen.
  • Die Systemschaltung 204 kann jede beliebige Kombination aus Hardware, Software, Firmware oder anderer Logik aufweisen. Die Systemschaltung 204 kann zum Beispiel mit einem oder mehreren Systemen auf einem Chip (systems an a chip; SoC), anwendungsspezifischen integrierten Schaltungen (application specific integrated circuit; ASIC), diskreten analogen und digitalen Schaltungen und anderen Schaltungen implementiert werden. Die Systemschaltung 204 ist Teil der Implementierung jeder gewünschten Funktionalität in dem Host 200. In dieser Hinsicht kann die Systemschaltung 204 Schaltung aufweisen, die, um nur einige Beispiele zu nennen, das Laufen virtueller Maschinen, Switches und Funktionen, das Routen von Paketen zwischen den virtuellen Maschinen und dem Netzwerk, und das Schalten von Paketen zwischen den virtuellen Maschinen erleichtert.
  • Um nur ein Beispiel zu nennen, kann die Systemschaltung 204 einen oder mehrere Prozessoren 220 und Speicher 222 aufweisen. Der Speicher 222 und die Speichervorrichtungen 214, 216 speichern zum Beispiel Steuerbefehle 224 und ein Betriebssystem 226. Der Prozessor 220 führt die Steuerbefehle 243 und das Betriebssystem 226 aus, um jede gewünschte Funktionalität für den Host 200 durchzuführen. Die Steuerparameter 228 liefern und spezifizieren Konfigurations- und Betriebsoptionen für die Steuerbefehle 224, das Betriebssystem 226 und andere Funktionalität des Hosts 200.
  • Bei einigen Implementierungen weisen die Steuerbefehle 224 einen Hypervisor 230 auf. Der Hypervisor 230 stellt eine Überwachungssoftwareumgebung bereit, die eine oder mehrere virtuelle Maschinen (VMs), virtuelle Switches (VSs) 232, virtuelle Firewalls, virtuelle Betriebssysteme, virtuelle Netzwerkschnittstellenkarten (network interface cards; NICs) oder beliebige andere gewünschte Virtualisierungskomponenten ausführt. Bei anderen Implementierungen ist der Host 200 ein Virtualisierungshost direkt auf der Hardware. Das heißt, der Host 200 braucht kein separates Betriebssystem 226 ausführen, auf dem der Hypervisor 230 läuft. Stattdessen kann der Hypervisor 230 direkt mit den physikalischen Hardware-Ressourcen in dem Host 220 kommunizieren und diese steuern, ohne Überwachung oder Eingreifen durch ein separates Betriebssystem.
  • Der Host 200 kann eine beliebige Anzahl von VMs 234 ausführen. Jede VM kann eine beliebige Anzahl oder Art von virtuellen Funktionen (VFs) 236 ausführen. Die VFs können Softwareimplementierungen jeder gewünschten Funktionalität sein, die zum Beispiel von hoch spezialisierten Netzwerkfunktionen bis zu Verarbeitungsfunktionen für den allgemeinen Zweck reicht.
  • Um nur einige Beispiele von Dienstfunktionen zu nennen, können die VFs 236 Netzwerk-Firewalls, Nachrichten-Spamfilter und Netzwerkadress-Translatoren implementieren. Als anderes Beispiel von Verarbeitungsfunktionen können die VFs 236 Audio- und Video-Codierer und -Transcodierer, digitales Rechtemanagement(digital rights management; DRM)-Verarbeitung, Datenbank-Nachschlagen, E-Commerce Transaktionsverarbeitung (z. B. Rechnungstellung und Zahlung), Webhosting, Content Management, kontextgesteuerte Werbung und Sicherheitsverarbeitung wie zum Beispiel High-bandwidth Digital Content Protection (HDCP) und Digital Transmission Content Protection(DTCP-IP)-Verarbeitung implementieren. Zusätzliche Beispiele für VFs 236 umfassen Audio-, Video- und Bildkomprimierung und -dekomprimierung, wie zum Beispiel H.264-, MPG- und MP4-Komprimierung und -Dekomprimierung, Audio- und Video-Vor- und -Nachbearbeitung, Serverfunktionalität wie zum Beispiel Video-auf-Abruf-Server, DVR-Server, Over The Top (OTT) Server, Speicherung, Erzeugung und Anwendung sicherer Schlüssel, und Anzeigen von 2D- und 3D-Grafiken.
  • Netzwerkbasiertes Service Chaining
  • Netzwerkbasiertes Service Function Chaining (SFC) bedingt ein dienstbewusstes Netzwerk. In dem Netzwerk selbst haben Netzwerkvorrichtungen wie zum Beispiel Top of Rack (ToR) Switches Kenntnis darüber, welche Dienstfunktionen (service functions; SFs) existieren, z. B. die VFs 236, welche Hosts die Dienstfunktionen ausführen, über die Verbindungsfähigkeitspfade zwischen Hosts und den Netzwerkvorrichtungen, und wie die Dienstfunktionen auf effiziente Weise zu verbinden sind, um eine Ende-zu-Ende-Dienstkette (service chain; SC) der Verarbeitung zu bilden. Dienstfunktionen können virtuelle Funktionen (virtual functions; VFs) sein, die auf einer VM laufen, können nicht virtualisierte Funktionen beliebiger Art sein, die auf einem physikalischen Server außerhalb einer Virtualisierungsumgebung laufen, oder können anderweitig in Vorrichtungen vorgehalten werden, die mit dem Netzwerk verbunden sind.
  • Die Netzwerkvorrichtungen (z. B. die ToR-Switches) überwachen, erzeugen und speichern Definitionen von SCs, die eine Sequenz von Dienstfunktionen für eine beliebige gewünschte Paketverarbeitung definieren. Die Netzwerkvorrichtungen bestimmen den nächsten Hop für Pakete entlang einer beliebigen gegebenen SC und verfolgen den Verlauf durch die SC. Ein Ergebnis ist, dass die Hosts 200, die VFs 236 und die virtuellen Switches 234 keine Informationen über den Weiterleitungszustand der Dienstverkettung speichern müssen. Stattdessen verarbeiten die Hosts 200 die Pakete lokal gemäß den gehosteten SFs, die zu einer beliebigen gegebenen SC zugehörig sind, und senden diese Pakete nach der Verarbeitung an die Netzwerkvorrichtungen zurück. Die Netzwerkvorrichtungen treffen eine Entscheidung über die nächste SF und den Ort der nächsten SF. Dann leiten die Netzwerkvorrichtungen die Pakete an das geeignete Ziel zur fortgesetzten Verarbeitung durch die SC weiter.
  • Die SFC-Fähigkeiten des Netzwerks ermöglichen es einem Netzwerk, logische Verbindungen unter und zwischen einer oder mehreren Dienstfunktionen in einer bestimmten Reihenfolge zu erzeugen, um eine Sequenz von Dienstfunktionen bereitzustellen, die von der zugrunde liegenden physikalischen Netzwerktopologie unabhängig ist. Die Architektur kann als Teil von SFC mehrere funktionelle Komponenten implementieren, einschließlich eines SFC-Klassifizierers (SFC Classifier; SCC) und eines Dienstfunktions-Absenders (Service Function Forwarder; SFF). Der SCC kann die Teilnehmer- oder Kunden-Paketflüsse oder -Teilflüsse auf eine bestimmte SC abbilden, zum Beispiel im Ansprechen auf eine festgelegte Richtlinie für den Kunden, den Verkehrstyp, den Grad der Dienstgüte, Zeit und Datum, Quelle oder andere Abbildungskriterien.
  • Der SFF leitet Pakete von einer SF an die nächste im Kontext der für den Paketfluss bestimmten SC weiter. Es wird angemerkt, dass anstatt des Implementierens der SCC- und der SFF-Funktionen in einem Serverknoten (oder einer anderen Endpunktvorrichtung) die unten beschriebene Architektur diese Funktionen in den Netzwerkvorrichtungen selbst implementieren kann. Bei anderen Implementierungen werden die Informationen der SFC-Klassifizierung durch Knoten bestimmt, die sich von den Netzwerkvorrichtungen, die SFC durchführen, unterscheiden, und diese Knoten liefern die Klassifizierungsinformationen an die Netzwerkvorrichtungen, die SFC durchführen.
  • Anders ausgedrückt kann die Architektur SFC mit der Hardwareverarbeitungsfähigkeit eines Netzwerk-Switches implementieren. Als ein bestimmtes Beispiel kann die Architektur SFC in einem ToR-Switch implementieren. In einigen Fällen ist der Netzwerk-Switch Teil eines Rechenzentrums und kann sich die SFC-Verantwortung mit anderen Netzwerk-Switches in dem Rechenzentrum oder anderswo teilen. Das heißt, das SFC kann unter mehreren Netzwerkvorrichtungen verteilt werden, von denen jede für einen Teil der SC verantwortlich ist.
  • 3 zeigt ein beispielhaftes Netzwerk 300 für SFC. Das SFC ist netzwerkbasiert und verwendet SFC-fähige ToR-Switches 302, 304 und 306. Die ToR-Switches können skalierbare SFC-Prozessoren aufweisen, die die weiter unten beschriebene SFC-Verarbeitung durchführen. Bei einer Implementierung speichern nur die ToR-Switches SF-Erreichbarkeitstabellen und andere Zustandsinformationen zum Implementieren von SFC. Das heißt, die Server 308, 310 und 312 brauchen keine Erreichbarkeitstabellen oder andere Zustandsinformationen zur Unterstützung von SFC speichern.
  • Ein technischer Vorteil ist demgemäß, dass es weniger Berührungspunkte für das Vorhalten und die SC-Definition und -Verwaltung gibt. Die Architektur stellt ein besseres Modell für die Durchsetzung von Dienstgütevereinbarung (Service Level Agreement; SLA) bereit, mit einem verbesserten Betriebs- und Verwaltungs(Operations and Management; CAM)-Modell für Ende-zu-Ende-Sichtbarkeit. Außerdem stellt die Architektur höhere Leistung bereit, was effektivere und effizientere Nutzung von Vorrichtungsknoten erlaubt. Die Architektur ist auch für die Verwendung jeder Größe, von klein bis zu sehr groß, geeignet.
  • 4 zeigt zwei beispielhafte Implementierungen einer Netzwerkvorrichtung, einen Top-of-Rack Switch 400. Jede der Komponenten des in 4 gezeigten Switches 400 kann logisch, physikalisch oder als Kombination von logischen und physikalischen Elementen implementiert werden. Der Switch 400A zeigt eine Mehrgerät-Implementierung, während der Switch 400B eine Eingerät-Implementierung zeigt. Der Switch 400 weist einen Service Chain Prozessor (SCP) 402 und einen Underlay Switch 404 auf. Der Underlay Switch 404 kann viele verschiedene Funktionen implementieren. Um zwei Beispiele zu nennen, kann der Underlay Switch 404 einen Rechenzentrumstunnelendpunkt (XTEP) 406 implementieren und kann einen virtuellen Switch (VS) 408 aufweisen. Als spezifisches Beispiel können Trident Series Ethernet Switch ASICs den Underlay Switch 404 implementieren. Als anderes Beispiel kann eine Caladan 3 Netzwerkverarbeitungseinheit (network processing unit; NPU) den SCP 402 implementieren. Wenn der SCP 402 und der Underlay-Switch 404 in einer einzigen Vorrichtung integriert sind, können Qumran und Jericho Switch ASICs den kombinierten Funktionalitätssatz implementieren. Diese NPUs und ASICs sowie andere Implementierungsoptionen unterscheiden sich durch Skalierungs- und Leistungsfähigkeit und sind von Broadcom in Irvine, CA, erhältlich.
  • Wie oben angemerkt, können die in 4 gezeigten Funktionsblöcke als separate Geräte implementiert werden oder können in verschiedenen Kombinationen in einem oder mehreren Geräten vorliegen. Bei einigen Implementierungen sind zum Beispiel der SCP 402 und der Underlay Switch 404 in einem einzigen Gerät integriert, während sie bei anderen Implementierungen in separaten Geräten implementiert sind. Wenn sie integriert sind, können die Funktionsblöcke, um nur ein Beispiel zu nennen, verteilt werden, um eine flexible Paketverarbeitungspipeline zu bilden. Eine integrierte Implementierung kann zum Beispiel in Qumran oder Jericho Schaltgeräten vorgenommen werden. Anders ausgedrückt kann der SCP 402 einer Switch-Architektur in Form einer separaten NPU hinzugefügt werden (wie zum Beispiel durch die Implementierung 400A in 4 gezeigt ist), oder der SCP 402, der Underlay Switch 404 und beliebige andere Funktionsblöcke können in einem einzigen Gerät integriert werden, zum Beispiel als Teil einer Verarbeitungspipeline (wie zum Beispiel durch die Implementierung 400B in 4 gezeigt ist).
  • Bei diesem Beispiel implementiert der SCP 402 in dem Switch 400 einen SCC 410. Der SCC 410 kann ankommende Paketflüsse auf beliebiger Grundlage auf eine bestimmte SC abbilden, z. B. durch eine beliebige Kombination aus Kunde, Quellenanwendung, Zielanwendung, QoS, Zeit/Datum oder einen anderen Parameter. Bei einigen Implementierungen führt der SCC 410 die Klassifizierung durch Abbilden von {Application ID, Subscriber ID/Class} (Anwendungskennung, Teilnehmerkennung/Klasse) von empfangenen Paketen auf {Service Chain ID, Service Function Index} (Dienstkettenkennung, Dienstfunktionsindex) durch. Das Abbilden kann durch Durchsuchen der Dienstketten-Abbildungstabelle (service chain mapping table; SCMT) 448 erfolgen, die eine Klassifizierungsabbildung von Paketklassifizierung auf die Netzwerkdienstketten-Definitionen in dem Speicher 440 speichert.
  • Der SCC 410 kann auch jedem Paket in dem Paketfluss gemäß der Abbildung einen Klassifizierungs-Header hinzufügen, der zum Beispiel {Service Chain ID, Service Function Index} (Dienstkettenkennung, Dienstfunktionsindex) enthält. Die Dienstkettenkennung (service chain ID; SCID) identifiziert eine bestimmte SC-Definition in dem Speicher 440, und der Dienstfunktionsindex (service function index; SFI) zeigt auf die nächste SF, die für die empfangenen Pakete auszuführen ist. Die Anfangspakete, die in einem Paketfluss empfangen werden, können mit einem SFI gekennzeichnet werden, der auf die erste SF zeigt, die in der SC auszuführen ist, auf die der SCC 410 den Paketfluss abgebildet hat. Der Speicher 440 kann eine beliebige Anzahl von SC-Definitionen speichern. In 4 sind drei der Definitionen bezeichnet als SC-Definition 1 442, SC-Definition 444 und SC-Definition 'n' 446, jeweils mit eindeutigen SCIDs.
  • Bei dem Beispiel von 4 implementiert der SCP 402 auch den SFF 412. Der SFF 412 kann Pakete von einer SF zur nächsten in einer gegebenen SC weiterleiten, wie unten genauer beschrieben wird. Bei einer Implementierung bildet der SFF 412 {Service Chain ID, Service Function index} (Dienstkettenkennung, Dienstfunktionsindex), die im Paketklassifizierungs-Header vorliegen, auf {VS network address, SF network address} (VS Netzwerkadresse, SF Netzwerkadresse) ab. Der SFF dekrementiert auch den SFI und aktualisiert den SFC-Header auf den Paketen, der den SFI speichert, um den Verlauf der Pakete durch die SFs in der abgebildeten SC zu verfolgen und zu speichern.
  • Der SCP 402 kann des Weiteren einen Diensttunnel-Endpunkt (service tunnel end point; STEP) 414 implementieren. Der STEP 414 kann Dienst-Overlay-Netze für SF-Verbindungsfähigkeit unterstützen. Der STEP 414 kann auch Dienst-Overlay-Tunnelheader auf den Paketen, die einer SC unterliegen, hinzufügen, löschen und aktualisieren. Die Dienst-Overlay-Tunnelheader verbinden zum Beispiel einen ersten SCP mit einem anderen SCP oder mit einem VS.
  • Der SCP 402 kann auch einen Rechenzentrumstunnelendpunkt (data center tunnel end point; XTEP) 416 implementieren. Der XTEP 416 unterstützt ein Rechenzentrums-Overlay-Netz für VS-Verbindungsfähigkeit. Insbesondere kann der XTEP 416 Dienst-Overlay-Tunnelheader auf den Paketen, die einer SC unterliegen, hinzufügen, löschen und aktualisieren. Der Dienst-Overlay-Tunnelheader kann einen SCP mit einer SF in einem Host verbinden, der zum Beispiel direkt mit dem TOR Switch verbunden ist, der aktuell die Pakete verarbeitet.
  • Es wird angemerkt, dass der Underlay Switch 404 unter Verwendung der äußeren Header der Pakete Schicht 2- und Schicht 3-Weiterleitung implementieren kann. Die Pakete können von einer beliebigen Kombination aus SCP 402 und Paketschnittstellen 418 und 420 stammen. Die Schnittstelle 418 kann eine Uplink Schnittstelle sein, zum Beispiel zu anderen ToR Switches in demselben Rechenzentrum oder anderswo. Die Schnittstelle 420 kann eine Serverknotenschnittstelle sein, zum Beispiel zu Servern in demselben Rack wie der Switch 400. Jede Kombination aus physikalischen und logischen Schnittstellen 422 verbindet den SCP 402 und den Underlay Switch 404.
  • Einige der technischen Vorteile der Architektur 100 umfassen, dass die Serverknoten den Aufwand des Speicherns eines SFC-Weiterleitungszustands nicht auf sich nehmen müssen. Außerdem können die ToR Switches, die die Netzwerk-Architektur bilden (was ToR Switches in verschiedenen Server Racks einschließen kann), unter Verwendung von Rechenzentrums-Overlay-Tunneln wie zum Beispiel Virtual Extensible Local Area Network (VXLAN), Network Virtualization using Generic Routing Encapsulation (NVGRE), Generic Network Virtualization Encapsulation (Geneve), Shortest Path Breaching (SPB) entweder vollständig oder teilweise miteinander verbunden sein. Der Tunnelendpunkt kann in jedem ToR ein SCP sein. Des Weiteren ist bei einigen Implementierungen das Vorsehen eines Tunnels statisch. Das heißt, das Vorsehen eines Tunnels kann einmal konfiguriert werden und dann selektiv modifiziert werden, zum Beispiel wenn sich die physikalische Topologie ändert.
  • Weitere technische Vorteile umfassen, dass jedes ToR in einem Rack mit jedem Serverknoten in diesem Rack logisch verbunden werden kann, indem zumindest ein Rechenzentrums-Overlay-Tunnel verwendet wird, zum Beispiel VXLAN-, NVGRE-, Geneve-, SPB-Tunnel. Der Tunnelendpunkt in dem ToR ist ein SCP, und der Endpunkt in dem Server kann ein virtueller Switch (VS) sein. Wenn es mehrere VSs pro Server gibt, dann kann jeder VS mit einem separaten Rechenzentrums-Overlay-Tunnel mit dem SCP in dem ToR verbunden sein. Wiederum kann das Vorsehen eines Tunnels statisch sein, indem das Vorsehen eines Tunnels einmal konfiguriert werden und dann selektiv modifiziert werden kann, zum Beispiel, wenn sich die physikalische Topologie ändert.
  • Zusätzliche technische Vorteile umfassen, dass jedes ToR in einem Rack mit jeder VM, die ein Behälter für eine SF in diesem Rack ist, unter Verwendung eines Dienst-Overlay-Tunnels logisch verbunden werden kann. Der Diensttunnel-Endpunkt in dem ToR ist der SCP, und in dem Serverknoten ist es die VM. Die Diensttunnel-Endpunkt-Verarbeitung kann für jede VM in dem Serverknoten in dem virtuellen Switch, in dem VM-Gastbetriebssystem (operating system; OS) oder in der Netzwerkfunktion selbst implementiert werden.
  • 5 zeigt eine beispielhafte Overlay-Tunnel-Topologie 500 für netzwerkbasiertes SFC. Jeder ToR SCP 502, 504 und 506 kann einen Erreichbarkeits- oder Weiterleitungszustand für SFs speichern, die direkt damit verbunden sind, z. B. in dem lokalen Rack 508, 510, 512. Wenn sich die nächste SF in der Dienstkette in einem anderen Rack befindet, leitet der Quellen-ToR-SCP das Paket an den Ziel-ToR-SCP für dieses andere Rack weiter, zum Beispiel durch Senden der Pakete an diesen Ziel-ToR-SCP in dem anderen Rack. Der Ziel-ToR-SCP leitet dann das Paket an die Ziel-SF weiter, zum Beispiel durch Senden der Pakete an einen VS, der mit VMs in Verbindung steht, welche in einem Host laufen, der mit diesem Ziel-ToR verbunden ist. Der Underlay Core Switch (UCS) 514 repräsentiert in jedem ToR Switch die Underlay Switches und kann die ToR SCPs 502, 504 und 506 durch jede Art von physikalischer oder logischer Netzwerktopologie verbinden.
  • 6 zeigt die Weiterleitung 600 in einer beispielhaften SC 650 in einem Rack von Servern 652, 654 und 656, die durch einen Netzwerk Switch 658 verbunden sind und bedient werden. 6 zeigt den Beginn 602 der Dienstkette 650 und den Dienst-Overlay-Tunnelanfangspunkt. 6 zeigt auch das Ende 604 der Dienstkette 650 und den Dienst-Overlay-Tunnelendpunkt. Die Dienstkette 650 beginnt und endet in demselben Server Rack, wobei die VFs auf den Servern 652, 653 und 656 vorgehalten werden, die mit dem Netzwerk Switch 658 verbunden sind. [051] Es wird angemerkt, dass bei diesem Beispiel weder die SFs noch die VSs irgendwelche SFC Weiterleitungszustandsinformationen speichern. Die VSs senden Pakete, die zu der SC zugehörig sind, wie durch beliebige Identifizierungsinformationen bestimmt, ob in dem Paket oder gemäß VLAN-, Tunnel- oder anderen Netzwerkkennungen, die zu dem Paket zugehörig sind, an den lokalen Netzwerk Switch 658 zurück. Bei einer Implementierung senden die VSs die Pakete durch Swappen der Quelle (source; SRC) und des Ziels (destination; DST) sowohl im Rechenzentrum als auch in den Dienst-Overlay-Tunnelheadern auf den Paketen zurück. Der Swap wird durchgeführt, um die Pakete zur weiteren Verarbeitung an das ToR zurückzusenden, weil in dem VS kein Zustand gespeichert ist. In dieser Hinsicht können die VSs vorab mit Flusstabellen versehen werden, die die Adressen (z. B. die ToR Switch-Adressen) spezifizieren, für welche der VS das Swappen durchführen wird.
  • 6 zeigt auch ein beispielhaftes Paket 660. Das Paket weist Nutzdaten 662 und SFC Header auf. Die SFC Header können zum Beispiel einen Rechenzentrums-Overlay-Tunnelheader 664 aufweisen, der die Pakete an einen bestimmten VS leitet, der mit der VM in Verbindung steht, welche die nächste SF hostet. Die SFC Header können auch einen Dienst-Overlay-Tunnelheader 666 aufweisen, der die Netzwerkadresse der SF spezifiziert, die mit dem VS verbunden ist. Der SFF 412 kann die SFC Header erzeugen, hinzufügen, aktualisieren und entfernen, während Pakete zunächst an dem ToR Switch ankommen, Pakete der Reihe nach an bestimmte SFs gesendet werden und nach der Verarbeitung von der SF zurück erhalten werden, und während Pakete ihre Verarbeitung durch die SC beenden.
  • 7 zeigt ein Beispiel von netzwerkbasierten SFC 700, mit einer SC, die sich durch mehrere Netzwerkvorrichtungen 702, 704 und 706 und über die Racks 708, 710 und 712 hinweg erstreckt. 7 zeigt den Dienstkettenbeginn 714 in der Netzwerkvorrichtung 702. Der Dienstkettenbeginn 714 kann der Dienst-Overlay-Tunnelanfangspunkt sein, zum Beispiel, wo die Netzwerkvorrichtung 702 die Rechenzentrums- und Dienst-Overlay-Tunnel-Header in die Pakete einfügt. 7 zeigt auch das Dienstkettenende 716. Das Dienstkettenende 716 kann der Dienst-Overlay-Tunnelendpunkt sein, zum Beispiel, wo die Netzwerkvorrichtung 706 die Rechenzentrums- und Dienst-Overlay-Tunnel-Header aus den Paketen entfernt.
  • Wenn Pakete, die einer SC unterliegen, zwischen zwei Netzwerkvorrichtungen weitergeleitet werden, zum Beispiel von der Netzwerkvorrichtung 702 an die Netzwerkvorrichtung 704, dann muss die sendende Netzwerkvorrichtung 702 die Dienst-Overlay-Tunnelkennung in dem Paket nicht ändern. Stattdessen kann die empfangende Netzwerkvorrichtung den Dienst-Overlay-Tunnelheader aktualisieren, bevor sie das Paket an ihre lokale SF sendet.
  • Es wird angemerkt, dass auch bei diesem Beispiel die SFs und VSs keine SFC Weiterleitungszustandsinformationen speichern. Die VSs senden Pakete, die zu der SC zugehörig sind, wie durch beliebige Identifizierungsinformationen bestimmt, ob in dem Paket oder gemäß VLAN-, Tunnel- oder anderen Netzwerkkennungen, die zu dem Paket zugehörig sind, an ihre lokale Netzwerkvorrichtung zurück. Die VSs können Pakete zum Beispiel durch Swappen von SRC und DST sowohl in den Rechenzentrums- als auch in den Dienst-Overlay-Tunnelheadern zurücksenden.
  • 7 zeigt ToR-Switch-an-ToR-Switch-Verkehr zum Handhaben von SCs, die über ToR Switches hinweg verteilt sind. Die SCP Funktion aktualisiert in jedem ToR Switch die Rechenzentrums- und Dienst-Overlay-Tunnelheader, um die Pakete entlang der SC zu dem nächsten Hop zu leiten. Die SCP Funktion muss in jedem ToR Switch nur den Teil der SC verarbeiten, der die VSs, VMs und SF enthält, die direkt mit diesem ToR Switch verbunden sind. Die SCP Funktion kann in jedem ToR Switch ein Nachschlagen hinsichtlich des Dienstketten-Headers durchführen (der zum Beispiel den Dienstfunktionsindex und die Dienstkettenkennung aufweisen kann), um zu ermitteln, ob dieser ToR Switch für irgendeinen Teil der SC verantwortlich ist. Das heißt, jeder ToR Switch kann ein Dienstfunktions-Weiterleitungsnachschlagen durchführen, zum Beispiel hinsichtlich {SCID, SFI}, und im Ansprechen darauf sowohl die Rechenzentrums- als auch die Dienst-Overlay-Tunnelheader aktualisieren. Der Dienst-Overlay-Tunnelheader auf Paketen, die zwischen ToR Switches wandern, können einfach Platzhalterdaten sein, und werden durch den nächsten ToR Switch, der den nächsten Teil der SC behandelt, durch Netzwerkadressdaten für die SF ausgetauscht.
  • 8 zeigt eine beispielhafte Dienstfunktionskette (service function chain; SC) 800. Eine SC kann als vordefinierte Sequenz von SFs implementiert werden. Die Sequenz von SFs kann einen vorbestimmten Datenebenendienst für Paketflüsse durch die Netzwerkvorrichtung(en) liefern, die die SC implementiert/implementieren. Wie oben erwähnt, können einzelne Netzwerkvorrichtungen SCs definieren, speichern und verwalten. Jede SC kann eine SCID als eindeutige ID innerhalb des Netzwerks haben, die die SC als bestimmte Kette von SFs kennzeichnet. Die Netzwerkvorrichtungen können einen Dienstfunktionsindex (service function index; SFI) als Index für eine SF in der spezifizierten SC speichern.
  • Ein SCC bildet Paketflüsse auf eine SCID ab, indem er die Pakete mit Headerinformationen kennzeichnet, zum Beispiel durch Abbilden von {Application ID, Subscriber ID/Class} (Anwendungskennung, Teilnehmerkennung/Klasse) von empfangenen Paketen auf {Service Chain ID, Service Function Index} (Dienstkettenkennung, Dienstfunktionsindex). Der SCC kann überall in dem Netzwerk implementiert werden. Beim Eintritt führt der SCC eine Identifizierung und Klassifizierung von Verkehr während des Abbildens auf eine bestimmte SC (oder auf keine SC) durch. Der SCC kann die Analyse auf Makroebene durchführen, zum Beispiel basierend auf jeglichem Verkehr von einem anderen Netzwerk gemäß der IP-Adresse des Netzwerks, basierend auf einem Segment des Netzwerks (z. B. Port oder Teilnetzwerk), basierend auf Nutzer oder Eigentümer des Verkehrs, oder basierend auf der Anwendung, die die Pakete erzeugt (um nur einige Beispiele zu nennen, einer Voice-over-IP Anwendung, einer Dateiübertragungsanwendung, einer Virtual Private Network(VPN)-Anwendung, einer Anwendung, die verschlüsselten Inhalt erzeugt, oder einer Video- oder Audio-Streaming-Anwendung). Beim Durchführen des Abbildens kann der SCC Deep Packet Inspection (DPI) durchführen, um eine spezifische SC zu ermitteln, durch welche die Pakete verarbeitet werden sollten.
  • Der SFF leitet Pakete von einer SF zu einer nächsten innerhalb einer SC weiter. Der SFF kann Pakete durch Abbilden von {SCID, SF1} auf eine physikalische Netzwerkadresse, z. B. {VS network address, SF network address} (VS Netzwerkadresse, SF Netzwerkadresse) weiterleiten. Die SF an der physikalischen Netzwerkadresse führt die nächste Dienstfunktion durch, die in der SC spezifiziert ist. Bei Beendigung der SC entfernt eine Dienstkettenbeendigungs(service chain termination; SCT)-Funktion die Dienstkettenkennungen/-header von den Paketen, und die Pakete kehren zu Nicht-SC-Routing durch die Netzwerk Switches zurück.
  • Bei dem Beispiel von 8 hat der SCC bestimmt, dass ein ankommender Paketfluss 802 der SC 800 unterliegen sollte. Der Paketfluss 802 verläuft durch die SC, die vier SFs der Reihe nach definiert: SF1, eine Deep Packet Inspection; SF2, eine Firewall, SF3, eine Netzwerkadressen-Übersetzung; und SF4, einen Wide Area Network Optimierer. Vor jeder SF bestimmt der SFF die nächste SF für das Paket, indem er den SF1 speichert (z. B. durch Inkrementieren oder Dekrementieren des SF1), um zu verfolgen, welche SF in der SC die Pakete als nächstes verarbeiten sollte.
  • 9 zeigt ein weiteres Beispiel des Weiterleitens 900 durch eine SC 902, die sich durch ToR Switches über Racks 904, 906 und 908 hinweg erstreckt. Die SC 902 weist vier SFs der Reihe nach auf: SF1, SF2, SF3, dann SF4. Vor dem Eintreten in die SC identifiziert ein Teilnehmer-Klassifizierer (subscriber classifier; SUBC) (Funktionsknoten A) Paketflüsse, die zu einem Teilnehmer zugehörig sind, und bildet die Flüsse auf eine bestimmte Flusskennung ab. Der SCC (Funktionsknoten B) bildet die Flusskennung (und optional zusätzliche Eigenschaften wie zum Beispiel die Paketquelle) auf eine SC ab und kennzeichnet die Pakete mit einem SFC-Klassifizierungsheader, der die SCID enthält.
  • Anders ausgedrückt kann, wenn Pakete ankommen, ein Gateway Knoten (z. B. ein Gateway Router GWR) die Pakete überprüfen und klassifizieren. Bei einigen Implementierungen gibt es zwei Arten von Klassifizierung: Anwendungsklassifizierung und Flussursprungsklassifizierung. Für die Anwendungsklassifizierung prüft der Netzwerkknoten, der die Klassifizierung durchführt, die Pakete und ermittelt ihren Inhalt, z. B. Video, HTTP-Daten oder Dateiübertragungsdaten, und erzeugt eine entsprechende Anwendungskennung. Für Flussursprungsklassifizierung kann der Netzwerkknoten, der die Klassifizierung durchführt, eine Quelle der Pakete identifizieren. Als Beispiel kann die Quellen-IP-Adresse die Quelle identifizieren. Die Kombination aus Anwendung und Quellendaten kann als Nachschlagen verwendet werden, um eine Richtlinie zu finden, die in dem Netzwerkknoten, der Klassifizierung durchführt, vorgehalten ist. Die Richtlinie kann Anwendungs- und Quellen-IDs (oder andere Verkehrseigenschaften) auf eine SCID abbilden. Der Netzwerkknoten kann Dienstheader-Verkapselung implementieren, die die SCID und den SFI zum Beispiel in einem Klassifizierungsheader bereitstellt, der dem Paket hinzugefügt wird. Der SFF in dem ToR Switch antwortet auf den Klassifizierungsheader, um die Pakete durch die SC an SFs zu routen, indem er SCID und SFI auf physikalische Netzwerkadressen abbildet.
  • Bei dem Beispiel von 9 werden die ersten beiden SFs in Hosts in dem Server Rack 908 vorgehalten. Demgemäß führt der ToR Switch 910 die SFF-Funktion dreimal aus, wie in 9 gezeigt ist, um die Pakete durch zwei SFs zu routen, und dann auf das nächste Rack 906, wo die nächste SF in der SC vorgehalten wird. In dem ToR Switch 912 führt der ToR Switch 912 zweimal SFF-Funktionen aus, einmal, um die Pakete an SF 3 zu richten, und einmal, um die Pakete an den ToR Switch 914 zu richten, wo die letzte SF, SF4, in dem Server Rack 904 gehostet wird. Der ToR Switch 914 führt SFF-Funktionalität aus, um die Pakete an SF4 zu richten, und um die Pakete wieder an das Netzwerk zurück zu richten, wo die SCT die für SFC verwendeten Paketheader entfernt, und sendet die Pakete zum allgemeinen Routen an das Netzwerk zurück. Es wird angemerkt, dass in 9 die Gateway Router (GWR) einen Teil der SC-Verarbeitung durchführen, einschließlich SUBC, SCC und einen Fall von SFF, und SCT.
  • 10 erweitert das Beispiel von 9 und zeigt ein weiteres Beispiel des Weiterleitens 1000 durch eine SC 1002, die sich durch TOR Switches 1010, 1012 und 1014 über Racks 1004, 1006 und 1008 hinweg erstreckt. Es wird angemerkt, dass in 10 Vorrichtungen (zum Beispiel physikalische Endpunkte (PEs)) in dem Teilnehmerzugangsnetzwerk die SUBC-Funktion durchführen. Bei diesem Beispiel können die PEs die resultierenden Teilnehmerkennungen in MPLS-Labeln an die folgende SCC-Funktion in dem GWR kommunizieren. Der SCC bildet die Teilnehmerkennung auf eine SC ab, und die Pakete werden durch die SC wie oben unter Bezug auf 9 angegeben verarbeitet.
  • 11 zeigt ein weiteres Beispiel des Weiterleitens 1100 in einer Dienstfunktionskette 1102 in einem Rack 1104. Bei diesem Beispiel führt der ToR Switch 1106 die Funktionen von SUBC, SCC, SFF und SCT durch. Während der TOR Switch 1106 Pakete an die nächste SF in der SC weiterleitet, verfolgt er den SFI um zu bestimmen, wohin als nächstes Pakete weiterzuleiten sind, die von den Hosts, die die SFs ausführen, an den TOR Switch 1106 zurückkehren. Während der Index durch die SC, zum Ende der SC, zieht, erkennt der ToR Switch 1106, dass die Pakete die SC durchlaufen haben, und führt die SCT-Funktion aus, um die Dienst- und Rechenzentrums-Overlay-Tunnelheader zu entfernen, die für die Pakete verwendet wurden, um netzwerkbasiertes SFC zu unterstützen.
  • Bei den oben beschriebenen netzwerkbasierten SFC-Architekturen wird der Weiterleitungszustand für SFC, und insbesondere die Funktion, die die logische Adresse einer SF auf eine physikalische Netzwerkadresse abbildet, in der Netzwerkvorrichtung, zum Beispiel dem TOR Switch, selbst gespeichert. Der Weiterleitungszustand und die Abbildungsfunktion müssen nicht in den VSs bereitgestellt oder gespeichert werden. Ein vorteilhaftes Ergebnis ist, dass der Dienstketten-Controller nur die Abbildungstabelle in der Netzwerkvorrichtung verwalten muss, und nicht in allen der Endpunkte. Bei normalen Szenarien, bei denen es viele Server je ToR Switch (zum Beispiel 48 zu 1) in einem Rack gibt, liegt eine signifikante Verringerung an Verwaltungsaufwand vor.
  • Der VS wirkt beim netzwerkbasierten SFC so mit, dass er Pakete empfängt und sie an die SF weiterleitet, die in einer VM vorgehalten wird. Der VS sendet die Pakete nach der Verarbeitung durch die SF an die ursprüngliche Netzwerkvorrichtung, zum Beispiel den ursprünglichen ToR Switch, zurück. Der VS braucht keine Informationen über die SF des nächsten Hops in der SC zu speichern, sondern sendet stattdessen die Paketen nach der Verarbeitung zur Bestimmung des nächsten Hops an die Netzwerkvorrichtung zurück.
  • Als anderes Beispiel für den Anwendungsfall wird angenommen, dass eine SC drei SFs in Folge aufweist. DPI, gefolgt von einer Firewall, gefolgt von einem virtuellen Router. Der ToR Switch hat der SC als Teil des Vorhaltens der SC eine SCID zugeteilt. Eine bestimmte Dienstfunktion wird unter Verwendung von Tupel-Logikadressierung adressiert, was bei einer Implementierung die SCID und der SFI ist. Das heißt, jede SF hat einen Index innerhalb der SC. Beim vorliegenden Beispiel kann der Index mit dem Indexwert 3 für die DPI SF starten, dann Indexwert 2 für die Firewall SF, dann Indexwert 1 für die Router SF.
  • Der SCP 402, und insbesondere der SFF 412, der durch den SCP 402 implementiert wird, bildet die logischen Adressen, zum Beispiel {SCID 50, SFI 3}, auf eine physikalische Netzwerkadresse ab. Bei einer Implementierung weist die physikalische Netzwerkadresse zwei Komponenten auf: einen Overlay Endpunkt, welcher die Adresse des VS ist, der die SF anhängt, und die Adresse der SF innerhalb des VS. Nachdem die Pakete angekommen sind, führt der SFF 412 das Nachschlagen durch, um die SCID und den SFI auf die nächste SF abzubilden. Der SFF 412 erzeugt und addiert (oder aktualisiert) den Rechenzentrums-Overlay-Tunnelheader für die Pakete, wodurch die Pakete an den bestimmten VS geleitet werden, der mit der VM in Verbindung steht, die die nächste SF hostet. Der SFF 412 erzeugt und addiert (oder aktualisiert) auch den Dienst-Overlay-Tunnelheader auf den Paketen, der die Adresse der SF, die mit dem VS verbunden ist, spezifiziert. Das heißt, als Ergebnis des Nachschlagens durch den SFF 412 kann der SFF 412 den Dienst-Tunnelheader und den Rechenzentrums-Overlay-Tunnel erzeugen, addieren, modifizieren oder löschen.
  • Das SFC verfolgt den Verlauf der Pakete durch ihre abgebildeten SCs, zum Beispiel durch Dekrementieren des SFI für die Pakete. Zum Beispiel kann nach Rückkehr von der DIP SF das SFC den SFI von 3 auf 2 dekrementieren und den Header eines Pakets, der die SCID und den SFI trägt, aktualisieren. Das nächste Nachschlagen erfolgt bei diesem Beispiel hinsichtlich {SCID 50, SFI 2), um die Netzwerkadresse der folgenden SF (der Firewall SF) zu finden, die die nächste SF zum Verarbeiten der Pakete in der SC ist. Das SFC fährt auf diese Weise fort, bis die SFI null wird. Zu diesem Zeitpunkt erkennt das SFC, dass das Paket das Ende der SC erreicht hat, entfernt die SFC Header, und leitet das Paket auf die Art und Weise weiter, wie es normalerweise ohne SFC Verarbeitung stattfinden würde.
  • Die oben beschriebene SFC Verarbeitung kann auf viele verschiedene Arten durch viele verschiedene Arten von Schaltung, von hoch spezialisierten Paketprozessoren bis zu zentralen Recheneinheiten für den allgemeinen Gebrauch, implementiert werden. Bei einer Implementierung wird die SFC Verarbeitung durch die Datenebene des Netzwerk Switches implementiert. Die Datenebene kann spezialisierte Netzwerk-Prozessoren aufweisen, die mit einer Multigigabit Switch Fabric verbunden sind.
  • Unter nochmaligem Bezug auf 5 wird die netzwerkbasierte SFC-Verarbeitung durch eine Overlay Topologie unterstützt. Die Overlay Topologie implementiert Pakettunnelverbindungen, die die SCPs in jeder Netzwerkvorrichtung (zum Beispiel ToR Switch) und jeden VS in einem Server Rack miteinander verbinden. Die SCPs 412 können die Tunnelendpunkte sein. Die Overlay Topologie implementiert eine Speichen-Verbindungsarchitektur. In der Topologie wird jede Netzwerkvorrichtung mit Overlay Tunneln, zum Beispiel Tunneln von jedem ToR Switch zu jedem anderen ToR Switch, über einen definierten Ort, zum Beispiel ein bestimmtes Rechenzentrum, hinweg verbunden.
  • Demgemäß hat jede Netzwerkvorrichtung eine Rechenzentrums-Tunnelverbindung zu jedem unmittelbar verbundenen Host (und VS) für eine SF. Ein Diensttunnel ist in dem Rechenzentrumstunnel definiert, um die SCPs mit den einzelnen SFs und den VMs zu verbinden, die die SFs hosten. Die Rechenzentrumstunnel unterstützen Kommunikation zwischen ToR Switches, von denen jeder Paketrouting für jeden Teil einer SC handhaben kann, die eine beliebige Anzahl von ToR Switches und Server Racks kreuzen kann, zum Beispiel entlang des Rückgrats eines Rechenzentrums, das mehrere Server Racks in einem Rechenzentrum verbindet.
  • Der Rechenzentrums-Overlay-Tunnel und der Dienst-Overlay-Tunnel bilden eine Zweischicht-Weiterleitungsarchitektur, die eine beliebige Netzwerkvorrichtung, zum Beispiel einen beliebigen Netzwerk Switch, mit einer beliebigen SF verbindet, gleich ob physikalisch oder virtuell. Bei einer Implementierung adressiert die äußere Schicht einen bestimmten VS, und die innere Schicht adressiert eine bestimmte SF, die von einem Knoten gehostet wird, der mit dem VS in Verbindung steht. Das Adressieren ist nicht auf IP- oder MAC-Adressen begrenzt, sondern es kann jede Art von Adressieren verwendet werden. Die Overlay Topologie stellt logische und physikalische Verbindungen von jedem ToR Switch in einem Server Rack zu jedem VS, jeder VM und jeder SF bereit.
  • 12 zeigt Logik 1200, die ein Netzwerkknoten implementieren kann, um netzwerkbasiertes SFC auszuführen. Die Logik 1200 empfängt Pakete, die Teil eines Netzwerkflusses sind (1202). Jeder logische oder physikalische Netzwerkknoten (zum Beispiel der SCC 410 in dem SCP 402) kann die Pakete zum Beispiel gemäß Anwendung/Inhalt und Quelle/Teilnehmer klassifizieren (1204). Die Logik 1200 umfasst das Definieren von SCs im Speicher (1206). Die SCs können Sequenzen von SFs spezifizieren, zum Beispiel durch Verwenden von Indexwerten, die verschiedene Dienstfunktionen in einer bestimmten Reihenfolge anordnen. Den Klassifizierungsinformationen kann eine Funktion zugeteilt werden, zum Beispiel der SFF 412, der ermittelt, welche SC gegebenenfalls für die Klassifizierung zutrifft (1208). Die Funktion kann die Pakete mit der zutreffenden {SCID, SFI} in einem Paketheader kennzeichnen (1210).
  • Der SFF 412 überprüft die SF's, um festzustellen, ob mehr SFs zum Verarbeiten der Pakete in der SC vorhanden sind (1212). Wenn dies nicht der Fall ist, dann entfernt der SFF 412 die Rechenzentrums- und Dienst-Overlay-Tunnelheader von den Paketen (1214). Die Pakete werden dann normal von der Netzwerkvorrichtung verarbeitet. Wenn es zusätzliche SFs zum Verarbeiten des Pakets gibt, dann aktualisiert der SFF 412 den SFI (1216) und bestimmt Netzwerkadressen (zum Beispiel basierend auf {SCID, SFI}), um die nächste SF zu erreichen. Der SFF 412 erzeugt oder modifiziert nach Bedarf die Rechenzentrums- und Dienst-Overlay-Tunnelheader auf den Paketen, um die Pakete an die nächste SF zu leiten (1218).
  • Der SFF 412 kann dann die Pakete an die nächste SF leiten (1220). Der SFF 412 kann zum Beispiel die Pakete durch den Underlay Switch, durch die Overlay Topologie an einen VS und eine VM senden, die mit der nächsten SF in Verbindung stehen.
  • Der VS sendet die Pakete, die von der SF verarbeitet wurden, an den SFF 412 zurück, zum Beispiel durch Swappen von SRC- und DST-Informationen in den Rechenzentrums- und Dienst-Overlay-Tunnelheadern. Der SFF 412 empfängt die von der SF und dem VS zurückgesendeten verarbeiteten Pakete (1222) und überprüft, ob etwaige folgende SFs die Pakete verarbeiten sollten (1212).
  • Die oben beschriebenen Verfahren, Vorrichtungen, Verarbeitungen und Logik können auf viele verschiedene Arten und in vielen verschiedenen Kombinationen von Hardware und Software implementiert werden. Zum Beispiel können alle oder ein Teil der Implementierungen Schaltung sein, die einen Befehlsprozessor aufweist, zum Beispiel eine zentrale Rechnereinheit (Central Processing Unit; CPU), einen Mikrocontroller oder einen Mikroprozessor, eine Application Specific Integrated Circuit (ASIC), ein Programmable Logic Device (PLD), oder ein Field Programmable Gate Array (FPGA); oder Schaltung, die diskrete Logik oder andere Schaltungskomponenten aufweist, einschließlich analoger Schaltungskomponenten, digitaler Schaltungskomponenten oder beides; oder jede Kombination daraus. Die Schaltung kann diskrete miteinander verbundene Hardwarekomponenten aufweisen und/oder kann auf einem einzigen integrierten Schaltungschip kombiniert sein, auf viele integrierte Schaltungschips verteilt sein, oder in einem Multiple Chip Module (MCM) mehrerer integrierter Schaltungschips in einem gemeinsamen Gehäuse implementiert werden, um Beispiele zu nennen.
  • Die Schaltung kann des Weiteren Befehle zur Ausführung durch die Schaltung aufweisen oder darauf zugreifen. Die Befehle können in einem konkreten Speichermedium gespeichert sein, das sich von einem transitorischen Signal unterscheidet, zum Beispiel einem Flash Speicher, einem Random Access Memory (RAM), einem Read Only Memory (ROM), einem Erasable Programmable Read Only Memory (EPROM); oder auf einer Magnetplatte oder optischen Platte, zum Beispiel einem Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), oder einer anderen Magnetplatte oder optischen Platte; oder in oder auf einem anderen maschinenlesbaren Medium. Ein Erzeugnis, wie zum Beispiel ein Computerprogrammerzeugnis, kann ein Speichermedium und Befehle aufweisen, die in oder auf dem Medium gespeichert sind, und die Befehle können, wenn sie von der Schaltung in einer Vorrichtung ausgeführt werden, veranlassen, dass die Vorrichtung jedes der oben beschriebenen oder in den Zeichnungen dargestellten Verfahren implementiert.
  • Die Implementierungen können als Schaltung unter mehreren Systemkomponenten verteilt werden, zum Beispiel unter mehreren Prozessoren und Speichern, optional einschließlich mehrerer verteilter Verarbeitungssysteme. Parameter, Datenbanken und andere Datenstrukturen können separat gespeichert und verwaltet werden, können in einem einzigen Speicher oder einer einzigen Datenbank enthalten sein, können auf viele verschiedene Arten logisch und physikalisch organisiert sein, und können auf viele verschiedene Arten implementiert werden, einschließlich als Datenstrukturen wie zum Beispiel verlinkte Listen, Hash-Tabellen, Arrays, Aufzeichnungen, Objekte oder implizite Speichermechanismen. Programme können Teile (zum Beispiel Teilroutinen) eines einzelnen Programms, separater Programme, verteilt über mehrere Speicher und Prozessoren sein, oder auf viele verschiedene Arten implementiert werden, zum Beispiel in einer Bibliothek, zum Beispiel einer gemeinsamen Bibliothek (zum Beispiel einer Dynamic Link Library (DLL)). Die DLL kann zum Beispiel Befehle speichern, die jede der oben beschriebenen oder in den Zeichnungen dargestellten Verarbeitungen durchführen, wenn sie von der Schaltung ausgeführt werden.
  • Verschiedene Implementierungen sind in besonderer Weise beschrieben worden. Viele andere Implementierungen sind jedoch ebenso möglich.

Claims (10)

  1. Netzwerk-Switch mit: einer Netzwerkfluss-Schnittstelle zu dem Netzwerk-Switch, wobei die Netzwerkfluss-Schnittstelle dazu konfiguriert ist, einen Netzwerkfluss zu empfangen, der ein Paket aufweist; einem Speicher, der dazu konfiguriert ist, eine Netzwerkdienstketten-Definition zu speichern, wobei die Netzwerkdienstketten-Definition ein Dienstfunktions-Spezifikationssymbol einer Dienstfunktion aufweist, die auf einer Server-Ressource getrennt von dem Netzwerk-Switch vorgehalten wird; und Dienstketten-Verarbeitungsschaltung, die mit der Netzwerkfluss-Schnittstelle und dem Speicher in Verbindung steht, wobei die Dienstketten-Verarbeitungsschaltung konfiguriert ist zum: Bestimmen, dass die Netzwerkdienstketten-Definition für den Netzwerkfluss zutrifft; Bestimmen, dass das Paket als nächstes von der Dienstfunktion verarbeitet werden sollte; Aktualisieren eines Dienstfunktionsindexes, um den Verlauf des Pakets durch die Netzwerkdienstketten-Definition zu verfolgen; Kennzeichnen des Pakets mit einer Netzwerkadresse für die Dienstfunktion; und Weiterleiten des Pakets aus dem Netzwerk-Switch zu der Dienstfunktion auf der Server-Ressource.
  2. Netzwerk-Switch nach Anspruch 1, wobei die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert ist zum: Erhalten einer Flussklassifizierung für das Paket; und Abbilden der Flussklassifizierung auf die Netzwerkdienstketten-Definition, um zu bestimmen, dass die Netzwerkdienstketten-Definition für den Netzwerkfluss zutrifft.
  3. Netzwerk-Switch nach Anspruch 2, wobei: die Flussklassifizierung eine Anwendungskennung, eine Teilnehmerkennung oder beides aufweist.
  4. Netzwerk-Switch nach Anspruch 1, wobei: die Netzwerkdienstketten-Definition eine sequenzielle Reihenfolge zur Ausführung der Dienstfunktion in der Netzwerkdienstketten-Definition spezifiziert; und die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert ist zum: Lesen eines Paket-Headers des Pakets, um einen aktuellen Indexwert zu bestimmen; und Anpassen des aktuellen Indexwerts an die Netzwerkdienstketten-Definition, um zu bestimmen, dass das Paket als nächstes von der Dienstfunktion verarbeitet werden sollte.
  5. Netzwerk-Switch nach Anspruch 4, wobei: die Dienstketten-Verarbeitungsschaltung des Weiteren dazu konfiguriert ist, einen Dienstfunktionsindex zu aktualisieren, um die Weiterleitung des Pakets an die Dienstfunktion zur Verarbeitung zu bedingen.
  6. Netzwerk-Switch nach Anspruch 5, wobei: die Dienstketten-Verarbeitungsschaltung des Weiteren dazu konfiguriert ist, von der Server-Ressource das Paket nach der Verarbeitung durch die Servicefunktion zu empfangen; und ein Folgeziel in der Netzwerkdienstketten-Definition basierend auf dem Dienstfunktionsindex zu bestimmen.
  7. Netzwerk-Switch nach Anspruch 6, wobei: die Dienstketten-Verarbeitungsschaltung des Weiteren konfiguriert ist zum: nochmaligen Aktualisieren des Dienstfunktionsindexes für das Paket, um den Verlauf des Pakets durch die Netzwerkdienstketten-Definition zu verfolgen; und Weiterleiten des Pakets aus dem Netzwerk-Switch an das Folgeziel.
  8. Netzwerk-Switch nach Anspruch 7, wobei: das Folgeziel eine andere Dienstfunktion ist, die auf einer anderen Server-Ressource vorgehalten wird.
  9. Verfahren, das umfasst: in einem Netzwerk-Switch, der Hostserver miteinander verbindet, auf denen eine erste Dienstfunktion und eine zweite Dienstfunktion vorgehalten werden: Definieren, in einem Speicher, einer Netzwerkdienstketten-Definition, die eine Abfolge von Dienstfunktionen spezifiziert, mit: der ersten Dienstfunktion; und der zweiten Dienstfunktion; wobei die Netzwerkdienstketten-Definition aufweist: einen ersten Dienstfunktionsindex für die erste Dienstfunktion; und einen zweiten Dienstfunktionsindex für die zweite Dienstfunktion; wobei der erste und der zweite Dienstfunktionsindex die erste Dienstfunktion vor der zweiten Dienstfunktion anordnen; Empfangen eines Pakets, das Teil eines Netzwerkflusses ist; Empfangen von Klassifizierungsinformationen für das Paket; basierend auf den Klassifizierungsinformationen Bestimmen, dass die Netzwerkdienstkette für den Netzwerkfluss zutrifft; Bestimmen, dass die erste Dienstfunktion als nächstes das Paket verarbeiten sollte; und Weiterleiten des Pakets an die erste Dienstfunktion.
  10. Netzwerk-Switch, der aufweist: eine Paketschnittstelle, die dazu konfiguriert ist, Pakete in den Netzwerk-Switch zu empfangen und Pakete aus dem Netzwerk-Switch zu kommunizieren; einen Speicher, der konfiguriert ist zum Speichern von: Netzwerkdienstketten-Definitionen, die aufweisen: eine erste Netzwerkdienstketten-Definition, die eine erste Abfolge von Dienstfunktionen spezifiziert, die eine erste Paketverarbeitungskette darstellen; und eine erste Dienstkettenkennung für die erste Netzwerkdienstketten-Definition; und eine Dienstketten-Abbildungstabelle, die aufweist: eine Klassifizierungsabbildung von der Paketklassifizierung auf die Netzwerkdienstketten-Definitionen in dem Speicher; einen Dienstketten-Prozessor, der mit der Paketschnittstelle in Verbindung ist, wobei der Dienstketten-Prozessor konfiguriert ist zum: Erhalten von Klassifizierungsinformationen für die Pakete; Bestimmen, aus den Klassifizierungsinformationen und der Dienstketten-Abbildungstabelle, dass die erste Netzwerkdienstkette die Pakete verarbeiten sollte; Bestimmen einer nächsten Dienstfunktion, die auf den Paketen ausgeführt werden soll, aus der ersten Abfolge von Dienstfunktionen; Verfolgen des Verlaufs der Pakete durch die erste Netzwerkdienstkette durch Aktualisieren eines Dienstfunktions-Headers der Pakete; Hinzufügen eines Routing-Headers zu den Paketen, wobei der Routing-Header aufweist: eine virtuelle Switch-Adresse eines virtuellen Switches, der mit einem Hostserver für die nächste Dienstfunktion in Verbindung ist; und eine Dienstfunktions-Netzwerkadresse für die nächste Dienstfunktion auf dem Hostserver; und Weiterleiten der Pakete aus dem Netzwerk-Switch an die nächste Dienstfunktion auf dem Hostserver.
DE102015013946.0A 2014-11-11 2015-10-29 Netzwerkbasiertes Service Function Chaining Pending DE102015013946A1 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462078196P 2014-11-11 2014-11-11
US62/078,196 2014-11-11
US201562162070P 2015-05-15 2015-05-15
US62/162,070 2015-05-15
US14/861,163 2015-09-22
US14/861,163 US9923815B2 (en) 2014-11-11 2015-09-22 Network based service function chaining on top of rack switches

Publications (1)

Publication Number Publication Date
DE102015013946A1 true DE102015013946A1 (de) 2016-05-12

Family

ID=55803366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015013946.0A Pending DE102015013946A1 (de) 2014-11-11 2015-10-29 Netzwerkbasiertes Service Function Chaining

Country Status (4)

Country Link
US (1) US9923815B2 (de)
CN (1) CN105591978B (de)
DE (1) DE102015013946A1 (de)
HK (1) HK1218477A1 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243302B (zh) * 2013-06-20 2018-03-16 华为技术有限公司 业务路由报文处理方法、装置及网络系统
US20150100560A1 (en) 2013-10-04 2015-04-09 Nicira, Inc. Network Controller for Managing Software and Hardware Forwarding Elements
CN104954245B (zh) * 2014-03-27 2019-07-16 中兴通讯股份有限公司 业务功能链处理方法及装置
US9946614B2 (en) * 2014-12-16 2018-04-17 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for managing faults in a virtual machine network
US9979645B2 (en) * 2015-01-14 2018-05-22 Futurewei Technologies, Inc. Hardware and software methodologies for creating and managing portable service function chains
US9942058B2 (en) 2015-04-17 2018-04-10 Nicira, Inc. Managing tunnel endpoints for facilitating creation of logical networks
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
US9967182B2 (en) 2015-07-31 2018-05-08 Nicira, Inc. Enabling hardware switches to perform logical routing functionalities
US9781209B2 (en) * 2015-08-20 2017-10-03 Intel Corporation Techniques for routing packets between virtual machines
US10313186B2 (en) 2015-08-31 2019-06-04 Nicira, Inc. Scalable controller for hardware VTEPS
US10263828B2 (en) 2015-09-30 2019-04-16 Nicira, Inc. Preventing concurrent distribution of network data to a hardware switch by multiple controllers
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US9998324B2 (en) 2015-09-30 2018-06-12 Nicira, Inc. Logical L3 processing for L2 hardware switches
US10230576B2 (en) * 2015-09-30 2019-03-12 Nicira, Inc. Managing administrative statuses of hardware VTEPs
US10116553B1 (en) * 2015-10-15 2018-10-30 Cisco Technology, Inc. Application identifier in service function chain metadata
US10250553B2 (en) 2015-11-03 2019-04-02 Nicira, Inc. ARP offloading for managed hardware forwarding elements
US10069646B2 (en) * 2015-12-02 2018-09-04 Nicira, Inc. Distribution of tunnel endpoint mapping information
US9912616B2 (en) 2015-12-02 2018-03-06 Nicira, Inc. Grouping tunnel endpoints of a bridge cluster
US10719341B2 (en) 2015-12-02 2020-07-21 Nicira, Inc. Learning of tunnel endpoint selections
US10164885B2 (en) 2015-12-02 2018-12-25 Nicira, Inc. Load balancing over multiple tunnel endpoints
US10397108B2 (en) * 2016-01-25 2019-08-27 Futurewei Technologies, Inc. Service function chaining across multiple subnetworks
EP3417574A1 (de) * 2016-02-18 2018-12-26 Alcatel Lucent Datenübertragung
US9954774B2 (en) 2016-03-10 2018-04-24 Cisco Technology, Inc. Propagating flow characteristics in service function chaining (SFC) headers
US9985890B2 (en) 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
US10355983B2 (en) * 2016-05-09 2019-07-16 Cisco Technology, Inc. Traceroute to return aggregated statistics in service chains
US10348648B2 (en) * 2016-05-17 2019-07-09 Cisco Technology, Inc. Service chain overlay network operations visibility via data packets
US10637772B2 (en) * 2016-05-28 2020-04-28 Guardtime Sa Verification mechanism for network service chain paths
US10045252B2 (en) * 2016-06-02 2018-08-07 International Business Machines Corporation Virtual switch-based congestion control for multiple TCP flows
CN106130894B (zh) * 2016-06-03 2019-04-19 上海华为技术有限公司 一种业务功能链的创建方法及系统
KR102541641B1 (ko) * 2016-06-07 2023-06-08 한국전자통신연구원 분산 서비스 기능 포워딩 시스템 및 방법
US10182035B2 (en) 2016-06-29 2019-01-15 Nicira, Inc. Implementing logical network security on a hardware switch
US10419550B2 (en) * 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10326685B1 (en) * 2016-07-29 2019-06-18 Amazon Technologies, Inc. Virtual routing tables for routers in a multi-tier network
CN111884827B (zh) * 2016-08-26 2021-10-15 华为技术有限公司 一种sfc网络中同步拓扑信息的方法及路由网元
US10075373B2 (en) * 2016-08-26 2018-09-11 Viasat, Inc. Methods and apparatus for providing traffic forwarder via dynamic overlay network
US10608881B2 (en) * 2016-09-22 2020-03-31 Nicira, Inc. Application-based network segmentation in a virtualized computing environment
US10164818B2 (en) * 2016-10-05 2018-12-25 International Business Machines Corporation Effective indexing of protocol information
US10187263B2 (en) 2016-11-14 2019-01-22 Futurewei Technologies, Inc. Integrating physical and virtual network functions in a service-chained network environment
EP3340581B1 (de) * 2016-12-20 2022-02-23 InterDigital CE Patent Holdings Verfahren zur verwaltung von dienstverkettung in einer netzwerkausrüstung, entsprechende netzwerkausrüstung
US10560527B2 (en) 2017-03-02 2020-02-11 Dell Products, L.P. Network service chains using hardware logic devices in an information handling system
US10938681B2 (en) * 2018-07-25 2021-03-02 Vmware, Inc. Context-aware network introspection in software-defined networking (SDN) environments
EP3850800A4 (de) * 2018-10-08 2021-09-01 Samsung Electronics Co., Ltd. Verfahren und system zur weiterleitung von datenpaketen in einem dienstfunktionsweg eines netzwerks
US11184280B2 (en) * 2018-10-11 2021-11-23 Cisco Technology, Inc. Methods and apparatus for verification of non-steered traffic flows having unspecified paths based on traversed network node or service function identities
US10785321B2 (en) * 2018-11-19 2020-09-22 Nanning Pugui Precision Industrial Co., Ltd. Service function chain (SFC) based multi-tenancy processing method
CN109361627A (zh) * 2018-11-23 2019-02-19 广州市成格信息技术有限公司 一种基于VxLan的新型二层云交换设备
US11146506B2 (en) 2018-12-14 2021-10-12 At&T Intellectual Property I, L.P. Parallel data processing for service function chains spanning multiple servers
US10805164B2 (en) 2018-12-14 2020-10-13 At&T Intellectual Property I, L.P. Controlling parallel data processing for service function chains
US11463511B2 (en) * 2018-12-17 2022-10-04 At&T Intellectual Property I, L.P. Model-based load balancing for network data plane
US11411843B2 (en) * 2019-08-14 2022-08-09 Verizon Patent And Licensing Inc. Method and system for packet inspection in virtual network service chains
US11063662B2 (en) * 2019-10-22 2021-07-13 Hughes Network Systems, Llc Satellite network acceleration and optimization
US20220150160A1 (en) * 2020-11-06 2022-05-12 Juniper Networks, Inc. Backup service function notification and synchronization
US11582227B2 (en) 2020-12-22 2023-02-14 Microsoft Technology Licensing, Llc Securing network access at edge sites using trusted network devices
CN113395362B (zh) * 2021-08-17 2021-11-16 杭州雅观科技有限公司 移动边缘计算的服务链分群和重整方法
WO2023192832A1 (en) * 2022-03-28 2023-10-05 Intel Corporation Service function chaining in wireless cellular system with service exposure to third parties
US11743191B1 (en) 2022-07-25 2023-08-29 Vmware, Inc. Load balancing over tunnel endpoint groups

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097452B2 (en) * 2012-04-16 2018-10-09 Telefonaktiebolaget Lm Ericsson (Publ) Chaining of inline services using software defined networking
US9130872B2 (en) * 2013-03-15 2015-09-08 Cisco Technology, Inc. Workload based service chain insertion in a network environment
US9660905B2 (en) * 2013-04-12 2017-05-23 Futurewei Technologies, Inc. Service chain policy for distributed gateways in virtual overlay networks
US9407540B2 (en) * 2013-09-06 2016-08-02 Cisco Technology, Inc. Distributed service chaining in a network environment
JP2015095784A (ja) * 2013-11-12 2015-05-18 富士通株式会社 情報処理システム、情報処理システムの制御方法及び情報処理装置の制御プログラム
US9825856B2 (en) * 2014-01-06 2017-11-21 Futurewei Technologies, Inc. Service function chaining in a packet network
US9344337B2 (en) * 2014-03-13 2016-05-17 Cisco Technology, Inc. Service node originated service chains in a network environment
CN104092744B (zh) * 2014-06-30 2017-04-12 山东科技大学 基于记忆化服务簇映射目录的Web服务发现方法
US20160065456A1 (en) * 2014-09-03 2016-03-03 Alcatel Lucent System and method providing service chaining in a mobile network

Also Published As

Publication number Publication date
US9923815B2 (en) 2018-03-20
HK1218477A1 (zh) 2017-02-17
US20160134531A1 (en) 2016-05-12
CN105591978A (zh) 2016-05-18
CN105591978B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
DE102015013946A1 (de) Netzwerkbasiertes Service Function Chaining
US10728176B2 (en) Ruled-based network traffic interception and distribution scheme
US9590907B2 (en) Service chaining in a cloud environment using software defined networking
US11086653B2 (en) Forwarding policy configuration
US10439962B2 (en) Packet processing in an OpenFlow switch
US10404621B2 (en) Scalable InfiniBand packet-routing technique
US10374972B2 (en) Virtual flow network in a cloud environment
AU2017312955B2 (en) Synthetic Supernet Compression
DE112012001320B4 (de) Prioritätsgestützte Flusssteuerung in einer Switching-Netzwerkarchitektur mit einem Protokoll einer verteilten Struktur (Distributed Fabric Protocol DFP)
US20210029615A1 (en) Systems and method for routing data
US9674080B2 (en) Proxy for port to service instance mapping
DE102012220834A1 (de) Verfahren und Vorrichtung zum Umsetzen eines flexiblen virtuellen lokalen Netzwerks
DE102014117460A1 (de) Programmierbares verteiltes Networking
DE202015009244U1 (de) Routing von Datenverkehr innerhalb von und zwischen autonomen Systemen
US8886879B2 (en) TCAM action updates
DE102016104264A1 (de) Übertragen von Mehrfachzielpaketen in Overlay-Netzwerken
US20180062924A1 (en) Recommending configurations for client networking environment based on aggregated cloud managed information
US10785321B2 (en) Service function chain (SFC) based multi-tenancy processing method
US11411998B2 (en) Reputation-based policy in enterprise fabric architectures

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R130 Divisional application to

Ref document number: 102015017101

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE., SG

Free format text: FORMER OWNER: BROADCOM CORPORATION, IRVINE, CALIF., US

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R081 Change of applicant/patentee

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LT, SG

Free format text: FORMER OWNER: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE, SG

R082 Change of representative

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012721000

Ipc: H04L0012700000

R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012700000

Ipc: H04L0047000000

R016 Response to examination communication