JP2022521058A - ゲストvmモビリティを使用したサービスの提供 - Google Patents

ゲストvmモビリティを使用したサービスの提供 Download PDF

Info

Publication number
JP2022521058A
JP2022521058A JP2021546813A JP2021546813A JP2022521058A JP 2022521058 A JP2022521058 A JP 2022521058A JP 2021546813 A JP2021546813 A JP 2021546813A JP 2021546813 A JP2021546813 A JP 2021546813A JP 2022521058 A JP2022521058 A JP 2022521058A
Authority
JP
Japan
Prior art keywords
service
machine
data message
data
host computer
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.)
Granted
Application number
JP2021546813A
Other languages
English (en)
Other versions
JP7417816B2 (ja
Inventor
ラウル ミシュラ,
キャミール レクイア,
サーリ ゴカーレ,
ラジーブ ナイアー,
アヌプレム チャルバディ,
ヤン ピン,
カンテシュ ムンダラギ,
ピエールンギ ローランド,
ジェヤント ジャイン,
ラジュ コガンティ,
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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2022521058A publication Critical patent/JP2022521058A/ja
Application granted granted Critical
Publication of JP7417816B2 publication Critical patent/JP7417816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • 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/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • 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/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • 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/5003Managing SLA; Interaction between SLA and QoS
    • 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
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • 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/308Route determination based on user's profile, e.g. premium users
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • 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/19Flow control; Congestion control at layers above the network layer
    • 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/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • 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
    • 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
    • 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
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on 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/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Nitrogen Condensed Heterocyclic Rings (AREA)

Abstract

いくつかの実施形態は、1つ以上のデータセンタで動作するマシンのためのサービスを実行するための新しい方法を提供する。例えば、関連するゲストマシンのグループ(例えばテナントマシンのグループ)について、いくつかの実施形態は2つの異なる転送プレーン、(1)ゲスト転送プレーンと、(2)サービス転送プレーンとを定義する。ゲスト転送プレーンは、グループ内のマシンに接続し、これらのマシンに対してL2および/またはL3転送を実行する。サービス転送プレーンは、(1)これらのマシンとの間で送受信されるデータメッセージに対してサービスを実行するサービスノードに接続し、(2)これらのデータメッセージをサービスノードに転送する。いくつかの実施形態では、ゲストマシンは、サービス転送プレーンと直接接続しない。例えば、いくつかの実施形態では、各転送プレーンは、マシンまたはサービスノードからデータメッセージを受信するか、またはマシンまたはサービスノードにデータメッセージを供給するポートを介して、マシンまたはサービスノードに接続する。このような実施形態では、サービス転送プレーンは、任意のゲストマシンからデータメッセージを直接受信したり、任意のゲストマシンにデータメッセージを供給したりするポートを持たない。代わりに、いくつかのそのような実施形態では、ゲストマシンに関連するデータは、同じホストコンピュータ上で実行されるポートプロキシモジュールにルーティングされ、この他のモジュールはサービスプレーンポートを有する。いくつかの実施形態におけるこのポートプロキシモジュールは、同一ホスト上の複数のゲストマシンをサービスプレーンに間接的に接続することができる(すなわち、同一ホスト上の複数のゲストマシンのポートプロキシモジュールとして機能することができる)。

Description

[0001] 現在のデータセンタでは、静的で構成集約的な方法を使用して、異なるアプリケーションレイヤ間および異なるサービスレイヤにデータメッセージを分配している。今日の一般的なアプローチは、仮想マシンが仮想IP(VIP)アドレスにパケットを送信するように構成し、次に、VIPアドレスで指定されたパケットを適切なアプリケーションまたはサービスレイヤー(あるいはその両方)に転送するように指示する転送ルールを使用して、データセンタ内の転送要素とロードバランサを構成することである。既存のメッセージ分配スキームの別の問題は、今日のロードバランサが分配されるトラフィックのための難所であることである。したがって、データセンタ内のデータメッセージを異なるアプリケーションレイヤおよび/またはサービスレイヤ間でシームレスに分配する新しいアプローチが当技術分野において必要とされている。理想的には、この新しいアプローチは、データメッセージを送信するサーバを再設定することなく、分配スキームを容易に修正することを可能にするであろう。
[0002] いくつかの実施形態は、1つ以上のデータセンタで動作するマシンのためのサービスを実行するための新しい方法を提供する。例えば、関連するゲストマシンのグループ(例えば、テナントマシンのグループ)に対して、いくつかの実施形態は、(1)ゲスト転送プレーンと(2)サービス転送プレーンの2つの異なる転送プレーンを定義する。ゲスト転送プレーンは、グループ内のマシンに接続し、これらのマシンに対してL2および/またはL3転送を実行する。サービス転送プレーンは、(1)これらのマシンとの間で送受信されるデータメッセージに対してサービスを実行するサービスノードに接続し、(2)これらのデータメッセージをサービスノードに転送する。
[0003] いくつかの実施形態では、ゲストマシンは、サービス転送プレーンと直接接続しない。例えば、いくつかの実施形態では、各転送プレーンは、マシンまたはサービスノードからデータメッセージを受信するか、またはマシンまたはサービスノードにデータメッセージを供給するポートを介して、マシンまたはサービスノードに接続する。このような実施形態では、サービス転送プレーンは、任意のゲストマシンからデータメッセージを直接受信したり、任意のゲストマシンにデータメッセージを供給したりするポートを持たない。代わりに、いくつかのそのような実施形態では、ゲストマシンに関連するデータは、同じホストコンピュータ上で実行されるポートプロキシモジュールにルーティングされ、このポートプロキシモジュールは、サービスプレーンポートを有する。いくつかの実施形態におけるこのポートプロキシモジュールは、同一ホスト上の複数のゲストマシンをサービスプレーンに間接的に接続することができる(すなわち、同一ホスト上の複数のゲストマシンのポートプロキシモジュールとして機能することができる)。
[0004] いくつかの実施形態では、ゲストマシンは、サービスマシンまたはノードではない任意のマシンである。ゲストマシンは、マルチテナントデータセンタ内のテナントのマシンにすることはできるが、必ずしもする必要はない。いくつかの実施形態におけるゲストマシンは、ゲスト仮想マシンまたはゲストコンテナである。いくつかの実施形態におけるサービスノードは、サービス仮想マシン、サービスコンテナ、またはサービスアプライアンスである。いくつかの実施形態では、サービスノードは、ファイアウォール、侵入検知システム、侵入防御システム、ロードバランサ、暗号化器、メッセージモニタ、メッセージコレクタ、または任意の数の他のミドルボックスサービスなどのミドルボックスサービス動作を実行する。したがって、本書で使用されるサービスは、いくつかの実施形態における任意のタイプのミドルボックスサービス動作である。
[0005] 前述の概要は、本発明のいくつかの実施形態の簡単な紹介として役立つことを意図している。これは、この文書に開示されたすべての発明の主題の導入または概要であることを意味するものではない。以下の詳細な説明および詳細な説明で参照される図面は、概要ならびに他の実施形態で説明される実施形態をさらに説明する。したがって、本書面によって説明されるすべての実施形態を理解するために、概要、詳細な説明、図面、および特許請求の範囲の全体的な検討が必要である。さらに、特許請求の範囲に記載される主題は、概要、詳細な説明、および図面における例示的な詳細によって限定されるべきではない。
[0006] 本発明の新規な特徴は、添付の特許請求の範囲に記載されている。しかしながら、説明の目的のために、本発明のいくつかの実施形態を以下の図に示す。
[0007] 図1は、2つの論理転送要素によっていくつかの実施形態で実現される分離ゲストおよびサービスプレーンの例を示す。 [0008] 図2は、いくつかの実施形態のサービス仮想マシン(SVM)によって処理されるサービスパスに沿ってリダイレクトされる、2つのゲスト仮想マシン(GVM)間のデータメッセージを示す。 [0009] 図3は、いくつかの実施形態において、サービスチェーンと、サービスチェーンを実装する1つ以上のサービスパスのセットとの間の関係を概念的に示す。 [0010] 図4は、サービスチェーンとそれに関連するサービスパスの例を示す。 [0011] 図5は、図4に示すフォワードサービスパスのリバースサービスパスの例を示す。 [0012] 図6は、いくつかの実施形態におけるサービスプレーンを実装する入出力(IO)チェーンコンポーネントの例を示す。 [0013] 図7は、いくつかの実施形態のサービスインデックスプリプロセッサおよびサービストランスポートレイヤ呼び出し元によって実行されるプロセスを示す。 [0014] 図8は、図7で説明したプロセスに対応するデータフロー例を示す。 [0015] 図9は、第1のサービスノードによって転送するためのデータメッセージを定式化するための、いくつかの実施形態のポートプロキシの動作を示す。 [0016] 図10は、サービスパス内のデータメッセージをネクストホップに渡すための、いくつかの実施形態のプロセスを概念的に示す。 [0017] 図11は、図6のサービスプロキシが、サービスノードの入口パスに沿って横断するデータメッセージを受信するたびに、いくつかの実施形態において実行するプロセスを示す。 [0018] 図12は、いくつかの実施形態のデータメッセージの3つのカプセル化ヘッダを概念的に示す。 [0019] 図13は、サービスプロキシから処理するデータメッセージを受信するたびにSVMがいくつかの実施形態で実行する1つの例示的なプロセスを概念的に示す。 [0020] 図14は、いくつかの実施形態のSVMの第1のマッピングテーブルを示す。 [0021] 図15は、いくつかの実施形態におけるデータメッセージが第1ホップサービスノードから第2ホップサービスノードに転送される例を示す。 [0022] 図16は、サービスプロキシが、そのサービスノードの出口パスに沿って通過するデータメッセージを受信するたびに、いくつかの実施形態において実行するプロセスを概念的に示す。 [0023] 図17は、コンピュータ上で実行されるSVMによって処理される必要があるカプセル化されたデータメッセージを受信するネクストホップコンピュータ上のカプセル化プロセッサによって開始されるプロセスを概念的に示す。 [0024] 図18は、いくつかの実施形態におけるデータメッセージが第2ホップサービスノードから第3ホップサービスノードに転送される例を示す。 [0025] 図19は、いくつかの実施形態におけるデータメッセージが、第3ホップサービスノードから第1ホップサービスノードに戻される例を示す。 [0026] 図20は、サービスインデックスポストプロセッサがいくつかの実施形態において実行するプロセスを概念的に示す。 [0027] 図21は、いくつかの実施形態のネットワークサービスヘッダを示す。 [0028] 図22は、いくつかの実施形態のメタデータコンテンツヘッダに記憶されるメタデータコンテンツの例を示す。 [0029] 図23-24は、GREヘッダをカプセル化したGVMのSVM出口側および入口側データメッセージへのサービスプロキシ転送の例を示す。 [0030] 図25は、いくつかの実施形態において、出口方向のサービスデータを記憶するために使用されるGREヘッダフォーマットを示す。 [0031] 図26は、いくつかの実施形態において、入口方向のサービスデータを記憶するために使用されるGREヘッダフォーマットを示す。 [0032] 図27は、2つのGeneveカプセル化ヘッダ(サービストランスポートレイヤデータを運ぶための外側Geneveヘッダと、サービス挿入レイヤメタデータを運ぶための内側Geneveヘッダ)の使用を示す。 [0033] 図28は、図27の2つのGeneceカプセル化ヘッダを1つのGeneveカプセル化ヘッダにまとめたものである。 [0034] 図29は、いくつかの実施形態のオブジェクトデータモデルを示す。 [0035] 図30は、サービス挿入、ネクストサービスホップ転送、およびサービス処理のためのルールを定義するために、ネットワークマネージャおよびコントローラがいくつかの実施形態において実行するいくつかの動作を概念的に示す。 [0036] 図31は、いくつかの実施形態において、サービスパスがどのように動的に修正されるかを示す。 [0037] 図32は、いくつかの実施形態で、マルチテナントデータセンタ内のテナントのサービスプレーンとそれに関連するサービスノードを定義するために実行されるプロセスを示す。 [0038] 図33は、移行されたGVMの送信元ホストで実行されるプロセスと、移行されたGVMの宛先ホストで実行されるプロセスを示す。 [0039] 図34A~34Cは、いくつかの実施形態におけるGVM移行の例を示す。 [0040] 図35は、いくつかの実施形態において、GVM移行後に制御プレーンによって実行される動作を概念的に示す。 [0041] 図36は、移行されたSVMの移行元ホストで実行されるプロセスと、移行されたSVMの移行先ホストで実行されるプロセスを示す。 [0042] 図37A-37Cは、いくつかの実施形態におけるSVM移行の例を示す。 [0043] 図38は、いくつかの実施形態において、GVM移行後に制御プレーンによって実行される動作を概念的に示す。 [0044] 図39は、いくつかの実施形態におけるホスト内SVM移行の例を示す。 [0045] 図40は、本発明のいくつかの実施形態が実施される電子システムを概念的に示す。
[0046] 本発明の以下の詳細な説明では、本発明の多数の詳細、例、および実施形態を説明する。しかしながら、本発明は、説明された実施形態に限定されず、本発明は、説明された特定の詳細および例のいくつかなしに実施されてもよいことが、当業者には明らかであり、明確であろう。
[0047] いくつかの実施形態は、1つ以上のデータセンタで動作するマシンのためのサービスを実行するための新しい方法を提供する。例えば、関連するゲストマシンのグループ(例えば、テナントマシンのグループ)に対して、いくつかの実施形態は、(1)ゲスト転送プレーンと(2)サービス転送プレーンの2つの異なる転送プレーンを定義する。ゲスト転送プレーンは、グループ内のマシンに接続し、これらのマシンに対してL2および/またはL3転送を実行する。サービス転送プレーンは、(1)これらのマシンとの間で送受信されるデータメッセージに対してサービスを実行するサービスノードに接続し、(2)これらのデータメッセージをサービスノードに転送する。
[0048] いくつかの実施形態では、ゲストマシンは、サービス転送プレーンと直接接続しない。例えば、いくつかの実施形態では、各転送プレーンは、マシンまたはサービスノードからデータメッセージを受信するか、またはマシンまたはサービスノードにデータメッセージを供給するポートを介して、マシンまたはサービスノードに接続する。このような実施形態では、サービス転送プレーンは、任意のゲストマシンからデータメッセージを直接受信したり、任意のゲストマシンにデータメッセージを供給したりするポートを持たない。代わりに、いくつかのそのような実施形態では、ゲストマシンに関連するデータは、同じホストコンピュータ上で実行されるポートプロキシモジュールにルーティングされ、この他のモジュールはサービスプレーンポートを有する。いくつかの実施形態におけるこのポートプロキシモジュールは、同一ホスト上の複数のゲストマシンをサービスプレーンに間接的に接続することができる(すなわち、同一ホスト上の複数のゲストマシンのポートプロキシモジュールとして機能することができる)。
[0049] いくつかの実施形態では、ゲストマシンは、サービスマシンまたはノードではない任意のマシンである。ゲストマシンは、マルチテナントデータセンタ内のテナントのマシンにすることはできるが、必ずしもする必要はない。いくつかの実施形態におけるゲストマシンは、ゲスト仮想マシンまたはゲストコンテナである。いくつかの実施形態におけるサービスノードは、サービス仮想マシン、サービスコンテナ、またはサービスアプライアンスである。いくつかの実施形態では、サービスノードは、ファイアウォール、侵入検知システム、侵入防御システム、ロードバランサ、暗号化器、メッセージモニタ、メッセージコレクタ、または任意の数の他のミドルボックスサービスなどのミドルボックスサービス動作を実行する。したがって、本書で使用されるサービスは、いくつかの実施形態における任意のタイプのミドルボックスサービス動作である。
[0050] また、本書で使用されているように、データメッセージは、ネットワークを介して送信される特定の形式のビットの集合を指す。当業者は、データメッセージという用語が、ネットワークを介して送信されるビットの様々な定式化された集合を指すために本書で使用されることを認識するであろう。これらのビットのフォーマットは、標準化されたプロトコルまたは標準化されていないプロトコルによって指定することができる。標準化されたプロトコルに従ったデータメッセージの例としては、イーサネットフレーム、IPパケット、TCPセグメント、UDPデータグラムなどがある。また、本明細書で使用するL2、L3、L4、L7レイヤ(またはレイヤ2、レイヤ3、レイヤ4、レイヤ7)は、OSI (Open System Interconnection)レイヤモデルの第2データリンクレイヤ、第3ネットワークレイヤ、第4トランスポートレイヤ、第7レイヤプリケーションレイヤをそれぞれ参照している。
[0051] 図1は、2つの論理転送要素(LFE)130および132によっていくつかの実施形態で実施される分離ゲストおよびサービスプレーンの例を示す。図に示すように、2つのゲストマシン102および104と3つのサービスマシン106、108および110は、3つのソフトウェア転送要素120、122および124と共に、3つのホストコンピュータ112、114および116上で実行される。この例では、ゲストマシンおよびサービスマシンはゲスト仮想マシン(GVM)およびサービス仮想マシン(SVM)であるが、他の実施形態では、これらのマシンは、コンテナなどの他のタイプのマシンであってもよい。
[0052] また、この例では、各論理転送要素は、複数のホストコンピュータに複数のソフトウェア転送要素(SFE)を設定することによって実装される分散転送要素である。これを行うために、いくつかの実施形態では、各SFEまたはSFEに関連するモジュールは、オーバーレイネットワークに関連する仮想ネットワーク識別子(VNI)を含むオーバーレイネットワークヘッダでLFEのデータメッセージをカプセル化するように構成される。このように、LFEは、以下の議論において、複数のホストコンピュータにまたがるオーバーレイネットワーク構造であると言われる。
[0053] LFEはまた、いくつかの実施形態では、構成されたハードウェア転送要素(例えば、ラックスイッチの上)にまたがる。いくつかの実施形態では、各LFEは、複数のソフトウェアスイッチ(仮想スイッチまたはvswitchと呼ばれる)または関連モジュールを複数のホストコンピュータ上に構成することによって実現される論理スイッチである。他の実施形態では、LFEは、他のタイプの転送要素(例えば、論理ルーター)、または論理ネットワークまたはその部分を形成する転送要素(例えば、論理スイッチおよび/または論理ルーター)の任意の組合せであることができる。現在、LFE、論理スイッチ、分散論理ルーター、および論理ネットワークの多くの例が存在する。これには、VMwareのNSXネットワークおよびサービス仮想化プラットフォームによって提供されるものも含まれる。
[0054] 図に示すように、LFE 130は、これらのGVM間でデータメッセージを転送するために、GVM102および104を接続するゲスト転送プレーンを定義する。いくつかの実施形態では、このLFEは、論理ルーターに接続する論理スイッチであり、この論理ルーターは、GVMを、直接又は論理ゲートウェイを介して、論理スイッチの論理ネットワーク外のネットワークに接続する。LFE130は、第1の分散論理スイッチを実装するために、ホストコンピュータ112および114上でソフトウェアスイッチ120および122および/またはそれらの関連モジュール(例えば、関連するポート/VNICフィルタモジュール)を構成することによって、いくつかの実施形態で実装される。
[0055] 以下で説明する図1およびその他の図は、送信元GVMと宛先GVMが同じ論理ネットワーク上にあり、同じLFEに接続されていることを示している。当業者は、いくつかの実施形態のサービス動作は、送信元および宛先マシンが同一のLFEに接続されることを必要とせず、あるいは同一のネットワークまたは同一のデータセンタにあることさえ必要としないことを認識するであろう。これらのサービス動作は、送信元マシンのネットワークを終了するか、送信元マシンのネットワークに入るデータメッセージに対して実行される。図は、サービスプレーン132が、ゲストマシンに関連するデータメッセージを転送する論理ネットワークとは別の論理ネットワークによって実装されることを強調するために、同一のLFEに接続されたものとしての送信元および宛先マシンを示す。
[0056] LFE132は、SVMを含むサービスパスを介してGVMに関連付けられたデータメッセージを転送するために、SVM106、108、110を接続するサービス転送プレーンを定義する。いくつかの実施形態では、LFE132はまた、第2の分散論理スイッチを実装するためにホストコンピュータ112、114および116上でソフトウェアスイッチ120、122および124および/またはそれらの関連モジュールを構成することによって実装される論理スイッチである。ゲストおよびサービス転送プレーン(すなわち、ゲストおよびサービスLFE)の両方を実装するために同じSFEのセットを構成する代わりに、他の実施形態は、サービス転送プレーンを実装するために、ゲスト転送プレーンおよびホストコンピュータのセット上の別のSFEのセットを実装するために、ホストコンピュータのセット上の1つのSFEのセットを構成する。例えば、いくつかの実施形態では、各ホストコンピュータは、ゲストソフトウェアスイッチおよびサービスソフトウェアスイッチを実行し、これら2つのスイッチおよび/またはそれらの関連モジュールは、ゲスト論理スイッチおよびサービス論理スイッチを実装するように構成されることができる。
[0057] いくつかの実施形態では、ソフトウェアスイッチ120、122および124および/またはそれらの関連モジュールは、複数のゲスト転送プレーン(例えば、ゲストLFE)および複数のサービス転送プレーン(例えば、サービスLFE)を複数のマシンのグループに対して実装するように構成されることができる。例えば、マルチテナントデータセンタの場合、いくつかのこのような実施形態は、少なくとも1つのサービスチェーンが実装される必要がある各テナントに対して、ゲストLFEおよびサービスLFEを定義する。関連するマシンの各グループ(例えば、各テナントのマシン)に対して、いくつかの実施形態は、2つの異なる転送プレーン、すなわち、ゲスト転送プレーンおよびサービス転送プレーンを実装するためのソフトウェア転送要素(例えば、ソフトウェアスイッチ)の共有セットを構成するために、2つの仮想ネットワーク識別子(VNI)を定義する。これらの2つのVNIは、以下ではゲストVNI(GVNI)およびサービスVNI(SVNI)と呼ばれる。図1では、図に示すように、ゲストLFEポート150と152はGVNIに関連付けられ、サービスLFEポート154、156、および158はSVNIに関連付けられている。
[0058] いくつかの実施形態では、サービスプレーン132は、SFE120または122との間のGVMの出入口のデータパスの入出力(IO)チェーンにモジュールを挿入することによっても実現される。この実装では、サービスプレーン132は、GVMから送信された、またはGVMのために受信されたデータメッセージを識別し、データメッセージ上でサービスのチェーンを実行するためにデータメッセージをSVMのセットに転送し、次にデータメッセージをGVMのデータパスに戻して、データメッセージがソフトウェアスイッチまたはGVMへのデータパスに沿って進むことができるようにする(すなわち、送信元GVMによって指定された宛先ネットワークアドレスに基づいてデータメッセージを処理できるようにする)。このようなGVMは、サービスノードによって処理されているデータメッセージがGVMの出口または入口パス上で識別されるデータメッセージであるため、送信元GVMとして以下で参照される。いくつかの実施形態では、GVMの出口/入口IOチェーンは、GVMのVNIC(仮想ネットワークインターフェースカード)180内のフック(関数呼び出し)のセット、またはGVMのVNICに関連するSFEポート(例えば、GVMのVNICと通信するSFEポート)として実装される。
[0059] サービスプレーンを実装するいくつかの実施形態のIOチェーンコンポーネントの例を提供する前に、図2は、2つのサービス動作のチェーンを実行するSVM108および110によってデータメッセージを処理できるように、サービスプレーン132に沿ってリダイレクトされるGVM102からGVM104へのデータメッセージ202の例を示す。図に示すように、サービスLFE132は、まずデータメッセージをSVM108に転送し、次にデータメッセージをSVM110に転送してから、データメッセージをGVM102の出口パスに戻し、送信元GVM102によって指定された宛先ネットワークアドレスに基づいてデータメッセージを処理できるようにする。
[0060] いくつかの実施形態におけるサービスLFEは、サービスLFEのためのSVNIを格納するオーバーレイカプセル化ヘッダを使用することによって、ホスト112、114、116の間でデータメッセージを転送する。また、サービスLFEがサービス論理スイッチであるとき、いくつかの実施形態におけるサービス転送プレーンは、SVMに関連するMACアドレス(例えば、SVM VNICのMACアドレス)を使用して、サービス論理スイッチのポート間でデータメッセージを転送する。いくつかの実施形態では、このGVMはサービスプレーンに直接接続せず、代わりにポートプロキシを介してサービスプレーンに接続するが、後述するように、MAC転送は送信元GVMに関連するサービスプレーンMACアドレスも使用する。
[0061] データメッセージ202がGVM102の出口パスに戻ると、ゲストLFE130はデータメッセージをその宛先(例えば、データメッセージのヘッダ内の宛先ネットワークアドレスによって指定される)、これはGVM104である、に転送する。いくつかの実施形態におけるゲストLFE130は、ゲストLFEのためのGVNIを格納するオーバーレイカプセル化ヘッダを使用することによって、ホスト112と114との間でデータメッセージを転送する。また、ゲストLFEが論理スイッチであるとき、いくつかの実施形態におけるゲスト転送プレーンは、GVM102および104に関連するゲストプレーンMACアドレスを使用して、データメッセージを転送する(例えば、GVM104のゲストプレーンMACアドレスを使用して、このGVMに関連するゲスト転送ポート152にデータメッセージを転送する)。図2のサービスプレーンは、GVMの出口パスを通過するデータメッセージを捕捉するが、いくつかの実施形態では、サービスプレーンは、GVMのVNICに到達する前に、GVMの入口パスを通過するときに、データメッセージを捕捉することもできる。
[0062] いくつかの実施形態では、サービス動作のチェーンは、サービスチェーンと呼ばれる。いくつかの実施形態におけるサービスチェーンは、サービスパスを定義するサービスノードの各セットと共に、サービスノードの1つ以上のセット(例えば、サービスマシンまたはアプライアンス)を用いて実現することができる。したがって、いくつかの実施形態では、サービスチェーンは、1つ以上のサービスパスのそれぞれによって実現することができる。いくつかの実施形態における各サービスパスは、サービスチェーンの1つ以上のサービスのセットと、これらのノードを介した特定の順序とを実行するための1つ以上のサービスノードを含む。
[0063] 図3は、サービスチェーン302と、サービスチェーンを実装する1つ以上のサービスパス304のセットとの間の関係を示すオブジェクト図を示す。各サービスチェーンにはサービスチェーン(SC)識別子306があり、各サービスパスにはサービスパス識別子(SPI)308がある。各サービスパスは、示されるように、サービスインスタンスエンドポイント310に関して識別されるm個のサービスノードのセットに関連付けられる。いくつかの実施形態におけるサービスインスタンスエンドポイントは、トラフィックがサービスプレーンに接続されたサービスノードを行き来することができる、またはサービスプレーンから来ることができる、ネットワーク内の論理的な位置である。いくつかの実施形態では、サービスインスタンスエンドポイントは、サービスノード(例えば、SVMのVNIC)に関連する1つのLFEポート(例えば、SFEポート)である。これらまたは他の実施形態では、サービスインスタンスエンドポイントは、GREカプセル化を使用する実施形態のために、以下にさらに説明するように、サービスノードに使用される2つのLFEポートに関連付けられることができる。また、いくつかの実施形態におけるサービスエンドポイントは、LFEポートに関連するMACアドレス、または(例えば、これらのLFEポートと通信する)関連するSVM VNICを通してアドレス指定可能である。
[0064] いくつかの実施形態では、各サービスチェーン302は、1つ以上のサービスプロファイル312への参照によって定義され、各サービスプロファイルは、チェーン内のサービス動作に関連付けられる。以下に説明するように、いくつかの実施形態におけるサービスノードは、(1)サービスマネージャから、サービスチェーン識別子の、それが実装しなければならないサービスプロファイルへのマッピングを受信し、(2)データメッセージと共に、それが実行しなければならないサービス動作を決定するためにサービスプロファイルにマッピングするサービスチェーン識別子を受信する。いくつかの実施形態では、受信されたマッピングは、サービスチェーン識別子(SCI)に基づくだけでなく、サービスインデックス値(サービスパス内のサービスノードの位置を指定する)およびサービスチェーンを介した方向(サービスチェーンによって指定されたサービスのシーケンスを実行するための順序を指定する)にも基づく。いくつかの実施形態におけるサービスプロファイルは、サービスノードが実行しなければならないサービス動作を記述する。いくつかの実施形態では、サービスプロファイルは、検査するサービスノードのためのルールのセットを識別することができる。
[0065] また、いくつかの実施形態では、サービス挿入ルール314は、GVMに関連するサービス挿入モジュールのためのサービスチェーン識別306への参照によって定義される。このようなサービス挿入モジュールは、これらのサービス挿入ルール314を使用して、送信元GVMに関連するデータメッセージを処理するために使用するサービスチェーンを識別する。前述したように、データメッセージは、送信元GVMからのものとして、そして、サービスチェーンによって処理されるデータメッセージが、GVMからの出口パスまたはGVMへの入口パスで識別されるものとして、以下で参照される。
[0066] 以下でさらに説明するように、サービス挿入(SI)ルールは、フロー識別子をサービスチェーン識別子に関連付ける。言い換えると、いくつかの実施形態は、データメッセージのフロー属性をサービス挿入ルールのフロー識別子(以下、SIルールのルール識別子と呼ぶ)に一致させることを試み、一致するサービス挿入ルール(すなわち、データメッセージのフロー属性に一致するフロー識別子の設定を有するルール)を識別し、この一致ルールの指定されたサービスチェーンをデータメッセージのサービスチェーンとして割り当てる。特定のフロー識別子(例えば、5つのタプル識別子への参照によって定義されるもの)は、1つの特定のデータメッセージフローを識別することができ、一方、より一般的なフロー識別子(例えば、5つのタプルより小さい参照によって定義されるもの)は、より一般的なフロー識別子と一致するいくつかの異なるデータメッセージフローのセットを識別することができる。そのため、一致するデータメッセージフローは、サービス挿入ルールのルール識別子に一致する共通の属性セットを持つ任意のデータメッセージセットである。
[0067] 以下にさらに説明するように、他の実施形態は、データメッセージフローに関連するコンテキスト属性を使用して、データメッセージをサービス挿入ルールに関連付ける。転送およびサービス動作を実行するためのコンテキスト属性を捕捉および使用するための多くの技術は、本明細書に組み込まれる米国特許出願第15/650,251号に記載されている。これらの技術のいずれも、本明細書に記載する実施形態と共に使用することができる。
[0068] いくつかの実施形態におけるネクストホップ転送ルール316は、SPI値308およびサービスインスタンスエンドポイント310を参照することによって定義される。具体的には、いくつかの実施形態では、データメッセージに対して識別されたサービスチェーンに対してサービスパスが選択される。各ホップで、これらの実施形態は、転送ルール314を使用して、サービスパス内のホップの位置を識別する現在のサービスインデックス(SI)値と共に、このサービスパスのSPI値に基づいて次のサービスインスタンスエンドポイントを識別する。言い換えると、いくつかの実施形態における各転送ルールは、SPI/SI値に関して定義された一致基準のセットを有し、これらのSPI/SI値に関連するネクストホップサービスインスタンスエンドポイントのネットワークアドレスを指定する。第1ホップのネクストホップルックアップを最適化するために、いくつかの実施形態は、サービスパス選択プロセスの一部として、SPIと共にネクストホップネットワークアドレスを送信元GVMのサービス挿入モジュールに提供する。
[0069] 図4は、サービスチェーンとそれに関連するサービスパスの例を示す。図示のように、いくつかの実施形態における各サービスチェーン405は、サービスプロファイル410のシーケンシャルリストとして定義され、この例における各プロファイルは、異なるミドルボックスサービス(ファイアウォール、ロードバランサ、侵入検知器、データメッセージ監視など)に関連する。また、この例では、各Mプロファイルは、VMのクラスタm内の1つのSVMによって実装できる。図に示すように、プロファイルごとに異なるクラスタには、異なる数のSVMを設定できる。また、いくつかの実施形態では、1つのサービスプロファイルが1つのサービスノードによって実装される(すなわち、いくつかのサービスノードのクラスタは、サービスプロファイルを実装するために必要とされない)。
[0070] クラスタ内の複数のSVMは特定のサービスを提供できるため、いくつかの実施形態では、特定のサービスチェーンに対して、複数の異なるSVMの組み合わせを介した複数のサービスパスを定義し、各クラスタの1つのSVMが各組み合わせで使用される。図4の例では、サービスチェーン405に関連するN個のサービスパスがあり、それらのサービスパスは、GVM404への経路上のGVM402で発信されるデータメッセージによって横断される。各サービスパスは、この図の異なる破線のセットで識別される。
[0071] 具体的には、第1のサービスパスは、転送するサービスチェーン405の第1のサービスを実装するために第1のサービスプロファイルのクラスタの第1のSVM 1,1、転送するサービスチェーン405の第2のサービスを実装するために第2のサービスプロファイルのクラスタの第1のSVM 2,1、および転送するサービスチェーン405のM番目のサービスを実装するためにM番目のサービスプロファイルのクラスタの第3のSVM M,3を通過する。第2のサービスパスは、転送サービスチェーン405の第1のサービスを実装するために第1のサービスプロファイルのクラスタの第2のSVM 1,2を通過し、転送サービスチェーン405の第2のサービスを実装するために第2のサービスプロファイルのクラスタの第1のSVM 2,1と、転送サービスチェーン405のM番目のサービスを実装するためにM番目のサービスプロファイルのクラスタの第1のSVM M,1を通過する。
[0072] 3番目のサービスパスは、転送サービスチェーン405の第1のサービスを実装するために、第1のサービスプロファイルのクラスタの3番目のSVM 1,3を通過し、転送サービスチェーン405の2番目のサービスを実装するために、2番目のサービスプロファイルのクラスタの2番目のSVM 2,2を通過し、転送サービスチェーン405のM番目のサービスを実装するために、M番目のサービスプロファイルのクラスタの2番目のSVM M,2を通過する。N番目のサービスパスは、転送サービスチェーン405の第1のサービスを実装するために、第1のサービスプロファイルのクラスタの3番目のSVM 1,3を通過し、転送サービスチェーン405の2番目のサービスを実装するために、2番目のサービスプロファイルのクラスタの2番目のSVM 2,2を通過し、転送サービスチェーン405のM番目のサービスを実装するために、M番目のサービスプロファイルのクラスタの4番目のSVM M,4を通過する。この例で説明するように、サービスパスが異なると、特定のサービス動作に同じSVMが使用される場合がある。ただし、特定のデータメッセージが通過するサービスパスに関係なく、同じサービスチェーンと同じサービス方向に関連付けられているパスに対して、同じサービス動作のセットが同じシーケンスで実行される。
[0073] いくつかの実施形態では、サービスチェーンは、第1のGVMから第2のGVMへのデータメッセージに対して順方向に実行され、次に第2のGVMから第1のGVMへのデータメッセージに対して逆方向に実行されなければならない。いくつかのこのような実施形態では、サービスプレーンは、第1のGVMから第2のGVMへのフロー内の第1のデータメッセージを処理するときに、順方向(フォワード)のサービスパスと逆方向(リバース)のサービスパスの両方を選択する。また、これらの実施形態のいくつかでは、フォワードおよびリバースサービスパスは、サービスノードの同じセットによって実装されるが、逆の順序で実装される。
[0074] 図5は、図4に示すフォワードサービスパスのリバースサービスパスの例を示す。フォワードサービスパスは、GVM402からGVM404へのデータメッセージに対してMサービスを実行するためのものであるが、リバースサービスパスは、GVM404からGVM402へのデータメッセージに対してMサービスを実行するためのものである。また、図5のサービスパスがサービスプロファイルM~1を実行するのに対して、図4のサービスパスがサービスプロファイル1~Mを実行すると、これらのサービスの順序が逆になる。
[0075] また、図4および図5の例では、各リバースサービスパスは、サービスパスの凡例およびこれらの図の同様の破線によって示されるように、まったく同じSVMのセットによって実装されるが逆の順序で実装される、1つの対応するフォワードサービスパスを有する。たとえば、順方向、第2のサービスパスは、第1のプロファイルに関連付けられた第1のサービスについてはSVM 1,2を通過し、第2のプロファイルに関連付けられた第2のサービスについてはSVM 2,1を通過し、M番目のサービスプロファイルに関連付けられたM番目のサービスについてはSVM M,1を通過する。一方、第2のサービスパスは、M番目のサービスプロファイルに関連付けられた第1のサービスについてはSVM M,1を通過し、第2のプロファイルに関連付けられた第2のサービスについてはSVM 2,1を通過し、第1のプロファイルに関連付けられた第2のサービスについてはSVM 1,2を通過する。
[0076] いくつかの実施形態では、サービスプロファイルの1つを実装するサービスノード(例えば、ファイアウォールSVM)の少なくとも1つが、2つのデータエンドポイント(例えば、2つのGVMS)間の双方向のデータトラフィックを見る必要があるため、フォワードパスとリバースパスに同じサービスノードが使用される。他の実施形態では、同じサービス動作のセットが反対の順序で実行される限り、2つのデータエンドポイント間のデータメッセージフローの両方向に同じサービスノードを使用する必要はない。
[0077] 図6は、いくつかの実施形態におけるサービスプレーンを実装するIOチェーンコンポーネントの例を示す。図に示すように、サービスプレーン132は、ホストコンピュータ上で実行されるソフトウェアスイッチ120、122、124と、これらのコンピュータ上で実行される2組のモジュール610、612、614、620、624、626、および628によって実現される。この例に実装されているサービスプレーンと、後続のいくつかの図に示されているいくつかの他の実施形態は、オーバーレイ論理L2サービスプレーンである。当業者は、他の実施形態が、オーバーレイL3サービスプレーン、または複数のL2論理スイッチおよび1つ以上の論理L3ルーターを備えたオーバーレイネットワークなどの他のタイプのサービスプレーンによって実現されることを理解するであろう。
[0078] 図6では、ソフトウェアスイッチ120、122、124、およびモジュール610、612、614、620、624、626、および628は、サービス挿入レイヤ602およびサービストランスポートレイヤ604であるサービスプレーンの2つの異なるレイヤを実装する。サービス挿入レイヤ602は、(1)データメッセージのサービスチェーンを識別し、(2)サービスチェーンのサービス動作を実行するために使用するサービスパスを選択し、(3)選択されたサービスパス内の各ホップにあるネクストホップサービスノードを識別し(サービスチェーンの完了時にデータメッセージが戻されるべき送信元ホストコンピュータの識別を含む)、(4)サービスパスに対して、データメッセージのサービスメタデータ(SMD)ヘッダ属性を指定する。いくつかの実施形態におけるSMD属性は、IETF(Internet Engineering Task Force)のRFC(Request for Comments)8300によるネットワークサービスヘッダ(NSH)属性を含む。
[0079] 一方、サービストランスポートレイヤ604は、サービスオーバーレイカプセル化ヘッダを定式化し、サービスホップ間を通過できるように、このヘッダでデータメッセージをカプセル化する。いくつかの実施形態では、サービストランスポートレイヤ604は、サービスオーバーレイカプセル化ヘッダを生成するようにSMDヘッダを修正する。例えば、これらの実施形態のいくつかでは、オーバーレイカプセル化ヘッダは、GeneveヘッダのTLV(タイプ、長さ、値)セクションに格納されたSMD属性をもつGeneveヘッダである。他の実施形態では、サービストランスポートレイヤ604は、サービスオーバーレイカプセル化ヘッダを、データメッセージをカプセル化するために最初に使用されるSMDヘッダに追加する。また、同じホストコンピュータ上で実行される2つのホップ間(例えば、2つのサービスノード間)を横断する場合、以下に説明するいくつかの実施形態におけるサービストランスポートレイヤは、いくつかの実施形態において、オーバーレイカプセル化ヘッダでデータメッセージをカプセル化しない。他の実施形態では、同じホストコンピュータ上の2つのホップ間を横断する場合でも、サービストランスポートレイヤはオーバーレイカプセル化ヘッダでデータメッセージをカプセル化する。
[0080] いくつかの実施形態では、サービス挿入(SI)レイヤ602は、SIプリプロセッサ610とSIポストプロセッサ612とを含み、各2つのIOチェーン650および652(すなわち、1つ以上のサービスチェーンが定義されているGVMの出口IOチェーン650および入口IOチェーン652)内に含まれる。SIレイヤ602はまた、サービスプレーンに接続された各サービスノードのためのサービスプロキシ614を含む(例えば、サービスプレーンLFEポートと対になったVNICを有する各SVMのため)。サービストランスポートレイヤ604は、1つ以上のサービスチェーンが定義されている1つ以上の可能な送信元GVMを有する各ホストコンピュータ上に、1つのSTLポートプロキシ620を含む。また、STレイヤ604は、(1)各送信元GVMの各IOチェーン内のSTL呼出元624、(2)各SVMのIOチェーン内のSTLモジュール626、および(3)1つ以上のカプセル化プロセッサ628を有する。
[0081] GVMの入口または出口データパスを通過するデータメッセージの場合、このデータパス上のSIプリプロセッサ610は、いくつかの動作を実行する。データメッセージのサービスチェーンを識別し、識別されたサービスチェーンのサービスパスを選択する。また、プリプロセッサは、選択されたサービスパス内の第1ホップサービスノードのネットワークアドレスを識別し、データメッセージのSMD属性を指定する。SMD属性は、いくつかの実施形態では、サービスチェーン識別子(SCI)、SPIおよびSI値、およびサービスチェーンのサービス動作を処理するための方向(例えば、順方向または逆方向)を含む。いくつかの実施形態では、SPI値はサービスパスを識別し、SI値はサービスノードの数を指定する。
[0082] SIプリプロセッサがその動作を完了した後、同じデータパス内のSTL呼出元624は、STLポートプロキシ620を呼び出して、プリプロセッサが識別したSMD属性と第1ホップのネットワークアドレスを中継し、それにより、ポートプロキシは、サービスプレーンを介してSMD属性を第1ホップに転送することができる。ポートプロキシは、第1サービスノードに転送するためにデータメッセージを定式化する。いくつかの実施形態では、この定式化は、データメッセージ内のオリジナルの送信元および宛先MACアドレスを、送信元GVM102および第1ホップサービスノードのMACアドレスに関連するサービスプレーンMACアドレスに置き換えることを含む。この定式化は、同じホストコンピュータ上の他のサービストランスポートレイヤモジュール(例えば、他のSTLモジュールなど)によって処理されるべきデータメッセージのための属性の集合も格納する。これらのデータメッセージ属性には、オリジナルの送信元と宛先のMACアドレスだけでなく、SMD属性も含まれる。
[0083] STLポートプロキシ620は、定式化されたデータメッセージをその記憶された属性と共にソフトウェアスイッチ120に渡す。定式化されたデータメッセージの宛先MACアドレス(つまり、第1ホップMACアドレス)に基づいて、ソフトウェアスイッチは、第1ホップSVMに関連付けられたスイッチポートにデータメッセージを配信する。第1ホップがポートプロキシ620と同じホストコンピュータ上にあるとき、データメッセージは、同じホストコンピュータ上の第1ホップのサービスノードの入口IOチェーン内のSTLモジュール626に提供される。第1ホップが同じホストコンピュータ上にないとき、データメッセージはカプセル化ヘッダでカプセル化され、後述するように、次のホップに転送される。
[0084] 各ホップのSTLモジュール626は、サービスプレーンの送信元MACアドレスおよびサービスプレーンの宛先MACアドレス(すなわち、そのサービスノードのMACアドレス)をデータメッセージの元の送信元および宛先MACアドレスに置き換えることによって、データメッセージを再定式化する。次に、この再定式化されたデータメッセージを、それに付随するSMD属性と共に、そのホップのサービスプロキシ614に渡す。このサービスプロキシは、GVMの入口データパスのIOチェーンにある。図6の図が不要に詳細で複雑すぎることを防ぐために、この例の各SVMの入口パスと出口パスは、GVM102の入口パスと出口パス650および652とは異なり、この図で結合されている。
[0085] サービスプロキシ614は、データメッセージのSMD属性を格納するカプセル化NSHヘッダを用いて受信データメッセージをカプセル化し、サービスノードがNSHヘッダをサポートできるとき、このカプセル化データメッセージをサービスノードに提供する。サービスノードがSVMである場合、以下にさらに説明するように、いくつかの実施形態では、サービスプロキシは、VNICインジェクション処理を通じて、データメッセージとそのNSHヘッダをSVMのVNICに供給する。サービスノードがNSHヘッダを処理できないとき、サービスプロキシ614はSMD属性をレガシーQinQカプセル化ヘッダまたはGREカプセル化ヘッダに格納し、カプセル化されたデータメッセージをSVMのVNICに渡す。これらのヘッダについては、以下でさらに説明する。
[0086] いくつかの実施形態では、各サービスホップのサービスプロキシ614は、サービストランスポートレイヤからそのホップのサービスノードを分離する。この分離により、SVMとサービストランスポートレイヤの両方のセキュリティが向上する。また、サービスプロキシは、SVMに提供されるデータメッセージが適切に定式化されていることを確認できる。これは、新しいNSH形式をサポートしていない従来のSVMでは特に重要である。
[0087] いくつかの実施形態におけるサービスプロキシ614は、サービスノードが動作可能であることを保証するために、そのサービスノードと共にライブネス検出シグナリングも実行する。いくつかの実施形態では、サービスプロキシは、それぞれの反復時間周期に少なくとも1回、そのサービスノードにライブネス値(liveness value)をもつデータメッセージを送信する。これを行うために、サービスプロキシはタイマーを設定し、リセットして、サービスノードに期間ごとにライブネス信号を送信したことを確認する。各ライブネス値には、サービスプロキシがSVMから提供されたライブネス応答を追跡できるようにするライブネスシーケンス番号が付随する。サービスノードは、ライブネス信号に応答するたびに、いくつかの実施形態では応答データメッセージ内の同一のライブネス値、または他の実施形態では応答データメッセージ内の対応する値をサービスプロキシに提供する。また、各ライブネス応答データメッセージと共に、サービスノードは、いくつかの実施形態では同じシーケンス番号、または他の実施形態ではサービスプロキシによって提供されるシーケンス番号のインクリメントされたバージョンを提供する。
[0088] 以下にさらに説明するように、いくつかの実施形態のサービスプロキシは、サービスフォワーディングプレーンからそのサービスノードに渡す各データメッセージ上で、そのライブネス検出シグナリングの一部をピギーバックする。サービスプロキシは、サービスノードにライブネス信号を送信するたびに、そのライブネスタイマーをリセットする。サービスノードは、データメッセージを処理するたびに、応答ライブネス値および関連するシーケンス番号(いくつかの実施形態ではインクリメントされるか、または上述のように他の実施形態ではインクリメントされない)をサービスノードに提供する。
[0089] いくつかの実施形態では、サービスプロキシは、サービスノードが特定の時間内(例えば、0.3秒以内)にそのライブネス信号に応答しないとき、ライブネス検出障害を登録する。2つの連続したライブネス検出障害を登録した後、いくつかの実施形態のサービスプロキシは、SVMが障害を起こしたホスト上で実行しているローカル制御プレーン(LCP)モジュールに通知し、LCPが中央制御プレーン(CCP)サーバに通知できるようにする。このような通知に応じて、CCPはSVMとSVMが存在するサービスパスをデータプレーンの転送ルールとパス選択ルールから削除し、必要に応じて、障害が発生したSVMの関連サービスチェーンに追加のサービスパスを生成する。また、いくつかの実施形態では、サービスプロキシは、故障したサービスノードが存在するサービスパスを選択しないようにその分類器をプログラムするために、帯域内データメッセージを送信元GVMに送り返す。
[0090] いくつかの実施形態では、サービスプロキシはまた、そのサービスノードの最上位でフロープログラミングを実行する。いくつかの実施形態におけるこのフロープログラムは、送信元GVMのIOチェーンがサービスパスに沿ってサービスチェーン、サービスパス、および/またはデータメッセージフローを選択する方法を修正することを含む。他の実施形態では、このフロープログラムは、データメッセージフローがサービスプレーンによって処理される方法に対する他の修正を含む。以下、フロープログラムについてさらに説明する。
[0091] データメッセージとそのSMD属性(カプセル化NSHヘッダまたは他のカプセル化ヘッダ)を受信すると、SVMはサービス動作を実行する。いくつかの実施形態では、SVMは、サービスマネージャから受信したマッピングレコードを使用して、SMD属性内のSCI、SI、および方向の値をサービスプロファイルにマッピングし、このサービスプロファイルをそのルールセットの1つにマッピングし、次に、このサービスプロファイルを調べて、処理する1つ以上のサービスルールを識別する。いくつかの実施形態では、各サービスルールは、データメッセージ属性(例えば、送信元および宛先IPアドレス、送信元および宛先ポートアドレスおよびプロトコルである5つのタプル属性)に関して定義されるルール識別子を有する。いくつかの実施形態におけるSVMは、ルールの識別子をデータメッセージの属性と比較して、一致するルールを識別する。1つ以上の一致ルールを識別すると、いくつかの実施形態では、SVMは、最高優先度の一致ルールによって指定されたアクションを実行する。たとえば、ファイアウォールSVMは、データメッセージの通過を許可するか、ドロップするか、またはリダイレクトするかを指定し得る。
[0092] SVMがサービス動作を完了すると、SVMはその出口データパスに沿ってデータメッセージを転送する。次に、出口データパスのIOチェーンのサービスプロキシは、このデータメッセージをキャプチャし、このデータメッセージについて、サービスパス内のネクストホップのネットワークアドレスを識別する。これを行うために、いくつかの実施形態におけるサービスプロキシは、SI値をデクリメントし、次いで、データメッセージの記憶された属性セット内のSPI値と共に、このデクリメントされた値を使用して、ネクストホップネットワークアドレスを識別する完全一致転送ルールを識別する。実施形態によっては、SVMはSI値をデクリメントすることができる。このような場合、いくつかの実施形態のサービスプロキシは、対応するSVMがSI値をデクリメントしたときにSI値をデクリメントしないように構成されることができる。
[0093] どちらの構成でも、サービスプロキシは適切なSPI/SI値を使用して、データメッセージに適用可能なネクストホップ転送ルールを識別することで、ネクストホップネットワークアドレスを識別する。プロキシのサービスノードが複数のサービスパスにある場合、プロキシの転送ルール記憶装置には、異なるサービスパスに関連付けられた異なるSPI/SI値に異なるネクストホップネットワークアドレスを指定できる複数の完全一致転送ルールが格納される。デクリメントされたSI値がゼロでないと仮定すると、サービスパスのネクストホップは別のサービスノードになる。それゆえ、いくつかの実施形態におけるプロキシは、SVMの出口データパスにおいて、ネクストホップのMACアドレスをプロキシの関連するSTLモジュール626に提供する。次に、このモジュールは、SVMのMACアドレスとネクストホップのMACアドレスを送信元と宛先のMACアドレスとして指定し、データメッセージに格納されている属性セットにデータメッセージの元の(original)送信元と宛先のMACアドレスを格納することによって、データメッセージを再定式化する。次に、STLモジュール626は、データメッセージを出口パスに沿って転送し、そこでソフトウェアスイッチに到達し、そこで、データメッセージとその格納された属性をネクストホップサービスノードに転送しなければならない。
[0094] ネクストホップが同じホストコンピュータ上にある場合、ソフトウェアスイッチは、前述のように、データメッセージとその属性を、ネクストホップのサービスノードのSTLモジュールに接続するポートに渡す。一方、ネクストホップサービスノードが別のホストコンピュータ上にある場合、ソフトウェアスイッチは、他のホストコンピュータ上のVTEPとオーバーレイネットワークトンネルを介して通信するVTEP(VXLAN Tunnel Endpoint)に接続するアップリンクポートにデータメッセージを提供する。次に、カプセル化プロセッサ628は、このポートの出口パスに沿ってこのデータメッセージを捕捉し、このデータメッセージのカプセル化オーバーレイヘッダを定義し、このオーバーレイヘッダでデータメッセージをカプセル化する。いくつかの実施形態では、オーバーレイヘッダは、SMD属性とSTL属性の両方を格納する単一のヘッダである。例えば、いくつかの実施形態では、オーバーレイヘッダは、1つ以上のTLVにSMDおよびSTL属性を格納するGeneveヘッダである。
[0095] 上述したように、いくつかの実施形態におけるSMD属性は、SCI値、SPI値、SI値、およびサービス方向を含む。また、いくつかの実施形態では、STL属性は、オリジナルL2送信元MACアドレス、オリジナルL2宛先MACアドレス、データメッセージ方向、および送信元GVMのサービスプレーン送信元MACアドレスを含む。いくつかの実施形態では、サービス方向およびサービスプレーン送信元MACアドレスは、すでにSMD属性の一部である。いくつかの実施形態でのサービストランスポートレイヤは、サービスパスの終わりに元のデータメッセージとその後を再作成するため、データパスに沿って戻るようにデータメッセージを元のホストに戻すために、処理された各データメッセージと共にこれらの属性を必要とする。
[0096] カプセル化されたデータメッセージがネクストホップのホストコンピュータで受信されると、データメッセージは、前ホップのVTEPからデータメッセージを受信したVTEPに接続するソフトウェアスイッチのダウンリンクポートのカプセル化(encap)プロセッサ628によってキャプチャされる。このカプセル化プロセッサは、データメッセージからカプセル化ヘッダを除去し、STL属性とSMD属性をデータメッセージの属性のセットとして格納する。その後、カプセル解除されたメッセージをダウンリンクポートに渡し、ソフトウェアスイッチに渡してネクストホップのスイッチポートに転送する。そこから、データメッセージは、前述のように、サービスノードに到達する前に、STLモジュールとサービスプロキシによって処理される。
[0097] サービスプロキシがデクリメントされたSI値がゼロであると判断すると、サービスプロキシはデクリメントされたSI 値と埋め込みSPI値を照合し、ネクストホップを送信元GVMのサービスプレーンMACアドレスとして識別するようにサービスプロキシに指示するルールを使用する。いくつかの実施形態では、この判定は、転送テーブルの転送エントリによって指定されず、むしろサービスプロキシのロジックにハードコーディングされる。したがって、SI値がゼロであるとき、プロキシは、データメッセージをGVMのホストコンピュータに転送するために使用するために、送信元GVMのサービスプレーンMACアドレスを、その関連するSTLモジュール626に提供する。次に、STLモジュールは、メッセージの送信先MAC(DMAC)アドレスを送信元GVMのサービスプレーンMACアドレスとして定義し、一方、メッセージの送信元MAC(SMAC)アドレスをそのサービスノードに関連付けられたサービスプレーンMACアドレスとして定義する(たとえば、サービスノードに関連付けられたソフトウェアスイッチのポートのサービスプレーンMAC)。また、データメッセージのオリジナルのSMACとDMACをデータメッセージの属性セットに格納する。
[0098] STLモジュールは、定式化されたデータメッセージとその属性を出口パスに沿って渡し、そこで関連するソフトウェアスイッチポートに到達する。その後、ソフトウェアスイッチはこのメッセージをアップリンクポートに渡す。次に、このポートのカプセル化プロセッサ628は、このデータメッセージを捕捉し、このデータメッセージのカプセル化オーバーレイヘッダを定義し、このオーバーレイヘッダでデータメッセージをカプセル化する。前述したように、このオーバーレイヘッダは、1つ以上のTLVにSMDおよびSTL属性を格納するGeneveヘッダである。このカプセル化されたデータメッセージは、次にオーバーレイネットワークを通過して送信元GVMのホストコンピュータに到達し、そこでこのデータメッセージはダウンリンクポートのカプセル化プロセッサによりカプセル解除され、その後ソフトウェアスイッチに提供され、その後ポートプロキシに転送される。
[0099] ポートプロキシ620は、カプセル解除されたデータメッセージを受信すると、カプセル解除されたデータメッセージの記憶された属性の一部となっているオリジナルの宛先MACアドレスから、このデータメッセージに関連するGVMを識別する。いくつかの実施形態では、ポートプロキシは、受信データのSMD属性におけるオリジナルの送信元MACアドレスとサービス方向を、そのホスト上のGVM(例えば、ゲスト転送プレーンと関連付けられたソフトウェアスイッチポートとそのホスト上のGVM)にマッピングするレコードを有する。次に、ポートプロキシは、オリジナルのSMACとDMACを含むようにデータメッセージを定式化し、データメッセージを送信元GVMのIOチェーンに戻す。次に、このIOチェーン内のSIポストプロセッサ612は、このデータメッセージを処理してから、このデータメッセージをGVMの出口データパスに戻す。このポストプロセッサの動作については、以下にさらに説明する。
[00100] 当業者は、他の実施形態におけるサービス挿入レイヤおよびサービストランスポートレイヤが、上述の例示的な実施形態とは異なるように実装されることを認識するであろう。例えば、異なるサービスホップを横断するためにMACアドレスに依存するL2オーバーレイ(L2トランスポートレイヤ)を使用する代わりに、他の実施形態は、L3および/またはL4ネットワークアドレスを使用して連続するサービスホップを識別するL3オーバーレイ(L3トランスポートレイヤ)を使用する。また、上記のサービス挿入および/またはトランスポートモジュールは、異なった動作をするように構成されることができる。
[00101] サービス挿入レイヤおよびサービストランスポートレイヤの動作のより詳細な例を、図7-19を参照して説明する。図7は、いくつかの実施形態のSIプリプロセッサ610およびSTL呼出元624によって実行される処理700を示す。このプロセスは、図8に示されているデータフローの例を参照することによって以下に説明される。プロセス700は、SIプリプロセッサ610が呼び出されて、GVMの入口または出口データパスに沿って送信されるデータメッセージを分析するときに開始される。
[00102] 図に示すように、処理700は、最初に、(705において)プリプロセッサ610がデータメッセージのフローのためのサービスチェーンおよびサービスパスを事前に選択し、選択されたサービスチェーンおよびパスのためのSMD属性を記憶しているか否かを判定する。いくつかの実施形態では、処理700は、データメッセージの属性(例えば、その5つのタプル属性)を使用して、サービスチェーンとパスが以前に選択されたメッセージフローのレコードを格納する接続トラッカーでメッセージのフローのレコードを識別しようとすることによって、この判定を行い、SMD属性は、接続トラッカーレコードでこれらのチェーンとパスに対して以前に格納される。
[00103] 図8は、プリプロセッサ610がGVM 102の出口データパスに沿ってデータメッセージ802を受信する様子を示す。また、受信したデータメッセージの属性のセット(例えば、5つのタプル属性)に一致するフロー識別子(例えば、5つのタプル識別子)を有する接続レコードを見つけようとするために、プリプロセッサが最初に接続追跡記憶装置804をチェックすることを示す。この例では、受信されたデータメッセージがそのフローのための最初のデータメッセージであるため、プリプロセッサ610はそのような接続レコードを見つけることができない。
[00104] 処理700が、(705において)接続記憶装置804が、受信されたデータメッセージと一致する接続レコードを有することを判定すると、処理は、このレコードから、または一致する接続レコードによって参照される別のレコードからSMD属性を検索する(710において)。いくつかの実施形態におけるSMD属性は、SCI、SPI、SIおよび方向値を含む。710から、プロセスは、後述する740に遷移する。
[00105] 一方、処理700が(705において)、接続記憶装置804が、受信されたデータメッセージと一致する接続レコードを持たないことを判定すると、処理は、図8に記憶装置806として示されているSIルール記憶装置内のサービス挿入ルールにデータメッセージを一致させようとする分類動作を(715において)実行する。いくつかの実施形態において、SIルール記憶装置806は、1つ以上のデータメッセージフロー属性(例えば、5つのタプル属性の1つ以上またはそれらの部分)に関して定義されたルール識別子を有するサービス挿入ルール822を記憶する。各サービスルールは、サービスルールのルール識別子に一致するデータメッセージフローに適用可能なサービスチェーンを識別するSCIも指定する。
[00106] 720において、プロセスは、分類動作がデータメッセージの属性と、データメッセージ上で実行されるサービスチェーンを必要とするサービス挿入ルールのルール識別子とが一致するか否かを判定する。分類動作が、データメッセージに対してサービスチェーンを実行することを要求するサービス挿入ルールを識別しない場合、処理700は終了する。いくつかの実施形態では、SIルール保管806は、データメッセージの属性が任意のより高い優先度SIルールに一致しないときに、任意のデータメッセージに一致するデフォルトの低優先度ルールを有し、このデフォルトの低優先度ルールは、データメッセージのフローに対してサービスチェーンが定義されていないことを指定する。データメッセージフローに対してサービス動作を実行する必要がない場合、いくつかの実施形態では、データメッセージフローに対してサービスチェーンは定義されない。
[00107] 一方、分類動作が、データメッセージ上でサービスチェーンを実行することを要求するサービス挿入ルールのルール識別子にデータメッセージの属性が一致する場合、処理700は、(725)パス選択動作を実行して、715で識別されるサービス挿入ルールによって指定されるサービスチェーンのサービスパスを選択する。図8に示すように、プリプロセッサ610は、サービスチェーン識別子ごとに1つ以上のサービスパスを識別するパス記憶テーブル808を調べることによって、パス選択動作を実行する。
[00108] 各サービスパスは、そのSPI値で指定される。サービスチェーンに複数のサービスパスが指定されている場合、パス記憶装置808は、利用可能なSPIから1つのSPIを選択するための一連の選択指標820をサービスチェーンごとに格納する。様々な実施形態は、異なる選択指標を使用する。例えば、いくつかの実施形態は、サービスパスのサービスノードが実行されるホストの数に基づいてサービスパスをコストとする選択指標を使用する。他の実施形態では、これらの選択指標は、これらの重み値によって向けられるロードバランシングの態様で、プリプロセッサがサービスチェーンのSPIを選択することを可能にする重み値である。例えば、いくつかの実施形態では、これらの重み値は、サービスパス内のサービスノードのそれぞれの負荷に基づいて、および/または他のコスト(サービスパスによって横断されるホストの数など)に基づいて、中央制御プレーンによって生成される。
[00109] これらの実施形態のいくつかでは、プリプロセッサは、特定のサービスチェーンに対して行った以前の選択のレコードを維持し、これらの以前の選択に基づいて後続のサービスパスを選択する。たとえば、4つのサービスパスの場合、重み値は1、2、2、1となる。これは、サービスチェーンに対して6回連続してSPIを選択する場合、最初のSPIを1回選択し、次に2番目と3番目のSPIをそれぞれ2回選択し、4番目のSPIを1つ選択することを特定する。このサービスチェーンの次のSPI選択では、選択メカニズムがラウンドロビンであるため、最初のSPIが選択される。
[00110] 他の実施形態では、重み値は、数値範囲(例えば、ハッシュ値の範囲)に関連付けられ、データメッセージフローを数値範囲およびそれによってその関連SPIにマッピングするために、各データメッセージフローに対してランダムにまたは決定論的に生成される。さらに他の実施形態では、ホストLCPは、利用可能なサービスパスのプールから各サービスチェーン識別子に対して1つのサービスパスを選択し、そのため、各SCIに対して1つのSPIのみをパステーブル808に格納する。これらの実施形態におけるLCPは、コスト(各サービスパスによって横断されるホストの数および/またはサービスパスのサービスノード上の負荷など)に基づいて、各サービスチェーンのサービスパスを選択する。
[00111] 識別されたサービスチェーンについてのサービスパスを識別した後、プロセス700は次に、選択されたサービスパスの最初のホップのためのネットワークアドレスを(730において)識別する。いくつかの実施形態では、このホップのためのMACアドレスは、選択されたパスのSPIと同じレコードに格納される。したがって、これらの実施形態では、このMACアドレスは、選択されたSPIと共にパス選択記憶装置808から取り出される。他の実施形態では、プリプロセッサは、図8に示すように、SPI/SI値の関連するペアのネクストホップネットワークアドレスを格納する完全一致転送テーブル810からファーストホップのMACアドレスを取り出す。いくつかの実施形態では、サービスチェーンの初期SI値は、SIルール記憶装置806のSIルールに格納され、一方、他の実施形態では、これらの最初のSI値は、そのパステーブル808内のSPI値と共に格納される。
[00112] 735において、処理700は、データメッセージのSMD属性を指定し、これらの属性をデータメッセージに関連付ける。上述したように、SMD属性は、いくつかの実施形態では、SCI、SPI、SIおよび方向値を含む。サービスパスのサービス方向は、サービスチェーンを通る方向がサービスパスに依存するので、パステーブル808内のSPI値と共に格納される。また、以下に述べるように、いくつかの実施形態におけるサービスチェーンは、第1のGVMから第2のGVMへのデータメッセージに対して順方向に実行され、次いで、第2のGVMから第1のGVMへのデータメッセージに対して逆方向に実行されなければならない。このようなサービスチェーンの場合、プリプロセッサ610は、第1のGVMから第2のGVMへのフロー内の最初のデータメッセージを処理するときに、順方向のサービスパスと逆方向のサービスパスの両方を選択する。
[00113] SIプリプロセッサがその動作を完了した後、ポートプロキシがサービスプレーンを介して最初のホップにSMD属性を転送できるように、STLポートプロキシ620は、同じデータパス内のSTL呼出元624が、SMD属性と、プリプロセッサが識別した最初のホップのネットワークアドレスとを中継する(740において)。サービス挿入レイヤおよびサービストランスポートレイヤにおけるポートプロキシ620および他のモジュールの動作は、図9-19を参照して説明される。これらの図は、SVM106、次にSVM108、次にSVM110を含むサービスパスを介してGVM102からのデータメッセージを処理する例を説明する。
[00114] これらの図では、各GVMはマルチテナントデータセンタのテナントのコンピューティングマシンであり、テナントのゲストVNI (GVNI)に関連付けられたスイッチポートを介してソフトウェアスイッチに接続する。また、これらの図では、各SVMは、GVMメッセージトラフィックを処理するためのサービスマシンであり、テナントのサービスVNI (SVNI)に関連付けられたスイッチポートを介してソフトウェアスイッチに接続されている。上記および以下にさらに説明するように、いくつかの実施形態は、テナントのためのサービス論理転送動作(すなわち、サービス論理転送要素、例えば、論理スイッチまたはルーター、またはサービス論理ネットワークを確立するため)を実行するためにSVNIを使用しながら、テナントのためのゲスト論理転送動作(すなわち、ゲスト論理転送要素、例えば、論理スイッチまたはルーター、またはゲスト論理ネットワークを確立するため)を実行するためにGVNIを使用する。
[00115] これらの論理ネットワーク識別子(すなわち、GVNIおよびSVNI)の両方は、いくつかの実施形態において、管理プレーンまたは制御プレーンによってテナントのために生成される。いくつかの実施形態の管理または制御プレーンは、異なるテナントに対して異なるGVNIおよびSVNIを生成し、2つのテナントが同じGVNIまたはSVNIを持たないようにする。いくつかの実施形態では、各SVMは、1つのテナント専用であり、一方、他の実施形態では、1つのSVMは、複数のテナントによって使用され得る。マルチテナントの状況では、各SVMは、テナントごとに異なるサービスプレーンの異なるポート(異なる論理スイッチなど)に接続できる。
[00116] 図9に示すように、ポートプロキシ620は、データメッセージ内のオリジナルの送信元および宛先MACアドレスを、送信元GVM102および第1ホップサービスノードのMACアドレスに関連付けられたサービスプレーンMACアドレスに置き換えることによって、第1のサービスノードに転送するためのデータメッセージを定式化する。この動作は、図10のプロセス1000における動作1005として描かれている。このプロセス1000は、SIモジュール(SIプリプロセッサ610またはSIプロキシ614など)がデータメッセージを処理するときに、ポートプロキシ620またはSTLモジュール626が必ず開始するプロセスである。
[00117] このプロセス1000では、ポートプロキシは、同じホストコンピュータ上の他のサービストランスポートレイヤモジュール(例えば、vswitch、他のSTLモジュール、カプセル化プロセッサなど)によって処理されるべきデータメッセージのための属性のセットに、データメッセージのオリジナルの送信元および宛先MACアドレスも(1010において)追加する。再定式化されたデータメッセージ902および拡張属性セット904は、図9に描かれている。
[00118] データメッセージを再定式化し、その属性セットを増強した後、ポートプロキシ620は、定式化されたデータメッセージを、その格納された属性セットと共に、ソフトウェアスイッチ120に到達する出口パスに沿って(1015において)渡す。定式化されたデータメッセージの宛先MACアドレス(例:ファーストホップMACアドレス)に基づいて、ソフトウェアスイッチは(1020で)ネクストホップのポートがローカルかどうかを判定する。これは、図9に示す例の場合であるため、ソフトウェアスイッチは(1025で)データメッセージを第1ホップのSVM106に関連付けられたスイッチポートに配信する。次に、このポートは、SVMの入口パスに沿ってデータメッセージを送信し、図9に示すように、データメッセージ902とその拡張属性セット904は、第1ホップのSVMの入口IOチェーンの関数呼び出しを通じてSTLモジュール626によって識別される。
[00119] 次に、このSTLモジュール626は、GVMのサービスプレーンMACアドレスおよび第1ホップMACアドレス(すなわち、SVM106のMACアドレス)を、拡張属性セット904から取得するデータメッセージの元の送信元および宛先MACアドレスに置き換えることによって、データメッセージを(1030において)再定式化する。オリジナルのSMACおよびDMACアドレスを検索する際に、STLモジュール626は、データメッセージの属性セットを変更する。再定式化されたデータメッセージ906および修正された属性セット908は、図9に描かれている。STLモジュールは、次に、この再定式化されたデータメッセージを、それに付随するSMD属性と共に、SVMの入口パスに沿って渡し、これは、このホップの入口サービスプロキシ614によって次に処理される。
[00120] 図11は、サービスプロキシ614が、サービスノードの入口パスに沿って横断するデータメッセージを受信するたびに、いくつかの実施形態において実行する処理1100を示す。図に示すように、サービスプロキシは、必要に応じて、最初に(1105において)データメッセージのコピーを作成する。例えば、いくつかの実施形態では、サービスノードは、その動作を実行するためにデータメッセージのコピーを受信するだけでよい。このようなサービスノードの一例は、メッセージ監視またはミラーリング動作のためにデータメッセージコピーを取得する必要がある監視SVMを提供する。
[00121] これらの実施形態では、サービスプロキシは、データメッセージをコピーし、このコピーに関して残りの操作1110~1125を実行する一方で、元のデータメッセージを次のサービスホップに渡すか、または送信元GVMに戻す。元のデータメッセージをネクストサービスホップに転送するか、GVMに戻すには、サービスプロキシは、SPI/SI値に基づいてネクストホップルックアップを実行し、次に転送するSTLモジュールにネクストホップアドレス(たとえば、ネクストサービスホップのアドレスまたは送信元GVMのサービスプレーンMAC)を提供する必要がある。これらのルックアップおよび転送動作は、図15-17を参照して後述するものと同様である。
[00122] 次に、1110において、サービスプロキシは、データメッセージの記憶されたSMD属性セット(いくつかの実施形態では、この時点でのデータメッセージコピーであってもよい)にライブネス属性を設定する。このライブネス属性は、データメッセージを処理した後に、応答ライブネス値(同じ値または関連する値)をデータメッセージとともに提供するようにサービスノードに指示する値である。このライブネス属性を使用すると、サービスプロキシはシーケンス番号も提供する。サービスノードは、前述のように、応答性のあるライブネス値を使用して、サービスノードを戻すか、インクリメントしてから戻る必要がある。
[00123] 1115において、サービスプロキシは、必要に応じて、データメッセージを定式化して、サービスノードによって処理可能な形式にする。例えば、サービスノードがデータメッセージの宛先MACとして設定されている現在のネクストホップMACを知らない場合、サービスプロキシはメッセージの宛先MACをサービスノードに関連付けられた宛先MACに変更する。
[00124] サービスノードに転送するためにデータメッセージをサニタイズするように定式化した後、サービスプロキシ614は、使用するように構成できる3つのカプセル化ヘッダのうちの1つでデータメッセージを(1120において)カプセル化し、サービスノードの入口パスに沿ってカプセル化されたメッセージを(1125において)サービスノードに転送できるように通過させる。図9は、サービスプロキシからネイティブNSHカプセル化ヘッダを使用してSVM106に渡されるカプセル化されたデータメッセージ920を示す。図に示すように、カプセル化ヘッダ922は、サービスチェーン識別子、サービスインデックス、サービスチェーン方向およびライブネス信号を含む。
[00125] 図12は、(1)NSHをサポートするサービスノードのネイティブNSHカプセル化ヘッダ1205、(2)NSHをサポートしないレガシーサービスノードのGREカプセル化ヘッダ1210、(3)NSHをサポートしないレガシーサービスノードのQinQカプセル化ヘッダ1215である、いくつかの実施形態の3つのカプセル化ヘッダを図示する。ネイティブNSHヘッダは、サービスメタデータを、図21および図22を参照して以下に記述されるフォーマットで格納する。GREヘッダフォーマットについては、図25-26を参照して以下でさらに説明する。GREとQinQの両方のフォーマットでは、サービスメタデータの一部はGREとQinQヘッダフィールドに格納されるが、サービスメタデータはネイティブNSHヘッダに格納されているほど豊富に格納することはできない。QinQヘッダは、あまりサービスメタデータを必要としない単純なレガシーサービスノードに使用される。たとえば、単にサービスチェーン識別子とサービス方向、またはサービスチェーン識別子とサービスインデックスを必要とするだけである。このサービスメタデータは、QinQヘッダのVLANヘッダフィールドに格納される。
[00126] 図12は、カプセル化ヘッダ1205、1210、1215の3つの異なるタイプに加えて、いくつかの実施形態のSVMのvmxnet3準仮想化(paravirtualized)NIC1240も示す。図に示すように、このネットワークインタフェースカードは、カプセル化されたデータメッセージを、SVMのDPDKドライバ1204のポーリングモードドライバ1202、または割り込みモードドライバ1204に提供することができる。具体的には、vmxnet3準仮想化ネットワークインタフェースカードは、SVM内部でどのドライバが使用されているかに応じて、異なる動作モードで動作するように構成されることができる。ポーリングモードドライバ1202は、DPDK(データプレーン開発キット)ドライバ1206のバックエンドとして見ることができる。ポーリングモードドライバは、データメッセージを取得するためにVNICを定期的にポーリングし、一方、VNICは割り込みを生成して、割り込みベースドライバ1204にデータメッセージを取得させる。
[00127] ポーリングモードドライバは、データメッセージをDPDKドライバ1206に渡し、その後、フローが最初に受信されると、それをユーザ空間内のメッセージ処理モジュールに渡す。一方、割り込みベースのドライバ1204は、カーネル内またはユーザ空間内のいずれかで、データメッセージをメッセージ処理モジュール1212に提供する。次に、SVMのメッセージ処理モジュールは、カプセル化されたデータメッセージをカプセル解除し、SVMのサービス動作を実行する。いくつかの実施形態では、異なるSVMは、データメッセージで受信するSCI、SIおよびサービス方向値に基づいて異なるサービス動作を実行する。
[00128] 図13は、サービスプロキシから処理するデータメッセージを受信するたびにSVMがいくつかの実施形態で実行する1つの例示的なプロセス1300を示す。他の実施形態では、SVMは、SCI、SIおよびサービス方向値を異なる方法で使用して、その動作を実行することができる。示されるように、処理100は、最初に(1305において)カプセル化ヘッダを除去し、そこからSCI、SI、方向およびライブネスパラメータを取得する。次に、プロセスは、サービスマネージャから受信した(1310での)マッピングレコードを使用して、SCI、SI、および方向の値をサービスプロファイルにマッピングし、次に(1315で)このサービスプロファイルをそのルールセットの1つにマッピングし、次にそれを調べて、処理する1つ以上のサービスルールを識別する(1320で)。
[00129] 図14は、SVMの第1のマッピングテーブル1405を示す。図に示すように、このテーブルの各レコードは、SCI、SI、および方向の値をサービスプロファイルにマップする。この図は、SVMの第2のマッピングテーブル1410も示しており、このテーブルは、サービスプロファイルを、サービスルールテーブル1415内のいくつかのルールを識別するルールセット識別子にマッピングする。図14に示すように、いくつかの実施形態のサービス挿入マネージャは、第1のテーブル1405のレコードを提供し(例えば、SIネットワークマネージャは、SVMのサービスマネージャにこれらのレコードを提供し、SVMはSVMにそれらのレコードを提供する)、一方、SVMのサービスマネージャは、第2および第3のテーブル1410および1415のレコードを提供する。いくつかの実施形態では、これら2つのサービスマネージャは、2つの異なるエンティティ、例えば、データセンタ管理者とサードパーティ管理者、またはテナント管理者とデータセンタ管理者によって管理される2つの異なる管理プレーンである。
[00130] いくつかの実施形態では、サービスルールテーブル145内の各サービスルール1420は、データメッセージ属性(例えば、5つのタプル属性)に関して定義されるルール識別子を有する。SVMは、(1320で)ルールの識別子をデータメッセージの属性と比較して、一致するルールを識別する。1つ以上の一致ルールを識別すると、いくつかの実施形態のSVMは、最高優先度の一致ルールによって指定されたアクションを(1325において)実行する。たとえば、ファイアウォールSVMは、データメッセージの通過を許可するか、ドロップするか、またはリダイレクトするかを指定できる。
[00131] SVMがサービス動作を完了すると、SVMはデータメッセージをカプセル化ヘッダで(1330で)カプセル化する。これは、サービス動作によってデータメッセージがドロップされないことを前提としている。このカプセル化ヘッダは、SVMが受信したデータメッセージと同じ形式(NSHヘッダ、GREヘッダ、QinQヘッダなど)である。このカプセル化ヘッダでは、いくつかの実施形態のSVMは、(1)サービスプロキシのライブネス値に応答するライブネス値と(2)ライブネス値の適切なシーケンス番号(例えば、調整されていないか、またはインクリメントされたシーケンス番号)を設定する。
[00132] いくつかの実施形態では、一部のサービスノードは、それらが受信するSI値をデクリメントするように構成され、一方、他のサービスノードはSI値をデクリメントするように構成されない。サービスノードがSI値をデクリメントするように設定されている場合、1330でカプセル化ヘッダにデクリメントされたSI値を挿入する前に、SI値をデクリメントする。いくつかの実施形態におけるSVMはまた、カプセル化ヘッダにSMD属性(SCI、SIおよびサービス方向)を設定するが、他の実施形態では、出口パスにおけるサービスプロキシは、データメッセージをSVMに渡す前にサービスプロキシが作成した以前のレコードからこれらの値を取得する。
[00133] いくつかの実施形態では、SVMはまた、カプセル化ヘッダにフロープログラム属性を設定して、データメッセージのフローのサービス処理を変更するようにサービスプロキシに指示することができる。この流れプログラムについては、以下にさらに説明する。データメッセージをカプセル化した後、SVMはその出口パスに沿ってデータメッセージを転送する。図15は、SVM106がカプセル化されたデータメッセージ1502を、そのカプセル化ヘッダ1504内のSMDおよびライブネス属性と共に返す例を示す。
[00134] 図16は、サービスプロキシ614が、そのサービスノードの出口パスに沿って横断するデータメッセージを受信するたびに、いくつかの実施形態において実行する処理1600を示す。示されているように、いくつかの実施形態におけるサービスプロキシは、最初に(1605において)データメッセージからカプセル化ヘッダを除去し、このヘッダからSMD属性を除去し、データメッセージのために作成する属性セットにこれらの属性を格納する。いくつかの実施形態では、サービスプロキシは、データメッセージを入口パスに沿ってサービスノードに与える前にサービスプロキシが作成した以前のレコードから、SMD属性の一部または全部(例えば、SPI値、送信元GVMのサービスプレーンMACアドレス)を(1605において)取得する。図15は、サービスプロキシ614がカプセル解除されたデータメッセージ1507に対して作成する属性セット1506の例を示す。
[00135] 次に、1610のプロセスは、サービスノードから受信したライブネス値を考慮して保持するライブネスタイマー(例えば、0.25秒ごとに期限切れになるタイマー)をリセットする。これは、このノードがまだ動作可能であることを意味する。このライブネス値を使用すると、サービスプロキシはサービスノードからシーケンス番号を受信する。このシーケンス番号は、受信する必要がある次のライブネス値であることを確認するためにプロセスによって検証される。
[00136] 1615で、プロセスは、SVMが任意のフロープログラム属性を指定したかどうかを判定する。この属性は、送信元GVMがフロープログラムを実行するために、サービスプロキシがSIポストプロセッサ612にインバンドデータメッセージをポストプロセッサ612に送信することを要求する。いくつかの実施形態では、サービスプロキシは、送信元GVMに送り返すために生成する別のデータメッセージと共に帯域内フロープログラミング制御信号を送信し、そこでポストプロセッサ612によって傍受される。
[00137] 送信元GVMがフロープログラミング制御信号と共にデータメッセージを受信すると、そのポストプロセッサは、このフローに固有のフロー識別子を使用することによって、適用先のデータメッセージフローを一意に識別することができる。以下でさらに説明するように、このフロー識別子は、送信元GVMの一意の識別子に部分的に基づいて導出される。一意のフロー識別子により、サービスノード、サービスプロキシ、STLモジュールなどの他のサービスプレーンモジュールも、各データメッセージフローを一意に識別できる。いくつかの実施形態におけるこのユニークなフロー識別子は、サービスパスのサービスホップ間で渡され、送信元GVMに戻されるSMD属性の一部である。
[00138] しかしながら、いくつかの実施形態では、サービスプロキシは、処理中の現在のデータメッセージと共に帯域内フロープログラミング制御信号を送信する。これらの実施形態のいくつかでは、サービスプロキシは、その関連サービスノードがサービスパスの最終ホップのサービスノードである場合にのみこれを行い、一方、他の実施形態では、そのサービスノードが最終ホップのサービスノードでない場合でもこれを行う。サービスノードがサービスパスの最終ホップのサービスノードでないとき、サービスプロキシはデータメッセージのSMD属性にフロープログラムを埋め込み、これは、いくつかの実施形態では、最終ホップのサービスが実行されるとき、データメッセージカプセル化ヘッダの一部として最終的に送信元GVMのSIポストプロセッサに転送される。この状況でも、他の実施形態における最終ホップのサービスプロキシは、フロープログラミング信号を別個のメッセージとして送信する。
[00139] フロープログラム信号については、図20を参照して以下にさらに説明する。また、以下にさらに説明するように、サービスプロキシは、送信元GVMの分類器が現在のデータメッセージフローと同様に他のデータメッセージフローのために別のサービスパスを選択できるように、サービスノードが故障したことを検出したときに、フロープログラム信号を送信元GVMに送り返す。このような状況では、サービスプロキシはホストコンピュータ上のLCP にも通知するため、LCP はCCP に通知でき、CCP は障害が発生したサービスノードを使用するサービスチェーンに指定されたサービスパスを変更できる。
[00140] 1620において、処理1600は、そのサービスノードがデータメッセージをドロップすべきであると指定したか否かを決定する。その場合、プロセスはデータメッセージをドロップしてから終了する。さもなければ、データメッセージはドロップされるべきではなく、そのサービスパスに沿って継続すべきであると仮定すると、いくつかの実施形態では、サービスプロキシは、サービスノードがSI値をデクリメントしていない場合にSI値を(1625において)デクリメントし、次いで、(1630において)このデクリメントされた値をデータメッセージの記憶された属性セット内のSPI値と共に使用して、ネクストホップネットワークアドレスを識別する完全一致転送ルールを識別する。プロキシのサービスノードが複数のサービスパスにある場合、プロキシの転送ルール記憶装置には、異なるSPI/SI値に異なるネクストホップネットワークアドレスを指定できる複数の完全一致転送ルールが格納される。
[00141] 減少したSI値がゼロであるとき、いくつかの実施形態では、サービスプロキシは、減少したSI値と、サービスプロキシに送信元GVMのサービスプレーンMACアドレスとしてネクストホップを識別するように指示するルールをもつ埋め込みSPI値とを照合する。いくつかの実施形態におけるこのルールは、MACアドレスを提供せず、むしろ、データメッセージのために記憶されたSMD属性セットの一部であるサービスプレーンMACアドレスを参照する。いくつかの実施形態では、SI値がゼロであるときにデータメッセージを送信元GVMのサービスプレーンMACアドレスに戻すためのこの命令は、転送テーブルの転送エントリによって指定されず、むしろサービスプロキシのロジックにハードコーディングされる。
[00142] 1630において、サービスプロキシは、データメッセージのために格納される属性セットにネクストホップネットワークアドレス(例えば、MACアドレス)を格納する。図15は、カプセル解除されたデータメッセージ1507のアトリビュートセット1506内の次のサービスノードに関連するネクストホップMACアドレスを記憶するサービスプロキシ614の例を示す。ネクストホップネットワークアドレスを識別した後、サービスプロキシはそのサービスノードの出口パスにデータメッセージを(1635において)返し、処理1600は終了する。
[00143] サービスプロキシがデータメッセージをサービスノードの出口パスに戻すと、STLモジュール626はこのデータメッセージを受信し、図10のプロセス1000を開始する。STLモジュール626は、サービス挿入レイヤからデータメッセージを受信するたびに、このプロセスの最初の3つの動作1005~1015を実行する。具体的には、STLモジュールは、データメッセージ内の元の送信元および宛先MACアドレスを、現在のサービスホップおよびネクストサービスホップのサービスプレーンMACアドレス(すなわち、図15に示される例ではhop1macおよびhop2macアドレス)に置き換えることによって、ネクストホップサービスノードに転送するためのデータメッセージを(1005において)定式化する。
[00144] 1010において、STLモジュールは、同じホストコンピュータ上の他のサービストランスポートレイヤモジュール(例えば、vswitch、カプセル化プロセッサ等)によって処理されるべきデータメッセージのための属性のセットに、データメッセージの元の(original)送信元および宛先MACアドレスも追加する。再定式化されたデータメッセージ1508および拡張属性セット1510は、図15に描かれている。データメッセージを再定式化し、その属性セットを拡張した後、STLモジュール626は、出口パスに沿って定式化されたデータメッセージを(1015において)通過させ、そこで次にソフトウェアスイッチ120に到達する。
[00145] 定式化されたデータメッセージの宛先MACアドレス(すなわち、ネクストホップMACアドレス)に基づいて、ソフトウェアスイッチは、(1020において)ネクストホップのポートがローカルでないことを決定する。したがって、ソフトウェアスイッチは、図15の例に示すように、ホスト114上のVTEP2とオーバーレイネットワークトンネルを介して通信するVTEP1に接続するアップリンクポート1550にデータメッセージを(1035で)提供し、このアップリンクポート(1040で)の出口パスに沿うSTLカプセル化プロセッサ628は、このデータメッセージを受信し(例えば、アップリンクポートに指定されたフックの1つとして呼び出される)、このデータメッセージのためのカプセル化オーバーレイヘッダ1540を定義し、このオーバーレイヘッダでデータメッセージをカプセル化する。
[00146] いくつかの実施形態では、オーバーレイヘッダは、SMDおよびSTL属性をその1つ以上のTLVに格納するGeneveヘッダである。上述したように、いくつかの実施形態におけるSMD属性は、SCI値、SPI値、SI値、およびサービス方向を含む。また、いくつかの実施形態では、STL属性は、オリジナルのL2送信元MACアドレスとオリジナルのL2宛先MACアドレスを含む。図15は、このカプセル化ヘッダの例を示しており、これについては、図28を参照して以下でさらに説明する。
[00147] カプセル化されたデータメッセージがネクストホップのホストコンピュータ114で受信されると、データメッセージは、オーバーレイネットワークトンネルを介して前ホップのVTEPに接続するVTEPに接続するダウンリンクポート1552のSTLカプセル化プロセッサ628によってキャプチャされる(例えば、フックとして定義される)。図17は、コンピュータ上で実行されるSVMによって処理される必要があるカプセル化されたデータメッセージを受信するネクストホップコンピュータ上のカプセル化プロセッサ628によって開始されるプロセス1700を示す。
[00148] 図に示すように、このカプセル化プロセッサは、(1705において)カプセル化ヘッダをデータメッセージから除去し、(1705において)STLおよびSMD属性をデータメッセージの関連する属性セットとして格納する。次に、カプセル解除されたメッセージをダウンリンクポートに(1710で)渡し、それからソフトウェアスイッチに渡して(1715で)、ネクストホップSVMに接続されているポート(つまり、宛先MACアドレスに関連付けられているポート)に転送する。次に、このポートは、SVM108の図15の例に示すように、データメッセージ1508と属性セット1510をネクストホップSVMの入口パスに渡す。
[00149] 次に、この入口パス上のSTLモジュール626は、前および現在のホップサービスプレーンMACアドレス(すなわち、hop1macおよびhop2mac)を、データメッセージ属性セットから取得するデータメッセージの元の送信元および宛先MACアドレスに置き換えることによって、データメッセージを(1720において)再定式化する。オリジナルのSMACおよびDMACアドレスを検索する際に、STLモジュール626は、データメッセージの属性セットを変更する。再定式化されたデータメッセージ1530および修正された属性セット1532は、図15に描かれている。次に、STLモジュールは、この再定式化されたデータメッセージを、それに付随するSMD属性と共に、SVMの入口パスに沿って渡し、そこで、このホップの入口サービスプロキシ614によって次に処理される。
[00150] このサービスプロキシの動作は、図9および図11を参照して上述したようになる。図15は、カプセル化されたデータメッセージをSVMに渡すホスト114上のSVM108のサービスプロキシを示す。このデータメッセージのカプセル化ヘッダは、SVM108によってサポートされ、SCI、SI、サービス方向およびライブネス値を格納する。いくつかの実施形態では、同じサービスパスの一部であるSVMは、異なるカプセル化ヘッダをサポートする。これらの実施形態のいくつかでは、サービスパスに沿ったサービスプロキシは、データメッセージをそれらの関連SVMに渡す前に、異なるカプセル化ヘッダでデータメッセージをカプセル化することができる。たとえば、1つのケースでは、最初のホップサービスプロキシはNSHカプセル化ヘッダを含むデータメッセージをSVM106に渡し、2番目ホップサービスプロキシはQinQカプセル化ヘッダを含むデータメッセージをSVM108に渡す。
[00151] SVM108がデータメッセージ(図13のプロセス1300など)に対してサービス動作を実行すると、SVMは、図18に示すように、処理されたデータメッセージを出口データパスに沿って送信する。次に、サービスプロキシは、次のサービスホップのMACアドレスを識別し、このMACアドレスをデータメッセージに設定されている保存済み属性に追加する。この時点で、ネクストホップは3番目のサービスホップで、SVM110に対応する。このプロキシは、SI値をデクリメントして(SVM108がSI値をデクリメントしなかった場合)、次に埋め込まれたSPI値とデクリメントしたSI値を使用して、ネクストホップのMACアドレスを提供する転送ルールを検索することによって、このMACを識別する。次に、この出口パス内のSTLモジュールは、データメッセージ内のオリジナルのSMACおよびDMACを現在のホップおよびネクストホップMACアドレス(すなわち、図18の例ではhop2macおよびhop3mac)に置き換え、オリジナルのSMACおよびDMACをデータメッセージの格納された属性セットに格納し、その後、ソフトウェアスイッチ122によって受信される出口パスに沿ってデータメッセージを渡す。
[00152] 次に、ソフトウェアスイッチは、ネクストホップがそのアップリンクポート1552に関連付けられていると判断し、データメッセージをこのポートに渡す。図18に示すように、このポートの出口パス上のカプセル化プロセッサ628は、次いで、SMDおよびSTL属性を1つ以上のTLVに格納するGeneveヘッダと共にデータメッセージをカプセル化し、データメッセージが、ホスト116のポート1554に関連するこのポートの関連するVTEP2からVTEP3へ横断することを指定する。
[00153] 次に、ポート1554の入口パス内のSTLカプセル化プロセッサ628は、データメッセージからカプセル化ヘッダを除去し、STLおよびSMD属性をデータメッセージの関連する属性セットとして格納する。次に、カプセル解除されたメッセージをポート1554に渡し、その後、それをソフトウェアスイッチ124に渡して、ネクストホップSVM 110に接続されているそのポート(すなわち、サービスプレーンDMACに関連付けられているそのポート)に転送する。次に、このポートは、図18に示すように、このSVMの入口パスに設定されたデータメッセージと属性を渡す。
[00154] この入口パスのSTLモジュール626は、前および現在のホップサービスプレーンMACアドレス(すなわち、hop2macおよびhop3mac)を、データメッセージ属性セットから取得するデータメッセージの元の送信元および宛先MACアドレスに置き換える。STLモジュール626はまた、元のSMACおよびDMACアドレスを除去することによってデータメッセージの属性セットを修正し、次いで、このホップの入口サービスプロキシ614が処理するために、SVMの入口パスに沿って、その付随するSMD属性と共に再定式化されたデータメッセージを渡す。このサービスプロキシは、SVM110によってサポートされるカプセル化ヘッダを持ち、SCI、SI、サービス方向、およびライブネス値を格納したカプセル化されたデータメッセージをSVM110に渡す。
[00155] SVM110がこのデータメッセージに対してサービス動作を実行すると(例:図13のプロセス1300ごと)、SVMは、図19に示すように、その出口データパスに沿って処理されたデータメッセージを送信する。サービスプロキシは、SVM110がまだ実行していないと仮定した場合、SI値をデクリメントする。この例では、デクリメントされたSI値はゼロになる。いくつかの実施形態では、サービスプロキシは、次いで、このSI値とSPI値とを、送信元GVMのサービスプレーンMAC (spmac)をネクストホップMACアドレスとして選択すべきであることを指定する転送ルールのルール識別子と照合する。他の実施形態では、サービスプロキシのハードコードされたロジックは、送信元GVMのサービスプレーンMACをネクストホップMACとして識別するようにそれに向ける。いずれの場合も、サービスプロキシは送信元GVM のサービスプレーンMAC をデータメッセージの属性セットに追加する。
[00156] STLモジュールは、次に、データメッセージ内のオリジナルのSMACおよびDMACを、第3ホップMACアドレスおよび送信元GVMのサービスプレーンMACで置き換え、オリジナルのSMACおよびDMACをデータメッセージの格納された属性セットに格納し、その後、そのデータメッセージをそのソフトウェアスイッチ124に渡す。次に、ソフトウェアスイッチは、ネクストホップがそのポート1554に関連付けられていると判断し、データメッセージをこのポートに渡す。図19に示すように、このポートの出口パス上のカプセル化プロセッサ628は、次に、SMDおよびSTL属性を1つ以上のTLVに格納するGeneveヘッダでデータメッセージをカプセル化し、データメッセージが、ホスト112のポート1550に関連付けられているこのポートの関連するVTEP3からVTEP1に通過することを指定する。
[00157] 次に、ポート1550の入口パス内のSTLカプセル化プロセッサ628は、データメッセージからカプセル化ヘッダを除去し、STLおよびSMD属性をデータメッセージの関連する属性セットとして格納する。次に、カプセル解除されたメッセージをポート1550に渡し、その後、それをソフトウェアスイッチ120に渡して、ポートプロキシ620に接続されたそのポートに転送する。次に、このポートは、図19に示すように、データメッセージと属性セットをポートプロキシ620に渡す。
[00158] 次に、ポートプロキシ620は、前および現在のホップサービスプレーンMACアドレス(すなわち、hop3macおよびspmac)を、データメッセージの元の送信元および宛先MACアドレスに置き換え、これは、データメッセージ属性セットから取得する。また、ポートプロキシ620は、データメッセージの属性セットを修正して、オリジナルのSMACおよびDMACを除去し、その後、この再定式化されたデータメッセージを、それに付随するSMD属性と共に、最初にそれを呼び出したSTL呼出元624に戻す。いくつかの実施形態では、ポートプロキシは、STL呼出元が最初にそれを呼び出したときに作成した接続レコードを使用して、コールバックするSTL呼出元を識別する。他の実施形態では、ポートプロキシは、各サービスプレーンMACをGVMのSTL呼出元とマップするマッピングテーブルを使用する。いくつかの実施形態におけるマッピングテーブルは、サービスプレーンMACおよびサービス方向を、GVMに関連するゲスト転送プレーンポート識別子に関連付けるレコードを有する。
[00159] 一旦呼び出されると、STL呼出元はデータメッセージをGVM 102の出口パスに沿って渡し、そこで次にSIポストプロセッサ612に転送される。図20は、いくつかの実施形態においてSIポストプロセッサ612が実行する処理2000を示す。ポストプロセッサは、GVMのIOチェーンに沿って渡されるデータメッセージを受信するたびに、この処理2000を実行する。図示のように、いくつかの実施形態におけるポストプロセッサ612は、最初に、SIポスト処理のために受信データメッセージを検査する必要があるかどうかを(2005で)判定する。これは、GVMのIOチェーンに沿ったモジュールとして、ポストプロセッサがこのIOチェーンを通過するすべてのデータメッセージフローに対して呼び出され、これらのデータメッセージの一部が、それらに対してサービス挿入操作を実行する必要があるSIルールと一致しない可能性があるためである。いくつかの実施形態では、プロセス2000は、データメッセージが関連するサービスメタデータを有するか否かを決定することによって、データメッセージを処理する必要があるか否かを(2005で)決定する。そうでない場合、プロセスは2020に遷移し、以下で説明する。
[00160] SIポストプロセッサ612がデータメッセージを処理する必要があると判断すると、プロセスは、データメッセージに関連するSMDメタデータがフロープログラミング動作を実行することをポストプロセッサに要求するフロープログラムタグを指定するかどうかを(2010で)判定する。いくつかの実施形態では、このようなフロープログラムタグは、送信元GVMでのサービスパス処理を変更するためにサービスノードによって、またはサービスノードの障害を検出したときと同じ理由のためにサービスプロキシによって、データメッセージのSMD属性で指定されるであろう。フロープログラムタグがフロープログラムを指定しない場合、プロセスは以下で説明する2020に遷移する。
[00161] そうでない場合、フロープログラムタグがフロープログラミング動作を指定すると、処理2000はこの動作を実行した後、2020に遷移する。フロープログラミング動作は、いくつかの実施形態において、コネクション追跡記憶装置804内のコネクションレコードを修正して、データメッセージのフローに対する所望の動作および/またはSMD属性(例えば、許可、ドロップなど)を指定することを伴う。接続トラッカー804へのポストプロセッサの書き込みは、図19に示されている。上述し、さらに後述するように、処理されたデータメッセージのためのSMDメタデータは、送信元GVMの一意のサービスプレーン識別子から少なくとも部分的に導出されることによってデータメッセージのフローを一意に識別するフロー識別子を含む。ポストプロセッサ612は、このフロー識別子を使用して、いくつかの実施形態における接続トラッカーにおけるデータメッセージのフローを照合する。
[00162] いくつかの実施形態では、フロープログラムタグは、次の動作、(1)アクションが不要な場合(フロープログラム操作が実行されない)に何もしない(NONE)、(2)このフローのそれ以上のデータメッセージがサービスチェーンに沿って転送されず、代わりに送信元GVMでドロップされる必要がある場合にドロップする(DROP)、(3)このフローのそれ以上のデータメッセージがサービスチェーンに沿って転送されず、代わりにフローが送信元GVMで受け入れられる必要がある場合、アクセプトする(ACCEPT)ことを指定することができる。いくつかの実施形態では、フロープログラムはDROP_MESSAGEを指定することもできる。DROP_MESSAGEは、サービスノードがプロキシと通信する必要があり(ping 要求に応答する場合など)、送信元でのフロープログラムが必要ないにもかかわらず、ユーザーデータメッセージ(存在する場合)をドロップする必要がある場合に使用される。
[00163] いくつかの実施形態では、サービスプロキシがSVMの障害を内部的に通信するために、追加のアクションが利用可能である。この動作は、いくつかの実施形態では、SIポストプロセッサに、データメッセージのフローのための別のサービスパス(例えば、別のSPI)を選択するように指示する。いくつかの実施形態におけるこのアクションは、いくつかの実施形態における適切なメタデータフィールドを設定することによって、ユーザデータメッセージと共にバンド内で運ばれる。たとえば、以下でさらに説明するように、サービスプロキシは、データプレーンを介した帯域内データメッセージトラフィックを介して、NSH属性のOAM(Operation, Administration, and Maintenance)メタデータを介して送信元GVMのポストプロセッサと通信する。設計フロープログラムアクションが信号遅延の影響を受け、損失の対象となることを考慮すると、SVMまたはサービスプロキシは、フロープログラムアクションをプロキシに通信した後、しばらくの間、送信元でドロップ、アクセプト、またはリダイレクトされると予測されるフローに属するデータメッセージを引き続き表示する場合がある。この場合、サービスプレーンは、送信元でドロップ、許可、またはリダイレクトするアクションを引き続き設定する必要がある。
[00164] 処理2000は、フロープログラミング動作完了後、2020に遷移する。また、(2005で)データメッセージに対してSIポスト処理を実行する必要がないと判断するか、このデータメッセージに対してフロープログラムを実行する必要がないと判断すると、2020に移行する。2020では、処理2000は、データメッセージをGVM102の出口パスを通過させてから、終了する。
[00165] 図8、9、15、18、および19を参照して前述した例は、送信元GVMの出口パスに沿って識別されるデータメッセージ上で実行されるサービスプレーン動作を示す。これらのサービスプレーン動作(図7、10-14、16、17、および20を参照して説明)は、送信元GVMの入口パスに沿って通過すると識別されるデータメッセージにも同様に適用可能である。これらの入口側動作を実行するために、入口パス上のSIプリプロセッサおよびポストプロセッサ610および612は、出口パス上のこれら2つのプロセッサの位置と比較して反転される。具体的には、図6に示すように、プリプロセッサ610は、このGVMのVNICに関連するソフトウェアスイッチポートからGVMの入口パスに入るデータメッセージを受信する一方、ポストプロセッサ612は、入口IOチェーンに沿って処理されたデータメッセージをGVMのVNICに渡す。
[00166] しかしながら、入口側処理のためのサービス挿入とサービス転送動作は、特定のGVMとの間のデータメッセージの出口側処理に類似している。場合によっては、このGVMは別のGVMとデータメッセージを交換する。図4および5を参照して上述したように、サービスプレーンは、各方向のデータメッセージ上で同じサービスチェーンを実行するように向けることができるが、逆の順序で行うことができる。このような場合、入口側のサービスパスのサービスノードは、他のGVMが特定のGVM に送信するデータメッセージのサービスチェーンの第1の方向に対して一連のサービス動作を実行する。一方、出口側のサービスパスのサービスノードは、同じ一連のサービス動作を実行するが、サービスチェーンを介して反対の第2の方向に実行する。また、上述したように、順方向および逆方向のためのサービスノードの2つのセットは、いくつかの実施形態において同じサービスノードを含む。
[00167] いくつかの実施形態で使用されるヘッダフォーマットは、次に、図21、22、および25~28を参照して説明される。図21は、いくつかの実施形態におけるサービスプロキシのいくつかが、データメッセージをそれらの関連するサービスノードに提供する前にデータメッセージをカプセル化するために使用するNSHヘッダ2100を示す。これらの実施形態のいくつかでは、サービスノードは、このようなNSHヘッダでカプセル化された処理されたデータメッセージを返す。いくつかの実施形態では、NSHヘッダは、ホストコンピュータのサービスプレーンモジュールによって、二重にカプセル化されたデータメッセージを他のホストコンピュータに転送するためにも使用され、第1のカプセル化ヘッダはNSHヘッダであり、第2のカプセル化ヘッダはサービストランスポートヘッダである。しかしながら、他の実施形態では、サービス挿入およびサービストランスポート属性は、後述するように、1つのカプセル化ヘッダに配置される。また、上記および以下にさらに説明するように、いくつかの実施形態におけるサービスプロキシおよびサービスノードは、それらが交換するデータメッセージをカプセル化するためにNSHヘッダを使用しない。
[00168] 示されているように、NSHヘッダの最初の8バイトのすべてのフィールドは、RFC 8300に準拠して使用される。このヘッダは、いくつかの実施形態では、固定長メタデータコンテンツヘッダ2110を含む。また、いくつかの実施形態では、(1)1にセットされるMDタイプ、(2)イーサネット通信を示すために3である次のプロトコル値、および(3)MDコンテンツヘッダ2110が固定長であるために6であるレングス値を含む。また、いくつかの実施形態では、SPIおよびSIフィールド2122および2124は、送信元GVMのプリプロセッサ610がそれを定義するときの初期SI値(すなわち、サービスホップの初期数)である、選択されたパスのサービスパス識別子および現在のサービスインデックス値で埋められる。
[00169] いくつかの実施形態では、サービス挿入モジュールは、データメッセージと共に運ばれるNSHヘッダを除き、メタデータを記憶またはキャッシュメモリしない。このモデルでは、サービスノードは変更する予定のないメタデータフィールドを保持する。いくつかの実施形態では、特定のメタデータフィールドは、サービスプロキシ/ノードと送信元GVMのサービスモジュールとの間のデータプレーン仲介シグナリングのための通信メカニズムとして使用される。いくつかの実施形態では、データメッセージメタデータは、NSH固定長コンテキストヘッダ2110において、線上で符号化される。いくつかの実施形態では、この固定サイズのヘッダは、合計16バイトの情報を提供する。いくつかの実施形態では、各サービス挿入配置は、独自のMDコンテンツフォーマットを自由に定義することができる。
[00170] 図22は、サービスホップ、サービスノード、および/またはサービスプロキシにサービスメタデータを送信するために、いくつかの実施形態においてMDコンテンツヘッダ2110に格納されるメタデータコンテンツの例を示す。示されているように、このヘッダには、多数のフィールドを含む16バイトがある。1つのフィールド2202は、Fビットを含み、これは、MDコンテンツヘッダ内のコンテンツのタイプ、例えば、サービスメタデータコンテンツ、フロープログラムコンテンツなどを区別するために使用される。いくつかの実施形態では、サービスメタデータコンテンツのFビットはb00である。別のフィールド2204は、Pビットを格納し、これを1にセットして、サービスノードによるデータメッセージへの応答を強制することができる。いくつかの実施形態では、応答は、Pビットも1にセットされた要求と同じシーケンス番号を含むNSHヘッダを伴わなければならない。
[00171] 送信元ノード識別子(ID)フィールド2206は、サービスプレーンについて、データメッセージの送信元またはシンクであるデータ計算ノード(例えば、GVM)を明確に識別する。いくつかの実施形態では、送信元ノードIDは、データメッセージがサービスプレーンに挿入されたこの送信元データ計算ノード(DCN)のサービスプレーンMACアドレスを含む。MDコンテンツヘッダはまた、ライブネス検出の目的のためにデータメッセージを識別する不透明な6ビット値であるシーケンス番号2208を含む。この値は、サービスプロキシが、そのライブネス検出の一部としてそのサービスノードにデータメッセージを転送する前にいっぱいになった場合を除き、通常ゼロである。
[00172] MD コンテンツヘッダには、マルチテナントデータセンタのテナントを一意に識別するテナントID2212も含まれている。いくつかの実施形態におけるテナントIDは、テナントに関連するVNIである。MDコンテンツヘッダ2200は、さらに、フローID2215およびフローID有効ビット2222を含む。いくつかの実施形態では、フローIDの残りの部分(フロータグとも呼ばれる)が存在するとき、フローID有効性ビットは1に設定される。フローID2215は、フローおよび送信元DCN毎に(すなわち、フローおよび送信元ノードID 2206毎に)固有の識別子である。いくつかの実施形態では、フローIDは、送信元DCNの分類器(例えば、分類動作を実行するSIプリプロセッサ610)によって設定される。
[00173] いくつかの実施形態では、フローIDは、データメッセージがネイティブモードでない(すなわち、サービスがサービスプレーンを認識していない)サービスを横断するときに破棄されてもよい。この場合、以下で説明する互換モードヘッダでフローID を運ぶのに十分なビットがない場合、フローID は破棄される。また、フローIDは、ネイティブサービス(すなわち、サービスプレーン認識サービスノード)がフローIDを無意味にする方法でデータメッセージを修正するとき、例えば、サービスが複数のフローから単一のIPsecトンネルへのトラフィックを暗号化するとき、に破棄される可能性がある。この場合、内部データメッセージのフロータグを保持しても意味がない。いくつかの実施形態では、サービスノードは、この場合、Aビットをゼロに設定する。
[00174] MDコンテンツヘッダ2200はまた、サービスプロキシによるフロープログラムに使用されるアクションフィールド2230を含む。いくつかの実施形態では、アクションは、送信元DCNのポストプロセッサ612がフロー上で実行すべきアクションを指定する。フロープログラムの場合、いくつかの実施形態では、アクションフィールドは非ゼロでなければならない。さらに、フロープログラムのために、Fビット2202も10にセットされ、Pビット2204はプロキシで0にセットされ、分類器によって無視され、フロー有効性ビット2222およびフロータグ2215が有効でなければならない。
[00175] 以下は、アクションフィールド2230の値の1つの例示的なセットであるが、当業者は、他の実施形態では他の値が指定されていることを認識するであろう。アクションビットの値0は、フロープログラミングアクションが指定されないことを指定する。値1 は、データメッセージのフローのすべてのメッセージが送信元でドロップされる必要があり、このフローのそれ以上のデータメッセージはサービスプレーンに転送されないことを示す。代わりに、データメッセージは分類後に送信元でドロップする必要がある。
[00176] アクションフィールドの値2は、データメッセージが送信元で受け入れられ、いくつかの実施形態では、同じフローのそれ以上のデータメッセージはサービス機能に転送されないことを指定する。代わりに、サービス関数をスキップし、チェーン内の次のサービスを直接呼び出す必要がある。アクションフィールドの値3は、このデータメッセージのみをドロップすることを指定し、同じフローの他のデータメッセージに対して実行する必要があるアクションを示すものではない。いくつかの実施形態では、このアクションは、サービスノードがサービスプロキシと通信し(例えば、ping要求に応答するため)、フロープログラムが起こるべきではないにもかかわらず、データメッセージがドロップされることを望むときに使用される。
[00177] MDコンテンツヘッダ2200はまた、送信元DCNからネットワークの観点へのデータメッセージの方向を指定する方向フィールド2214を含む(例えば、DCNからネットワークへの方向は出口方向であり、ネットワークからDCNへの方向は入口方向である)。方向フィールドの値0は、方向が不明でない場合に方向または不明な方向を示す。いくつかの実施形態では、値1は、データメッセージが入口方向に移動している(すなわち、データメッセージは、データメッセージの宛先である送信元DCNのために処理されている)ことを示し、例えば、データメッセージは、VTEPからその対応するDCNへのその途中にある。いくつかの実施形態における値2は、出口方向を示す(例えば、データメッセージは、データメッセージの送信元である送信元DCNに対して処理されている)。
[00178] いくつかの実施形態では、値3は、データメッセージが単に転送中であり、入口と出口の両方に適用されることを示す。ルールを定義するために使用される場合、これは、いくつかの実施形態において、ルールが一方向または任意の方向のデータメッセージに一致する必要があることを示す。サービスの観点から、方向フィールドの値3は、このトラフィックが、いくつかの実施形態において、このトラフィックを供給することも同期することもない中継装置によってサービスプレーンに転送されたことを示す。いくつかの実施形態では、通過指示は、ルータを通過しているトラフィックに使用される。
[00179] MDコンテンツヘッダ2200は、さらに、データメッセージが流れるべきサービスチェーンを指定するサービスチェーンID2216を含む。いくつかの実施形態は、SCIをNSHヘッダに埋め込まず、代わりにSPI値を格納するだけである。しかしながら、多くのSPIは同じサービスチェーンに対応することができ、SPIも永続的ではないので、他の実施形態は、SCIをファイル2216に格納する。言い換えると、いくつかの実施形態は、サービスチェーンIDを埋め込むが、これは、SCIが、サービスノードが、それらが処理するデータメッセージに一致するサービスルールを識別するために使用する、より安定した識別子をサービスノードに提供するためである。
[00180] いくつかの実施形態では、サービスプロキシと送信元DCNのサービスポストプロセッサとの間でデータプレーンシグナリングを実行するために、サービスノードにさらされることなく、サービスプレーンによって内部的に他のメタデータコンテンツフォーマットが使用される。これらの実施形態のいくつかでは、他のメタデータコンテンツフォーマットが使用されるとき、NSHヘッダのOAMビット(図21のOビット2170)がセットされ、ユーザペイロードは運ばれない(または、NSHによって必要とされるものがあれば、宛先では無視される)。いくつかの実施形態では、NSH次のプロトコルフィールドは、この場合0に設定される。
[00181] いくつかの実施形態では、サービスプレーン非認識サービスノードは、サービスノードと通信するためにサービスプロキシによって使用される非NSHヘッダのタイプに依存して、メタデータのサブセットのみを受信する。前述したように、いくつかの実施形態のサービスノードは、サービスノードがNSHヘッダを処理できない場合に、GREヘッダまたはQinQヘッダでサービスメタデータを受信できる。GREおよびQinQヘッダは、一部の既存のサービスノードがサポートするヘッダであるため、以下では互換モードヘッダと呼ぶ。このような互換モードカプセル化ヘッダは、異なるサービス処理の対象となるデータメッセージフローを区別し、競合するL3アドレスを持つフローを分離するために(単一のサービスノードが複数のテナントネットワークのような複数のネットワークのデータメッセージ上でサービスを実行する場合)、いくつかの実施形態で必要とされる。
[00182] いくつかの実施形態では、GRE互換モードのサービスノードは、2つのVNICを介してそのサービスプロキシに接続し、bump-in-the-wireモードで設定される。また、いくつかの実施形態では、VNICはvmxnet3デバイスであり、それらのMACアドレスは変化せず、それらのために使用されるMTUサイズは固定サイズ(例えば、2048バイト)に設定される。サービスノードの1つのVNICは、送信側トラフィックを受信し、送信元DCNの入口側トラフィックを供給するための保護されていない側として定義され、もう1つのVNICは、入口側トラフィックを受信し、送信元DCNの出口側トラフィックを供給するための保護されている側として定義される。いくつかの実施形態では、この情報は、OVF(Open Virtual Format)パラメータを介してサービスマネージャまたはサービスノードに伝えられ、ここでOVFは、製品およびプラットフォーム間での仮想アプライアンスの交換をサポートするファイルフォーマットである。
[00183] bump-in-the-wireモードをサポートするために2つのVNICが存在する場合でも、いくつかの実施形態では、互換モードVNICのペアごとに1つのサービスプロキシインスタンスのみを使用し、インターフェースのペアを参照するためにサービスプレーンで1つのエンドポイントのみを使用する。図23および24は、GREヘッダをカプセル化したGVM2315のSVM2310出口側および入口側データメッセージに転送するサービスプロキシ2305の例を示す。これを行うために、サービスプロキシはSVM 2310の保護および非保護VNIC用にいくつかの仮想GREトンネルエンドポイント2320を作成する。
[00184] 保護された各仮想トンネルエンドポイントには、対応する保護されていない仮想トンネルエンドポイントがある。各仮想トンネルエンドポイントは、仮想IPアドレス、仮想MACアドレス、およびGREパラメータに関連付けられる。サービスプロキシは、GREヘッダを持つデータメッセージをカプセル化して、サービスノードを介してエンドポイントの対応するペア間を移動する。このノードは、GREヘッダを変更しないbump-in-the-wireモードで動作する。以下でさらに説明するように、サービスプロキシはGREヘッダにサービスメタデータを埋め込み、サービスノードにデータメッセージを処理するために必要なサービスメタデータを提供する。また、いくつかの実施形態では、異なるトンネル端点の対が異なるフローに対して使用される。
[00185] いくつかの実施形態では、サービス挿入プラットフォームは、RFC2784で定義されているGREカプセル化を、RFC2890で定義されている鍵拡張と共にサポートする。いくつかの実施形態では、GREトンネルはIPv4アドレスを使用し、GREプロトコルタイプはRFC1701に従ってトランスペアレントイーサネットブリッジングに設定される。GRE互換モードでは、サービス挿入レイヤ(例えば、サービスプロキシ)はフローごとにタプル(例えば、送信元IP、宛先IP、GRE鍵)を生成する。いくつかの実施形態では、このプロセスは決定論的であり、SMDヘッダの内容に基づいており、SMDヘッダは、次いで、除去され、IPおよびGREスタックに置き換えられてもよい。いくつかの実施形態では、このプロセスによって生成されるIPアドレスは仮想であり、サービスプロキシとその関連SVM以外のいかなるネットワークエンティティにも設定されず、その結果、それらの範囲はサービスプロキシとそのサービスノードとの間のローカルリンクに制限される。
[00186] サービスノードがGREをサポートしていない場合でも、データメッセージとともにメタデータを伝送するために、IPアドレスとGRE鍵が生成される。いくつかの実施形態では、サービスノードとサービスプロキシの両方が、そのメタデータを消費する。さらに、サービスノードは、いくつかの実施形態において、変更なしに、外部ヘッダをそのまま保持することが期待される。いくつかの実施形態では、各フローは、同一のGREトンネル内に一貫してカプセル化され、トンネル内にIPアドレスの競合がない可能性がある。また、方向(入口と出口)だけが異なるデータメッセージは、スワップされた送信元IPと宛先IPを持つ同じGRE鍵でカプセル化され、適切な(保護されていない、または保護されていない)方向でGREトンネルエンドポイントを通過する。
[00187] いくつかの実施形態では、送信元/宛先IPアドレス、およびGRE鍵は、適切なデータメッセージ処理を実行するために、必要に応じてサービスノードによって検査することができる。図25と26は、送信元と宛先のIPアドレスとGRE鍵フィールドの代わりに、サービスメタデータがGREカプセル化ヘッダでどのようにエンコードされるかを示す。図25は、出口方向(例えば、GVMからスイッチへ)のサービスデータを記憶するためにいくつかの実施形態で使用されるGREヘッダフォーマットを示し、一方、図26は、入口方向(例えば、ソフトウェアスイッチから送信元GVMへ)のサービスデータを記憶するためにいくつかの実施形態で使用されるGREヘッダフォーマットを示す。
[00188] これらの図では、すべてのフィールドがネットワークバイト順である。パスIDは、いくつかの実施形態において、サービスパスと共に生成され、サービス毎のグローバル値を有する。図25および26に示すように、IPアドレスフィールドは、いくつかの実施形態において、出口側および入口側データメッセージに対して逆転される。ネイティブモードと同様に、GRE互換モードのサービスプレーンは、サービスプロキシに到達したときに有効なカプセル化がある限り、任意のトラフィックを変更または生成できる。いくつかの実施形態では、これは、サービスノードが関連するフローのために受信したIPおよびGREスタックのうちの1つを再利用することを意味する。
[00189] いくつかの実施形態では、サービスチェーンに沿ったフロータグ情報は、最初のGRE互換モードサービスに入るときに破棄され、下流に復元されない。これにより、後続のサービスがフローアクションを宣言できなくなる可能性がある。したがって、フロープログラムは、いくつかの実施形態のGRE互換モードのサービスノードには提供されない。更に、ライブネス検出は、信頼されたインターフェースと信頼されていないインターフェースとの間でBFD(双方向転送検出)メッセージを通過させることによって、いくつかの実施形態においてサポートされる。いくつかの実施形態では、これらのデータメッセージは、サービスプロキシによって信頼された側と信頼されない側から注入される。サービスノードは、GREにカプセル化されていないため、このトラフィックを認識できる。いくつかの実施形態では、サービスノードは、このトラフィック(および実際にはGREではないカプセル化トラフィック)を仮想ワイヤの反対側にブリッジすることによって変更されずに転送することが期待される。また、いくつかの実施形態では、BFDの実インスタンスが利用できない場合、データメッセージをハードコーディングすることができる。
[00190] いくつかの実施形態におけるスペース制約のために、特定のヘッダフィールドは要約されたバージョンで符号化される。いくつかの実施形態では、サービスチェーンタグ、SPIおよびSIは、単一の4ビットフィールドに要約される。したがって、いくつかの実施形態では、各互換モードのサービスノードは、最大16のサービスチェーンホップ上に存在することができる。サービスチェーン内にサービスが存在するたびに、1つのサービスパスID が消費される。サービスが複数のチェーンに存在する場合、複数のサービスパスIDが消費される。さらに、サービスチェーンの2 つの方向にサービスが存在するたびに、2 つのサービスパスID が消費される。
[00191] いくつかの実施形態では、関連する外部ヘッダスタック(GREまで、およびそれを含む)が使用される限り、ローカルに生成されたトラフィックは、互換モードでサポートされる。いくつかの実施形態では、(1)オプションで外側のイーサネット宛先アドレスをブロードキャストに置き換えること、(2)IP合計サイズフィールドとIPチェックサムを更新すること、(3)GREチェックサムは無視されるが、GRE鍵が存在しなければならないこと、を除いて外部ヘッダスタックに対する修正は許されない。
[00192] 図27および28は、少なくとも1つのサービスノード(例えば、あるホストコンピュータから)に関連する1つのVTEPから別のサービスノード(例えば、別のホストコンピュータ)に関連する別のVTEPにデータメッセージを送信するために、いくつかの実施形態で使用されるカプセル化ヘッダの例を示す。これらの例はどちらもGeneveカプセル化ヘッダで、1つ以上のGeneve TLVでサービスメタデータ(SMD メタデータなど)を伝送する。Geneve ヘッダは論理L2オーバーレイトランスポートをサポートし、サービスメタデータを伝送するための可変TLV空間を備えている。従って、異なるサービス挿入プラットフォームは、連続ホップ間で運ばれる異なる量のサービスメタデータを指定することができる。
[00193] 図27は、2つのGeneveカプセル化ヘッダ、サービストランスポートレイヤデータを運ぶための外側のGeneveヘッダ2705、およびサービス挿入レイヤメタデータを運ぶための内側のGeneveヘッダ2710の使用を示す。図に示すように、サービスメタデータはSMD TLV2715に保存される。いくつかの実施形態では、このTLV 2715は、図21のNSHヘッダフォーマットを有する。したがって、このTLVは、サービスメタデータを上述のように固定長ヘッダ2110に格納し、SPIおよびSI値をヘッダ2100のSPIおよびSIフィールド2122および2124に格納する。
[00194] 効率のために、いくつかの実施形態は、これらの2つのヘッダを図28の単一のGeneveヘッダ2805に結合する。これを行うために、これらの実施形態は、データメッセージのオリジナルの送信元および宛先MACアドレスを、現在および次のホップのサービスプレーンMACに置き換え、オリジナルの送信元および宛先MACを、サービス方向、送信元GVMのサービスプレーンMAC、および他のSMDメタデータ(サービスチェーン識別子、SPI値、SI値、フロープログラミング値、テナントタグ、フロータグなど)と共に、新しいGeneve TLVに格納する。いくつかの実施形態におけるこの新しいGeneve TLVは、24バイトのSMDメタデータフィールドと、オリジナルの送信元および宛先MACアドレスのようなSTLデータを格納するための12バイトとを有する。いくつかの実施形態において、12バイトのSTLデータは、24バイトのSMDメタデータに先行し、これは、いくつかの実施形態において図21および22に示されるメタデータを含む。
[00195] 図27と図28の両方の実装において、Geneveカプセル化ヘッダは、サービスプレーンのSVNIを格納し、これは、複数のサービスプレーンを定義することを可能にする。例えば、上述のように、いくつかの実施形態は、異なるSVNIを使用して、マルチエンティティまたはマルチテナントデータセンタ内の異なるエンティティまたはテナントに対して異なるサービスプレーンを定義する。異なるエンティティまたはテナントの異なるサービスプレーンを、エンティティまたはテナントのデータメッセージタイプの同じまたは異なるQoS および/またはSLA保証に関連付けることができる。他の実施形態は、同一のエンティティまたはテナントのための異なるサービスプレーン、例えば、同一のエンティティまたはテナントのための異なるデータメッセージタイプのための異なるQoSおよび/またはSLA保証に関連する異なるサービスプレーンに対して、複数のSVNIを使用する。また、両方のヘッダには、送信元および宛先VTEPのMACアドレスと、UDPおよびIPの送信元および宛先アドレスが格納される。
[00196] 図29は、いくつかの実施形態のオブジェクトデータモデル2900を示す。このモデルでは、実線で表示されるオブジェクトはユーザによって提供され、破線で表示されるオブジェクトはサービスプレーンマネージャとコントローラによって生成される。示されるように、これらのオブジェクトは、サービスマネージャ2902、サービス2904、サービスプロファイル2906、ベンダーテンプレート2907、サービスアタッチメント2908、サービスインスタンス2910、サービス配置2913、サービスインスタンスランタイム(SIR)2912、インスタンスエンドポイント2914、インスタンスランタイムポート2916、サービスチェーン2918、サービス挿入ルール2920、サービスパス2922、およびサービスパスホップ2924を含む。
[00197] いくつかの実施形態では、サービスマネージャオブジェクト2902は、サービスオブジェクト2904の作成の前または後に作成することができる。管理者またはサービス管理システムは、サービスマネージャAPIを呼び出してサービスマネージャを作成できる。サービスマネージャ2902は、任意の時点でサービスに関連付けることができる。いくつかの実施形態では、サービスマネージャ2902は、ベンダ名、ベンダ識別子、restUrl(コールバック用)および認証/証明書情報などのサービスマネージャ情報を含む。
[00198] 上述したように、サービスプレーンは、サービスノードがゼロ認識モードで動作できる(すなわち、サービスプレーンをゼロ認識する)ため、サービスマネージャの存在または使用を必要としない。いくつかの実施形態では、ゼロ認識モードは、基本的な操作(例えば、サービスのSVMに向けてトラフィックをリダイレクトすること)のみを可能にする。このようないくつかの実施形態では、オブジェクト情報(サービスチェーン情報、サービスプロファイルなど)をサービスマネージャサーバに配布するための統合は提供されない。代わりに、これらのサーバーは、ネットワークマネージャーに関心のあるオブジェクトをポーリングすることができる。
[00199] サービスオブジェクト2904は、サービスノードによって提供されるサービスのタイプを表す。サービスオブジェクトには、サービスメタデータを受信するための機構(NSH、GRE、QinQなど)を指定するトランスポートタイプ属性がある。また、各サービスオブジェクトには、サービスマネージャから返される状態属性(有効または無効にできる)と、イベントを通信してAPI コールを実行するためにREST APIエンドポイントを公開するために使用できるサービスマネージャへの参照がある。また、サービスのインスタンスのデプロイに使用されるOVA/OVF属性への参照も含まれる。
[00200]ベンダテンプレートオブジェクト2907は、1つ以上のサービスプロファイルオブジェクト2906を含む。いくつかの実施形態では、サービスマネージャはベンダーテンプレートを登録することができ、サービスプロファイルは、サービスごとに、および潜在的に特殊化されたパラメータをもつベンダーテンプレートに基づいて定義することができる。サービスチェーンは、1つ以上のサービスプロファイルへの参照によって定義できる。いくつかの実施形態では、サービスプロファイルはタグを割り当てられず、回線上で明示的に識別されない。トラフィックに適用する機能を決定するために、サービスノードは、適用可能なサービスプロファイルを識別するためにルックアップを実行する(例えば、上記のように、サービスチェーン識別子、サービスインデックス、およびサービス方向に基づく)。このルックアップのマッピングは、サービスチェーンが変更されて作成されるたびに、管理プレーンによってサービスマネージャに提供される。
[00201] いくつかの実施形態におけるサービスプロファイルオブジェクト2906は、(1)その関連するベンダーテンプレートを識別するためのベンダーテンプレート属性、(2)テンプレートがサービスプロファイルを通じて構成可能な値を公開するときに1つ以上のカスタム属性、および(3)サービスノードが最終ホップであるときに受信データメッセージを次のサービスホップに転送する間、または元の送信元GVMに戻すために、受信データメッセージのコピーをサービスノードに転送するか、またはサービスノードに転送するようにサービスプロキシに指示する、順方向アクションまたはコピーアンドリダイレクトなどのアクション属性、を含む。
[00202] サービスアタッチメントオブジェクト2908は、サービスプレーンを表す(すなわち、マルチテナントデータセンタにおけるテナントのネットワーク管理者、またはプライベートデータセンタにおけるネットワーク管理者など、ユーザの視点のサービスプレーンの表現である)。このサービス接続オブジェクトは、サービスプレーンの任意の数の異なる実装(例えば、論理L2オーバーレイ、論理L3オーバーレイ、論理ネットワークオーバーレイなど)をサポートする抽象概念である。いくつかの実施形態では、サービスプレーンを介して通信する(SIRまたはGVM上の)各エンドポイントは、サービスアタッチメントを指定する。サービスアタッチメントは通信ドメインである。そのため、サービス添付外のサービスまたはGVM は、互いに通信できない場合がある。
[00203] いくつかの実施形態では、サービスアタッチメントを使用して、それらの間にハードアイソレーションを有する複数のサービスプレーンを作成することができる。サービスアタッチメントは、以下の属性、(1)サービスアタッチメントのためのトラフィックを運ぶ論理ネットワークまたは論理転送要素を識別する論理識別子(例えば、論理スイッチのSVNI)、(2)サービスアタッチメントのタイプ(例えば、L2アタッチメント、L3アタッチメントなど)、および(3)サービスアタッチメントの範囲を指定するapplied_To識別子(例えば、ノース-サウス動作のためのトランスポートノード0とトランスポートノード1、およびイースト-ウェスト動作のためのクラスタまたはホストのセット)を有する。いくつかの実施形態では、制御プレーン(例えば、中央制御プレーン)は、管理プレーンから受信したサービスアタッチメント表現を、ネットワーク管理者(例えば、プライベートまたはパブリッククラウドのデータセンタ管理者、またはパブリッククラウドのネットワーク仮想化プロバイダ)によって指定されたパラメータに基づいて、特定のLFEまたは論理ネットワーク配置に変換する。
[00204] サービスインスタンスオブジェクト2910は、サービスの実際にデプロイされたインスタンスを表す。したがって、このような各オブジェクトは、サービスオブジェクト2904とサービスインスタンスオブジェクト2910との間の関係を指定するサービス配置オブジェクト2913を介して、1つのサービスオブジェクト2904に関連付けられる。配置されたサービスインスタンスは、スタンドアロンサービスノード(スタンドアロンSVMなど)でも、高可用性(HA)サービスノードクラスタでもかまわない。いくつかの実施形態では、サービス配置オブジェクト2913は、サービスインスタンスタイプ、例えば、スタンドアロンまたはHAを記述する。以下に説明するように、サービス配置オブジェクトのAPIをいくつかの実施形態で使用して、サービスのいくつかのサービスインスタンスを配置することができる。
[00205] サービスインスタンスランタイム(SIR)オブジェクト2912は、スタンドアロンモードで動作する実際のランタイムサービスノード、またはHAクラスタの実際のランタイムサービスノードを表す。いくつかの実施形態におけるサービスインスタンスオブジェクトは、以下の属性、(1)サービスインスタンスがスタンドアロンモード、アクティブ/スタンバイモード、またはアクティブ/アクティブモデルのいずれで動作しているかを指定する配置モード属性、(2)インスタンスが有効か無効かを指定する状態属性、および(3)ノース-サウス動作の場合にサービス添付識別子への参照を含むdeployed_to属性を含む。
[00206] いくつかの実施形態では、SVMのプロビジョニングは手動で開始される。この目的のために、管理プレーンは、いくつかの実施形態において、(1)既存のサービスのサービスインスタンスを作成する、(2)サービスインスタンスを削除する、(3)SIRを追加することによってすでに高可用性クラスタとして構成されているサービスインスタンスを増やす、および(4)そのSIRの1つを削除することによってサービスインスタンスを縮小する、ためのAPIを提供する。既存のサービスのサービスインスタンスを作成するとき、サービスインスタンスは、いくつかの実施形態において、サービスに含まれるテンプレートに基づいて作成されてもよい。呼出元は、スタンドアロンインスタンスまたはHAクラスタの間で選択できる。この場合、HAクラスタ内のすべてのVMがプロビジョニングされる。ここでも、いくつかの実施形態では、サービスインスタンス配置のためのAPIは、複数のサービスインスタンス(例えば、HAクラスタのため)がただ1つのAPIコールを通して配置されることを可能にする。
[00207] いくつかの実施形態では、1つ以上のSVMを作成するAPIは、SVMが配置されるべき1つ以上の論理的な位置(例えば、クラスタ、ホスト、リソースプール)を指定する。いくつかの実施形態では、管理プレーンは、可能な限り、同じサービスインスタンスに属するSVMを異なるホスト上に配置しようとする。非アフィニティルールは、移行イベント(VMware、Inc.の動的リソーススケジューラでサポートされるVMotionイベントなど)間でのSVMの分散を維持するために、適切に構成されることもできる。同様に、管理プレーンは、利用可能な場合は特定のホスト(またはホストのグループ)とのアフィニティルールを設定したり、サービスインスタンスをプロビジョニングするユーザがホストまたはクラスタを明示的に選択したりすることがある。
[00208] 上述したように、サービスインスタンスランタイムオブジェクト2912は、サービスを実装するためにホスト上で実行される実際のSVMを表す。SIRはサービスインスタンスの一部である。各SIR には、サービスプレーントラフィック専用の1つ以上のトラフィックインターフェイスを含めることができる。いくつかの実施形態では、少なくとも1つのサービスプロキシインスタンスがSIR毎に実行され、SIRのためのデータプレーンシグナリングおよびデータメッセージフォーマット変換を必要に応じて処理する。サービスインスタンスが配置されると、いくつかの実施形態では、サービスインスタンスに関連付けられたすべてのSVMに対してSIRが作成される。ネットワークマネージャは、イースト-ウェストサービス挿入におけるすべてのサービスインスタンスのインスタンスエンドポイントも作成する。各SIRオブジェクト2912は、いくつかの実施形態において、以下の属性、(1)理由にかかわらず、トラフィックを処理することができるSVMに対してアクティブであり、他のすべてに対して非アクティブである状態属性、および(2)データプレーンのライブネス検出がSIRがアップまたはダウンしていることを検出するかどうかを指定するランタイム状態、を含む。
[00209] インスタンスランタイムインターフェース2916は、サービスインスタンスエンドポイント2914のエンドポイントごとのバージョンである。いくつかの実施形態では、インスタンスランタイムインターフェース2916は、送信元またはシンクサービスプレーントラフィックであり得るSIRまたはGVMのためのインターフェースを識別するために使用される。イースト-ウェストサービス挿入では、いくつかの実施形態におけるインスタンスランタイムインタフェースのライフサイクルは、サービスインスタンス実行時のライフサイクルにリンクされる。いくつかの実施形態では、インスタンスランタイムインターフェースを構成するためにユーザアクションは必要ない。
[00210] いくつかの実施形態において、インスタンス実行時インターフェース2916は、以下の属性、エンドポイント識別子、タイプ、サービスアタッチメントへの基準、および位置を有する。エンドポイント識別子は、SIR VNICのデータプレーン識別子である。エンドポイント識別子は、SIRまたはGVM がサービストランスポートレイヤに登録されるときに生成され、MACアドレスまたはMACアドレスの一部である場合がある。タイプ(type)属性は、共有または専用にすることができる。SIR VNICは専用であり、すなわち、サービスプレーントラフィックに到達できるのはサービスプレーントラフィックのみであるが、GVM VNICは共有される。つまり、サービスプレーントラフィックと通常のトラフィックの両方を送受信する。サービスアタッチメント基準は、サービスプレーントラフィックの送受信に使用されるサービスプレーンを実装するサービスアタッチメントへの基準である。いくつかの実施形態におけるこの基準は、サービスプレーンのSVNIに関するものである。いくつかの実施形態における位置(location)属性は、インスタンスランタイムインターフェースの位置を指定する。これは、インスタンスランタイムインターフェースが現在位置しているホストのUUIDである。
[00211] いくつかの実施形態では、ユーザは、サービスプロファイル2906の順序付けられたリストに関して、サービスチェーンオブジェクト2918を定義する。いくつかの実施形態では、各サービスチェーンは、順方向および逆方向のトラフィック方向に対して、概念的に別々のパスを提供するが、作成時に一方向のみが提供される場合、もう一方は、サービスプロファイル順序を逆にすることによって自動的に生成される。サービスチェーンのどちらの方向(および両方向)も空にすることができる。つまり、どのサービスもその方向のトラフィックを処理しない。いくつかの実施形態では、データプレーンは、空のサービスチェーンに対してもルックアップを実行する。
[00212] サービスチェーンは、抽象的な概念である。これらは、特定のサービスノードのセットを指していない。むしろ、サービスプレーンプラットフォームの一部であるネットワークコントローラは、サービスチェーンのサービスノードのシーケンスを指すサービスパスを自動的に生成し、生成されたサービスパスに沿ってメッセージ/フローを指示する。いくつかの実施形態では、サービスチェーンは、サービスチェーンの一意の識別子であるUUIDによって、管理プレーンまたは制御プレーンで識別される。サービスノードには、サービスマネージャを介して受信した管理プレーンAPIを介して、サービスチェーンIDの意味が提供される。この一例は、図14を参照して上述した。
[00213] いくつかの実施形態におけるサービスチェーンタグは、UUIDが長すぎてカプセル化ヘッダにおいて運ばれないので、データプレーンにおけるサービスチェーンを識別するために使用されてもよい。いくつかの実施形態におけるサービスチェーンIDは、ルールIDのような符号なし整数である。サービスにリダイレクトされる各データメッセージは、トラバースしているサービスチェーンのサービスチェーンタグを伝送する。管理プレーンは、サービスチェーンが作成または変更されると、UUID をサービスチェーンタグマッピングにアドバタイズする。サービスチェーンタグには、サービスチェーンUUIDとの1対1のマッピングがあるが、1つのサービスチェーンには0から多数のサービスパスインデックスを含めることができる。
[00214] サービスチェーンIDに加えて、いくつかの実施形態におけるサービスチェーンは、(1)すべての計算されたサービスパスへの基準、(2)障害ポリシー、および(3)サービスプロファイルへの基準、の属性を有する。計算されたサービスパスへの参照は、上述した。障害ポリシーは、サービスチェーンに対して選択されたサービスパスをトラバースできない場合に適用される。いくつかの実施形態では、障害ポリシーは、PASS(フォワードトラフィック)およびFAIL(ドロップトラフィック)であってもよい。サービスチェーンのサービスプロファイルへの参照は、出口トラフィック(例えば、GVMからスイッチに移動するデータメッセージ)が横断しなければならないサービスプロファイルの出口リストと、入口トラフィック(例えば、スイッチからGVMに移動するデータメッセージ)が横断しなければならないサービスプロファイルの入口リストを含んでもよい。いくつかの実施形態では、入口リストは、デフォルトで、出口リストの逆として初期化される。
[00215] サービスチェーンのサービスパスを定義するために、いくつかの実施形態において異なる技法を使用することができる。例えば、いくつかの実施形態では、サービスチェーンは、関連する負荷分散戦略を有することができ、これは、以下の戦略のうちの1つであり得る。ロードバランシング戦略は、サービスチェーンの異なるサービスパス間でトラフィックをロードバランシングする役割を果たす。ANY戦略によると、サービスフレームワークは、負荷分散の考慮やフローのピンニングに関係なく、任意のサービスパスにトラフィックを自由にリダイレクトでくる。別の戦略は、ローカルサービスインスタンス(例えば、送信元GVMと同じホストコンピュータ上で実行されるSVM)がリモートサービスインスタンス(例えば、他のホストコンピュータや外部サービス装置上で実行されるSVM)よりも優先されることを規定するLOCAL戦略である。
[00216] いくつかの実施形態は、ローカルであるSIRの数に基づいてサービスパスのスコアを生成し、負荷に関係なく最高スコアが選択される。別の戦略は、クラスタ戦略である。クラスタ戦略は、同じホスト上に共存するVMによって実装されるサービスインスタンスが優先されることを指定する。そのホストがローカルインスタンスであるか、別のホストであるかは関係ない。ROUND_ROBIN戦略は、すべてのアクティブなサービスパスが、同じ確率で、または一連の重み値で指定された確率に基づいてヒットするように指示する。
[00217] SIルールオブジェクト2920は、データメッセージ属性のセットを、サービスチェーンオブジェクト2918によって表されるサービスチェーンに関連付ける。サービスチェーンは、1つ以上のサービスパスによって実装され、各サービスパスは、サービスパスオブジェクト2922によって定義される。各サービスパスは、1つ以上のサービスホップを有し、各ホップが1つのインスタンスランタイムインターフェース2916に関連付けられている1つ以上のサービスパスホップオブジェクト2924によって表される。また、各サービスホップは、いくつかの実施形態において、関連するサービスプロファイル、関連するサービスパス、およびネクストホップSIRエンドポイント識別子を参照する。
[00218] いくつかの実施形態では、サービスパスオブジェクトは、いくつかの属性を有し、そのいくつかは、基礎となる条件が変化したときに、管理または制御プレーンによって更新されてもよい。これらのプロパティには、サービスパスインデックス、状態(例えば、有効または無効)、サービスパスを手動で無効にしなければならないときに使用される管理モード(例えば、デバッグの理由で)、ホストクロスカウント(サービスパスを通過するデータメッセージがホストを通過する回数を示す)、ローカルカウント(このパスに沿っているSIRの数を示す)、バックアップサービスパスのリスト、サービスパスの長さ、リバースパス(リバースパスの同じSIRのセットを逆順にリストする)、メンテナンスモードインジケータ(いくつかの実施形態では、サービスパスのいずれかのホップがメンテナンスモードにある場合に真を示すビット)が含まれる。
[00219] ホストクロスカウントは整数で、サービスパスを通過するデータメッセージをPNICから送信する必要がある回数を示す。いくつかの実施形態では、ローカルまたは中央制御プレーンは、複数の利用可能な代替が存在する場合に、この指標を使用して、好ましいパスを決定する。この値は、管理プレーンまたは制御プレーンによって入口され、サービスパスを使用する各ホストで同じである。いくつかの実施形態におけるローカルカウントは、管理プレーンまたは制御プレーンによって初期化されず、サービスパスが作成または更新されるときにローカル制御プレーンによって計算される。各LCPは、異なる数値を計算する可能性がある。この値は、複数の利用可能な代替が存在する場合に好ましいパスを識別するために、ローカル制御プレーンによって使用される。サービスパスの長さは、サービスプレーンが初期サービスインデックスを設定するために使用する1つのパラメータである。
[00220] いくつかの実施形態では、バックアップサービスパスのリストは、同じサービスチェーンに対するすべてのサービスパスのソートされたリストへのポインタである。パスに沿った特定のSIRがダウンしたときに試行される可能性のあるすべての選択肢が一覧表示される。このリストには、サービスパスによってトラバースされる各HAクラスタ内のSVMのすべての可能な順列のサービスパスが含まれている場合がある。いくつかの実施形態では、リストは、異なるHAクラスタに属するSIRを含まない。
[00221] いくつかの実施形態では、サービスパスは、少なくとも1つのサービスホップが非アクティブであるとき、無効にされる。このような状態は一時的なものであり、サービスライブネス検出障害によってトリガーされる。サービスパスは、この方法でいつでも無効にできる。いくつかの実施形態では、サービスパスは、少なくとも1つのサービスホップが一致するSIRを持たない場合にも無効化される。参照しているSIR が消えても、オブジェクトモデルにサービスパスがまだ存在する場合、サービスホップはこの状態になる。
[00222] サービスプレーンは、各SPIを一意に識別できる必要がある。いくつかの実施形態では、生成された制御プレーンUUIDは、サービスパスごとに送信される。サービスプレーンにおけるデータメッセージヘッダの制限のために、いくつかの実施形態では、大きなIDは各データメッセージと共に送信されない。いくつかの実施形態では、制御プレーンが各サービスパスに対してUUIDを生成すると、それに対して小さな固有IDも生成し、このIDは、これらの実施形態では各データメッセージと共に送信される。
[00223] 図30は、サービス挿入、ネクストサービスホップ転送、およびサービス処理のためのルールを定義するために、ネットワークマネージャおよびコントローラがいくつかの実施形態において実行するいくつかの動作を概念的に示す。図示されているように、これらの動作は、サービス登録者3004、サービスチェーン生成器3006、サービスルール生成器3008、サービスパス生成器3010、サービスプレーンルール生成器3012、およびルール分配器3014によって実行される。いくつかの実施形態では、これらのオペレータのそれぞれは、ネットワークマネージャまたはコントローラの1つ以上のモジュールによって実現することができ、および/または1つ以上のスタンドアロンサーバによって実現することができる。
[00224] サービスパートナーインターフェース3002(例えば、一組のAPIまたはパートナーユーザーインターフェース(UI)ポータル)を介して、サービス登録者3004は、異なるサービスパートナーが実行するサービスを指定するベンダーテンプレート3005を受信する。これらのテンプレートは、サービスプロファイルを含む1つ以上のサービス記述子でパートナーサービスを定義する。登録者3004は、サービスチェーンを定義するために使用するサービスチェーン生成器3006のために、サービスプロファイルをプロファイル記憶3007に格納する。
[00225] 具体的には、ユーザインターフェース3018(例えば、一組のAPIまたはUIポータル)を介して、サービスチェーン生成器3006は、ネットワーク管理者(例えば、データセンタ管理者、テナント管理者など)から1つ以上のサービスチェーン定義を受信する。いくつかの実施形態では、各サービスチェーン定義は、サービスチェーンを識別したサービスチェーン識別子を、1つ以上のサービスプロファイルの順序付けられたシーケンスに関連付ける。定義されたサービスチェーン内の各サービスプロファイルは、サービスノードによって実行される必要があるサービス動作に関連付けられる。サービスチェーン生成器3006は、各サービスチェーンの定義をサービスチェーン記憶装置3020に格納する。
[00226] ユーザインターフェース3018(例えば、一組のAPIまたはUIポータル)を通して、サービスルール生成器3008は、ネットワーク管理者(例えば、データセンタ管理者、テナント管理者等)から1つ以上のサービス挿入ルールを受信する。いくつかの実施形態では、各サービス挿入ルールは、データメッセージフロー属性のセットをサービスチェーン識別子に関連付ける。いくつかの実施形態におけるフロー属性は、L2属性またはL3/L4属性(例えば、5つのタプル属性)のようなフローヘッダ属性である。これらまたは他の実施形態では、フロー属性はコンテキスト属性(例えば、AppID、プロセスID、アクティブディレクトリIDなど)である。転送およびサービス動作を実行するためのコンテキスト属性を捕捉および使用するための多くの技術は、本明細書に組み込まれる米国特許出願第15/650,251号に記載されている。これらの技術のいずれも、本明細書に記載する実施形態と共に使用することができる。
[00227] サービスルール生成器3008は、1つ以上のサービス挿入ルールを生成し、これらのルールをSIルール記憶装置3022に記憶する。いくつかの実施形態では、各サービス挿入ルールは、ルール識別子およびサービスチェーン識別子を有する。いくつかの実施形態におけるルール識別子は、SIルールが適用可能なデータメッセージフローを識別するフロー識別子(例えば、ヘッダ属性、コンテキスト属性など)に関して定義することができる。一方、各SIルールのサービスチェーン識別子は、SIルールのルール識別子に一致する任意のデータメッセージフローに対してサービスプレーンによって実行される必要があるサービスチェーンを識別する。
[00228] サービスルールの一部であるサービスチェーンごとに、サービスパス生成器3012は、1つ以上のサービスパスを生成し、各パスは、チェーンのサービスプロファイルのシーケンスによって指定されたサービス動作を実行するために、1つ以上のサービスノードの1つ以上のサービスインスタンスエンドポイントを識別する。いくつかの実施形態では、サービスチェーンのためのサービスパスを生成するプロセスは、(1)サービスパスの候補となるサービスノード(例えば、SVM)上のデータメッセージ処理負荷、(2)各候補サービスパスを横断するフローのデータメッセージによって横断されるホストコンピュータの数など、1つ以上の基準を説明する。
[00229] これらのサービスパスの生成は、基準によって本明細書に組み込まれる米国特許出願第16/282,802号にさらに記載されている。この特許出願に記載されているように、いくつかの実施形態は、ホストクロスカウント(サービスパスを横断するデータメッセージがホストを何回横断するかを示す)、ローカルカウント(このパスに沿ったSIRの何個がローカルホスト上に位置するかを示す)などの1つ以上の指標に基づいて、特定のホスト上の特定のGVMに対して使用するサービスパスを識別する。他の実施形態は、ファイナンシャルおよびライセンス指標などの他の指標に基づいて、サービスパスを識別する(すなわち、サービスパスのためのサービスノードを選択する)。
[00230] サービスパス生成器3012は、生成されたサービスパスのアイデンティティをサービスパス記憶装置3024に記憶する。いくつかの実施形態では、この記憶装置は、各サービスチェーン識別子を1つ以上のサービスパス識別子に関連付け、各サービスパス(すなわち、各SPI)に対して、サービスパスを定義するサービスインスタンスエンドポイントのリストを提供する。いくつかの実施形態は、サービスパス定義を1つのデータ記憶装置に記憶する一方で、サービスチェーンとそのサービスパスとの間の関連を別のデータ記憶装置に記憶する。
[00231] 次に、サービスルール生成器3010は、記憶装置3020、3022および3024に記憶されたルールから、サービス挿入、ネクストホップ転送、およびサービス処理のためのルールを生成し、これらのルールをルール記憶装置3026、3028および3030に記憶し、そこからルール分配機3014がこれらのルールを検索し、SIプリプロセッサ、サービスプロキシおよびサービスノードに配布することができる。分配器3014はまた、いくつかの実施形態において、サービスパス記憶装置3024からのパス定義を分配する。いくつかの実施形態におけるパス定義は、各パスに沿った第1ホップの第1ホップネットワークアドレス(例えば、MACアドレス)を含む。いくつかの実施形態では、サービスルール生成器3010および/またはルール分配器3014は、異なるサービスパスのセットが異なるホストコンピュータにとって最適であるまたは好ましいため、異なるホストコンピュータに、同じサービスチェーンに対する異なるサービスパスのセットを指定して分配する。
[00232] いくつかの実施形態では、ルール記憶装置3026に記憶されるSI分類ルールは、フロー識別子をサービスチェーン識別子に関連付ける。したがって、いくつかの実施形態では、ルール生成器3010は、記憶装置3022からこれらのルールを取得し、分類ルール記憶装置3026に格納する。いくつかの実施形態では、ルール分配器3014は、SIルール記憶装置3022から分類ルールを直接取り出す。これらの実施形態について、SI分類ルール記憶装置3026の説明は、ネクストホップ転送ルールおよびサービスノードルールと共に、分散ルールの3つのタイプを強調するためのより概念的な説明である。
[00233] いくつかの実施形態では、サービスルール生成器3010は、各サービスチェーンの各サービスパスの各ホップのサービスプロキシのネクストホップ転送ルールを生成する。上述したように、いくつかの実施形態における各サービスプロキシの転送テーブルは、プロキシの関連するサービスノードが存在する各サービスパスのネクストホップネットワークアドレスを識別する転送ルールを有する。このような各転送ルールは、現在SPI/SI値をネクストホップネットワークアドレスにマッピングする。サービスルール生成器3010は、これらのルールを生成する。SIプリプロセッサがファーストホップネットワークアドレスを検索しなければならない実施形態について、サービスルール生成器は、SIプリプロセッサのファーストホップルックアップルールも生成する。
[00234] また、いくつかの実施形態では、サービスルール生成器3010は、サービスノードに対して、サービスチェーン識別子、サービスインデックス値およびサービス方向をサービスノードのサービスプロファイルにマップするサービスルールを生成する。これを行うために、サービスルール生成器は、サービスプロファイル記憶装置3007からのサービスプロファイル定義と同様に、記憶装置3020および3024からのサービスチェーンおよびサービスパス定義を使用する。いくつかの実施形態では、ルール分配器は、このようなサービスマネージャが存在する場合、サービスノードのサービスマネージャを介してサービスノードルールをサービスノードに転送する。サービスプロファイル定義はまた、いくつかの実施形態では、分配器3014によってホストコンピュータ(例えば、LCP)に分配され、それにより、これらのホストコンピュータ(例えば、LCP)は、これらのサービスプロファイルを使用して、サービスプロキシを構成することができ、例えば、受信したデータメッセージをサービスノードに転送するようにサービスプロキシを構成したり、受信したデータメッセージをコピーしたり、コピーをサービスノードに転送したりし、オリジナルの受信したデータメッセージを次のサービスノードホップに転送したり、最終ホップであるときに送信元のGVMに戻したりするようにサービスプロキシを構成したりすることができる。
[00235] いくつかの実施形態では、管理および制御プレーンは、サービスパスのサービスノードのステータスおよびこれらのサービスノード上のデータメッセージ処理負荷に基づいて、サービスチェーンのサービスパスを動的に変更する。図31は、いくつかの実施形態において、サービスパスがどのように動的に修正されるかを示す。これらの実施形態では、中央制御プレーン3100は、ホストコンピュータ3120上のローカル制御プレーン3110と動作して、サービスチェーンのサービスパスを定義し、これらのサービスパスを修正する。いくつかの実施形態におけるCCP3100は、管理動作を提供する管理サーバのクラスタを介して、ネットワーク管理者によって指定されたサービスルールに基づいて構成を定義するための制御プレーン動作を提供するサーバのクラスタ(例えば、3つのサーバ)である。
[00236] 図に示すように、CCPは、ホストコンピュータ3120上のステータスパブリッシャ3103からサービスノードステータスデータを受信するステータスアップデータ3102を有する。上述したように、サービスプロキシは、その関連するサービスノードが故障したと判断するたびに(例えば、サービスノードがサービスプロキシのライブネス信号に連続して2回応答することに失敗するたびに)、そのホストをLCP3110に通知する。そして、LCPは、そのステータスパブリッシャ3103が、サービスノードの障害をCCPのステータスアップデータ3102に通知する。
[00237] ステータスアップデータ3102は、サービスノードの障害をサービスパス生成器3012に中継する。サービスパス生成器は、いくつかの実施形態では、SPルール生成器3010および統計コレクタ3104と共にCCPの一部である。サービスノードに障害が発生するたびに、サービスパス生成器は、このサービスノードを使用する以前に定義されたサービスパスをサービスパス記憶装置3024から除去する。除去された各サービスパスに対して、サービスパス生成器3012は、対応するサービスチェーンのサービスチェーン識別子に対する除去されたパスのSPI値を削除または非活性化する。
[00238] いくつかの実施形態では、除去された各サービスパスは、このサービスパスのためであった転送ルールまたはパス定義を以前に受信したすべてのホストのレコードから除去される(例えば、削除または非活性化される)。いくつかの実施形態では、CCP(例えば、サービスパス生成器3010またはルール分配器3014)は、これらのホストに、それらの転送ルール記憶装置3128およびパス定義記憶装置808の転送およびパス定義ルールからサービスパスを除去するように指示する。いくつかの実施形態では、故障したサービスノードのLCPは、その転送およびパス定義規則からサービスパスを除去し、一方、他の実施形態では、このLCPは、CCPからの命令を待つ。
[00239] 各ホスト3120はまた、いくつかの実施形態において、サービスプロキシがサービスノードのために生成するデータメッセージ負荷統計を発行する統計パブリッシャ3105を有する。サービスプロキシがそのサービスノードによって処理されたデータメッセージを受信するたびに、いくつかの実施形態におけるサービスプロキシは、そのサービスノードの統計記憶装置3107に記憶する統計(例えば、データメッセージカウント、バイトカウントなど)をインクリメントする。いくつかの実施形態では、統計パブリッシャ3105は、周期的またはオンデマンドで、記憶装置3107から収集された統計を検索し、これらの統計をCCPの統計コレクタ3104に転送する。いくつかの実施形態では、統計コレクタ3104は、サービスノードのサービスマネージャがサービスノードから受信する統計を(管理プレーンを通して)受信する。
[00240] 統計コレクタ3104は、収集された統計をサービスパス生成器3012に中継する。上述したように、いくつかの実施形態におけるサービスパス生成器は、サービスノード上のデータメッセージ負荷に部分的に基づいて、サービスノードを介したサービスパスを定義する。例えば、サービスノード上のデータメッセージ負荷が閾値を超えると、サービスパス生成器は、いくつかの実施形態において1つ以上のアクションを実行して、このサービスノード上の負荷を軽減する。例えば、いくつかの実施形態では、それは、それが定義することができる任意の新しいサービスパスへのサービスノードの追加を停止する。これらまたは他の実施形態では、ディストリビュータ3014に、このサービスノードを使用するサービスパスをホストの一部またはすべてから除去するように指示する。
[00241] 連結的に、または代替的に、サービスパス生成器は、CCPモジュール(例えば、分配器3014)に1つ以上のホストコンピュータのLCPに指示させ、1つ以上のホストコンピュータのLCPは、SIプリプロセッサがそのパス選択をどのように実行するかを制御するため、LCPが生成するサービスパスを選択するために使用される選択基準820を調整する。他の実施形態では、サービスパス生成器または別のCCPモジュールは、各サービスノードの負荷統計を集約し、集約された負荷をそれらの関連するSPI値と共にホストLCPに分散して、LCPがこれらの統計を分析し、それらが生成するパス選択基準を調整できるようにする。いくつかの実施形態では、各LCPは、サービスノード統計に基づいて、および/または各サービスパスによって横断されるホストの数のような他の基準に基づいて、パスを評価および選択するためのパス選択基準を生成するために、パス評価器3115を使用するか、または有する。
[00242] いくつかの実施形態では、管理プレーン、制御プレーン、サービスマネージャを実装するサーバは、ゲストおよびサービスマシンおよびモジュール(例えば、GVM、SVM、サービスプロキシ、ポートプロキシ、STLモジュール、SFEなど)が実行されるホストコンピュータと同じデータセンタにある。これらの実施形態では、管理プレーンサーバ、制御プレーンサーバ、サービスマネージャおよびホストコンピュータモジュール(例えば、LCP、SVM、GVM、ハイパーバイザモジュールなど)は、データセンタの共有ネットワークインフラストラクチャ(例えば、スイッチ、ルータ、有線および無線リンクなど)を介して互いに通信する。
[00243] 他の実施形態では、管理プレーンサーバ、制御プレーンサーバ、サービスマネージャおよび/またはホストコンピュータは、異なるデータセンタ(例えば、企業プライベートデータセンタおよびパブリッククラウドデータセンタ)で動作する。一部のこのような実施形態では、管理プレーンサーバ、制御プレーンサーバ、サービスマネージャおよび/またはホストコンピュータモジュール(例えば、LCP、SVM、GVM、ハイパーバイザモジュールなど)は、それぞれのデータセンタの外部のネットワークインフラストラクチャを介して互いに通信する。また、いくつかのそのような実施形態は、サービストランスポートレイヤを、複数のデータセンタ(例えば、複数のプライベートデータセンタ、複数のパブリックデータセンタ、複数のプライベート/パブリックデータセンタ)にまたがる分散論理L3ルーターおよび/またはネットワークとして実装する。
[00244] 図32は、いくつかの実施形態が、マルチテナントデータセンタ内のテナントのためのサービスプレーンおよびその関連サービスノードを定義するために実行する処理3200を示す。このプロセスは、ただ1つの例示的な一連の動作を提示するだけであり、動作に求められる順序を示すことを意図していない。図に示すように、このプロセスは、サービスプレーンを確立するためのサービスアタッチメントを最初に(3205において)指定する。サービス接続構造は、サービスプレーンの実装に依存しない。いくつかの実施形態では、サービスアタッチメントは論理スイッチとして実装されるが、上述のように、サービスアタッチメントは、他の実施形態では異なる方法(例えば、論理ルーター、論理ネットワークなど)で実装される。
[00245] サービスプレーンは、いくつかの実施形態において、あるテナントのデータトラフィックに対するサービス処理を、他のテナントのデータトラフィックに対するサービス処理から分離するために使用される。これらまたは他の実施形態では、異なるサービスプレーンが、異なるタイプのトラフィックに対して異なるQoSまたはSLA保証を提供するために使用される。例えば、いくつかの実施形態は、異なるサービスプレーンを使用して、異なるテナントの異なるデータ計算エンドポイント間のトラフィックに対して異なるQoSまたはSLA保証を提供するか、または同じテナントまたは異なるテナントの異なるデータメッセージフローによって運ばれる異なるタイプのコンテンツに対して異なるQoSまたはSLA保証を提供する。
[00246] サービスアタッチメントを作成した後、プロセスは、サービスプレーンによって提供されるサービスのサービスインスタンスを(3210で)作成する。配置されたサービスインスタンスごとに、プロセスは、サービスインスタンスを高可用性クラスタによって提供するか、スタンドアロンサービスノードによって提供するかを指定する。また、サービスインスタンスに関連付けられたサービスアタッチメントを識別するサービスアタッチメント識別子も提供する。また、配置仕様書とインスタンスの配置構成も提供する。
[00247] 次に、3215で、プロセスは、3210で作成されたサービスインスタンスごとに各サービスインスタンスランタイムを配置する。サービスインスタンスランタイムごとに、サービスアタッチメントにインスタンスエンドポイントを作成する必要がある。サービス接続が論理スイッチの場合、作成されるインスタンスエンドポイントは論理スイッチの論理ポートである。いくつかの実施形態では、論理スイッチポートは、SVM(サービスインスタンスランタイムとして機能する)が論理スイッチにアタッチされると自動作成される。いくつかの実施形態では、サービスインスタンスエンドポイントは、サービスインスタンスが配置されるたびに管理プレーンによって作成される。また、いくつかの実施形態では、サービスのサービスインスタンスおよびサービスインスタンスランタイムは、1つのサービス配置オブジェクトAPIを呼び出すことによって配置されることができる。前述のように、この単一のAPIを使用すると、複数のサービスインスタンスとサービスインスタンスランタイムをデプロイするために1つのAPIを複数回繰り返し呼び出す必要性が大幅に軽減される。
[00248] 3220で、プロセスは1つ以上のサービスチェーンを作成する。各サービスチェーンは、サービスプロファイルの順序付きリストとして作成される。各サービスチェーンには、順処理方向と逆処理方向がある。サービスチェーンごとに、前述のように障害ポリシーが定義される。また、上述したように、いくつかの実施形態における負荷分散基準は、各サービスチェーンに対して、任意、ローカル、サービスクラスタまたはラウンドロビンのタイプの1つとして定義される。最後に、3225で、サービスルールのセクションがテナントに対して定義され、1つ以上のサービスルールがこれらのセクションで定義される。各サービスルールは、指定されたフロー属性セットに一致するデータメッセージに対して実行する必要があるサービスチェーンを指定するために、一連のデータメッセージフロー属性をサービスチェーン識別子と相関させる。
[00249] いくつかの実施形態は、1つ以上のデータセンタで動作するホスト間で、サービスプレーンに関連するマシンを移行するための新しい方法を提供する。例えば、いくつかの実施形態は、(1)送信元ホストのマシンに関するサービスプレーンデータを収集する、(2)データを宛先ホストに送信する、(3)宛先ホストにマシンを配置する、および(4)送信元ホストからマシンを削除する、ことによって、サービスプレーンに関連付けられたサービスマシン(例えば、SVM)またはゲストマシン(例えば、GVM)のいずれかを移行(migrate)する。
[00250] マシンに新しいサービスプレーンネットワークアドレスを新しい位置に割り当てる代わりに、マシンは送信元ホストと同じ宛先ホストの同じサービスプレーンネットワークアドレスでアドレス指定できる。例えば、いくつかの実施形態では、サービスプレーンMAC(SPMAC)アドレスによってアドレス指定可能なゲストマシンは、異なるホストへの移行後に同じSPMACによってアドレス指定可能である。同様に、いくつかの実施形態において、特定のネクストホップMACアドレスに関連するサービスマシンが移行されるとき、サービスマシンは、移行の前後の両方で、同じネクストホップMACアドレスによってアドレス指定可能である。このようないくつかの実施形態では、移行されたサービスマシンを参照するネクストホップ転送ルールは、マシン移行後のサービスマシン位置の変化に基づいて更新される必要はない。したがって、ネクストホップ転送は移行に依存しない。
[00251] 代わりに、いくつかの実施形態では、サービスプレーンそれ自体が、移行されたマシンの位置を追跡する責任を負う。いくつかの実施形態では、サービスプレーン(例えば、サービスプレーンを構成する一組のコントローラ)は、サービスプレーンMACアドレスのVTEPへのマッピングを維持および更新して、マシン位置を追跡し、MACアドレス宛てのメッセージが、マシンへの配信のために正しいトンネルエンドポイントに転送されることを保証する。
[00252] いくつかの実施形態では、移行されたマシンは、そのマシンと共に移行されなければならないローカルに維持されたデータと関連づけられる。例えば、いくつかの実施形態におけるゲストマシンのIOチェーンのプリプロセッサは、フローを識別し、ゲストマシンのホストで維持される動的状態(例えば、コネクション追跡)に基づいてサービスプレーン転送のためのサービスメタデータ(SMD)を提供する。また、いくつかの実施形態では、ホストは、ゲストマシンに適用可能なSIルールや、SIルールで識別されるサービスチェーンのサービスパスなど、ゲストマシンに固有の静的データを格納する。いくつかの実施形態では、この情報の一部または全部は、サービス挿入プラットフォームの他の位置で維持されない。
[00253] ゲストマシン移行の動作のより詳細な例を、図33~図35を参照して説明する。図33は、移行されるGVMの送信元ホスト(source host)によって実行される処理3300と、移行されたGVMの宛先ホスト(destination host)によって実行される処理3305を示す。このプロセスは、図34A~34Cに示されるGVM移行の例を参照することによって、以下に記述される。図34A~34Cは、GVM VNICごとに1つのIOチェーンのみを示すが、GVM VNICは、一般に、2つのIOチェーンを有し、1つは、スイッチからVNICへの入口用であり、もう1つは、VNICからスイッチへの出口用であることに留意されたい。いくつかの実施形態では、出口IOチェーンは、入口IOチェーンと同じモジュールを含むが、VNICとスイッチとの間に逆の順序で配置される。図34Aは、GVM3402を移行する前の送信元ホスト112および宛先ホスト114を示す。処理3300は、送信元ホスト112が、GVM3402を宛先ホスト114に移行する必要があると判断したときに開始される。
[00254] 図に示すように、プロセス3300は、最初に(3310において)、GVM3402の移行に関するGVMデータを収集し、保存する。いくつかの実施形態では、GVMデータは、宛先ホスト114上にGVM3402のインスタンスを配置またはインスタンス化するためのGVM配置データを含む。また、いくつかの実施形態では、GVMデータは、サービス挿入モジュールによって、サービスメタデータをGVMに関連するデータメッセージに割り当てるために使用される動的状態データおよび静的ルールデータを含む。ホスト112は、収集されたGVMデータ3490を(3320において)送信する。GVMデータは、GVM3402を配置するためのGVM配置データのセットを含む。この例では、GVMデータ3490はまた、コネクション追跡記憶装置804から収集されたコネクション追跡データ(サービスメタデータ(SMD)のフロー識別子へのマッピングのような動的状態データを含む)、SIルール記憶装置806からGVM3042に関連するサービス挿入ルール、およびパステーブル808からのSIルールによって識別されるサービスチェーンのためのGVM3402に関連するサービスパスを含む。いくつかの実施形態では、GVMデータは、仮想マシンモビリティ管理サービス、例えばVMware Inc.のエンタープライズモビリティ管理を介して送られる。また、いくつかの実施形態では、TLVヘッダは、GVMデータを送信するときに、GVM配置データ、接続データ、SIルール、およびサービスパスのそれぞれに対して定義される。
[00255] いくつかの実施形態では、サービスパス選択指標とネクストホップアドレスの両方がパステーブルから収集され、GVMデータと共に送信される。他の実施形態では、サービスパスの第1ホップMACアドレスは、別個の転送テーブル(例えば、図8の転送テーブル810)に格納され、そこから収集される。いくつかの実施形態では、サービスパスおよびサービスパス選択指標は、GVMデータと共に収集されず、送信されない。そのようないくつかの実施形態は、代わりに、CCPから分配されたすべてのサービスパスを各ホストに格納するか、またはCCPによって特定のホストに分配された各特定のホストサービスパスにのみ格納する。
[00256] GVMデータが送信元ホスト112から送信された後、処理3305は、宛先ホスト114におけるGVMデータを開始し、(3325において)受信する。いくつかの実施形態では、GVMデータは、マシン移行の宛先ホストに警告する。このプロセスでは、GVMデータを使用して、宛先ホスト114でGVM3402を(3335で)移行する。図34Bは、GVM3402がホスト114上に配置された後の送信元ホスト112および宛先ホスト114を示す。3335において、プロセスはまた、新たに配置されたGVM3402のために、ポート3452および入口および出口IOチェーンを配置する。GVM3402は、IOチェーンに接続し、これらを介して、ホスト114上のスイッチ122のポート3452に接続する。この例では、配置された入口IOチェーンは、SIプリプロセッサ3411、STL呼出元3425、およびSIポストプロセッサ3413を含む。いくつかの実施形態では、ポートプロキシ3420は、GVM3402の新しい位置へのマッピングを格納する。いくつかの実施形態では、ポートプロキシ3420は、GVM SPMACアドレスをSTL呼出元3425にマッピングする。また、いくつかの実施形態では、GVM3402は、送信元ホスト112と宛先ホスト114の両方で同じSPMACを有する。
[00257] GVM3402およびそのIOチェーンが配置されると、処理3305は、受信したGVMデータ3490からGVM3402の動的状態および静的ルールデータの復元を開始する。いくつかの実施形態において、SIプリプロセッサ3411は、GVM3402の状態およびルールデータの少なくとも一部が宛先ホスト114上に復元され、SIプリプロセッサにアクセス可能になるまで、移行されたGVM3402のためのフローを処理することができない。3345において、プロセスは、GVM3402のためのコネクションデータを復元し、受信したコネクションデータをコネクション追跡記憶装置3404に記憶する。いくつかの実施形態において、SIプリプロセッサ3411は、接続追跡記憶装置がサービスプレーン転送に十分なサービスメタデータ(例えば、SPI、SI、Direction、第1のネクストホップアドレスなど)を含む既存のデータフローの処理をすぐに開始してもよい。この場合、プリプロセッサ3411は、サービス挿入ルールおよびGVM3402のパスが復元される前に、フロー処理を再開することができる。いくつかの実施形態では、新しいデータフローは、サービス挿入ルールおよびサービスパスデータが復元されるまで保持される(例えば、SIプリプロセッサで)。他の実施形態では、サービス挿入ルールに一致しない新しいフローは、それらの宛先に転送される。
[00258] 3355において、処理3305は、受信したGVMデータ3490に基づいて、GVM3402のSIルールを復元する。SIルールは、SIルール記憶装置3406に記憶される。この例では、SIルール記憶装置は、GVM3402とGVM3402のSIルールを異なるセクションに記憶する。他の実施形態では、各GVMは、独自のルール記憶装置を有する。全てのGVMに対するルールは、いくつかの実施形態において、単一記憶装置の単一セクションに格納される。GVM3402のSIルールの復元に続いて、プロセスは、パステーブル3408内の受信されたパスおよびパスデータ(例えば、選択基準、ファーストホップMACアドレスなど)を(3365において)復元する。この例では、GVM104およびGVM3402は、パステーブル3408を共有するが、同じホスト上のゲストマシンは、いくつかの実施形態において、単一のセクションを共有するか、または独自の記憶装置を有することも可能である。いくつかの実施形態では、プリプロセッサ3411は、パステーブルが復元されると、新しいフローの処理を開始する。しかしながら、他の実施形態では、プリプロセッサは、パステーブルが制御プレーンによって更新されるまで、新しいフローの処理を開始しない。このような場合には、プリプロセッサは新しいデータフローに属するデータメッセージを保持し続ける。いったんパステーブルが復元されると、処理3305は、(3365において)制御位置(例えば、CCP)に、GVMの配置およびデータ復元が完了し、終了することを通知する。
[00259] ホスト112が、GVM 3402がホスト114上に配置され、GVM3402の状態およびルールが復元されたという確認通知を受信すると、処理3300は、3330において、ホスト112からのGVM3402の破棄を開始する。いくつかの実施形態では、送信元ホスト112はCCPから確認応答を受信するが、他の実施形態では、確認応答は宛先ホスト114それ自体から受信される。いくつかの実施形態では、GVM3402は、まずホスト114でそのIOチェーンから切断され、次に除去される。
[00260] 3330において、ホスト112はまた、SIプリプロセッサ3410、STL呼出元3424、およびSIポストプロセッサ3412を含む、GVM3402がvswitch120に接続するGVM IOチェーンおよびポート3450を破棄する。いくつかの実施形態では、IOチェーンは、ホスト112から取り外される前に、ポート3450から切断される。いくつかの実施形態では、処理3300は、ホスト112から、移行されたGVM3402の固有のデータを除去する。この場合、ホスト112は、接続追跡保管804、S.I.ルール記憶装置806、およびパステーブル808からGVM3402データを除去する。ポートプロキシ620は、GVM3402のSPMACへのマッピングも除去する。GVM3402、GVM3402IOチェーン、およびその関連データがホスト112から除去されると、処理3300は、GVM3402が送信元ホスト112から切断されて終了したことを制御プレーン(例えばCCP)に(3340において)通知する。図34Cは、GVM3402の移行が完了した後のホスト112およびホスト114を示す。
[00261] いくつかの実施形態では、制御プレーンは、マシンの移行を検出し、それに応じてサービスプレーンを更新する責任を負う。GVM移行後に実行される制御プレーン動作は、いくつかの実施形態において制御プレーンによって実行される処理3500を示す図35を参照してさらに説明される。このプロセスは、図34A~34Cを参照して、以下に説明される。
[00262] 図に示すように、処理3500は、GVM3402が送信元ホスト112から宛先ホスト114に移行したことを制御ペインが(3510において)判定すると、開始される。いくつかの実施形態では、制御プレーンは、CCPで受信された1つ以上の通知に基づいて、ゲストマシンがホストを移行したと決定する。いくつかの実施形態では、制御プレーンは、宛先ホストからのゲストマシンが配置されたことの第1の通知と、送信元ホストからのゲストマシンが切断されたことの第2の通知とを受信する。いくつかの実施形態では、第1の通知は宛先ホストのLCPによって送信され、第2の通知は送信元ホストのLCPによって送信される。
[00263] 制御プレーンが、GVM3402が移行されたことを決定すると、プロセスは(3520において)、移行されたGVMの新しい位置を公開する。いくつかの実施形態では、制御プレーンは、GVMに到達可能なVTEPへのGVM SPMAC(これは、以前と同じである)のマッピングを公開する。いくつかの実施形態では、VTEPは、データフローがサービスパスを完了した後、データフローをその送信元GVM IOチェーンに戻すために使用される。いくつかの実施形態では、VTEPは、サービスプレーン(例えば、ポートプロキシ3420)との間でGVMに関連するデータフローを挿入する、新しいホスト上のポートプロキシのためのVTEPである。
[00264] いくつかの実施形態では、VTEPからSPMACへのマッピングは、サービスプレーンによって維持されるグローバル転送テーブルに公開され、そこでは、SPMACから送信元ホストのVTEPへのマッピングを置き換える。いくつかの実施形態では、マッピングは、サービスプレーンの各転送要素のホストにおいて、CCPからLCPに公開される。
[00265] いくつかの実施形態では、移行されたGVMの新しい位置は、GVM IOチェーンからサービスプレーンに挿入されたデータフローに基づく送信元学習によって、サービスプレーンによっても学習される。このようないくつかの実施形態では、挿入されたトラフィックには、トラフィックがGVMから転送される送信元VTEPを識別するVTEP送信元ラベルが付加される。VTEP送信元ラベルは、サービスプレーンを通過する各ホップに沿って伝送される。いくつかの実施形態では、VTEP送信元ラベルは、データフローのデータメッセージのサービスメタデータに追加される。いくつかのこのような実施形態では、データメッセージは、SPMACおよびVTEPラベルの各ホップで検査される。送信元ラベルのSPMACとVTEPは、データメッセージのサービスメタデータから取得され、SPMACとVTEPのマッピングが学習される。いくつかの実施形態では、マッピングは、サービスパスのエンドにあるデータメッセージを、データメッセージがサービスプレーンに挿入された送信元GVM IOチェーンに戻すために使用することができる。
[00266] 必要に応じて、制御プレーンは、移行されたGVMの宛先ホスト114の新しいサービスパスを(3530において)生成する。いくつかの実施形態では、サービスパスは、サービスパスが選択されるホストに相対的な(例えば、サービスパスが実行されるためにデータメッセージがサービスプレーンに挿入される)サービスパスのSVMの位置に少なくとも部分的に基づいて、サービスチェーンに対して選択される。そのため、GVM移行の送信元ホスト112に対して生成されたサービスパスは、宛先ホスト114にとって最適ではない可能性がある。いくつかの実施形態では、新しいサービスパスは、サービスパスのSVMに相対的な宛先ホストの位置に基づいて選択された最適なサービスパスである。新しいサービスパスは、GVMの宛先ホストに配信され、パステーブルに保存される。いくつかの実施形態では、新しいサービスパスがCCPで生成され、宛先ホストのLCPを介して宛先ホストに分配される。いくつかの実施形態は、各サービスチェーンに対して単一のサービスパスのみを各ホストに配信する。他の実施形態は、ホスト毎にサービスチェーン毎に複数のサービスパスを分配する。いくつかのそのような実施形態では、各ホストのLCPは、選択基準に基づいて、複数の受信されたサービスパスから記憶するために、サービスチェーンごとに1つのサービスパスを選択する。他のこのような実施形態では、受信されたサービスパスはそれぞれ記憶され、LCPは受信されたサービスパスのための選択指標を生成する。サービスパスは、例えば、重み付きラウンドロビン選択に基づいて、いくつかのそのような実施形態におけるサービスパス選択指標を使用するフローベースによるサービスチェーンに対して選択される。
[00267] いくつかの実施形態では、サービスパス選択は、サービスパスのGVMホスト相対SVMの位置に依存しない。たとえば、サービスパスの選択は、SVMの相対的な位置に依存する場合があるが、GVMのホストとの相対的な関係には依存しない場合がある。このような場合、GVMの移行はサービスパスの選択に影響しない。このような場合、新しいサービスパスの生成は、GVMの移行後は不要であり、スキップすることができる。いくつかの実施形態では、サービスルールおよび/またはサービスパスは、マシンの移行中には移行されず、GVMのための古いサービスルールおよび/またはサービスパスは、代わりにCCPによって宛先ホスト(例えば、ホスト114)に分配される。
[00268] 3540において、必要であれば、制御プレーンは、宛先ホスト114におけるパステーブル3408のサービスパスのための新しいサービスパス選択指標を計算する。いくつかの実施形態では、サービスパス選択指標は、中央制御プレーンから受信された新しいサービスパスに対して常に計算される。また、いくつかの実施形態では、サービスパスは、サービスパス選択指標なしに移行され、サービスパス選択指標は、受信されたサービスパスについて計算される。サービスパス選択指標が、少なくとも部分的に、GVMホストに相対的なサービスパスSVMの位置に基づいている場合、移行されたサービスパス選択指標は、もはや正確ではなく、新しいサービスパス選択指標が、移行されたサービスパス選択指標に代わるいくつかの実施形態において計算される。いくつかの実施形態では、移行されたGVMがホスト上の最初のGVMであるとき、ホストは移行前に記憶されたサービスパスを持たない。このようないくつかの実施形態では、移行後に宛先ホストに記憶されたすべてのサービスパスは、送信元ホストから移行されたサービスパスである。他の実施形態では、サービスパスは、GVMと共にまったく移行されない。
[00269] いくつかの実施形態では、サービスパス選択指標は、GVM自体の位置に依存せず、むしろ選択指標を生成するホストの位置に依存する。このような場合、宛先ホストのパステーブルにすでに保存されているサービスパスについて、サービスパス選択指標を計算する必要がないことがある。このような実施形態では、サービスパス選択指標は、サービスプレーンにおける他の変更に起因して、依然として計算されてもよい。他の実施形態では、サービスパス選択指標がGVMホストの位置に依存しない場合、すでに選択指標を有する任意のサービスパスに対するサービスパス選択指標を計算することは不要であり、スキップすることができる。必要なサービスパス選択指標が計算されると、処理3500は終了する。
[00270] いくつかの実施形態はまた、1つ以上のデータセンタで動作するホスト間でサービスマシン(例えば、SVM)を移行するための新しい方法を提供する。たとえば、1台以上のサービスマシンをホストする第1のホストコンピュータをメンテナンスのために停止する必要がある場合、第1のホストコンピュータで動作しているサービスマシンを第2のホストコンピュータに移行できる。場合によっては、サービスマシンをホストマシン間で移行して、ワークロードのバランスを取ったり、権限やファイアウォールの実装を簡素化したり、改善されたサービスパスを提供したりすることがある。
[00271] このようないくつかの実施形態では、SVMは、ホストコンピュータの共有メモリ(例えば、VMware ESXホストの共有メモリ)内で実行される。一部のこのような実施形態では、ファイルに対してサービス動作を実行するために、SVMは、サービス動作を実行する前に、共有メモリ内のファイルの保存場所を探し、カーネル空間内のファイルを開く。このようないくつかの実施形態では、SVMは、同じESXに格納されたファイルに対してのみサービス動作を実行することができる。このようないくつかの実施形態では、ホスト間でSVMを移行するには、VMに関連付けられたフィルタモジュール(例えば、dvFilter)の移行が必要である。他のこのような実施形態では、SVMは、代わりに、共有メモリ内で動作しないMACアドレス指定可能エンティティである。MACアドレス指定可能なサービスマシン移行の動作のより詳細な例を、図36~39を参照して説明する。
[00272] 図36は、移行元のSVM3706の移行元ホスト112で実行される処理3600と、移行先のSVMの宛先ホスト114で実行される処理3605を示す。このプロセスは、図37A-37Cに示されているSVM移行の例を参照して、以下で説明されている。図37Aは、SVM3706の移行前のホスト112とホスト114を示す。処理3600は、送信元ホスト112が、SVM3706を宛先ホスト114に移行する必要があると判断したときに開始される。
[00273] 図に示すように、プロセス3600は、最初に、SVM3706に関するSVMデータを(3610において)保存する。いくつかの実施形態では、SVMデータは、ホスト114上にSVM3706を配置するためのデータを含む。いくつかの実施形態では、SVMデータは、データメッセージフロー上でサービスを識別し実行するためにSVM3706によって使用される動的状態SVMデータおよび静的ルールSVMデータも含む。
[00274] いくつかの実施形態では、SVMルールデータは、データメッセージフロー上でサービスを実行するためのサービスルールセットへのサービスメタデータ(例えば、SCI、SI、および宛先)のマッピングを含む。また、いくつかの実施形態では、SVM状態データは、データメッセージフロー上で実行するためのサービス動作へのフロー識別子のマッピングを含む。いくつかの実施形態では、状態データは、サービスルールセット内のデータフロー識別子に対するルックアップに基づくデータフロー識別子への決定のマッピングを含む。また、SVMデータは、いくつかの実施形態では、SVM IOチェーンのためのSIプロキシ(例えば、SIプロキシ3715)およびSIプロキシによって使用される任意の状態データを構成するためのデータを含む。いくつかの実施形態では、SIプロキシデータは、移行されたSVMが属するサービスパスのネクストホップ転送ルールのセットを含む。また、いくつかの実施形態では、SIプロキシ状態データは、SIプロキシで維持される指標および統計、例えば、トラフィック量レコードを含む。
[00275] 送信元ホスト1112は、保存されたSVMデータ3790を宛先ホスト114に(3620で)送信する。いくつかの実施形態では、SVMデータ3790は、仮想マシンモビリティ管理サービス、例えばVMware Inc.のエンタープライズモビリティ管理を介して送られる。いくつかの実施形態では、任意のSVMルールデータ、SVM状態データ、およびSIプロキシデータを含むすべてのSVMデータは、移行されたSVM3706と共に移動される。他の実施形態では、SVMルールデータ、SVM状態データ、およびSIプロキシデータの一部またはすべてが、仮想マシン移行フレームワークを介して個別に移行される。
[00276] SVMデータ3790が送信元ホスト112から送信された後、処理3605は、宛先ホスト114のSVMデータを開始し、(3625で)受信する。いくつかの実施形態では、SVMデータは、マシン移行の宛先ホストに警告する。このプロセスでは、SVMデータ3790を使用して、宛先ホスト114にSVM3706を(3635に)配置する。図37Bは、ホスト2にSVM3706が配置された後のホスト112とホスト114を示す。いくつかの実施形態では、移行されたSVM3706は、移行されたSVMデータ3790を使用して、移行されたSVM状態およびSVMルールの一部または全部と共に配置される。他の実施形態では、SVM状態およびルールデータの一部または全部は、例えば、別々に移行されたSVMデータ(例えば、SIプロキシ状態)を復元する、導入後に復元される。
[00277] 3635において、処理3605はまた、ポート3755および入口及び出口IOチェーンを配置する。このプロセスでは、SVM3706をIOチェーンに接続し、それらを介して宛先ホスト114のスイッチ122のポート3755に接続する。この例では、配置されたIOチェーンは、SIプロキシ3715およびSTLモジュール3727を含む。いくつかの実施形態では、移行されたネクストホップ転送ルールは、SIプロキシ3715の配置中に消費され、SIプロキシは、すでに構成されたネクストホップ転送ルールと共に配置される。他の実施形態では、ネクストホップ転送ルールはグローバルに記憶され、サービスプレーンによってSIプロキシ3715に提供される。さらに別の実施形態では、ネクストホップ転送ルールは、配置後にCCPによって提供される。いくつかの実施形態では、IOチェーンの配置中に、移行されたSVM3706のネクストホップアドレスがサービスプレーンによって保存される。また、いくつかの実施形態では、移行されたSVMは、送信元ホストと同じ宛先ホストの同じネクストホップアドレスによってアドレス指定可能である。この例では、サービスプレーンは、ホスト112のSVM3706に割り当てられたのと同じホスト114のネクストホップMACアドレスである宛先ホスト114のポート3755を介して、SVM3706に到達できるVTEPへのSVM3706のマッピングを格納する。
[00278] いくつかの実施形態では、SVM3706およびそのIOチェーンが一旦配置されると、プロセス3605は、受信されたSVMデータ3790からSVM3706の動的状態および静的ルールデータを復元する(3645で)。一部のこのような実施形態では、静的ルールが復元される前に、復元された状態を使用して、以前に処理されたフローのデータメッセージを処理することができる。移行されたSVMが移行先ホストの最初のSVMである場合、いくつかの実施形態では、移行先ホストにネクストホップ転送ルールもVTEPからMACアドレスへのマッピングもない。いくつかのこのような実施形態では、処理3605は、移行されたSVMデータ3790からのMACマッピングにネクストホップ転送ルールおよび/またはVTEPを復元する。また、処理3605は、CCPが非アクティブであるか、またはサービスプレーン情報を分配することができない場合に、ネクストホップ転送ルールおよび/またはVTEPからMACアドレスマッピングをいくつかの実施形態で復元する。他の実施形態では、移行されたすべてのSVMデータは、代わりに、移行されたSVMの配置時に消費される。このような場合、配置後のSVM状態の復元は不要であり、スキップされる可能性がある。必要な状態および/またはルールが回復されると、処理3605は終了する。
[00279] ホスト112が、SVM3706がホスト114上に配置され、設定されたという確認通知を受信すると、プロセス3600は、ホスト112から(3630で)SVM3706の破棄を開始する。いくつかの実施形態では、送信元ホストはCCPから確認応答を受信するが、他の実施形態では、確認応答は宛先ホスト自体から受信される。いくつかの実施形態では、SVM3706は、まず、そのIOチェーンから切断され、次に、除去される。
[00280] 3630で、プロセスはまた、SVM3706のIOチェーンと、SIプロキシ3714およびSTLモジュール3726を含むSVM3706がvswitch120に接続するポート3754を破棄する。いくつかの実施形態では、IOチェーンは、ホスト112から除去される前に、ポート3754から切断される。いくつかの実施形態では、送信元ホストは、移行されたSVMに固有のデータを除去する。いくつかの実施形態におけるサービスプレーンはまた、ホスト112におけるその位置への移行されたSVM3706のマッピングを除去する。SVM3705、SVM3706のIOチェーン、およびそれらに関連するデータが送信元ホスト112から除去されると、処理3600は終了する。図37Cは、SVM3706の移行が完了した後のホスト112とホスト114を示す。
[00281] いくつかの実施形態では、制御プレーンは、SVMの移行を検出し、それに応じてサービスおよび転送プレーンを更新する責任を負う。SVM移行後に実行される制御プレーン動作は、いくつかの実施形態において制御プレーンによって実行される処理3800を示す図38を参照してさらに説明される。このプロセスは、図37A~37Cを参照して、以下に記述される。
[00282] 図に示すように、処理3800は、制御ペインが、SVM3706が送信元ホスト112から宛先ホスト114に移行したことを(3810において)決定したときに開始する。いくつかの実施形態では、制御プレーンは、CCPで受信した1つ以上の通知に基づいて、SVMがホストを移行したと判断する。いくつかの実施形態では、制御プレーンは、SVM3706が配置されたことの宛先ホスト114から第1の通知と、SVM3706が切断されたことの送信元ホスト112から第2の通知とを受信する。いくつかの実施形態では、第1の通知は宛先ホストのLCPによって送信され、第2の通知は送信元ホストのLCPによって送信される。
[00283] 制御プレーンがSVM3706の移行を決定すると、プロセスは(3820で)移行されたSVM3706の新しい位置を公開し、SVM3706宛てのメッセージを送信元ホスト112ではなく宛先ホスト114に転送するようにサービスプレーンを構成する。いくつかの実施形態では、制御プレーンは、SVMネクストホップMACアドレス(これは、以前と同じである)のVTEPへのマッピングを公開し、これによりSVMに到達できる。いくつかの実施形態では、マッピングは、サービスプレーンで維持されるグローバル転送テーブルに公開され、そこでは、送信元ホストに関連するVTEPへのSVMの以前のマッピング(例えば、112)を置き換える。このようないくつかの実施形態では、マッピングは、サービスプレーンを実装する各転送要素のホストにおいて、CCPからLCPに公開される。この例では、カプセル化モジュール628および3428は、ホスト112のVTEPの代わりにホスト114のVTEPでSVM3706のMACアドレス宛てのパケットをカプセル化するように構成される。
[00284] 必要に応じて、制御プレーンは、SVM3706の移行に基づいて(3830で)新しいサービスパスを生成する。いくつかの実施形態では、サービスパス選択指標は、サービスパス内のサービスノードの相対的な位置に、少なくとも部分的に、互いに比較して依存する。このようないくつかの実施形態では、SVMが別のホストに移行されると、SVMを構成するサービスパスは最適化されなくなる。いくつかの実施形態では、移行されたSVM3706を含むサービスパスを置き換えるために、新しいサービスパスが生成され、その中で、SVM3706は、同じサービスを実行する異なるSVMによって置き換えられる。いくつかの実施形態では、SVMの移行により、サービスチェーンの以前のサービスパスよりも最適な、移行されたSVMを構成する新しいサービスパスが生成されることが可能になる。
[00285] 3840で、プロセスはサービスパスを分配する。いくつかの実施形態では、サービスパスは、ネクストホップ転送ルールの形成において送信される。いくつかの実施形態では、制御プレーン(例えば、CCP)は、移行されたSVM3706を構成する任意のサービスパスを宛先ホスト114に分配する。他の実施形態では、ネクストホップ転送ルールはサービスプレーン内でグローバルに維持され、宛先ホスト114は、移行されたSVM3706を含むサービスパスに対するネクストホップ転送ルールをすでに有するであろう。いくつかの実施形態では、受信されたサービスパスは、サービスパス(例えば、SIプロキシ3715)のサービスノードのサービスプロキシによって記憶される。
[00286] いくつかの実施形態では、サービスパスはCCPで生成され、各ホストのLCPを介してホストに分配される。いくつかの実施形態では、CCPは、サービスプレーンのSVMをホストする各ホストに新しいサービスパスのネクストホップ転送ルールを分配し、一方、他の実施形態では、各特定のサービスパスのネクストホップ転送ルールは、特定のサービスパスによってスパンされるホストに分配される。
[00287] いくつかの実施形態では、新しく生成されたサービスパスは、サービスパスが生成されるサービスチェーンに関連するGVMを実行するホストの少なくともサブセットに分散される。いくつかの実施形態では、各ホストは、各サービスチェーンに対して1つのサービスパスを受信するが、他の実施形態では、各ホストは、各サービスチェーンに対して複数のサービスパスを受信する。いくつかの実施形態では、ホストは、それらのGVMが関連付けられているサービスチェーンのためのサービスパスを受信するが、他の実施形態では、各ホストは、すべての分散サービスパスを受信する。いくつかの実施形態では、受信されたサービスパスは、それぞれのホストのサービスパステーブルに格納される。また、いくつかの実施形態では、各GVMホストのLCPは、各サービスチェーンに対して記憶する1つのサービスパスを選択する。
[00288] 3850で、制御プレーンは、特定のパステーブルのサービスパスのための新しいサービスパス選択指標を計算する。いくつかの実施形態では、新しいサービスパス選択指標は、移行されたSVM3706を含む各サービスパスに対して計算される。新しいサービスパスが生成されるとき、いくつかの実施形態において、サービスパス選択指標は、各新しいサービスパスに対して生成される。いくつかの実施形態では、サービスパス選択指標は、ホストのLCPによって各ホストのパステーブルに対して計算される。サービスパス選択指標が計算されると、処理3800は終了する。サービスチェーンごとに1つのサービスパスのみが格納される場合、いくつかの実施形態では、サービスパス選択指標は、サービスパスと共に格納されない。
[00289] いくつかの実施形態は、同じホストコンピュータのディスク割り当ての間でサービスマシンを移行するための新しい方法も提供する。たとえば、ユーザまたは管理者は、SVMをプライベートディスク割り当てから共有ディスク割り当てに、またはその逆に移行することを望む場合がある。いくつかの実施形態では、第1および第2のディスク割り当ては、同じホストコンピュータ上の別々のデータストア(例えば、2つのVMware NFSデータストア)に関連付けられる。いくつかの実施形態では、ディスク割り当ては、同じディスク記憶装置の第1および第2の割り当てである。他の実施形態では、ディスク割り当ては、別個の第1および第2のディスク記憶装置である。このようないくつかの実施形態では、同じホストコンピュータのハードウェアディスク記憶装置間でSVMを移行して、ワークロードのバランスを取ることができる。ディスク割り当ての間でSVMを移行するプロセスは、図36に示す同じ一連の動作に従う。ただし、ホスト内SVM移行の場合、プロセス3600は移行元のディスク割り当てによって実行され、プロセス3605は移行先のディスク割り当てによって実行される。このプロセスは、図39に示されているホスト内SVM移行例を参照することによって以下に説明される。プロセス3600は、ホスト112の第1のディスク割り当て上のNFSデータストア3910上のSVM3906を、ホスト112上の第2のディスク割り当て上のNFSデータストア3920にも移行する必要があると判断されたときに開始される。3901は、移行前のホスト112を示す。
[00290] 図に示すように、処理3600は、最初に、SVM3906に関するSVMデータを(3610で)保存する。送信元NFS3910は、(3620で)保存されたSVMデータ3990を宛先NFS3920に送信する。いくつかの実施形態では、SVMデータ3990は、ホストコンピュータ間のSVM移行中に収集されるSVMデータ(例えば、SVMデータ3790)の少なくともサブセットを含む。いくつかの実施形態では、SVMデータ3990は、ホスト112上の仮想マシンモビリティ管理サービス(例えば、VMware Inc.のエンタープライズモビリティ管理)を介して送信される。SVMデータ3990が送信元NFS3910から送信された後、プロセス3605は、宛先NFS3920でSVMデータ3990を開始し、(3625で)受信する。いくつかの実施形態では、SVMデータ3990は、マシン移行のNFS3920に警告する。
[00291] 処理3605は、SVMデータ3990を使用して、宛先NFS3920上に(3635で)SVM3906を配置する。いくつかの実施形態では、SVM3906は、移行されたSVMデータ3990を使用して、移行されたSVM状態およびルールの一部または全部と共に配置される。他の実施形態では、SVM状態およびルールデータの一部または全部が、代わりに配置後に復元される。3635では、プロセスはポート3955と入口および出口IOチェーンも配置する。SVM3906 は、IOチェーンと接続され、それらを通じて、スイッチ120のポート3955に接続される。この例では、配置されたIOチェーンは、SIプロキシ3915およびSTLモジュール3927を含む。
[00292] 3902で、SVM IOチェーンの2つのインスタンスがホスト112で実行される。いくつかの実施形態では、SVM3906の2つのインスタンスのIOチェーンは、同じVNIC MACアドレスによって宛先指定可能である。また、いくつかの実施形態では、ポート3954およびポート3955は、異なるポートIDを有する。いくつかの実施形態では、配置の一部として(3635において)、プロセスは、NFS3920上に配置されたSIプロキシ3915に対するハンドルのマッピングを、MACアドレスおよびポート3955ポートID(例えば、ポートテーブルまたはハンドルテーブル内)に保存する。
[00293] いくつかの実施形態では、一旦SVM3906とそのIOチェーンがNFS3920上に配置されると、処理3605は、受信したSVMデータ3990からNFS3920でSVM3906の動的状態と静的ルールデータを復元する(3645で)。他の実施形態では、代わりに、配置が不要になりスキップされ得る後に、移行されたすべてのSVMデータは、SVM3906の配置中およびSVM状態とルールの復元で消費される。必要な状態および/またはルールが回復されると、処理3605は終了する。
[00294] NFS3910が、SVM3906がNFS3920に配置され、設定されたという確認通知を受信すると、処理3600は、NFS3920からSVM3906の破棄を開始する(3630で)。いくつかの実施形態では、送信元NFSはCCPから確認応答を受信するが、他の実施形態では、確認応答はLCPまたは宛先NFSそれ自体から受信される。いくつかの実施形態では、SVM3906は、まずそのIOチェーンから切断され、次にNFS 3920から除去される。
[00295] 3630において、このプロセスは、NFS3910およびSVM3906がNFS3910(SIプロキシ3914およびSTLモジュール3926を含む)からvSwitch120に接続するポート3954のSVM3906IOチェーンも破棄する。いくつかの実施形態では、IOチェーンは、NFS3910から除去される前に、ポート3954から切断される。いくつかの実施形態では、送信元NFS3910は、移行されたSVM3906に固有のデータを除去する。いくつかの実施形態におけるサービスプレーンは、SVM3906のポート3954へのマッピングも除去する。SVM3906、SVM IOチェーン、およびその関連データがNFS3910から除去されると、処理3600は終了する。3903は、SVM3906のホスト内移行が完了した後のNFS3910とNFS3920を示す。
[00296] 上述したように、いくつかの実施形態では、ホスト内移行中に、SVM IOチェーンが同じMACアドレスを持つ同じホスト上の第1および第2のディスク割り当ての両方で実行される間隔がある。いくつかの実施形態では、これは、SVM IOチェーンが第2のディスク割り当て(3635)に配置された後、SVM IOチェーンが第1のディスク割り当て(3630)から除去される前に発生する。例えば、3902において、NFS 3910におけるSIプロキシ3914およびNFS3920におけるSIプロキシ3915は、両方ともホスト112上で実行される。いくつかの実施形態では、これにより、制御プレーンとSIプロキシとの間の通信に問題が生じる可能性がある。例えば、いくつかの実施形態では、LCP 3930がSIプロキシ3915にメッセージを送信する必要があるとき、LCPは、SVM3906のMACアドレスに基づいてSIプロキシ3915のハンドルを検索する。ただし、同じMACアドレスを持つ2つのSIプロキシが同じホストで動作する場合、MACアドレスのみに基づくルックアップで2つのSIプロキシハンドルが識別される。したがって、MACアドレスルックアップは、SIプロキシ3914とSIプロキシ3915の両方のハンドルを返す。
[00297] いくつかの実施形態では、正しいハンドルを選択するために、所望のSIプロキシのポートIDを使用して、第2のルックアップが実行される。この例では、SIプロキシ3915のハンドルを識別するために、LCP3930は、ポート3955のポートIDを使用して第2のルックアップを実行する。この2回目のルックアップでは、SIプロキシ3915 のハンドルが返される。他の実施形態では、最初のルックアップは、代わりに、SIプロキシのMACアドレスとポートIDの両方を使用して実行され、単一の検索で正しいハンドルを識別する。いくつかの実施形態では、LCPは、ハンドルを使用して、SIプロキシを構成するための構成メッセージを送信する。
[0001] いくつかの実施形態では、ライブネススレッド3940は、SVM 3906のライブネス時間タイマーが経過したと判断すると、SVM3906プロキシにメッセージを送信して、SVM3906にメッセージを送信する。ライブネスタイマーメッセージが3914の代わりにSIプロキシ3915に送信されることを保証するために、ライブネススレッド3940は、MACアドレスを使用する第1のルックアップと、ポートIDを使用する第2のルックアップ、またはMACアドレスとポートIDの両方を使用する単一のルックアップを実行して、SIプロキシ3915の処理を識別する。また、いくつかの実施形態では、サービスプレーンは、ポートIDとMACアドレスとの関連付けを自動的に保存し、データプレーン転送中に宛先マシンの関連するポートIDとMACアドレスの両方を使用してSVM IOチェーンを識別する。
[00298] 上述の特徴およびアプリケーションの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令のセットとして規定されるソフトウェアプロセスとして実施される。これらの命令が、1つ以上の処理ユニット(例えば、1つ以上のプロセッサ、プロセッサのコア、または他の処理ユニット)によって実行されるとき、それらは、処理ユニットに、命令に示されたアクションを実行させる。コンピュータ可読媒体の例としては、CD-ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等があるが、これらに限定されない。コンピュータ可読媒体は、有線で又は有線接続を介して通過する搬送波及び電気信号を含まない。
[00299] この明細書において、「ソフトウェア」という用語は、プロセッサによって処理するためにメモリに読み込むことができる、読み取り専用メモリに存在するファームウェア、または磁気記憶装置に記憶されたアプリケーションを含むことを意味する。また、いくつかの実施形態において、複数のソフトウェア発明は、別個ソフトウェア発明を残しつつ、より大きなプログラムのサブパートとして実施することができる。いくつかの実施形態において、複数のソフトウェア発明は、別個のプログラムとして実施することもできる。最後に、ここに記載されるソフトウェア発明を共に実施する別個のプログラムの任意の組合せは、本発明の範囲内である。いくつかの実施形態では、ソフトウェアプログラムは、1つ以上の電子システム上で動作するようにインストールされると、ソフトウェアプログラムの動作を実行し実行する1つ以上の特定のマシン実装を定義する。
[00300] 図40は、本発明のいくつかの実施形態が実施されるコンピュータシステム4000を概念的に示す。コンピュータシステム4000は、上述のホスト、コントローラ、およびマネージャのいずれかを実装するために使用することができる。したがって、上記のプロセスのいずれかを実行するために使用することができる。このコンピュータシステムは、様々なタイプの一時的でない機械可読媒体と、様々な他のタイプの機械可読媒体のためのインタフェースとを含む。コンピュータシステム4000は、バス4005、処理部4010、システムメモリ4025、読み出し専用メモリ4030、永続的記憶装置4035、入力装置4040、および出力装置4045を含む。
[00301] バス4005は、コンピュータシステム4000の多数の内部装置を通信的に接続するすべてのシステム、周辺装置、およびチップセットバスを総称して表す。例えば、バス4005は、処理部4010を読み出し専用メモリ4030、システムメモリ4025、および永続的記憶装置4035と通信可能に接続する。
[00302] これらの様々なメモリユニットから、処理部4010は、本発明のプロセスを実行するために、実行する命令と処理するデータを検索する。処理部は、様々な実施形態において、単一プロセッサまたはマルチコアプロセッサであってもよい。読み出し専用メモリ(ROM)4030は、処理部4010およびコンピュータシステムの他のモジュールによって必要とされる静的データおよび命令を格納する。一方、永続的記憶装置4035は、読み書き可能な記憶デバイスである。この装置は、コンピュータシステム4000がオフであっても命令及びデータを記憶する不揮発性メモリユニットである。本発明のいくつかの実施形態は、永続的記憶装置4035として大容量記憶装置(磁気または光ディスクおよびその対応するディスクドライブなど)を使用する。
[00303] 他の実施形態は、永続的記憶装置としてリムーバブル記憶装置(フラッシュドライブ等)を使用する。永続的記憶装置4035と同様に、システムメモリ4025は、読み書き可能な記憶デバイスである。しかしながら、記憶デバイス4035とは異なり、システムメモリは、ランダムアクセスメモリのような揮発性の読み出し/書き込みメモリである。システムメモリには、プロセッサが実行時に必要とする命令とデータの一部が格納される。いくつかの実施形態では、本発明のプロセスは、システムメモリ4025、永続的記憶装置4035、および/または読み出し専用メモリ4030に記憶される。これらの様々なメモリユニットから、処理部4010は、いくつかの実施形態のプロセスを実行するために、実行する命令および処理するデータを検索する。
[00304] バス4005は、入出力装置4040および4045にも接続する。入力装置は、ユーザが情報を伝達し、コンピュータシステムにコマンドを選択することを可能にする。入力装置4040は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力装置4045は、コンピュータシステムによって生成された画像を表示する。出力装置には、陰極線管(CRT)または液晶ディスプレイ(LCD)などのプリンタおよび表示装置が含まれる。いくつかの実施形態は、入力装置および出力装置の両方として機能するタッチスクリーンなどの装置を含む。
[00305] 最後に、図40に示すように、バス4005は、ネットワークアダプタ(図示せず)を介して、コンピュータシステム4000をネットワーク4065に結合する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、またはイントラネットの一部、あるいはインターネットのようなネットワークのネットワークであってもよい。コンピュータシステム4000の任意のまたはすべての構成要素を、本発明と併せて使用することができる。
[00306] いくつかの実施形態は、コンピュータプログラム命令を、機械可読又はコンピュータ可読媒体(代替的には、コンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体と称される)に記憶するマイクロプロセッサ、記憶装置及びメモリ等の電子コンポーネントを含む。このようなコンピュータ可読媒体のいくつかの例としては、RAM、ROM、読取り専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、読取り専用デジタル汎用ディスク(例えば、DVD-ROM、デュアルレイヤDVD-ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RW等)、フラッシュメモリ(例えば、SDカード、mini-SDカード、マイクロSDカード等)、磁気および/またはソリッドステートハードドライブ、読取り専用および記録可能なBlu-Ray(登録商標)ディスク、超密度光ディスク、および他の任意の光または磁気媒体がある。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、様々な動作を実行するための命令のセットを含むコンピュータプログラムを記憶することができる。コンピュータプログラムまたはコンピュータコードの例としては、コンパイラによって生成されるようなマシンコードと、インタープリタを使用してコンピュータ、電子コンポーネント、またはマイクロプロセッサによって実行される上位レベルのコードを含むファイルがある。
[00307] 上記の議論は、主に、ソフトウェアを実行するマイクロプロセッサまたはマルチコアプロセッサを指すが、いくつかの実施形態は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)のような、1つ以上の集積回路によって実行される。いくつかの実施形態では、このような集積回路は、回路自体に記憶された命令を実行する。
[00308] 本明細書で使用される「コンピュータ」、「サーバ」、「プロセッサ」、「メモリ」という用語は、すべて電子的またはその他の技術的デバイスを指す。これらの用語は、人または人のグループを除く。明細書の目的上、表示または表示手段の用語は、電子デバイス上に表示することを意味する。本明細書で使用されるように、「コンピュータ可読媒体」(複数)、「コンピュータ可読媒体」、および「マシン読み取り可能媒体」という用語は、コンピュータが読み取り可能な形式で情報を格納する有形の物理オブジェクトに全体として限定される。これらの用語は、ワイヤレス信号、有線ダウンロード信号、およびその他の一時的または一時的な信号を除外する。
[00309] 本発明は、多くの特定の詳細を参照して説明されてきたが、当業者は、本発明の意図から離れることなく、本発明が他の特定の形態で実施可能であることを認識するであろう。例えば、いくつかの図は、プロセスを概念的に示している。これらのプロセスの特定の操作は、示され、説明されている正確な順序では実行されない場合がある。特定の動作は、1つの連続した一連の動作で実行されなくてもよく、異なる特定の動作が様々な実施形態で実行されてもよい。さらに、プロセスは、いくつかのサブプロセスを使用して、またはより大きなマクロプロセスの一部として実装することができる。
[00310] 上述のいくつかの例におけるサービス挿入ルールはサービスチェーン識別子を提供するが、本明細書に記載する発明のいくつかは、サービス挿入ルールがサービス挿入ルールによって指定される異なるサービスのサービス識別子(例えば、SPI)を提供することによって実施することができる。同様に、上述の実施形態のいくつかは、SPI/SI値に基づいて完全一致を実行することによって、次のサービスホップを識別する各サービスホップに依存する分散サービスルーティングを実行する。しかしながら、本明細書に記載する発明のいくつかは、サービス挿入プリプロセッサに、すべてのサービスホップ識別子(例えば、サービスホップMACアドレス)をデータメッセージのサービス属性セットおよび/またはデータメッセージのカプセル化サービスヘッダに埋め込むことによって実施することができる。
[00311] さらに、いくつかの実施形態は、上記のアプローチとは異なるように(例えば、異なる時間に)SI値をデクリメントする。また、SPI値とSI値だけに基づいてネクストホップルックアップを実行する代わりに、いくつかの実施形態は、SPI、SIおよびサービス方向値に基づいてこのルックアップを実行し、これらの実施形態は、2つのマシン間を流れるデータメッセージの順方向と逆方向の両方に共通のSPI値を使用する。
[00312] 上記の方法論は、単一テナント環境におけるパス情報を表現するために、いくつかの実施形態において使用される。したがって、本発明のいくつかの実施形態は、単一テナントのデータセンタに等しく適用可能であることを、当業者は理解するであろう。逆に、いくつかの実施形態では、上述の方法論は、1つのエンティティ(例えば、1つの企業)が異なるプロバイダの複数の異なるデータセンタ内のテナントであるとき、異なるデータセンタプロバイダの異なるデータセンタ間でパス情報を運ぶために使用される。これらの実施形態では、トンネルヘッダに埋め込まれるテナント識別子は、データセンタ全体で一意であるか、またはデータセンタ間を横断するときに置き換えらればならない。したがって、当業者であれば、本発明は、上述の例示的な詳細によって限定されるものではなく、むしろ、添付のクレームによって定義されるものであることが理解されるであろう。

Claims (40)

  1. ホストコンピュータ上で動作するマシンに関連するデータメッセージのためのサービスを実行する方法であって、前記方法は、
    前記ホストコンピュータにおいて、
    マシンによって指定されたネットワークアドレスに基づいて、前記マシンによって送信されたデータメッセージを転送する第1の分散転送要素(DFE)を構成することと、
    前記マシンによって指定された前記ネットワークアドレスに基づいて前記データメッセージが前記第1のDFEによって転送される前に、前記マシンによって送信されたデータメッセージを1つ以上のサービスノードのセットに転送する第2のDFEを構成することとを含み、
    各DFEは、前記ホストコンピュータ上で動作する少なくとも1つのソフトウェア転送要素(SFE)と、少なくとも1つの他のホストコンピュータ上で動作する少なくとも1つの他のSFEによって実施される、方法。
  2. 請求項1に記載の方法であって、前記第1のDFEおよび前記第2のDFEは、同一タイプの転送要素である、方法。
  3. 請求項2に記載の方法であって、各DFEは分散ソフトウェアスイッチであり、各SFEはソフトウェアスイッチである、方法。
  4. 請求項1に記載の方法であって、前記ホストコンピュータ上の1つのSFEは、前記第1のDFEおよび前記第2のDFEの両方を実施するように構成される、方法。
  5. 請求項1に記載の方法であって、前記ホストコンピュータ上の第1のSFEおよび第2のSFEは、前記第1のDFEおよび前記第2のDFEをそれぞれ実施するように構成される、方法。
  6. 請求項1に記載の方法であって、前記第2のDFEは、前記マシンによって指定されたネットワークアドレスに基づいてデータメッセージが転送される前にサービスノードに前記データメッセージを転送するためのサービス転送プレーンを定義する一方で、前記第1のDFEは、前記マシンによって指定されたネットワークアドレスに基づいて前記データメッセージを転送するためのゲスト転送プレーンを定義する、方法。
  7. 請求項6に記載の方法であって、
    前記方法は、送信元として機能するゲストマシンと、データメッセージフローの宛先マシンと、サービスノードの少なくともサブセットとして機能するサービスマシンを有するデータセンタにおいて実施され、
    前記第1のDFEは、前記転送プレーンに接続されるゲストマシンからデータメッセージを受信し、且つ、該ゲストマシンにデータメッセージを供給するポートを含み、
    前記第2のDFEは、前記サービスプレーンに接続されるサービスマシンにデータメッセージを供給し、且つ、該サービスマシンからデータメッセージを受信するポートを含み、
    前記サービスマシンは、前記第1のDFE上の前記サービスマシンのためのポートを定義しないことにより前記ゲスト転送プレーンから分離され、前記ゲストマシンは、前記第2のDFE上の各ゲストマシンのためのポートを定義しないことにより前記サービスプレーンから分離され、
    前記分離は、前記サービスマシンが前記ゲストマシンにデータメッセージを直接転送することができないことと、前記ゲストマシンが前記サービスマシンにデータメッセージを直接転送することができないこととを保証することにより、前記ゲストマシンと前記サービスマシンのセキュリティを向上させる、方法。
  8. 請求項6に記載の方法であって、
    前記第1のDFEは、前記マシンからデータメッセージを受信するためのポートを有し、
    前記第2のDFEは、前記マシンからデータメッセージを受信するためのポートを有していないが、前記マシンによって送信されたデータメッセージを受信して前記データメッセージを特定のポートに転送するための、前記ホストコンピュータ上で動作する特定のポートプロキシから、データメッセージを受信するための前記特定のポートを有する、方法。
  9. 請求項8に記載の方法であって、前記ポートプロキシは、前記ホストコンピュータ上で動作する複数のマシンと前記第2のDFEとの間のインターフェースとして機能する、方法。
  10. 請求項1に記載の方法であって、前記第2のDFEは、前記ホストコンピュータ上で動作して前記マシンによって送信された前記データメッセージに対してサービス動作を実行する各サービスノードのためのサービスプロキシと、前記サービスプロキシの関連サービスノードに提供される前記データメッセージを定式化するサービスプロキシとを含む、方法。
  11. ホストコンピュータの少なくとも1つの処理ユニットによる実行のため及び前記ホストコンピュータ上で実行されるマシンに関連するデータメッセージに対するサービスを実行するためのプログラムを記憶する非一時的機械可読媒体であって、前記プログラムは、
    マシンによって指定されたネットワークアドレスに基づいて、前記マシンによって送信されたデータメッセージを転送する第1の分散転送要素(DFE)を構成することと、
    前記マシンによって指定された前記ネットワークアドレスに基づいて前記データメッセージが前記第1のDFEによって転送される前に、前記マシンによって送信されたデータメッセージを1つ以上のサービスノードのセットに転送する第2のDFEを構成することと、のための命令を含み、
    各DFEは、前記ホストコンピュータ上で動作する少なくとも1つのソフトウェア転送要素(SFE)と、少なくとも1つの他のホストコンピュータ上で動作する少なくとも1つの他のSFEによって実施される、非一時的機械可読媒体。
  12. 請求項11に記載の非一時的機械可読媒体であって、前記第1のDFEおよび前記第2のDFEは、同一タイプの転送要素である、非一時的機械可読媒体。
  13. 請求項12に記載の非一時的機械可読媒体であって、各DFEは分散ソフトウェアスイッチであり、各SFEはソフトウェアスイッチである、非一時的機械可読媒体。
  14. 請求項11に記載の非一時的機械可読媒体であって、前記ホストコンピュータ上の1つのSFEは、前記第1のDFEおよび前記第2のDFEの両方を実施するように構成される、非一時的機械可読媒体。
  15. 請求項11に記載の非一時的機械可読媒体であって、前記ホストコンピュータ上の第1のSFEおよび第2のSFEは、前記第1のDFEおよび前記第2のDFEをそれぞれ実施するように構成される、非一時的機械可読媒体。
  16. 請求項11に記載の非一時的機械可読媒体であって、前記第2のDFEは、前記マシンによって指定されたネットワークアドレスに基づいてデータメッセージが転送される前にサービスノードに前記データメッセージを転送するためのサービス転送プレーンを定義する一方で、前記第1のDFEは、前記マシンによって指定されたネットワークアドレスに基づいて前記データメッセージを転送するためのゲスト転送プレーンを定義する、非一時的機械可読媒体。
  17. 請求項16に記載の非一時的機械可読媒体であって、
    データセンタ内のゲストマシンは、データメッセージフローの送信元マシン及び宛先マシン、及び、サービスノードの少なくともサブセットとして機能するサービスマシンとして機能し、
    前記第1のDFEは、前記転送プレーンに接続されるゲストマシンからデータメッセージを受信し、且つ、該ゲストマシンにデータメッセージを供給するポートを含み、
    前記第2のDFEは、前記サービスプレーンに接続されるサービスマシンにデータメッセージを供給し、且つ、該サービスマシンからデータメッセージを受信するポートを含み、
    前記サービスマシンは、前記第1のDFE上の前記サービスマシンのためのポートを定義しないことにより前記ゲスト転送プレーンから分離され、前記ゲストマシンは、前記第2のDFE上の各ゲストマシンのためのポートを定義しないことにより前記サービスプレーンから分離され、
    前記分離は、前記サービスマシンが前記ゲストマシンにデータメッセージを直接転送することができないことと、前記ゲストマシンが前記サービスマシンにデータメッセージを直接転送することができないこととを保証することにより、前記ゲストマシンと前記サービスマシンのセキュリティを向上させる、非一時的機械可読媒体。
  18. 請求項16に記載の非一時的機械可読媒体であって、
    前記第1のDFEは、前記マシンからデータメッセージを受信するためのポートを有し、
    前記第2のDFEは、前記マシンからデータメッセージを受信するためのポートを有していないが、前記マシンによって送信されたデータメッセージを受信して前記データメッセージを特定のポートに転送するための、前記ホストコンピュータ上で動作する特定のポートプロキシから、データメッセージを受信するための前記特定のポートを有する、非一時的機械可読媒体。
  19. 請求項18に記載の非一時的機械可読媒体であって、前記ポートプロキシは、前記ホストコンピュータ上で動作する複数のマシンと前記第2のDFEとの間のインターフェースとして機能する、非一時的機械可読媒体。
  20. 請求項11に記載の非一時的機械可読媒体であって、前記第2のDFEは、前記ホストコンピュータ上で動作して前記マシンによって送信された前記データメッセージに対してサービス動作を実行する各サービスノードのためのサービスプロキシと、前記サービスプロキシの関連サービスノードに提供される前記データメッセージを定式化するサービスプロキシとを含む、非一時的機械可読媒体。
  21. 第1のホストコンピュータから第2のホストコンピュータにマシンを移行する方法であって、前記方法は、
    前記第1のホストコンピュータにおいて、
    前記第1のホストコンピュータ上で動作する第1のサービス挿入モジュールによって用いられるサービス挿入データのセットを収集して、前記第1のホストコンピュータ上で動作するマシンと関連するデータメッセージフローについて1つ以上のサービスノードのセットが実行すべき1つ以上のサービスのチェーンを識別することと、
    マシン構成データのセットと前記収集されたサービス挿入データのセットとを前記第2のホストコンピュータに送信することであって、前記第2のホストコンピュータは、(i)前記マシン構成データを使用して前記第2のホストコンピュータ上に前記マシンを配置し、(ii)前記収集されたサービス挿入データのセットを用いて、前記マシンに関連する特定のデータメッセージフローについて1つ以上のサービスノードのセットが実行すべき1つ以上のサービスのチェーンを識別するように第2のサービス挿入モジュールを前記第2のホストコンピュータ上に構成する、こととを含む方法。
  22. 請求項21に記載の方法であって、
    前記収集されたサービス挿入データはサービス挿入ルールのセットを含み、各ルールは、ルール識別子を含み且つ前記マシンに関連するデータメッセージフローについて実行するサービスのチェーンを特定し、
    前記第2のサービス挿入モジュールは、前記サービス挿入ルールを用いて前記特定のデータメッセージフローについて実行するサービスのチェーンを識別する、方法。
  23. 請求項21に記載の方法であって、
    前記収集されたサービス挿入データはサービスパスのセットを含み、各サービスパスは、前記マシンに関連するデータメッセージフローにサービスのチェーンを実行するサービスノードのセットを通るパスを含み、
    前記第2のサービス挿入モジュールは前記サービスパスのセットを用いて、前記特定のデータメッセージフローにサービスのチェーンを実行するサービスパスを識別する、方法。
  24. 請求項23に記載の方法であって、サービスのチェーンを実行するサービスパスを識別することは、サービスパス選択指標のセットに基づいて、前記サービスチェーンを実行するために複数のサービスパスからサービスパスを選択することを含み、前記サービスパス選択指標は、各サービスパスの前記サービスノードの位置に少なくとも部分的に基づく、方法。
  25. 請求項21に記載の方法であって、
    前記収集されたサービス挿入データは、接続レコードのセットを含み、各接続レコードは、フロー識別子を含み且つサービスのチェーンを実行するサービスノードのセットを特定し、
    前記第2のサービス挿入モジュールは、データメッセージが前記接続レコードのセット内のフロー識別子と一致する場合、前記接続レコードのセットを用いて、前記データメッセージについてサービスのチェーンを実行するサービスノードのセットを識別する、方法。
  26. 請求項21に記載の方法であって、
    サービスチェーンの最後のサービスが、前記マシンに関連するデータメッセージフローについて実行される場合、前記最後のサービスを実行するサービスノードは、前記フローを前記マシンに関連する特定のMACアドレスに指定することにより前記データメッセージフローを前記マシンに戻し、
    前記マシンが前記第1のホストコンピュータ上で動作する場合、前記マシンは前記特定のMACアドレスに関連付けられ、
    前記マシンが前記第2のホストコンピュータ上で動作する場合、前記マシンは同じ前記特定のMACアドレスに関連付けられる、方法。
  27. 請求項26に記載の方法であって、
    前記データメッセージフローを前記マシンに戻すことは、更に、前記データメッセージが送信される前記特定のMACアドレスにマッピングされる仮想トンネルエンドポイント(VTEP)を識別することを含み、
    前記第2のホストコンピュータ上の前記マシンの前記配置に基づいて、転送要素を含む転送要素のセットのそれぞれは、前記第1のホストコンピュータ上のVTEPへの前記特定のMACアドレスのマッピングを、前記第2のホストコンピュータ上のVTEPへの前記特定のMACアドレスのマッピングに置き換える、方法。
  28. 請求項21に記載の方法であって、前記第2のホストコンピュータ上に前記マシンを配置することは、更に、モジュールのセットを配置することを含み、各モジュールは、前記マシンと、前記マシンを前記第2のホストマシン上の転送要素と接続するポートとの間のパケットを処理する、定式化する、及び通過させることの少なくとも1つを実行する、方法。
  29. 請求項28に記載の方法であって、前記モジュールのセットは、前記第2のサービス挿入モジュールと、前記サービスチェーン内の第1のサービスを実行するサービスノードへ転送するための前記特定のデータメッセージフローを定式化するサービストランスポートモジュールとを含む、方法。
  30. 請求項21に記載の方法であって、更に、前記第1のホストコンピュータから前記マシンを除去することを含む、方法。
  31. 第1のホストコンピュータの少なくとも1つの処理ユニットによる実行のため及びマシンを前記第1のホストコンピュータから第2のホストコンピュータへ移行するためのプログラムを記憶する非一時的機械可読媒体であって、前記プログラムは、
    前記第1のホストコンピュータ上で動作する第1のサービス挿入モジュールによって用いられるサービス挿入データのセットを収集して、前記第1のホストコンピュータ上で動作するマシンと関連するデータメッセージフローについて1つ以上のサービスノードのセットが実行すべき1つ以上のサービスのチェーンを識別することと、
    マシン構成データのセットと前記収集されたサービス挿入データのセットとを前記第2のホストコンピュータに送信することであって、前記第2のホストコンピュータは、(i)前記マシン構成データを使用して前記第2のホストコンピュータ上に前記マシンを配置し、(ii)前記収集されたサービス挿入データのセットを用いて、前記マシンに関連する特定のデータメッセージフローについて1つ以上のサービスノードのセットが実行すべき1つ以上のサービスのチェーンを識別するように第2のサービス挿入モジュールを前記第2のホストコンピュータ上に構成する、こととのための命令を含む非一時的機械可読媒体。
  32. 請求項31に記載の非一時的機械可読媒体であって、
    前記収集されたサービス挿入データはサービス挿入ルールのセットを含み、各ルールは、ルール識別子を含み且つ前記マシンに関連するデータメッセージフローについて実行するサービスのチェーンを特定し、
    前記第2のサービス挿入モジュールは、前記サービス挿入ルールを用いて前記特定のデータメッセージフローについて実行するサービスのチェーンを識別する、非一時的機械可読媒体。
  33. 請求項31に記載の非一時的機械可読媒体であって、
    前記収集されたサービス挿入データはサービスパスのセットを含み、各サービスパスは、前記マシンに関連するデータメッセージフローにサービスのチェーンを実行するサービスノードのセットを通るパスを含み、
    前記第2のサービス挿入モジュールは前記サービスパスのセットを用いて、前記特定のデータメッセージフローにサービスのチェーンを実行するサービスパスを識別する、非一時的機械可読媒体。
  34. 請求項33に記載の非一時的機械可読媒体であって、サービスのチェーンを実行するサービスパスを識別する前記命令のセットは、サービスパス選択指標のセットに基づいて、前記サービスチェーンを実行するために複数のサービスパスからサービスパスを選択する命令のセットを含み、前記サービスパス選択指標は、各サービスパスの前記サービスノードの位置に少なくとも部分的に基づく、非一時的機械可読媒体。
  35. 請求項31に記載の非一時的機械可読媒体であって、
    前記収集されたサービス挿入データは、接続レコードのセットを含み、各接続レコードは、フロー識別子を含み且つサービスのチェーンを実行するサービスノードのセットを特定し、
    前記第2のサービス挿入モジュールは、データメッセージが前記接続レコードのセット内のフロー識別子と一致する場合、前記接続レコードのセットを用いて、前記データメッセージについてサービスのチェーンを実行するサービスノードのセットを識別する、非一時的機械可読媒体。
  36. 請求項31に記載の非一時的機械可読媒体であって、
    サービスチェーンの最後のサービスが、前記マシンに関連するデータメッセージフローについて実行される場合、前記最後のサービスを実行するサービスノードは、前記フローを前記マシンに関連する特定のMACアドレスに指定することにより前記データメッセージフローを前記マシンに戻し、
    前記マシンが前記第1のホストコンピュータ上で動作する場合、前記マシンは前記特定のMACアドレスに関連付けられ、
    前記マシンが前記第2のホストコンピュータ上で動作する場合、前記マシンは同じ前記特定のMACアドレスに関連付けられる、非一時的機械可読媒体。
  37. 請求項36に記載の非一時的機械可読媒体であって、
    前記データメッセージフローを前記マシンに戻す前記命令のセットは、更に、前記データメッセージが送信される前記特定のMACアドレスにマッピングされる仮想トンネルエンドポイント(VTEP)を識別する命令のセットを含み、
    前記第2のホストコンピュータ上の前記マシンの前記配置に基づいて、転送要素を含む転送要素のセットのそれぞれは、前記第1のホストコンピュータ上のVTEPへの前記特定のMACアドレスのマッピングを、前記第2のホストコンピュータ上のVTEPへの前記特定のMACアドレスのマッピングに置き換える、非一時的機械可読媒体。
  38. 請求項31に記載の非一時的機械可読媒体であって、前記第2のホストコンピュータ上に前記マシンを配置する前記命令のセットは、更に、モジュールのセットを配置する命令のセットを含み、各モジュールは、前記マシンと、前記マシンを前記第2のホストマシン上の転送要素と接続するポートとの間のパケットを処理する、定式化する、及び通過させることの少なくとも1つを実行する、非一時的機械可読媒体。
  39. 請求項38に記載の非一時的機械可読媒体であって、前記モジュールのセットは、前記第2のサービス挿入モジュールと、前記サービスチェーン内の第1のサービスを実行するサービスノードへ転送するための前記特定のデータメッセージフローを定式化するサービストランスポートモジュールとを含む、非一時的機械可読媒体。
  40. 請求項31に記載の非一時的機械可読媒体であって、前記プログラムは更に、前記第1のホストコンピュータから前記マシンを除去する命令のセットを含む、非一時的機械可読媒体。
JP2021546813A 2019-02-22 2020-02-03 ゲストvmモビリティを使用したサービスの提供 Active JP7417816B2 (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201962809464P 2019-02-22 2019-02-22
US62/809,464 2019-02-22
IN201941007860 2019-02-28
IN201941007860 2019-02-28
US16/444,956 US11301281B2 (en) 2019-02-22 2019-06-18 Service control plane messaging in service data plane
US16/445,004 2019-06-18
US16/445,004 US11194610B2 (en) 2019-02-22 2019-06-18 Service rule processing and path selection at the source
US16/444,927 2019-06-18
US16/444,826 US11042397B2 (en) 2019-02-22 2019-06-18 Providing services with guest VM mobility
US16/444,884 US11294703B2 (en) 2019-02-22 2019-06-18 Providing services by using service insertion and service transport layers
US16/444,956 2019-06-18
US16/444,826 2019-06-18
US16/444,927 US11119804B2 (en) 2019-02-22 2019-06-18 Segregated service and forwarding planes
US16/444,884 2019-06-18
PCT/US2020/016457 WO2020171937A1 (en) 2019-02-22 2020-02-03 Providing services with guest vm mobility

Publications (2)

Publication Number Publication Date
JP2022521058A true JP2022521058A (ja) 2022-04-05
JP7417816B2 JP7417816B2 (ja) 2024-01-19

Family

ID=72140277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021546813A Active JP7417816B2 (ja) 2019-02-22 2020-02-03 ゲストvmモビリティを使用したサービスの提供

Country Status (7)

Country Link
US (22) US11042397B2 (ja)
EP (1) EP3924826A1 (ja)
JP (1) JP7417816B2 (ja)
CN (1) CN113454598A (ja)
AU (2) AU2020224067B2 (ja)
CA (1) CA3129399A1 (ja)
WO (1) WO2020171937A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US10609091B2 (en) 2015-04-03 2020-03-31 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
CN112753198B (zh) * 2018-09-30 2022-04-05 华为技术有限公司 在网络中的负载均衡和报文重排序方法及装置
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
EP3928497A1 (en) 2019-02-22 2021-12-29 Shubharanjan Dasgupta Multi-access edge computing based visibility network
US11296975B2 (en) 2019-06-25 2022-04-05 Vmware, Inc. Systems and methods for implementing multi-part virtual network functions
US11297037B2 (en) * 2019-07-22 2022-04-05 Arista Networks, Inc. Method and network device for overlay tunnel termination and mirroring spanning datacenters
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11356367B2 (en) * 2019-11-22 2022-06-07 Red Hat, Inc. Secure preloading of serverless function sequences
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
US11088919B1 (en) * 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11418381B2 (en) * 2020-06-05 2022-08-16 Accenture Global Solutions Limited Hybrid cloud integration deployment and management
US20220107738A1 (en) * 2020-10-06 2022-04-07 Kioxia Corporation Read controller and input/output controller
US11637812B2 (en) * 2020-10-13 2023-04-25 Microsoft Technology Licensing, Llc Dynamic forward proxy chaining
US11743365B2 (en) * 2020-10-20 2023-08-29 Nokia Solutions And Networks Oy Supporting any protocol over network virtualization
US20220150160A1 (en) * 2020-11-06 2022-05-12 Juniper Networks, Inc. Backup service function notification and synchronization
CN112532714B (zh) * 2020-11-25 2022-06-03 北京金山云网络技术有限公司 一种数据处理方法、处理装置、服务器及存储介质
WO2022132308A1 (en) * 2020-12-15 2022-06-23 Vmware, Inc. Providing stateful services a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11477270B1 (en) * 2021-07-06 2022-10-18 Vmware, Inc. Seamless hand-off of data traffic in public cloud environments
CN114710548B (zh) * 2022-03-22 2024-04-05 阿里巴巴(中国)有限公司 报文转发方法及装置
CN115225545B (zh) * 2022-07-21 2023-11-03 天翼云科技有限公司 一种报文传输方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519822A (ja) * 2012-04-30 2015-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想オーバーレイ・ネットワーク・トラフィックにサービスを提供する方法、システム、およびコンピュータ・プログラム。
US20150281180A1 (en) * 2014-03-31 2015-10-01 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US20150379277A1 (en) * 2014-06-30 2015-12-31 Leonard Heyman Encryption Architecture
US20160094451A1 (en) * 2014-09-30 2016-03-31 Nicira, Inc Inline load balancing
US20170005923A1 (en) * 2015-06-30 2017-01-05 Vmware, Inc. Dynamic virtual machine network policy for ingress optimization
US20190116063A1 (en) * 2016-04-29 2019-04-18 Hewlett Packard Enterprise Development Lp Transforming a service packet from a first domain to a second domain
CN110521169A (zh) * 2017-04-20 2019-11-29 思科技术公司 用于服务链的策略保证

Family Cites Families (647)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3488577A (en) 1967-09-01 1970-01-06 Canadian Patents Dev Asymmetric orthogonal coil susceptibility meter
US5154448A (en) 1991-04-15 1992-10-13 Jeffrey Griffin Scratch-off marking label
US6154448A (en) 1997-06-20 2000-11-28 Telefonaktiebolaget Lm Ericsson (Publ) Next hop loopback
US6006264A (en) 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6104700A (en) 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US6779030B1 (en) 1997-10-06 2004-08-17 Worldcom, Inc. Intelligent network
US6128279A (en) 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US6826694B1 (en) 1998-10-22 2004-11-30 At&T Corp. High resolution access control
US6760775B1 (en) 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
US6970913B1 (en) 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US7013389B1 (en) 1999-09-29 2006-03-14 Cisco Technology, Inc. Method and apparatus for creating a secure communication channel among multiple event service nodes
WO2001040903A2 (en) 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6880089B1 (en) 2000-03-31 2005-04-12 Avaya Technology Corp. Firewall clustering for multiple network servers
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US7685183B2 (en) 2000-09-01 2010-03-23 OP40, Inc System and method for synchronizing assets on multi-tiered networks
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US6985956B2 (en) 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US7296291B2 (en) 2000-12-18 2007-11-13 Sun Microsystems, Inc. Controlled information flow between communities via a firewall
US6697206B2 (en) 2000-12-19 2004-02-24 Imation Corp. Tape edge monitoring
US7280540B2 (en) 2001-01-09 2007-10-09 Stonesoft Oy Processing of data packets within a network element cluster
US7002967B2 (en) 2001-05-18 2006-02-21 Denton I Claude Multi-protocol networking processor with data traffic support spanning local, regional and wide area networks
US6944678B2 (en) 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
US7493369B2 (en) 2001-06-28 2009-02-17 Microsoft Corporation Composable presence and availability services
US20030105812A1 (en) 2001-08-09 2003-06-05 Gigamedia Access Corporation Hybrid system architecture for secure peer-to-peer-communications
US7209977B2 (en) 2001-10-01 2007-04-24 International Business Machines Corporation Method and apparatus for content-aware web switching
US8095668B2 (en) 2001-11-09 2012-01-10 Rockstar Bidco Lp Middlebox control
TW544601B (en) 2001-11-20 2003-08-01 Ind Tech Res Inst Method and structure for forming web server cluster by conversion and dispatching of web page documents
US7379465B2 (en) 2001-12-07 2008-05-27 Nortel Networks Limited Tunneling scheme optimized for use in virtual private networks
US7239639B2 (en) 2001-12-27 2007-07-03 3Com Corporation System and method for dynamically constructing packet classification rules
US8156216B1 (en) 2002-01-30 2012-04-10 Adobe Systems Incorporated Distributed data collection and aggregation
US7088718B1 (en) 2002-03-19 2006-08-08 Cisco Technology, Inc. Server load balancing using IP option field approach to identify route to selected server
US20030236813A1 (en) 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US8077681B2 (en) 2002-10-08 2011-12-13 Nokia Corporation Method and system for establishing a connection via an access network
US7480737B2 (en) 2002-10-25 2009-01-20 International Business Machines Corporation Technique for addressing a cluster of network servers
US20040215703A1 (en) 2003-02-18 2004-10-28 Xiping Song System supporting concurrent operation of multiple executable application operation sessions
US7388842B1 (en) 2003-03-13 2008-06-17 At&T Corp. Method and apparatus for efficient routing of variable traffic
US20050022017A1 (en) 2003-06-24 2005-01-27 Maufer Thomas A. Data structures and state tracking for network protocol processing
US20090299791A1 (en) 2003-06-25 2009-12-03 Foundry Networks, Inc. Method and system for management of licenses
US7483374B2 (en) 2003-08-05 2009-01-27 Scalent Systems, Inc. Method and apparatus for achieving dynamic capacity and high availability in multi-stage data networks using adaptive flow-based routing
US7315693B2 (en) 2003-10-22 2008-01-01 Intel Corporation Dynamic route discovery for optical switched networks
US7447775B1 (en) 2003-11-07 2008-11-04 Cisco Technology, Inc. Methods and apparatus for supporting transmission of streaming data
US7496955B2 (en) 2003-11-24 2009-02-24 Cisco Technology, Inc. Dual mode firewall
US7962914B2 (en) 2003-11-25 2011-06-14 Emc Corporation Method and apparatus for load balancing of distributed processing units based on performance metrics
US8572249B2 (en) 2003-12-10 2013-10-29 Aventail Llc Network appliance for balancing load and platform services
US7370100B1 (en) 2003-12-10 2008-05-06 Foundry Networks, Inc. Method and apparatus for load balancing based on packet header content
GB0402739D0 (en) 2004-02-09 2004-03-10 Saviso Group Ltd Methods and apparatus for routing in a network
US8223634B2 (en) 2004-02-18 2012-07-17 Fortinet, Inc. Mechanism for implementing load balancing in a network
US8484348B2 (en) 2004-03-05 2013-07-09 Rockstar Consortium Us Lp Method and apparatus for facilitating fulfillment of web-service requests on a communication network
EP1732272B1 (en) 2004-03-30 2014-03-19 Panasonic Corporation Communication device and communication system
US8923292B2 (en) 2004-04-06 2014-12-30 Rockstar Consortium Us Lp Differential forwarding in address-based carrier networks
JP2005311863A (ja) 2004-04-23 2005-11-04 Hitachi Ltd トラフィック分散制御方法、制御装置及びネットワークシステム
GB2418110B (en) 2004-09-14 2006-09-06 3Com Corp Method and apparatus for controlling traffic between different entities on a network
US7805517B2 (en) 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US8145908B1 (en) 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US7475274B2 (en) 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
US8028334B2 (en) 2004-12-14 2011-09-27 International Business Machines Corporation Automated generation of configuration elements of an information technology system
CA2594020C (en) 2004-12-22 2014-12-09 Wake Forest University Method, systems, and computer program products for implementing function-parallel network firewall
US20060155862A1 (en) 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
JP4394590B2 (ja) 2005-02-22 2010-01-06 株式会社日立コミュニケーションテクノロジー パケット中継装置および通信帯域制御方法
US7499463B1 (en) 2005-04-22 2009-03-03 Sun Microsystems, Inc. Method and apparatus for enforcing bandwidth utilization of a virtual serialization queue
US8738702B1 (en) 2005-07-13 2014-05-27 At&T Intellectual Property Ii, L.P. Method and system for a personalized content dissemination platform
WO2007052285A2 (en) 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US7721299B2 (en) 2005-08-05 2010-05-18 Red Hat, Inc. Zero-copy network I/O for virtual hosts
US8270413B2 (en) 2005-11-28 2012-09-18 Cisco Technology, Inc. Method and apparatus for self-learning of VPNS from combination of unidirectional tunnels in MPLS/VPN networks
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US7660296B2 (en) 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US8856862B2 (en) 2006-03-02 2014-10-07 British Telecommunications Public Limited Company Message processing methods and systems
US20070260750A1 (en) 2006-03-09 2007-11-08 Microsoft Corporation Adaptable data connector
US20070214282A1 (en) 2006-03-13 2007-09-13 Microsoft Corporation Load balancing via rotation of cluster identity
US20070248091A1 (en) 2006-04-24 2007-10-25 Mohamed Khalid Methods and apparatus for tunnel stitching in a network
US8095931B1 (en) * 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
US8838756B2 (en) 2009-07-27 2014-09-16 Vmware, Inc. Management and implementation of enclosed local networks in a virtual lab
US8892706B1 (en) 2010-06-21 2014-11-18 Vmware, Inc. Private ethernet overlay networks over a shared ethernet in a virtual environment
DE102006022046B4 (de) 2006-05-05 2008-06-12 Nokia Siemens Networks Gmbh & Co.Kg Verfahren zum Ermöglichen einer Steuerung der Dienstqualität und/oder der Dienstvergebührung bei Telekommunikationsdiensten
US7693985B2 (en) 2006-06-09 2010-04-06 Cisco Technology, Inc. Technique for dispatching data packets to service control engines
US7761596B2 (en) 2006-06-30 2010-07-20 Telefonaktiebolaget L M Ericsson (Publ) Router and method for server load balancing
WO2008018969A1 (en) 2006-08-04 2008-02-14 Parallel Computers Technology, Inc. Apparatus and method of optimizing database clustering with zero transaction loss
US7580417B2 (en) 2006-08-07 2009-08-25 Cisco Technology, Inc. Method and apparatus for load balancing over virtual network links
US8707383B2 (en) 2006-08-16 2014-04-22 International Business Machines Corporation Computer workload management with security policy enforcement
US8312120B2 (en) 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
GB2443229B (en) 2006-08-23 2009-10-14 Cramer Systems Ltd Capacity management for data networks
US8204982B2 (en) 2006-09-14 2012-06-19 Quova, Inc. System and method of middlebox detection and characterization
US8649264B2 (en) 2006-10-04 2014-02-11 Qualcomm Incorporated IP flow-based load balancing over a plurality of wireless network links
JP2008104027A (ja) 2006-10-19 2008-05-01 Fujitsu Ltd パケット情報収集装置およびパケット情報収集プログラム
US8185893B2 (en) 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US8849746B2 (en) 2006-12-19 2014-09-30 Teradata Us, Inc. High-throughput extract-transform-load (ETL) of program events for subsequent analysis
US20160277261A9 (en) 2006-12-29 2016-09-22 Prodea Systems, Inc. Multi-services application gateway and system employing the same
US20080189769A1 (en) 2007-02-01 2008-08-07 Martin Casado Secure network switching infrastructure
US7865614B2 (en) 2007-02-12 2011-01-04 International Business Machines Corporation Method and apparatus for load balancing with server state change awareness
DE602007010040D1 (de) 2007-02-22 2010-12-02 Ericsson Telefon Ab L M Overlay-Netzwerk mit einheitlicher und fehlertoleranter verteilter Hash-Tabelle (DHT)
US20080225714A1 (en) 2007-03-12 2008-09-18 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic load balancing
US8144709B2 (en) 2007-04-06 2012-03-27 International Business Machines Corporation Method, system and computer processing an IP packet, routing a structured data carrier, preventing broadcast storms, load-balancing and converting a full broadcast IP packet
US8230493B2 (en) 2007-05-02 2012-07-24 Cisco Technology, Inc. Allowing differential processing of encrypted tunnels
US7898959B1 (en) 2007-06-28 2011-03-01 Marvell Israel (Misl) Ltd. Method for weighted load-balancing among network interfaces
US8000329B2 (en) 2007-06-29 2011-08-16 Alcatel Lucent Open platform architecture for integrating multiple heterogeneous network functions
US20090003375A1 (en) 2007-06-29 2009-01-01 Martin Havemann Network system having an extensible control plane
US7843914B2 (en) 2007-06-29 2010-11-30 Alcatel-Lucent Network system having an extensible forwarding plane
US8898331B2 (en) 2007-07-09 2014-11-25 Hewlett-Packard Development Company, L.P. Method, network and computer program for processing a content request
US7895425B2 (en) 2007-08-03 2011-02-22 Cisco Technology, Inc. Operation, administration and maintenance (OAM) in a service insertion architecture (SIA)
US20090063706A1 (en) 2007-08-30 2009-03-05 International Business Machines Corporation Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
US8201219B2 (en) 2007-09-24 2012-06-12 Bridgewater Systems Corp. Systems and methods for server load balancing using authentication, authorization, and accounting protocols
US8874789B1 (en) 2007-09-28 2014-10-28 Trend Micro Incorporated Application based routing arrangements and method thereof
WO2009061973A1 (en) 2007-11-09 2009-05-14 Blade Network Technologies, Inc. Session-less load balancing of client traffic across servers in a server group
US7855982B2 (en) 2007-11-19 2010-12-21 Rajesh Ramankutty Providing services to packet flows in a network
US8411564B2 (en) 2007-12-17 2013-04-02 Indian Institute Of Technology, Bombay Architectural framework of communication network and a method of establishing QOS connection
US8386610B2 (en) 2007-12-31 2013-02-26 Netapp, Inc. System and method for automatic storage load balancing in virtual server environments
US9043862B2 (en) 2008-02-06 2015-05-26 Qualcomm Incorporated Policy control for encapsulated data flows
US8175863B1 (en) 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
US8521879B1 (en) 2008-03-11 2013-08-27 United Services Automobile Assocation (USAA) Systems and methods for a load balanced interior gateway protocol intranet
US7808919B2 (en) 2008-03-18 2010-10-05 Cisco Technology, Inc. Network monitoring using a proxy
US8146147B2 (en) 2008-03-27 2012-03-27 Juniper Networks, Inc. Combined firewalls
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20110035494A1 (en) 2008-04-15 2011-02-10 Blade Network Technologies Network virtualization for a virtualized server data center environment
US9749404B2 (en) 2008-04-17 2017-08-29 Radware, Ltd. Method and system for load balancing over a cluster of authentication, authorization and accounting (AAA) servers
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US8996683B2 (en) 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US8108467B2 (en) 2008-06-26 2012-01-31 International Business Machines Corporation Load balanced data processing performed on an application message transmitted between compute nodes of a parallel computer
US8578483B2 (en) 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US20100036903A1 (en) 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
US8873399B2 (en) 2008-09-03 2014-10-28 Nokia Siemens Networks Oy Gateway network element, a method, and a group of load balanced access points configured for load balancing in a communications network
US8228929B2 (en) 2008-10-24 2012-07-24 Juniper Networks, Inc. Flow consistent dynamic load balancing
US8078903B1 (en) 2008-11-25 2011-12-13 Cisco Technology, Inc. Automatic load-balancing and seamless failover of data flows in storage media encryption (SME)
US8171124B2 (en) 2008-11-25 2012-05-01 Citrix Systems, Inc. Systems and methods for GSLB remote service monitoring
US9191293B2 (en) 2008-12-22 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Method and device for handling of connections between a client and a server via a communication network
US8442043B2 (en) 2008-12-29 2013-05-14 Cisco Technology, Inc. Service selection mechanism in service insertion architecture data plane
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US20100223364A1 (en) 2009-02-27 2010-09-02 Yottaa Inc System and method for network traffic management and load balancing
US20100235915A1 (en) 2009-03-12 2010-09-16 Nasir Memon Using host symptoms, host roles, and/or host reputation for detection of host infection
US8094575B1 (en) 2009-03-24 2012-01-10 Juniper Networks, Inc. Routing protocol extension for network acceleration service-aware path selection within computer networks
JP4811489B2 (ja) 2009-03-27 2011-11-09 日本電気株式会社 サーバシステム、集合型サーバ装置及びmacアドレス管理方法
US20100254385A1 (en) 2009-04-07 2010-10-07 Cisco Technology, Inc. Service Insertion Architecture (SIA) in a Virtual Private Network (VPN) Aware Network
CN101873572B (zh) 2009-04-27 2012-08-29 中国移动通信集团公司 基于PMIPv6的数据传输方法、系统及相关网络设备
US8261266B2 (en) 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US9479358B2 (en) 2009-05-13 2016-10-25 International Business Machines Corporation Managing graphics load balancing strategies
CN101594358B (zh) 2009-06-29 2012-09-05 北京航空航天大学 三层交换方法、装置、系统和宿主机
US8352561B1 (en) 2009-07-24 2013-01-08 Google Inc. Electronic communication reminder technology
US20110040893A1 (en) 2009-08-14 2011-02-17 Broadcom Corporation Distributed Internet caching via multiple node caching management
US20110055845A1 (en) 2009-08-31 2011-03-03 Thyagarajan Nandagopal Technique for balancing loads in server clusters
CN102025702B (zh) 2009-09-17 2014-11-05 中兴通讯股份有限公司 基于身份标识和位置分离架构的网络及其骨干网和网元
CN102025608B (zh) 2009-09-17 2013-03-20 中兴通讯股份有限公司 通信方法、通信过程中的数据报文转发方法及通信节点
US8451735B2 (en) 2009-09-28 2013-05-28 Symbol Technologies, Inc. Systems and methods for dynamic load balancing in a wireless network
US8811412B2 (en) 2009-10-15 2014-08-19 International Business Machines Corporation Steering data communications packets among service applications with server selection modulus values
JPWO2011049135A1 (ja) 2009-10-23 2013-03-14 日本電気株式会社 ネットワークシステムとその制御方法、及びコントローラ
CN101729412B (zh) 2009-11-05 2012-03-14 北京超图软件股份有限公司 地理信息服务的分布式层次集群方法和系统
CA2781100C (en) 2009-11-16 2016-10-18 Interdigital Patent Holdings, Inc. Coordination of silent periods for dynamic spectrum manager (dsm)
CN101714916B (zh) 2009-11-26 2013-06-05 华为数字技术(成都)有限公司 一种备份方法、设备和系统
US8832683B2 (en) 2009-11-30 2014-09-09 Red Hat Israel, Ltd. Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine
US8615009B1 (en) 2010-01-25 2013-12-24 Juniper Networks, Inc. Interface for extending service capabilities of a network device
JP5648926B2 (ja) 2010-02-01 2015-01-07 日本電気株式会社 ネットワークシステム、コントローラ、ネットワーク制御方法
CN102158386B (zh) 2010-02-11 2015-06-03 威睿公司 系统管理程序级的分布式负载平衡
US8320399B2 (en) 2010-02-26 2012-11-27 Net Optics, Inc. Add-on module and methods thereof
US8996610B1 (en) 2010-03-15 2015-03-31 Salesforce.Com, Inc. Proxy system, method and computer program product for utilizing an identifier of a request to route the request to a networked device
US8971345B1 (en) 2010-03-22 2015-03-03 Riverbed Technology, Inc. Method and apparatus for scheduling a heterogeneous communication flow
WO2011120000A2 (en) 2010-03-26 2011-09-29 Citrix Systems, Inc. Systems and methods for link load balancing on a multi-core device
US8243598B2 (en) 2010-04-26 2012-08-14 International Business Machines Corporation Load-balancing via modulus distribution and TCP flow redirection due to server overload
US8504718B2 (en) 2010-04-28 2013-08-06 Futurewei Technologies, Inc. System and method for a context layer switch
US8811398B2 (en) 2010-04-30 2014-08-19 Hewlett-Packard Development Company, L.P. Method for routing data packets using VLANs
US8533337B2 (en) 2010-05-06 2013-09-10 Citrix Systems, Inc. Continuous upgrading of computers in a load balanced environment
US8499093B2 (en) 2010-05-14 2013-07-30 Extreme Networks, Inc. Methods, systems, and computer readable media for stateless load balancing of network traffic flows
US20110317708A1 (en) 2010-06-28 2011-12-29 Alcatel-Lucent Usa, Inc. Quality of service control for mpls user access
US8281033B1 (en) 2010-06-29 2012-10-02 Emc Corporation Techniques for path selection
CN103270736B (zh) 2010-06-29 2016-08-10 华为技术有限公司 一种网络设备
JP5716302B2 (ja) 2010-06-30 2015-05-13 ソニー株式会社 情報処理装置、コンテンツ提供方法及びプログラム
JP5668342B2 (ja) 2010-07-07 2015-02-12 富士通株式会社 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ
WO2012021344A2 (en) 2010-08-11 2012-02-16 Movik Networks SYSTEM AND METHOD FOR QoS CONTROL OF IP FLOWS IN MOBILE NETWORKS
US8745128B2 (en) 2010-09-01 2014-06-03 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
US8838830B2 (en) 2010-10-12 2014-09-16 Sap Portals Israel Ltd Optimizing distributed computer networks
US8681661B2 (en) 2010-10-25 2014-03-25 Force10 Networks, Inc. Limiting MAC address learning on access network switches
US8533285B2 (en) 2010-12-01 2013-09-10 Cisco Technology, Inc. Directing data flows in data centers with clustering services
US8699499B2 (en) 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
US8755283B2 (en) 2010-12-17 2014-06-17 Microsoft Corporation Synchronizing state among load balancer components
US8804720B1 (en) 2010-12-22 2014-08-12 Juniper Networks, Inc. Pass-through multicast admission control signaling
IL210897A (en) 2011-01-27 2017-12-31 Verint Systems Ltd Systems and methods for managing traffic flow table
US10225335B2 (en) 2011-02-09 2019-03-05 Cisco Technology, Inc. Apparatus, systems and methods for container based service deployment
US9191327B2 (en) 2011-02-10 2015-11-17 Varmour Networks, Inc. Distributed service processing of network gateways using virtual machines
US8737210B2 (en) 2011-03-09 2014-05-27 Telefonaktiebolaget L M Ericsson (Publ) Load balancing SCTP associations using VTAG mediation
US8676980B2 (en) 2011-03-22 2014-03-18 Cisco Technology, Inc. Distributed load balancer in a virtual machine environment
US8799997B2 (en) 2011-04-18 2014-08-05 Bank Of America Corporation Secure network cloud architecture
US8743885B2 (en) 2011-05-03 2014-06-03 Cisco Technology, Inc. Mobile service routing in a network environment
US20120303809A1 (en) 2011-05-25 2012-11-29 Microsoft Corporation Offloading load balancing packet modification
US9104460B2 (en) 2011-05-31 2015-08-11 Red Hat, Inc. Inter-cloud live migration of virtualization systems
US8855564B2 (en) 2011-06-07 2014-10-07 Clearcube Technology, Inc. Zero client device with integrated Bluetooth capability
US9298910B2 (en) 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
US8923294B2 (en) 2011-06-28 2014-12-30 Polytechnic Institute Of New York University Dynamically provisioning middleboxes
US11233709B2 (en) 2011-07-15 2022-01-25 Inetco Systems Limited Method and system for monitoring performance of an application system
US20130021942A1 (en) 2011-07-18 2013-01-24 Cisco Technology, Inc. Granular Control of Multicast Delivery Services for Layer-2 Interconnect Solutions
US9424144B2 (en) * 2011-07-27 2016-08-23 Microsoft Technology Licensing, Llc Virtual machine migration to minimize packet loss in virtualized network
WO2013020126A1 (en) 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
CN106850444B (zh) 2011-08-17 2020-10-27 Nicira股份有限公司 逻辑l3路由
US8856518B2 (en) 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9319459B2 (en) 2011-09-19 2016-04-19 Cisco Technology, Inc. Services controlled session based flow interceptor
US10200493B2 (en) 2011-10-17 2019-02-05 Microsoft Technology Licensing, Llc High-density multi-tenant distributed cache as a service
US9104497B2 (en) 2012-11-07 2015-08-11 Yahoo! Inc. Method and system for work load balancing
US9232342B2 (en) 2011-10-24 2016-01-05 Interdigital Patent Holdings, Inc. Methods, systems and apparatuses for application service layer (ASL) inter-networking
US8717934B2 (en) 2011-10-25 2014-05-06 Cisco Technology, Inc. Multicast source move detection for layer-2 interconnect solutions
WO2013074855A1 (en) 2011-11-15 2013-05-23 Nicira, Inc. Control plane interface for logical middlebox services
US8767737B2 (en) 2011-11-30 2014-07-01 Industrial Technology Research Institute Data center network system and packet forwarding method thereof
US20130159487A1 (en) 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US20130160024A1 (en) 2011-12-20 2013-06-20 Sybase, Inc. Dynamic Load Balancing for Complex Event Processing
US8830834B2 (en) 2011-12-21 2014-09-09 Cisco Technology, Inc. Overlay-based packet steering
US9450836B2 (en) 2011-12-27 2016-09-20 Cisco Technology, Inc. System and method for management of network-based services
CN103999415B (zh) 2011-12-28 2017-04-19 华为技术有限公司 一种用于合并网络应用的装置、方法和中间件
US8914406B1 (en) 2012-02-01 2014-12-16 Vorstack, Inc. Scalable network security with fast response protocol
US8868711B2 (en) 2012-02-03 2014-10-21 Microsoft Corporation Dynamic load balancing in a scalable environment
US8553552B2 (en) 2012-02-08 2013-10-08 Radisys Corporation Stateless load balancer in a multi-node system for transparent processing with packet preservation
US8954964B2 (en) 2012-02-27 2015-02-10 Ca, Inc. System and method for isolated virtual image and appliance communication within a cloud environment
EP2820648A4 (en) 2012-02-28 2016-03-02 Ten Eight Technology Inc AUTOMATED VOICE TO REPORTING / MANAGEMENT SYSTEM AND PROCEDURE FOR VOICE CALL-INS OF EVENTS / CRIME
US8955093B2 (en) 2012-04-11 2015-02-10 Varmour Networks, Inc. Cooperative network security inspection
US9331938B2 (en) 2012-04-13 2016-05-03 Nicira, Inc. Extension of logical networks across layer 3 virtual private networks
US8825867B2 (en) 2012-05-04 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group
US8867367B2 (en) 2012-05-10 2014-10-21 Telefonaktiebolaget L M Ericsson (Publ) 802.1aq support over IETF EVPN
US9325562B2 (en) 2012-05-15 2016-04-26 International Business Machines Corporation Overlay tunnel information exchange protocol
US8862883B2 (en) 2012-05-16 2014-10-14 Cisco Technology, Inc. System and method for secure cloud service delivery with prioritized services in a network environment
CN104272668B (zh) 2012-05-23 2018-05-22 博科通讯系统有限公司 层3覆盖网关
US8908691B2 (en) 2012-06-05 2014-12-09 International Business Machines Corporation Virtual ethernet port aggregation (VEPA)-enabled multi-tenant overlay network
US9898317B2 (en) 2012-06-06 2018-02-20 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8488577B1 (en) 2012-06-06 2013-07-16 Google Inc. Apparatus for controlling the availability of internet access to applications
US9304801B2 (en) 2012-06-12 2016-04-05 TELEFONAKTIEBOLAGET L M ERRICSSON (publ) Elastic enforcement layer for cloud security using SDN
CN104769864B (zh) 2012-06-14 2018-05-04 艾诺威网络有限公司 多播到单播转换技术
US8913507B2 (en) 2012-06-21 2014-12-16 Breakingpoint Systems, Inc. Virtual data loopback and/or data capture in a computing system
US8948001B2 (en) 2012-06-26 2015-02-03 Juniper Networks, Inc. Service plane triggered fast reroute protection
US9143557B2 (en) 2012-06-27 2015-09-22 Juniper Networks, Inc. Feedback loop for service engineered paths
JP5986310B2 (ja) 2012-06-29 2016-09-06 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 情報を処理するための方法、転送プレーンデバイスおよび制御プレーンデバイス
US9325569B2 (en) 2012-06-29 2016-04-26 Hewlett Packard Enterprise Development Lp Implementing a software defined network using event records that are transmitted from a network switch
CN103975625B (zh) 2012-06-30 2019-05-24 华为技术有限公司 一种控制和转发解耦架构下的转发面隧道资源的管理方法
US9237098B2 (en) 2012-07-03 2016-01-12 Cisco Technologies, Inc. Media access control (MAC) address summation in Datacenter Ethernet networking
US9668161B2 (en) 2012-07-09 2017-05-30 Cisco Technology, Inc. System and method associated with a service flow router
US9608901B2 (en) 2012-07-24 2017-03-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for enabling services chaining in a provider network
US9065677B2 (en) 2012-07-25 2015-06-23 Qualcomm Incorporated Forwarding tables for hybrid communication networks
US9678801B2 (en) 2012-08-09 2017-06-13 International Business Machines Corporation Service management modes of operation in distributed node service management
US9071631B2 (en) 2012-08-09 2015-06-30 International Business Machines Corporation Service management roles of processor nodes in distributed node service management
US8989192B2 (en) 2012-08-15 2015-03-24 Futurewei Technologies, Inc. Method and system for creating software defined ordered service patterns in a communications network
US8825851B2 (en) 2012-08-17 2014-09-02 Vmware, Inc. Management of a virtual machine in a storage area network environment
US10397074B2 (en) 2012-08-24 2019-08-27 Red Hat, Inc. Providing message flow analysis for an enterprise service bus
US10203972B2 (en) 2012-08-27 2019-02-12 Vmware, Inc. Framework for networking and security services in virtual networks
US9104492B2 (en) 2012-09-04 2015-08-11 Wisconsin Alumni Research Foundation Cloud-based middlebox management system
EP3726451A1 (en) 2012-09-12 2020-10-21 IEX Group, Inc. Transmission latency leveling apparatuses, methods and systems
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9106561B2 (en) 2012-12-06 2015-08-11 A10 Networks, Inc. Configuration of a virtual service network
US9036476B2 (en) 2012-09-28 2015-05-19 Juniper Networks, Inc. Maintaining load balancing after service application with a network device
US9178715B2 (en) 2012-10-01 2015-11-03 International Business Machines Corporation Providing services to virtual overlay network traffic
US9148367B2 (en) 2012-10-02 2015-09-29 Cisco Technology, Inc. System and method for binding flows in a service cluster deployment in a network environment
US8855127B2 (en) 2012-10-02 2014-10-07 Lsi Corporation Method and system for intelligent deep packet buffering
US10044596B2 (en) 2012-10-05 2018-08-07 Carl D. Ostrom Devices, methods, and systems for packet reroute permission based on content parameters embedded in packet header or payload
US9071609B2 (en) 2012-10-08 2015-06-30 Google Technology Holdings LLC Methods and apparatus for performing dynamic load balancing of processing resources
US20140101656A1 (en) 2012-10-10 2014-04-10 Zhongwen Zhu Virtual firewall mobility
WO2014062405A1 (en) 2012-10-16 2014-04-24 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9450936B2 (en) 2012-11-02 2016-09-20 Silverlake Mobility Ecosystem Sdn Bhd Method of processing requests for digital services
WO2014075310A1 (zh) 2012-11-19 2014-05-22 华为技术有限公司 分组交换资源分配方法及设备
US10713183B2 (en) 2012-11-28 2020-07-14 Red Hat Israel, Ltd. Virtual machine backup using snapshots and current configuration
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US20140164477A1 (en) 2012-12-06 2014-06-12 Gary M. Springer System and method for providing horizontal scaling of stateful applications
US9203748B2 (en) 2012-12-24 2015-12-01 Huawei Technologies Co., Ltd. Software defined network-based data processing method, node, and system
US9197549B2 (en) 2013-01-23 2015-11-24 Cisco Technology, Inc. Server load balancer traffic steering
WO2014118938A1 (ja) 2013-01-31 2014-08-07 株式会社日立製作所 通信経路の管理方法
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10484334B1 (en) 2013-02-26 2019-11-19 Zentera Systems, Inc. Distributed firewall security system that extends across different cloud computing networks
US20140269724A1 (en) * 2013-03-04 2014-09-18 Telefonaktiebolaget L M Ericsson (Publ) Method and devices for forwarding ip data packets in an access network
US9210072B2 (en) 2013-03-08 2015-12-08 Dell Products L.P. Processing of multicast traffic in computer networks
US9049127B2 (en) 2013-03-11 2015-06-02 Cisco Technology, Inc. Methods and devices for providing service clustering in a trill network
US9300627B2 (en) 2013-03-14 2016-03-29 Time Warner Cable Enterprises Llc System and method for automatic routing of dynamic host configuration protocol (DHCP) traffic
US9621581B2 (en) 2013-03-15 2017-04-11 Cisco Technology, Inc. IPV6/IPV4 resolution-less forwarding up to a destination
US9477500B2 (en) 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US10356579B2 (en) 2013-03-15 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus to credit usage of mobile devices
US9509636B2 (en) 2013-03-15 2016-11-29 Vivint, Inc. Multicast traffic management within a wireless mesh network
US9497281B2 (en) 2013-04-06 2016-11-15 Citrix Systems, Inc. Systems and methods to cache packet steering decisions for a cluster of load balancers
US9619542B2 (en) 2013-04-06 2017-04-11 Citrix Systems, Inc. Systems and methods for application-state distributed replication table hunting
WO2014169251A1 (en) 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US10075470B2 (en) 2013-04-19 2018-09-11 Nicira, Inc. Framework for coordination between endpoint security and network security services
US9178828B2 (en) 2013-04-26 2015-11-03 Cisco Technology, Inc. Architecture for agentless service insertion
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9407540B2 (en) 2013-09-06 2016-08-02 Cisco Technology, Inc. Distributed service chaining in a network environment
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9246799B2 (en) 2013-05-10 2016-01-26 Cisco Technology, Inc. Data plane learning of bi-directional service chains
US9160666B2 (en) 2013-05-20 2015-10-13 Telefonaktiebolaget L M Ericsson (Publ) Encoding a payload hash in the DA-MAC to facilitate elastic chaining of packet processing elements
US9826025B2 (en) 2013-05-21 2017-11-21 Cisco Technology, Inc. Chaining service zones by way of route re-origination
EP2993835B1 (en) 2013-05-23 2018-07-11 Huawei Technologies Co., Ltd. Service routing system, device and method
US9444675B2 (en) * 2013-06-07 2016-09-13 Cisco Technology, Inc. Determining the operations performed along a service path/service chain
US9503378B2 (en) 2013-06-07 2016-11-22 The Florida International University Board Of Trustees Load-balancing algorithms for data center networks
US9495296B2 (en) 2013-06-12 2016-11-15 Oracle International Corporation Handling memory pressure in an in-database sharded queue
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
WO2014198053A1 (en) 2013-06-14 2014-12-18 Microsoft Corporation Fault tolerant and load balanced routing
US9137165B2 (en) 2013-06-17 2015-09-15 Telefonaktiebolaget L M Ericsson (Publ) Methods of load balancing using primary and stand-by addresses and related load balancers and servers
US9621642B2 (en) 2013-06-17 2017-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods of forwarding data packets using transient tables and related load balancers
US20140372616A1 (en) 2013-06-17 2014-12-18 Telefonaktiebolaget L M Ericsson (Publ) Methods of forwarding/receiving data packets using unicast and/or multicast communications and related load balancers and servers
US9686192B2 (en) 2013-06-28 2017-06-20 Niciria, Inc. Network service slotting
US9350657B2 (en) 2013-07-08 2016-05-24 Nicira, Inc. Encapsulating data packets using an adaptive tunnelling protocol
US9755963B2 (en) 2013-07-09 2017-09-05 Nicira, Inc. Using headerspace analysis to identify flow entry reachability
CN104283979B (zh) 2013-07-11 2017-11-17 华为技术有限公司 组播域名系统中报文传输的方法、装置及系统
US9755959B2 (en) 2013-07-17 2017-09-05 Cisco Technology, Inc. Dynamic service path creation
US9350666B2 (en) * 2013-07-22 2016-05-24 Vmware, Inc. Managing link aggregation traffic in a virtual environment
US9509615B2 (en) 2013-07-22 2016-11-29 Vmware, Inc. Managing link aggregation traffic in a virtual environment
US9231863B2 (en) 2013-07-23 2016-01-05 Dell Products L.P. Systems and methods for a data center architecture facilitating layer 2 over layer 3 communication
US9331941B2 (en) 2013-08-12 2016-05-03 Cisco Technology, Inc. Traffic flow redirection between border routers using routing encapsulation
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
WO2015023537A2 (en) 2013-08-16 2015-02-19 Interdigital Patent Holdings, Inc. Methods and apparatus for hash routing in software defined networking
WO2015029420A1 (ja) 2013-08-26 2015-03-05 日本電気株式会社 通信システムにおける通信装置、通信方法、制御装置および管理装置
US9203765B2 (en) 2013-08-30 2015-12-01 Cisco Technology, Inc. Flow based network service insertion using a service chain identifier
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US9680748B2 (en) 2013-09-15 2017-06-13 Nicira, Inc. Tracking prefixes of values associated with different rules to generate flows
US9917745B2 (en) 2013-09-27 2018-03-13 Futurewei Technologies, Inc. Validation of chained network services
US10091276B2 (en) 2013-09-27 2018-10-02 Transvoyant, Inc. Computer-implemented systems and methods of analyzing data in an ad-hoc network for predictive decision-making
US9258742B1 (en) 2013-09-30 2016-02-09 Juniper Networks, Inc. Policy-directed value-added services chaining
US9755960B2 (en) 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US9264330B2 (en) 2013-10-13 2016-02-16 Nicira, Inc. Tracing host-originated logical network packets
CN103516807B (zh) 2013-10-14 2016-09-21 中国联合网络通信集团有限公司 一种云计算平台服务器负载均衡系统及方法
US9304804B2 (en) * 2013-10-14 2016-04-05 Vmware, Inc. Replicating virtual machines across different virtualization platforms
US9385950B2 (en) 2013-10-14 2016-07-05 Cisco Technology, Inc. Configurable service proxy local identifier mapping
US9264313B1 (en) 2013-10-31 2016-02-16 Vmware, Inc. System and method for performing a service discovery for virtual networks
US20150124622A1 (en) 2013-11-01 2015-05-07 Movik Networks, Inc. Multi-Interface, Multi-Layer State-full Load Balancer For RAN-Analytics Deployments In Multi-Chassis, Cloud And Virtual Server Environments
US9578141B2 (en) 2013-11-03 2017-02-21 Ixia Packet flow modification
US9634938B2 (en) 2013-11-05 2017-04-25 International Business Machines Corporation Adaptive scheduling of data flows in data center networks for efficient resource utilization
US9397946B1 (en) 2013-11-05 2016-07-19 Cisco Technology, Inc. Forwarding to clusters of service nodes
US9300585B2 (en) 2013-11-15 2016-03-29 Cisco Technology, Inc. Shortening of service paths in service chains in a communications network
US9392025B2 (en) 2013-11-21 2016-07-12 Cisco Technology, Inc. Subscriber dependent redirection between a mobile packet core proxy and a cell site proxy in a network environment
US9231871B2 (en) 2013-11-25 2016-01-05 Versa Networks, Inc. Flow distribution table for packet flow load balancing
US10104169B1 (en) 2013-12-18 2018-10-16 Amazon Technologies, Inc. Optimizing a load balancer configuration
WO2015094296A1 (en) 2013-12-19 2015-06-25 Nokia Solutions And Networks Oy A method and apparatus for performing flexible service chaining
US9548896B2 (en) 2013-12-27 2017-01-17 Big Switch Networks, Inc. Systems and methods for performing network service insertion
US9825856B2 (en) 2014-01-06 2017-11-21 Futurewei Technologies, Inc. Service function chaining in a packet network
CN104767629B (zh) 2014-01-06 2017-12-12 腾讯科技(深圳)有限公司 分配服务节点的方法、装置及系统
CN104811326A (zh) 2014-01-24 2015-07-29 中兴通讯股份有限公司 一种管理业务链的方法、系统及装置
US9992103B2 (en) 2014-01-24 2018-06-05 Cisco Technology, Inc. Method for providing sticky load balancing
US9514018B2 (en) 2014-01-28 2016-12-06 Software Ag Scaling framework for querying
WO2015113279A1 (zh) 2014-01-29 2015-08-06 华为技术有限公司 通信网络、设备和控制方法
US9467382B2 (en) * 2014-02-03 2016-10-11 Cisco Technology, Inc. Elastic service chains
US9967175B2 (en) 2014-02-14 2018-05-08 Futurewei Technologies, Inc. Restoring service functions after changing a service chain instance path
US9276904B2 (en) 2014-02-20 2016-03-01 Nicira, Inc. Specifying point of enforcement in a firewall rule
US9880826B2 (en) 2014-02-25 2018-01-30 Red Hat, Inc. Installing of application resources in a multi-tenant platform-as-a-service (PaS) system
CN103795805B (zh) 2014-02-27 2017-08-25 中国科学技术大学苏州研究院 基于sdn的分布式服务器负载均衡方法
US10284478B2 (en) 2014-03-04 2019-05-07 Nec Corporation Packet processing device, packet processing method and program
CN104915241B (zh) 2014-03-12 2018-09-07 华为技术有限公司 一种虚拟机迁移控制方法及装置
US9344337B2 (en) 2014-03-13 2016-05-17 Cisco Technology, Inc. Service node originated service chains in a network environment
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
EP2922252B1 (en) 2014-03-21 2017-09-13 Juniper Networks, Inc. Selectable service node resources
CN104954274B (zh) 2014-03-25 2018-03-16 华为技术有限公司 生成转发信息的方法、控制器和业务转发实体
US9787559B1 (en) 2014-03-28 2017-10-10 Juniper Networks, Inc. End-to-end monitoring of overlay networks providing virtualized network services
US9602380B2 (en) 2014-03-28 2017-03-21 Futurewei Technologies, Inc. Context-aware dynamic policy selection for load balancing behavior
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US9009289B1 (en) 2014-03-31 2015-04-14 Flexera Software Llc Systems and methods for assessing application usage
US9215210B2 (en) 2014-03-31 2015-12-15 Nicira, Inc. Migrating firewall connection state for a firewall service virtual machine
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
US9473410B2 (en) 2014-03-31 2016-10-18 Sandvine Incorporated Ulc System and method for load balancing in computer networks
CN103905447B (zh) 2014-04-01 2017-06-27 华为技术有限公司 业务链路选择控制方法以及设备
US10178181B2 (en) 2014-04-02 2019-01-08 Cisco Technology, Inc. Interposer with security assistant key escrow
CN104980348A (zh) 2014-04-04 2015-10-14 中兴通讯股份有限公司 业务链路由方法及系统、及系统中的设备
US9363183B2 (en) 2014-04-10 2016-06-07 Cisco Technology, Inc. Network address translation offload to network infrastructure for service chains in a network environment
US9634867B2 (en) 2014-05-02 2017-04-25 Futurewei Technologies, Inc. Computing service chain-aware paths
US10164894B2 (en) 2014-05-05 2018-12-25 Nicira, Inc. Buffered subscriber tables for maintaining a consistent network state
TW201546649A (zh) 2014-06-05 2015-12-16 Cavium Inc 用於基於硬體安全模組的基於雲端的web服務安全管理的系統和方法
US9917781B2 (en) 2014-06-05 2018-03-13 KEMP Technologies Inc. Methods for intelligent data traffic steering
US9722927B2 (en) 2014-06-05 2017-08-01 Futurewei Technologies, Inc. Service chain topology map construction
US9413655B2 (en) 2014-06-13 2016-08-09 Cisco Technology, Inc. Providing virtual private service chains in a network environment
CN105379218B (zh) 2014-06-17 2018-09-07 华为技术有限公司 业务流的处理方法、装置及设备
US10013276B2 (en) * 2014-06-20 2018-07-03 Google Llc System and method for live migration of a virtualized networking stack
US9602308B2 (en) 2014-06-23 2017-03-21 International Business Machines Corporation Servicing packets in a virtual network and a software-defined network (SDN)
US10261814B2 (en) 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
US11182185B2 (en) * 2014-06-27 2021-11-23 Vmware, Inc. Network-based signaling to control virtual machine placement
US9419897B2 (en) 2014-06-30 2016-08-16 Nicira, Inc. Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization
US9692698B2 (en) 2014-06-30 2017-06-27 Nicira, Inc. Methods and systems to offload overlay network packet encapsulation to hardware
US9634936B2 (en) 2014-06-30 2017-04-25 Juniper Networks, Inc. Service chaining across multiple networks
US9455908B2 (en) * 2014-07-07 2016-09-27 Cisco Technology, Inc. Bi-directional flow stickiness in a network environment
US10003530B2 (en) 2014-07-22 2018-06-19 Futurewei Technologies, Inc. Service chain header and metadata transport
CN105453493B (zh) 2014-07-23 2019-02-05 华为技术有限公司 业务报文转发方法及装置
US9774533B2 (en) 2014-08-06 2017-09-26 Futurewei Technologies, Inc. Mechanisms to support service chain graphs in a communication network
US20160057687A1 (en) 2014-08-19 2016-02-25 Qualcomm Incorporated Inter/intra radio access technology mobility and user-plane split measurement configuration
US20160065503A1 (en) * 2014-08-29 2016-03-03 Extreme Networks, Inc. Methods, systems, and computer readable media for virtual fabric routing
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
EP3192213A1 (en) 2014-09-12 2017-07-19 Voellmy, Andreas R. Managing network forwarding configurations using algorithmic policies
CN107078957B (zh) 2014-09-19 2021-04-09 诺基亚通信公司 通信网络中的网络服务功能的链接
WO2016045705A1 (en) 2014-09-23 2016-03-31 Nokia Solutions And Networks Oy Control of communication using service function chaining
US9804797B1 (en) 2014-09-29 2017-10-31 EMC IP Holding Company LLC Using dynamic I/O load differential for load balancing
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
EP3190750B1 (en) 2014-09-30 2020-11-25 Huawei Technologies Co., Ltd. Method and apparatus for generating service path
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US9548919B2 (en) 2014-10-24 2017-01-17 Cisco Technology, Inc. Transparent network service header path proxies
US10602000B2 (en) 2014-10-29 2020-03-24 Nokia Of America Corporation Policy decisions based on offline charging rules when service chaining is implemented
US9590902B2 (en) 2014-11-10 2017-03-07 Juniper Networks, Inc. Signaling aliasing capability in data centers
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9838286B2 (en) 2014-11-20 2017-12-05 Telefonaktiebolaget L M Ericsson (Publ) Passive performance measurement for inline service chaining
US9705775B2 (en) 2014-11-20 2017-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Passive performance measurement for inline service chaining
US10855791B2 (en) 2014-11-25 2020-12-01 Netapp, Inc. Clustered storage system path quiescence analysis
WO2016082167A1 (zh) 2014-11-28 2016-06-02 华为技术有限公司 业务处理装置及方法
US20160164826A1 (en) 2014-12-04 2016-06-09 Cisco Technology, Inc. Policy Implementation at a Network Element based on Data from an Authoritative Source
US9866472B2 (en) 2014-12-09 2018-01-09 Oath Inc. Systems and methods for software defined networking service function chaining
KR101978196B1 (ko) 2014-12-09 2019-05-14 후아웨이 테크놀러지 컴퍼니 리미티드 적응적 플로 테이블을 처리하는 방법 및 장치
CN105743822B (zh) 2014-12-11 2019-04-19 华为技术有限公司 一种处理报文的方法及装置
US9571405B2 (en) 2015-02-25 2017-02-14 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
US9614757B2 (en) 2014-12-17 2017-04-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for relocating packet processing functions
AU2014414703B2 (en) 2014-12-17 2018-11-08 Huawei Cloud Computing Technologies Co., Ltd. Data forwarding method, device and system in software-defined networking
US9094464B1 (en) 2014-12-18 2015-07-28 Limelight Networks, Inc. Connection digest for accelerating web traffic
WO2016096052A1 (en) 2014-12-19 2016-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for relocating packet processing functions
US9462084B2 (en) 2014-12-23 2016-10-04 Intel Corporation Parallel processing of service functions in service function chains
US9747249B2 (en) * 2014-12-29 2017-08-29 Nicira, Inc. Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet
US9680762B2 (en) 2015-01-05 2017-06-13 Futurewei Technologies, Inc. Method and system for providing QoS for in-band control traffic in an openflow network
GB2525701B (en) 2015-01-08 2016-11-30 Openwave Mobility Inc A software defined network and a communication network comprising the same
US20160212048A1 (en) 2015-01-15 2016-07-21 Hewlett Packard Enterprise Development Lp Openflow service chain data packet routing using tables
JP2016134700A (ja) 2015-01-16 2016-07-25 富士通株式会社 管理サーバ、通信システム、および、経路管理方法
US10341188B2 (en) 2015-01-27 2019-07-02 Huawei Technologies Co., Ltd. Network virtualization for network infrastructure
US10079779B2 (en) 2015-01-30 2018-09-18 Nicira, Inc. Implementing logical router uplinks
WO2016127398A1 (zh) 2015-02-13 2016-08-18 华为技术有限公司 控制接入的装置、系统和方法
WO2016134752A1 (en) 2015-02-24 2016-09-01 Nokia Solutions And Networks Oy Integrated services processing for mobile networks
US9749225B2 (en) 2015-04-17 2017-08-29 Huawei Technologies Co., Ltd. Software defined network (SDN) control signaling for traffic engineering to enable multi-type transport in a data plane
US10116464B2 (en) 2015-03-18 2018-10-30 Juniper Networks, Inc. EVPN inter-subnet multicast forwarding
US10609091B2 (en) 2015-04-03 2020-03-31 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10785130B2 (en) 2015-04-23 2020-09-22 Hewlett Packard Enterprise Development Lp Network infrastructure device to implement pre-filter rules
US9515993B1 (en) 2015-05-13 2016-12-06 International Business Machines Corporation Automated migration planning for moving into a setting of multiple firewalls
US9762402B2 (en) 2015-05-20 2017-09-12 Cisco Technology, Inc. System and method to facilitate the assignment of service functions for service chains in a network environment
US9998565B2 (en) 2015-05-25 2018-06-12 Juniper Networks, Inc. Selecting and monitoring a plurality of services key performance indicators using TWAMP
CN106302206B (zh) 2015-05-28 2020-04-24 中兴通讯股份有限公司 报文的转发处理方法、装置及系统
US9985869B2 (en) 2015-06-09 2018-05-29 International Business Machines Corporation Support for high availability of service appliances in a software-defined network (SDN) service chaining infrastructure
US11310655B2 (en) 2015-06-10 2022-04-19 Soracom, Inc. Communication system and communication method for providing access to IP network to wireless cable
WO2016197344A1 (zh) 2015-06-10 2016-12-15 华为技术有限公司 实现业务链接的方法、设备及系统
US10742544B2 (en) 2015-06-15 2020-08-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and network nodes for scalable mapping of tags to service function chain encapsulation headers
US10042722B1 (en) 2015-06-23 2018-08-07 Juniper Networks, Inc. Service-chain fault tolerance in service virtualized environments
EP3281369B1 (en) 2015-06-26 2020-11-04 Hewlett-Packard Enterprise Development LP Server load balancing
US10554484B2 (en) 2015-06-26 2020-02-04 Nicira, Inc. Control plane integration with hardware switches
US10609122B1 (en) 2015-06-29 2020-03-31 Amazon Technologies, Inc. Instance backed building or place
US9680706B2 (en) 2015-06-30 2017-06-13 Nicira, Inc. Federated firewall management for moving workload across data centers
US9749229B2 (en) 2015-07-01 2017-08-29 Cisco Technology, Inc. Forwarding packets with encapsulated service chain headers
CN106330714B (zh) * 2015-07-02 2020-05-29 中兴通讯股份有限公司 一种实现业务功能链的方法和装置
US10313235B2 (en) 2015-07-13 2019-06-04 Futurewei Technologies, Inc. Internet control message protocol enhancement for traffic carried by a tunnel over internet protocol networks
US20170019303A1 (en) * 2015-07-14 2017-01-19 Microsoft Technology Licensing, Llc Service Chains for Network Services
US10367728B2 (en) 2015-07-15 2019-07-30 Netsia, Inc. Methods for forwarding rule hopping based secure communications
US10637889B2 (en) 2015-07-23 2020-04-28 Cisco Technology, Inc. Systems, methods, and devices for smart mapping and VPN policy enforcement
US10069639B2 (en) 2015-07-28 2018-09-04 Ciena Corporation Multicast systems and methods for segment routing
US9923984B2 (en) 2015-10-30 2018-03-20 Oracle International Corporation Methods, systems, and computer readable media for remote authentication dial in user service (RADIUS) message loop detection and mitigation
US9894188B2 (en) 2015-08-28 2018-02-13 Nicira, Inc. Packet data restoration for flow-based forwarding element
US9906560B2 (en) 2015-08-28 2018-02-27 Nicira, Inc. Distributing remote device management attributes to service nodes for service rule processing
US10432520B2 (en) 2015-08-28 2019-10-01 Nicira, Inc. Traffic forwarding between geographically dispersed sites
EP3311528A1 (en) 2015-08-31 2018-04-25 Huawei Technologies Co., Ltd. Redirection of service or device discovery messages in software-defined networks
US9591582B1 (en) 2015-09-10 2017-03-07 Qualcomm Incorporated Smart co-processor for optimizing service discovery power consumption in wireless service platforms
US9667518B2 (en) 2015-09-11 2017-05-30 Telefonaktiebolaget L M Ericsson (Publ) Method and system for delay measurement of a traffic flow in a software-defined networking (SDN) system
CN106533935B (zh) 2015-09-14 2019-07-12 华为技术有限公司 一种在云计算系统中获取业务链信息的方法和装置
US10853111B1 (en) 2015-09-30 2020-12-01 Amazon Technologies, Inc. Virtual machine instance migration feedback
US20170093698A1 (en) 2015-09-30 2017-03-30 Huawei Technologies Co., Ltd. Method and apparatus for supporting service function chaining in a communication network
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
US10116553B1 (en) 2015-10-15 2018-10-30 Cisco Technology, Inc. Application identifier in service function chain metadata
CN108141376B (zh) 2015-10-28 2020-12-01 华为技术有限公司 网络节点、通信网络及通信网络中的方法
WO2017070970A1 (zh) 2015-10-31 2017-05-04 华为技术有限公司 一种确定路由的方法、对应装置及系统
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10078526B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US9912788B2 (en) * 2015-11-10 2018-03-06 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods of an enhanced state-aware proxy device
US9860079B2 (en) 2015-11-20 2018-01-02 Oracle International Corporation Redirecting packets for egress from an autonomous system using tenant specific routing and forwarding tables
US10067803B2 (en) 2015-11-25 2018-09-04 International Business Machines Corporation Policy based virtual machine selection during an optimization cycle
CN106788911A (zh) 2015-11-25 2017-05-31 华为技术有限公司 一种报文重传的方法和装置
US10404791B2 (en) 2015-12-04 2019-09-03 Microsoft Technology Licensing, Llc State-aware load balancing of application servers
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US9948611B2 (en) 2015-12-14 2018-04-17 Nicira, Inc. Packet tagging for improved guest system security
US10171336B2 (en) 2015-12-16 2019-01-01 Telefonaktiebolaget Lm Ericsson (Publ) Openflow configured horizontally split hybrid SDN nodes
CN106936939B (zh) 2015-12-31 2020-06-02 华为技术有限公司 一种报文处理方法、相关装置及nvo3网络系统
US10075393B2 (en) 2015-12-31 2018-09-11 Fortinet, Inc. Packet routing using a software-defined networking (SDN) switch
US10063468B2 (en) 2016-01-15 2018-08-28 Cisco Technology, Inc. Leaking routes in a service chain
US11044203B2 (en) 2016-01-19 2021-06-22 Cisco Technology, Inc. System and method for hosting mobile packet core and value-added services using a software defined network and service chains
US20170214627A1 (en) 2016-01-21 2017-07-27 Futurewei Technologies, Inc. Distributed Load Balancing for Network Service Function Chaining
US10216467B2 (en) 2016-02-03 2019-02-26 Google Llc Systems and methods for automatic content verification
US10412048B2 (en) 2016-02-08 2019-09-10 Cryptzone North America, Inc. Protecting network devices by a firewall
US10547692B2 (en) 2016-02-09 2020-01-28 Cisco Technology, Inc. Adding cloud service provider, cloud service, and cloud tenant awareness to network service chains
US10158568B2 (en) 2016-02-12 2018-12-18 Huawei Technologies Co., Ltd. Method and apparatus for service function forwarding in a service domain
EP3420708B1 (en) * 2016-02-26 2020-01-01 Telefonaktiebolaget LM Ericsson (PUBL) Dynamic re-route in a redundant system of a packet network
US10003660B2 (en) 2016-02-29 2018-06-19 Cisco Technology, Inc. System and method for data plane signaled packet capture in a service function chaining network
CN107204941A (zh) 2016-03-18 2017-09-26 中兴通讯股份有限公司 一种灵活以太网路径建立的方法和装置
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
ES2716657T3 (es) * 2016-04-07 2019-06-13 Telefonica Sa Un método para asegurar el recorrido de paquetes de datos correcto a través de una trayectoria particular de una red
US10320681B2 (en) 2016-04-12 2019-06-11 Nicira, Inc. Virtual tunnel endpoints for congestion-aware load balancing
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10171350B2 (en) 2016-04-27 2019-01-01 Cisco Technology, Inc. Generating packets in a reverse direction of a service function chain
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US20170317936A1 (en) 2016-04-28 2017-11-02 Cisco Technology, Inc. Selective steering network traffic to virtual service(s) using policy
US10491688B2 (en) 2016-04-29 2019-11-26 Hewlett Packard Enterprise Development Lp Virtualized network function placements
US10469320B2 (en) 2016-04-29 2019-11-05 Deutsche Telekom Ag Versioning system for network states in a software-defined network
US10355983B2 (en) 2016-05-09 2019-07-16 Cisco Technology, Inc. Traceroute to return aggregated statistics in service chains
US10097402B2 (en) 2016-05-11 2018-10-09 Hewlett Packard Enterprise Development Lp Filter tables for management functions
KR102541641B1 (ko) 2016-06-07 2023-06-08 한국전자통신연구원 분산 서비스 기능 포워딩 시스템 및 방법
US10284390B2 (en) 2016-06-08 2019-05-07 Cisco Technology, Inc. Techniques for efficient service chain analytics
US20170366605A1 (en) 2016-06-16 2017-12-21 Alcatel-Lucent Usa Inc. Providing data plane services for applications
US20170364794A1 (en) 2016-06-20 2017-12-21 Telefonaktiebolaget Lm Ericsson (Publ) Method for classifying the payload of encrypted traffic flows
US10275272B2 (en) * 2016-06-20 2019-04-30 Vmware, Inc. Virtual machine recovery in shared memory architecture
US10382596B2 (en) 2016-06-23 2019-08-13 Cisco Technology, Inc. Transmitting network overlay information in a service function chain
US10063415B1 (en) * 2016-06-29 2018-08-28 Juniper Networks, Inc. Network services using pools of pre-configured virtualized network functions and service chains
US10318737B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10237176B2 (en) 2016-06-30 2019-03-19 Juniper Networks, Inc. Auto discovery and auto scaling of services in software-defined network environment
EP4231605A3 (en) 2016-07-01 2023-09-27 Huawei Technologies Co., Ltd. Service function chaining sfc-based packet forwarding method, apparatus, and system
EP3468112A4 (en) * 2016-07-01 2019-05-08 Huawei Technologies Co., Ltd. METHOD, DEVICE AND SYSTEM FOR RETRIEVING A PACKAGE IN SERVICE CHAINING
US9843898B1 (en) 2016-07-21 2017-12-12 International Business Machines Corporation Associating multiple user devices with a single user
US20180026911A1 (en) 2016-07-25 2018-01-25 Cisco Technology, Inc. System and method for providing a resource usage advertising framework for sfc-based workloads
CN107666438B (zh) 2016-07-27 2021-10-22 中兴通讯股份有限公司 报文转发方法及装置
US10142356B2 (en) 2016-07-29 2018-11-27 ShieldX Networks, Inc. Channel data encapsulation system and method for use with client-server data channels
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US11349881B2 (en) 2016-08-05 2022-05-31 Alcatel Lucent Security-on-demand architecture
US11005750B2 (en) 2016-08-05 2021-05-11 Huawei Technologies Co., Ltd. End point to edge node interaction in wireless communication networks
US10972437B2 (en) 2016-08-08 2021-04-06 Talari Networks Incorporated Applications and integrated firewall design in an adaptive private network (APN)
US20220019698A1 (en) 2016-08-11 2022-01-20 Intel Corporation Secure Public Cloud with Protected Guest-Verified Host Control
US10303899B2 (en) 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
WO2018037266A1 (en) 2016-08-26 2018-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Improving sf proxy performance in sdn networks
US10397136B2 (en) 2016-08-27 2019-08-27 Nicira, Inc. Managed forwarding element executing in separate namespace of public cloud data compute node than workload application
JP6744985B2 (ja) 2016-08-27 2020-08-19 ニシラ, インコーポレイテッド ネットワーク制御システムのパブリッククラウドへの拡張
US10419340B2 (en) * 2016-08-29 2019-09-17 Vmware, Inc. Stateful connection optimization over stretched networks using specific prefix routes
US10361969B2 (en) * 2016-08-30 2019-07-23 Cisco Technology, Inc. System and method for managing chained services in a network environment
US11277338B2 (en) 2016-09-26 2022-03-15 Juniper Networks, Inc. Distributing service function chain data and service function instance data in a network
US10938668B1 (en) 2016-09-30 2021-03-02 Amazon Technologies, Inc. Safe deployment using versioned hash rings
WO2018058677A1 (zh) 2016-09-30 2018-04-05 华为技术有限公司 一种报文处理方法、计算设备以及报文处理装置
US20180102965A1 (en) 2016-10-07 2018-04-12 Alcatel-Lucent Usa Inc. Unicast branching based multicast
US11824863B2 (en) 2016-11-03 2023-11-21 Nicira, Inc. Performing services on a host
US10616100B2 (en) 2016-11-03 2020-04-07 Parallel Wireless, Inc. Traffic shaping and end-to-end prioritization
US11055273B1 (en) 2016-11-04 2021-07-06 Amazon Technologies, Inc. Software container event monitoring systems
US10187263B2 (en) 2016-11-14 2019-01-22 Futurewei Technologies, Inc. Integrating physical and virtual network functions in a service-chained network environment
US9906401B1 (en) 2016-11-22 2018-02-27 Gigamon Inc. Network visibility appliances for cloud computing architectures
US10609160B2 (en) 2016-12-06 2020-03-31 Nicira, Inc. Performing context-rich attribute-based services on a host
US10129186B2 (en) 2016-12-07 2018-11-13 Nicira, Inc. Service function chain (SFC) data communications with SFC data in virtual local area network identifier (VLAN ID) data fields
GB2558205B (en) 2016-12-15 2019-07-03 Arm Ip Ltd Enabling communications between devices
US10623309B1 (en) 2016-12-19 2020-04-14 International Business Machines Corporation Rule processing of packets
EP3340581B1 (en) 2016-12-20 2022-02-23 InterDigital CE Patent Holdings Method for managing service chaining at a network equipment, corresponding network equipment
US10212071B2 (en) 2016-12-21 2019-02-19 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10802858B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Collecting and processing contextual attributes on a host
US10574652B2 (en) 2017-01-12 2020-02-25 Zscaler, Inc. Systems and methods for cloud-based service function chaining using security assertion markup language (SAML) assertion
US20180203736A1 (en) 2017-01-13 2018-07-19 Red Hat, Inc. Affinity based hierarchical container scheduling
US10243835B2 (en) 2017-02-02 2019-03-26 Fujitsu Limited Seamless service function chaining across domains
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10673785B2 (en) 2017-02-16 2020-06-02 Netscout Systems, Inc. Flow and time based reassembly of fragmented packets by IP protocol analyzers
US10764112B2 (en) * 2017-02-28 2020-09-01 Nicira, Inc. Management and control system logical network
US10243856B2 (en) 2017-03-24 2019-03-26 Intel Corporation Load balancing systems, devices, and methods
US10244034B2 (en) 2017-03-29 2019-03-26 Ca, Inc. Introspection driven monitoring of multi-container applications
US10698714B2 (en) 2017-04-07 2020-06-30 Nicira, Inc. Application/context-based management of virtual networks using customizable workflows
US10462047B2 (en) 2017-04-10 2019-10-29 Cisco Technology, Inc. Service-function chaining using extended service-function chain proxy for service-function offload
US10158573B1 (en) 2017-05-01 2018-12-18 Barefoot Networks, Inc. Forwarding element with a data plane load balancer
US10587502B2 (en) 2017-05-16 2020-03-10 Ribbon Communications Operating Company, Inc. Communications methods, apparatus and systems for providing scalable media services in SDN systems
US10333822B1 (en) 2017-05-23 2019-06-25 Cisco Technology, Inc. Techniques for implementing loose hop service function chains price information
US10348638B2 (en) 2017-05-30 2019-07-09 At&T Intellectual Property I, L.P. Creating cross-service chains of virtual network functions in a wide area network
CN107105061B (zh) 2017-05-31 2020-09-29 北京中电普华信息技术有限公司 一种服务注册方法及装置
US10628236B2 (en) 2017-06-06 2020-04-21 Huawei Technologies Canada Co., Ltd. System and method for inter-datacenter communication
US10506083B2 (en) * 2017-06-27 2019-12-10 Cisco Technology, Inc. Segment routing gateway storing segment routing encapsulating header used in encapsulating and forwarding of returned native packet
US10567360B2 (en) 2017-06-29 2020-02-18 Vmware, Inc. SSH key validation in a hyper-converged computing environment
US10757138B2 (en) 2017-07-13 2020-08-25 Nicira, Inc. Systems and methods for storing a security parameter index in an options field of an encapsulation header
US10432513B2 (en) 2017-07-14 2019-10-01 Nicira, Inc. Asymmetric network elements sharing an anycast address
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
CN107317887B (zh) * 2017-08-23 2019-10-18 北京知道创宇信息技术股份有限公司 一种负载均衡方法、装置和系统
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
US10637828B2 (en) 2017-09-17 2020-04-28 Mellanox Technologies, Ltd. NIC with stateful connection tracking
US10721095B2 (en) 2017-09-26 2020-07-21 Oracle International Corporation Virtual interface system and method for multi-tenant cloud networking
CN111279319A (zh) 2017-09-30 2020-06-12 甲骨文国际公司 容器组的动态迁移
US10637750B1 (en) 2017-10-18 2020-04-28 Juniper Networks, Inc. Dynamically modifying a service chain based on network traffic information
US11120125B2 (en) 2017-10-23 2021-09-14 L3 Technologies, Inc. Configurable internet isolation and security for laptops and similar devices
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US20190140863A1 (en) 2017-11-06 2019-05-09 Cisco Technology, Inc. Dataplane signaled bidirectional/symmetric service chain instantiation for efficient load balancing
US10757077B2 (en) 2017-11-15 2020-08-25 Nicira, Inc. Stateful connection policy filtering
US10708229B2 (en) 2017-11-15 2020-07-07 Nicira, Inc. Packet induced revalidation of connection tracker
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10938716B1 (en) 2017-11-29 2021-03-02 Riverbed Technology, Inc. Preserving policy with path selection
US11095617B2 (en) 2017-12-04 2021-08-17 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
US11075888B2 (en) 2017-12-04 2021-07-27 Nicira, Inc. Scaling gateway to gateway traffic using flow hash
EP3738274A4 (en) 2018-01-12 2021-08-25 Telefonaktiebolaget LM Ericsson (publ) CONTROL CHANNEL MESSAGE REDIRECTION MECHANISM IN CASE OF SDN CONTROL CHANNEL FAILURES
US11888899B2 (en) 2018-01-24 2024-01-30 Nicira, Inc. Flow-based forwarding element configuration
US10536285B2 (en) 2018-01-25 2020-01-14 Juniper Networks, Inc. Multicast join message processing by multi-homing devices in an ethernet VPN
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
CN111164939B (zh) 2018-01-26 2022-08-23 Nicira股份有限公司 通过网络指定和利用路径
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
CN110113291B (zh) 2018-02-01 2020-10-13 上海诺基亚贝尔股份有限公司 用于在业务功能链域之间进行互通的方法和设备
CN110166409B (zh) 2018-02-13 2021-12-28 华为技术有限公司 设备接入方法、相关平台及计算机存储介质
WO2019168532A1 (en) 2018-03-01 2019-09-06 Google Llc High availability multi-single-tenant services
US10860367B2 (en) 2018-03-14 2020-12-08 Microsoft Technology Licensing, Llc Opportunistic virtual machine migration
US10896160B2 (en) 2018-03-19 2021-01-19 Secure-24, Llc Discovery and migration planning techniques optimized by environmental analysis and criticality
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10749751B2 (en) 2018-05-02 2020-08-18 Nicira, Inc. Application of profile setting groups to logical network entities
US20190362004A1 (en) 2018-05-23 2019-11-28 Microsoft Technology Licensing, Llc Data platform fabric
US11283676B2 (en) * 2018-06-11 2022-03-22 Nicira, Inc. Providing shared memory for access by multiple network service containers executing on single service machine
US20190377604A1 (en) 2018-06-11 2019-12-12 Nuweba Labs Ltd. Scalable function as a service platform
US10897392B2 (en) 2018-06-11 2021-01-19 Nicira, Inc. Configuring a compute node to perform services on a host
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US10997177B1 (en) 2018-07-27 2021-05-04 Workday, Inc. Distributed real-time partitioned MapReduce for a data fabric
US10645201B2 (en) 2018-07-31 2020-05-05 Vmware, Inc. Packet handling during service virtualized computing instance migration
US11445335B2 (en) 2018-08-17 2022-09-13 Huawei Technologies Co., Ltd. Systems and methods for enabling private communication within a user equipment group
US11184397B2 (en) 2018-08-20 2021-11-23 Vmware, Inc. Network policy migration to a public cloud
US10986017B2 (en) 2018-08-23 2021-04-20 Agora Lab, Inc. Large-scale real-time multimedia communications
US10977111B2 (en) 2018-08-28 2021-04-13 Amazon Technologies, Inc. Constraint solver execution service and infrastructure therefor
EP3815312A1 (en) 2018-09-02 2021-05-05 VMware, Inc. Service insertion at logical network gateway
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11032190B2 (en) 2018-09-12 2021-06-08 Corsa Technology Inc. Methods and systems for network security universal control point
CN109213573A (zh) 2018-09-14 2019-01-15 珠海国芯云科技有限公司 基于容器的虚拟桌面的设备隔离方法及装置
US10834004B2 (en) * 2018-09-24 2020-11-10 Netsia, Inc. Path determination method and system for delay-optimized service function chaining
US10979347B2 (en) 2018-10-27 2021-04-13 Cisco Technology, Inc. Software version aware networking
US11012353B2 (en) 2018-11-02 2021-05-18 Cisco Technology, Inc. Using in-band operations data to signal packet processing departures in a network
US11398983B2 (en) 2018-11-04 2022-07-26 Cisco Technology, Inc. Processing packets by an offload platform adjunct to a packet switching device
US10944630B2 (en) 2018-11-20 2021-03-09 Cisco Technology, Inc. Seamless automation of network device migration to and from cloud managed systems
US10963282B2 (en) 2018-12-11 2021-03-30 Amazon Technologies, Inc. Computing service with configurable virtualization control levels and accelerated launches
US11463511B2 (en) 2018-12-17 2022-10-04 At&T Intellectual Property I, L.P. Model-based load balancing for network data plane
US10855588B2 (en) 2018-12-21 2020-12-01 Juniper Networks, Inc. Facilitating flow symmetry for service chains in a computer network
US10749787B2 (en) 2019-01-03 2020-08-18 Citrix Systems, Inc. Method for optimal path selection for data traffic undergoing high processing or queuing delay
US11012351B2 (en) 2019-02-22 2021-05-18 Vmware, Inc. Service path computation for service insertion
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
US10951691B2 (en) 2019-03-05 2021-03-16 Cisco Technology, Inc. Load balancing in a distributed system
US20200344088A1 (en) 2019-04-29 2020-10-29 Vmware, Inc. Network interoperability support for non-virtualized entities
US10965592B2 (en) 2019-05-31 2021-03-30 Juniper Networks, Inc. Inter-network service chaining
US11184274B2 (en) 2019-05-31 2021-11-23 Microsoft Technology Licensing, Llc Multi-cast support for a virtual network
US11025545B2 (en) 2019-06-06 2021-06-01 Cisco Technology, Inc. Conditional composition of serverless network functions using segment routing
DE102020113346A1 (de) 2019-07-02 2021-01-07 Hewlett Packard Enterprise Development Lp Bereitstellen von service-containern in einer adaptervorrichtung
US11561866B2 (en) 2019-07-10 2023-01-24 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container and a backup services container-orchestration pod
LU101361B1 (en) 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Computer device including nested network interface controller switches
US11522764B2 (en) 2019-08-26 2022-12-06 Vmware, Inc. Forwarding element with physical and virtual data planes
US20210073736A1 (en) 2019-09-10 2021-03-11 Alawi Holdings LLC Computer implemented system and associated methods for management of workplace incident reporting
US20210120080A1 (en) 2019-10-16 2021-04-22 Vmware, Inc. Load balancing for third party services
US11200081B2 (en) 2019-10-21 2021-12-14 ForgeRock, Inc. Systems and methods for tuning containers in a high availability environment
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US20210136140A1 (en) 2019-10-30 2021-05-06 Vmware, Inc. Using service containers to implement service chains
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
CN114342342A (zh) 2019-10-30 2022-04-12 Vm维尔股份有限公司 跨多个云的分布式服务链
US11388228B2 (en) 2019-10-31 2022-07-12 Keysight Technologies, Inc. Methods, systems and computer readable media for self-replicating cluster appliances
US11157304B2 (en) 2019-11-01 2021-10-26 Dell Products L.P. System for peering container clusters running on different container orchestration systems
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11836158B2 (en) 2020-02-03 2023-12-05 Microstrategy Incorporated Deployment of container-based computer environments
US11522836B2 (en) 2020-02-25 2022-12-06 Uatc, Llc Deterministic container-based network configurations for autonomous vehicles
US11422900B2 (en) 2020-03-02 2022-08-23 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11372668B2 (en) 2020-04-02 2022-06-28 Vmware, Inc. Management of a container image registry in a virtualized computer system
US11627124B2 (en) 2020-04-02 2023-04-11 Vmware, Inc. Secured login management to container image registry in a virtualized computer system
US11277331B2 (en) 2020-04-06 2022-03-15 Vmware, Inc. Updating connection-tracking records at a network edge using flow programming
US11336567B2 (en) 2020-04-20 2022-05-17 Cisco Technology, Inc. Service aware virtual private network for optimized forwarding in cloud native environment
US11467886B2 (en) 2020-05-05 2022-10-11 Red Hat, Inc. Migrating virtual machines between computing environments
US11902050B2 (en) 2020-07-28 2024-02-13 VMware LLC Method for providing distributed gateway service at host computer
US20220060467A1 (en) 2020-08-24 2022-02-24 Just One Technologies LLC Systems and methods for phone number certification and verification
WO2022132308A1 (en) 2020-12-15 2022-06-23 Vmware, Inc. Providing stateful services a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11153190B1 (en) 2021-01-21 2021-10-19 Zscaler, Inc. Metric computation for traceroute probes using cached data to prevent a surge on destination servers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519822A (ja) * 2012-04-30 2015-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想オーバーレイ・ネットワーク・トラフィックにサービスを提供する方法、システム、およびコンピュータ・プログラム。
US20150281180A1 (en) * 2014-03-31 2015-10-01 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US20150379277A1 (en) * 2014-06-30 2015-12-31 Leonard Heyman Encryption Architecture
US20160094451A1 (en) * 2014-09-30 2016-03-31 Nicira, Inc Inline load balancing
US20170005923A1 (en) * 2015-06-30 2017-01-05 Vmware, Inc. Dynamic virtual machine network policy for ingress optimization
US20190116063A1 (en) * 2016-04-29 2019-04-18 Hewlett Packard Enterprise Development Lp Transforming a service packet from a first domain to a second domain
CN110521169A (zh) * 2017-04-20 2019-11-29 思科技术公司 用于服务链的策略保证

Also Published As

Publication number Publication date
US11354148B2 (en) 2022-06-07
US11604666B2 (en) 2023-03-14
US20200274757A1 (en) 2020-08-27
US11074097B2 (en) 2021-07-27
US11294703B2 (en) 2022-04-05
US11609781B2 (en) 2023-03-21
US20200272494A1 (en) 2020-08-27
US11036538B2 (en) 2021-06-15
US11301281B2 (en) 2022-04-12
AU2020224067A1 (en) 2021-10-07
US11003482B2 (en) 2021-05-11
JP7417816B2 (ja) 2024-01-19
US20200274779A1 (en) 2020-08-27
US20200274808A1 (en) 2020-08-27
US10929171B2 (en) 2021-02-23
US20200272497A1 (en) 2020-08-27
US20200274778A1 (en) 2020-08-27
US20200274769A1 (en) 2020-08-27
US20200274810A1 (en) 2020-08-27
US20200274826A1 (en) 2020-08-27
US20200274945A1 (en) 2020-08-27
US20200272498A1 (en) 2020-08-27
US20200274944A1 (en) 2020-08-27
US11086654B2 (en) 2021-08-10
US20200272499A1 (en) 2020-08-27
US20200272495A1 (en) 2020-08-27
US11249784B2 (en) 2022-02-15
US11119804B2 (en) 2021-09-14
US20200274795A1 (en) 2020-08-27
US10949244B2 (en) 2021-03-16
US20230168917A1 (en) 2023-06-01
US20210311772A1 (en) 2021-10-07
CN113454598A (zh) 2021-09-28
WO2020171937A1 (en) 2020-08-27
US20200272500A1 (en) 2020-08-27
US11288088B2 (en) 2022-03-29
US20200272501A1 (en) 2020-08-27
AU2023241347A1 (en) 2023-10-26
US11042397B2 (en) 2021-06-22
US20200272493A1 (en) 2020-08-27
CA3129399A1 (en) 2020-08-27
AU2020224067B2 (en) 2023-07-06
US11397604B2 (en) 2022-07-26
US11321113B2 (en) 2022-05-03
EP3924826A1 (en) 2021-12-22
US20200274809A1 (en) 2020-08-27
US20200272496A1 (en) 2020-08-27
US11467861B2 (en) 2022-10-11
US11360796B2 (en) 2022-06-14
US11194610B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
JP7417816B2 (ja) ゲストvmモビリティを使用したサービスの提供

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231106

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20231130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231206

R150 Certificate of patent or registration of utility model

Ref document number: 7417816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150