CN113454598A - 提供具有访客vm移动性的服务 - Google Patents

提供具有访客vm移动性的服务 Download PDF

Info

Publication number
CN113454598A
CN113454598A CN202080015661.5A CN202080015661A CN113454598A CN 113454598 A CN113454598 A CN 113454598A CN 202080015661 A CN202080015661 A CN 202080015661A CN 113454598 A CN113454598 A CN 113454598A
Authority
CN
China
Prior art keywords
service
machine
data
host computer
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080015661.5A
Other languages
English (en)
Inventor
R·米什拉
C·勒屈耶
S·戈卡莱
R·奈尔
A·查尔瓦迪
Y·平
K·蒙达拉吉
P·罗兰多
J·杰恩
R·考甘提
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.)
Vmville Co ltd
Original Assignee
Vmville Co ltd
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 Vmville Co ltd filed Critical Vmville Co ltd
Publication of CN113454598A publication Critical patent/CN113454598A/zh
Pending legal-status Critical Current

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/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
    • 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
    • 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)服务转发平面。访客转发平面连接到该组中的机器,并为这些机器执行L2和/或L3转发。服务转发平面(1)连接到对发送到这些机器和从这些机器发送的数据报文执行服务的服务节点,并且(2)将这些数据报文转发到服务节点。在一些实施例中,访客机器不直接与服务转发平面连接。例如,在一些实施例中,每个转发平面通过从机器或服务节点接收数据报文或向机器或服务节点提供数据报文的端口连接到机器或服务节点。在这样的实施例中,服务转发平面不具有直接从任何访客机器接收数据报文或向任何访客机器提供数据报文的端口,相反,在一些这样的实施例中,与访客机器相关联的数据被路由到在相同主计算机上执行的端口代理模块,而该另一模块具有服务平面端口。在一些实施例中,该端口代理模块可以间接地将相同主机上的多于一个访客机器连接到服务平面(即,可以用作相同主机上的多于一个访客机器的端口代理模块)。

Description

提供具有访客VM移动性的服务
拉胡尔·米什拉,卡米尔·勒屈耶,萨西尔·戈卡莱,拉杰夫·奈尔,阿努普瑞姆·查尔瓦迪,杨平,坎特什·蒙达拉吉,皮耶路易吉·罗兰多,贾扬特·杰恩,拉朱·考甘提。
背景技术
如今的数据中心使用静态的、配置密集的方式来在不同的应用层之间以及向不同的服务层分发数据报文。目前常见的方法是将虚拟机配置为将数据包发送到虚拟IP(VIP)地址,然后使用转发规则对数据中心中的转发元件和负载均衡器进行配置,这些转发规则引导它们将VIP寻址的数据包转发到适当的应用层和/或服务层。现有的报文分发方案的另一个问题是,如今的负载均衡器通常是分布式流量的阻塞点。因此,本领域中需要一种在数据中心中在不同应用层和/或服务层之间无缝地分发数据报文的新方法。理想情况下,这个新方法将允许该分发方案易于修改而无需对传送数据报文的服务器进行重新配置。
发明内容
一些实施例提供了用于为在一个或多个数据中心中运行的机器执行服务的新颖方法。例如,对于一组相关的访客机器(例如,一组租户机器),一些实施例限定了两个不同的转发平面:(1)访客转发平面和(2)服务转发平面。访客转发平面连接到该组中的机器,并为这些机器执行L2和/或L3转发。服务转发平面(1)连接到对发送到这些机器和从这些机器发送的数据报文执行服务的服务节点,并且(2)将这些数据报文转发到服务节点。
在一些实施例中,访客机器不直接与服务转发平面连接。例如,在一些实施例中,每个转发平面通过从机器或服务节点接收数据报文或向机器或服务节点提供数据报文的端口连接到机器或服务节点。在这样的实施例中,服务转发平面不具有直接从任何访客机器接收数据报文或将数据报文提供给任何访客机器的端口。相反,在一些这样的实施例中,与访客机器相关联的数据被路由到在相同主计算机上执行的端口代理模块,并且该端口代理模块具有服务平面端口。在一些实施例中,该端口代理模块可以间接地将相同主机上的多于一个访客机器连接到服务平面(即,可以用作相同主机上的多于一个访客机器的端口代理模块)。
在一些实施例中,访客机器是服务机器或节点之外的任何机器。访客机器可以是多租户数据中心中的租户的机器,但并非必须如此。在一些实施例中,访客机器是访客虚拟机或访客容器。在一些实施例中,服务节点是服务虚拟机、服务容器或服务设备(appliance)。在一些实施例中,服务节点执行中间件(middlebox)服务操作,例如防火墙、入侵检测系统、入侵防御系统、负载均衡器、加密器、报文监视器、报文收集器或任何数量的其他中间件服务。因此,在一些实施例中,本文档中使用的服务是任何类型的中间件服务操作。
前述的发明内容旨在作为对本发明的一些实施例的简要介绍。其并不意味着是对本文件中公开的所有发明主题的介绍或概览。下面的具体实施方式和具体实施方式中引用的附图将进一步描述发明内容中描述的实施例以及其他实施例。因此,为了理解本文件所描述的所有实施例,需要全面回顾发明内容、具体实施方式、附图和权利要求书。此外,要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制。
附图说明
本发明的新颖特征在所附权利要求中阐述。然而,为了解释的目的,在以下附图中阐述了本发明的若干实施例。
图1图示了在一些实施例中由两个逻辑转发元件实现的分离的访客平面和服务平面的示例。
图2图示了沿着要由一些实施例的服务虚拟机(SVM)处理的服务路径重定向的两个访客虚拟机(GVM)之间的数据报文。
图3概念性地图示了服务链与在一些实施例中实现服务链的一个或多个服务路径的集合之间的关系。
图4图示了服务链及其关联的服务路径的示例。
图5图示了图4中图示的转发服务路径的逆向服务路径的示例。
图6图示了在一些实施例中实现服务平面的输入/输出(IO)链部件的示例。
图7图示了由一些实施例的服务索引预处理器和服务传输层调用器执行的过程。
图8图示了对应于图7中描述的过程的数据流示例。
图9图示了一些实施例的端口代理的用于对数据报文进行格式化以由第一服务节点转发的操作。
图10概念性地图示了一些实施例的用于将服务路径中的数据报文传递到下一跳的过程。
图11图示了在一些实施例中图6的服务代理在其每次接收到沿着服务节点的入口路径穿过的数据报文时执行的过程。
图12概念性地图示了一些实施例的数据报文的三个封装报头。
图13概念性地图示了在一些实施例中SVM在其每次从服务代理接收到要处理的数据报文时执行的一个示例性过程。
图14图示了一些实施例的SVM的第一映射表。
图15图示了在一些实施例中从第一跳服务节点转发到第二跳服务节点的数据报文的示例。
图16概念性地图示了在一些实施例中服务代理在其每次接收到沿着其服务节点的出口路径穿过的数据报文时执行的过程。
图17概念性地图示了由接收经封装的数据报文的下一跳计算机上的封装处理器启动的过程,该经封装的数据报文需要由在其计算机上执行的SVM进行处理。
图18图示了在一些实施例中从第二跳服务节点转发到第三跳服务节点的数据报文的示例。
图19图示了在一些实施例中从第三跳服务节点向后转发到第一跳服务节点的数据报文的示例。
图20概念性地图示了在一些实施例中服务索引后处理器执行的过程。
图21图示了一些实施例的网络服务报头。
图22图示了存储在一些实施例的元数据内容报头中的元数据内容的示例。
图23-图24图示了服务代理向SVM出口侧和入口侧转发具有封装GRE报头的GVM的数据报文的示例。
图25图示了在一些实施例中用于存储用于出口方向的服务数据的GRE报头格式。
图26图示了在一些实施例中用于存储用于入口方向的服务数据的GRE报头格式。
图27图示了两个Geneve封装报头的使用,即用于携带服务传输层数据的外部Geneve报头和用于携带服务插入层元数据的内部Geneve报头。
图28图示了组合成单个Geneve封装报头的图27的两个Genece封装报头。
图29图示了一些实施例的对象数据模型。
图30概念性地图示了在一些实施例中网络管理器和控制器执行以限定用于服务插入、下一服务跳转发和服务处理的规则的若干操作。
图31图示了在一些实施例中如何动态修改服务路径。
图32图示了一些实施例执行以限定多租户数据中心中的租户的服务平面及其相关联的服务节点的过程。
图33图示了由迁移的GVM的源主机执行的过程和由迁移的GYM的目的主机执行的过程。
图34A-图34C图示了一些实施例中的GVM迁移的示例。
图35概念性地图示了一些实施例中在GVM迁移之后由控制平面执行的操作。
图36图示了在迁移的SVM的源主机处执行的过程和在迁移的SVM的目的主机处执行的过程。
图37A-图37C图示了一些实施例中的SVM迁移的示例。
图38概念性地图示了一些实施例中在SVM迁移之后由控制平面执行的操作。
图39图示了一些实施例中的主机内SVM迁移的示例。
图40概念性地图示了用于实施本发明的一些实施例的电子系统。
具体实施方式
在本发明的以下详细说明中,阐述和描述了本发明的许多细节、示例和实施例。然而,对于本领域技术人员来说将清楚和显而易见的是,本发明不限于所阐述的实施例并且本发明可以在不具备所讨论的一些具体细节和示例的情况下实践。
一些实施例提供了用于为在一个或多个数据中心中运行的机器执行服务的新颖方法。例如,对于一组相关的访客机器(例如,一组租户机器),一些实施例限定了两个不同的转发平面:(1)访客转发平面和(2)服务转发平面。访客转发平面连接到该组中的机器,并为这些机器执行L2和/或L3转发。服务转发平面(1)连接到对发送到这些机器和从这些机器发送的数据报文执行服务的服务节点,并且(2)将这些数据报文转发到服务节点。
在一些实施例中,访客机器不直接与服务转发平面连接。例如,在一些实施例中,每个转发平面通过从机器或服务节点接收数据报文或向机器或服务节点提供数据报文的端口连接到机器或服务节点。在这样的实施例中,服务转发平面不具有直接从任何访客机器接收数据报文或将数据报文提供给任何访客机器的端口。相反,在一些这样的实施例中,与访客机器相关联的数据被路由到在相同主计算机上执行的端口代理模块,并且该另一模块具有服务平面端口。在一些实施例中,该端口代理模块可以间接地将相同主机上的多于一个访客机器连接到服务平面(即,可以用作相同主机上多于一个访客机器的端口代理模块)。
在一些实施例中,访客机器是服务机器或节点之外的任何机器。访客机器可以是多租户数据中心中的租户的机器,但并非必须如此。在一些实施例中,访客机器是访客虚拟机或访客容器。在一些实施例中,服务节点是服务虚拟机、服务容器或服务设备。在一些实施例中,服务节点执行中间件服务操作,诸如防火墙、入侵检测系统、入侵防御系统、负载均衡器、加密器、报文监视器、报文收集器或任何数量的其他中间件服务。因此,在一些实施例中,本文档中使用的服务是任何类型的中间件服务操作。
此外,如在本文件中使用的,数据报文是指跨网络发送的以特定格式的位集合。本领域的普通技术人员将认识到,在本文档中使用术语数据报文来指代跨网络发送的各种格式化的位集合。这些位的格式化可以由标准化协议或非标准化协议指定。遵循标准化协议的数据报文的示例包括以太网帧、IP数据包、TCP段、UDP数据报等。此外,如本文档中所使用的,提及L2、L3、L4和L7层(或层2、层3、层4、层7)分别是指OSI(开放系统互连)层模型的第二数据链路层、第三网络层、第四传输层和第七应用层。
图1图示了在一些实施例中由两个逻辑转发元件(LFE)130和132实现的分离的访客平面和服务平面的示例。如图所示,两个访客机器102和104和三个服务机器106、108和110以及三个软件转发元件120、122和124在三个主计算机112、114和116上执行。在该示例中,访客机器和服务机器是访客虚拟机(GVM)和服务虚拟机(SVM),但在其他实施例中,这些机器可以是其他类型的机器,例如容器。
此外,在该示例中,每个逻辑转发元件是通过在多个主计算机上配置多个软件转发元件(SFE)而实现的分布式转发元件。为此,在一些实施例中,每个SFE或与SFE相关联的模块被配置为用包含与覆盖网络相关联的虚拟网络标识符(VNI)的覆盖网络报头封装LFE的数据报文。因此,在下面的讨论中,LFE被称为跨越多个主计算机的覆盖网络结构。
在一些实施例中,LFE还跨越所配置的硬件转发元件(例如,机架交换机)。在一些实施例中,每个LFE是通过在多个主计算机上配置多个软件交换机(称为虚拟交换机或vswitch)或相关模块来实现的逻辑交换机。在其他实施例中,LFE可以是其他类型的转发元件(例如,逻辑路由器),或者形成逻辑网络或其部分的转发元件(例如,逻辑交换机和/或逻辑路由器)的任何组合。目前存在LFE、逻辑交换机、逻辑路由器和逻辑网络的许多示例,包括由VMware的NSX网络和服务虚拟化平台提供的那些。
如图所示,LFE 130限定了连接GVM 102和104的访客转发平面以便在这些GVM之间转发数据报文。在一些实施例中,该LFE是连接到逻辑路由器的逻辑交换机,其将GVM直接地或通过逻辑网关连接到逻辑交换机的逻辑网络之外的网络。在一些实施例中,LFE 130通过在主计算机112和114上配置软件交换机120和122和/或它们的相关模块(例如,相关端口/VNIC过滤器模块)来实现,以实现第一分布式逻辑交换机。
图1和下面讨论的其他图示出了源GVM和目的GVM在相同的逻辑网络上并且连接到相同的LFE。普通技术人员将意识到,一些实施例的服务操作不需要源机器和目的机器连接到相同LFE,或者甚至不需要在相同网络或相同数据中心中。对离开源机器的网络或进入源机器的网络的数据报文执行这些服务操作。这些图将源机器和目的机器描绘为连接到相同的LFE以强调服务平面132由相对于转发关联于访客机器的数据报文的逻辑网络独立的逻辑网络实现。
LFE 132限定了服务转发平面,该服务转发平面连接SVM 106、108和110,以通过包括SVM的服务路径转发与GVM相关联的数据报文。在一些实施例中,LFE 132也是逻辑交换机,该逻辑交换机通过在主计算机112、114和116上配置软件交换机120、122和124和/或其相关模块来实现,以实现第二分布式逻辑交换机。代替对SFE的相同集合进行配置以实现访客转发平面和服务转发平面(即访客LFE和服务LFE)二者,其他实施例在主计算机集合上对SFE的一个集合进行配置以实现访客转发平面,并在该主计算机集合上对SFE的另一个集合进行配置以实现服务转发平面。例如,在一些实施例中,每个主计算机执行访客软件交换机和服务软件交换机,并且这两个交换机和/或它们的相关模块可以被配置为实现访客逻辑交换机和服务逻辑交换机。
在一些实施例中,软件交换机120、122和124和/或它们的相关模块可以被配置为实现用于多组机器的多个访客转发平面(例如,访客LFE)和多个服务转发平面(例如,服务LFE)。例如,对于多租户数据中心,一些这样的实施例为需要为其实现至少一个服务链的每个租户限定了访客LFE和服务LFE。对于每组相关机器(例如,对于每个租户的机器),一些实施例限定了两个虚拟网络标识符(VNI)来对软件转发元件(例如,软件交换机)的共用的集合进行配置以实现两个不同的转发平面,即,访客转发平面和服务转发平面。下面将这两个VNI称为访客VNI(GVNI)和服务VNI(SVNI)。在图1中,访客LFE端口150和152与GVNI相关联,而服务LFE端口154、156和158与SVNI相关联,如图所示。
在一些实施例中,服务平面132还通过在GVM的去往和来自SFE120或122的入口和出口数据路径的输入/输出(IO)链中插入模块来实现。在该实施方式中,服务平面132可以识别从GVM发送或为GVM接收的数据报文,将该数据报文转发到SVM的集合以对该数据报文执行服务链,然后将该数据报文返回到GVM的数据路径,使得该数据报文可以沿其数据路径行进到软件交换机或GVM(即,使得该数据报文可以根据由源GVM指定的目的网络地址进行处理)。这种GVM在下文被称为源GVM,因为服务节点正在处理的数据报文是在GVM的出口路径或入口路径上识别的数据报文。在一些实施例中,GVM的出口/入口IO链被实现为GVM的VNIC(虚拟网络接口卡)180或与GVM的VNIC相关联的SFE端口(例如,与GVM的VNIC通信的SFE端口)中的钩子(hook)(函数调用)的集合。
在提供实现服务平面的一些实施例的IO链部件的示例之前,图2图示了如下示例:从GVM 102到GVM 104的数据报文202沿着服务平面132重定向,从而可以由执行两个服务操作的链的SVM 108和110来处理该数据报文。如图所示,服务LFE 132首先将该数据报文转发到SVM 108,然后将该数据报文转发到SVM 110,之后将该数据报文返回到GVM 102的出口路径,从而可以基于由源GVM 102指定的目的网络地址来处理该数据报文。
在一些实施例中,服务LFE通过使用存储了用于服务LFE的SVNI的覆盖封装报头来在主机112、114和116之间转发该数据报文。此外,当服务LFE为服务逻辑交换机时,一些实施例中的服务转发平面使用与SVM相关联的MAC地址(例如,SVM VNIC的MAC地址)来在服务逻辑交换机的各端口之间转发该数据报文。在一些实施例中,该MAC转发还使用与源GVM相关联的服务平面MAC地址,即使该GVM不直接连接到服务平面而是如下文进一步描述的通过端口代理连接到服务平面。
一旦数据报文202返回到GVM 102的出口路径,访客LFE 130就将该数据报文转发到其目的地(例如,如该数据报文的报头中的目的网络地址所指定的目的地),即GVM 104。在一些实施例中,访客LFE 130通过使用存储了用于访客LFE的GVNI的覆盖封装报头来在主机112和114之间转发该数据报文。此外,当访客LFE是逻辑交换机时,一些实施例中的访客转发平面使用与GVM 102和104相关联的访客平面MAC地址来转发该数据报文(例如,通过使用GVM 104的访客平面MAC地址以将该数据报文转发到与此GVM相关联的访客转发端口152)。虽然图2的服务平面捕获了传递通过GVM的出口路径的数据报文,但在一些实施例中,服务平面也可以在数据报文传递通过GVM的入口路径时在该数据报文到达GVM的VNIC之前捕获该数据报文。
在一些实施例中,服务操作的链被称为服务链。在一些实施例中,服务链可以用服务节点(例如,服务机器或设备)的一个或多个集合来实现,其中服务节点的每个集合限定一个服务路径。因此,在一些实施例中,服务链可以由一个或多个服务路径中的每个服务路径来实现。在一些实施例中,每个服务路径包括用于执行服务链的一个或多个服务的集合的一个或多个服务节点以及通过这些节点的特定顺序。
图3呈现了对象图,该对象图图示了服务链302和实现该服务链的包括一个或多个服务路径304的集合之间的关系。每个服务链具有服务链(SC)标识符306,而每个服务路径具有服务路径标识符(SPI)308。每个服务路径与m个服务节点的集合相关联,其如图所示关于服务实例端点310被识别。在一些实施例中,服务实例端点是网络中的逻辑位置,服务实例端点处的流量可以去往或来自连接到服务平面的服务节点。在一些实施例中,服务实例端点是与服务节点相关联的一个LFE端口(例如,SFE端口)(例如,SVM的VNIC)。在这些或其他实施例中,服务实例端点可以与用于服务节点的两个LFE端口相关联,如下面针对使用GRE封装的实施例所进一步描述的。此外,在一些实施例中,服务端点可通过与LFE端口相关联的MAC地址或与关联于这些LFE端口的SVM VNIC(例如,与这些LFE端口通信)相关联的MAC地址来寻址。
在一些实施例中,每个服务链302通过对一个或多个服务配置文件(serviceprofile)312的引用来限定,其中每个服务配置文件与该链中的服务操作相关联。如下所述,一些实施例中的服务节点(1)从服务管理器接收服务链标识符至其必须实现的服务配置文件的映射,以及(2)利用数据报文接收服务链标识符,将其映射到服务配置文件以确定其必须执行的服务操作。在一些实施例中,接收到的映射不仅基于服务链标识符(SCI),还基于服务索引值(其指定了服务节点在服务路径中的位置)和通过服务链的方向(其指定了执行由服务链指定的服务的序列的顺序)。一些实施例中的服务配置文件描述了服务节点必须执行的服务操作。在一些实施例中,服务配置文件可以识别用于服务节点的规则的集合以进行检查。
此外,在一些实施例中,服务插入规则314是通过引用用于与GVM相关联的服务插入模块的服务链标识符306而限定的。这样的服务插入模块使用这些服务插入规则314来识别用于处理与源GVM相关联的数据报文的服务链。如上所述,数据报文在下文被称为来自源GVM,因为由服务链处理的数据报文在来自GVM的出口路径或前往GVM的入口路径上被识别。
如下文进一步描述的,服务插入(SI)规则将流标识符与服务链标识符相关联。换言之,一些实施例尝试将数据报文的流属性与服务插入规则的流标识符(以下称为SI规则的规则标识符)进行匹配,以识别匹配的服务插入规则(即,具有与数据报文的流属性相匹配的流标识符的集合的规则)并将该匹配规则的指定服务链分配为该数据报文的服务链。指定的流标识符(例如,通过引用五元组标识符限定的流标识符)可以识别一个指定的数据报文流,而更通用的流标识符(例如,通过引用少于五元组而限定的流标识符)可以识别与更通用的流标识符匹配的若干个不同的数据报文流的集合。因此,匹配的数据报文流是具有与服务插入规则的规则标识符相匹配的属性的共用集合的数据报文的任何集合。
如下面进一步描述的,其他实施例使用与数据报文流相关联的上下文属性来使数据报文与服务插入规则相关联。在美国专利申请15/650,251中描述了用于捕获和使用上下文属性以执行转发和服务操作的多种技术,其并入本文。这些技术中的任何一种都可以与这里描述的实施例结合使用。
在一些实施例中,下一跳转发规则316是通过引用SPI值308和服务实例端点310来限定的。具体地,在一些实施例中,为已经针对数据报文识别的服务链选择服务路径。在每一跳,这些实施例使用转发规则314基于该服务路径的SPI值连同当前服务索引(SI)值来识别下一个服务实例端点,该当前服务索引(SI)值识别该跳在服务路径中的位置。换言之,一些实施例中的每个转发规则具有关于SPI/SI值限定的匹配标准的集合,并且指定与这些SPI/SI值相关联的下一跳服务实例端点的网络地址。为了优化针对第一跳的下一跳查找,一些实施例向源GVM的服务插入模块提供带有SPI的下一跳网络地址,作为服务路径选择过程的一部分。
图4图示了服务链及其相关联的服务路径的示例。如图所示,在一些实施例中,每个服务链405被限定为服务配置文件410的顺序列表,在该示例中,每个配置文件与不同的中间件服务(例如防火墙、负载均衡器、入侵检测器、数据报文监视器等)相关。此外,在该示例中,M个配置文件中的每一个配置文件可以由VM的集群m中的一个SVM实现。如图所示,不同配置文件的不同集群可以具有不同数量的SVM。此外,在一些实施例中,一个服务配置文件由一个服务节点实现(即,不需要若干个服务节点的集群来实现服务配置文件)。
由于集群中的多个SVM可以提供特定的服务,一些实施例为给定的服务链限定了通过SVM的多个不同组合的多个服务路径,每个组合中使用每个集群的一个SVM。在图4的示例中,存在源自GVM402的数据报文在去往GVM 404的途中穿过的与服务链405相关联的N个服务路径。每个服务路径由图中虚线的不同集合来标识。
具体地,第一服务路径经过第一服务配置文件的集群的第一SVM1,1以实现正向服务链405的第一个服务,经过第二服务配置文件的集群的第一SVM 2,1以实现正向服务链405的第二个服务,并经过第M服务配置文件的集群的第三SVM M,3以实现正向服务链405的第M个服务。第二服务路径经过第一服务配置文件的集群的第二SVM 1,2以实现正向服务链405的第一个服务,经过第二服务配置文件的集群的第一SVM 2,1以实现正向服务链405的第二个服务,并经过第M服务配置文件的集群的第一SVM M,1以实现正向服务链405的第M个服务。
第三服务路径经过第一服务配置文件的集群的第三SVM 1,3以实现正向服务链405的第一个服务,经过第二服务配置文件的集群的第二SVM 2,2以实现正向服务链405的第二个服务,并经过第M服务配置文件的集群的第二SVM M,2以实现正向服务链405的第M个服务。第N服务路径经过第一服务配置文件的集群的第三SVM 1,3以实现正向服务链405的第一个服务,经过第二服务配置文件的集群的第二SVM 2,2以实现正向服务链405的第二个服务,并经过第M服务配置文件的集群的第四SVM M,4以实现正向服务链405的第M个服务。如示例所图示的,对于给定的服务操作,不同的服务路径可以使用相同的SVM。然而,不管给定的数据报文穿过的服务路径如何,对于与相同服务链和相同服务方向相关联的路径,以相同的顺序执行服务操作的相同集合。
在一些实施例中,对于从第一GVM到第二GVM的数据报文必须在正向方向上执行服务链,然后对于从第二GVM到第一GVM的数据报文必须在相反方向上执行服务链。在一些这样的实施例中,服务平面在其处理从第一GVM到第二GVM的流中的第一数据报文时,选择用于正向的服务路径和用于逆向的服务路径。此外,在这些实施例中的一些实施例中,正向和逆向服务路径由服务节点的相同集合以相反的顺序实施。
图5图示了图4中图示的转发服务路径的逆向服务路径的示例。正向服务路径用于对从GVM 402到GVM 404的数据报文执行M个服务,而逆向服务路径用于对从GVM 404到GVM402的数据报文执行M个服务。此外,这些服务是逆向的,图5中的服务路径执行服务配置文件M到1,而图4中的服务路径执行服务配置文件1到M。
此外,在图4和图5的示例中,每个逆向服务路径都具有一个对应的正向服务路径,其由SVM的完全相同的集合实现,但以相反的顺序,如服务路径图例和这些图中的类似的虚线所标示的。例如,正向的第二服务路径经过与第一配置文件相关联的第一个服务的SVM1,2、与第二配置文件相关联的第二个服务的SVM 2,1以及与第M服务配置文件相关联的第M个服务的SVM M,1,而相关联的逆向的第二服务路径经过与第M服务配置文件相关联的第一个服务的SVM M,1、与第二配置文件相关联的第二个服务的SVM 2,1以及与第一配置文件关联的第二个服务的SVM 1,2。
在一些实施例中,相同的服务节点用于正向和逆向路径,因为实现服务配置文件之一的服务节点(例如,防火墙SVM)中的至少一个服务节点需要查看两个数据端点(例如,两个GVMS)之间的两个方向上的数据流量。在其他实施例中,相同的服务节点不需要用于两个数据端点之间的数据报文流的两个方向,只要以相反的顺序执行服务操作的相同集合即可。
图6图示了在一些实施例中实现服务平面的IO链部件的示例。如图所示,服务平面132由在主计算机上执行的软件交换机120、122和124以及这些计算机上的模块610、612、614、620、624、626和628的两个集合来实现。本示例中的实现的服务平面以及一些后续图中所图示的其他一些示例是覆盖逻辑L2服务平面。普通技术人员将认识到,其他实施例由其他类型的服务平面实现,例如覆盖L3服务平面,或者具有多个L2逻辑交换机和一个或多个逻辑L3路由器的覆盖网络。
在图6中,软件交换机120、122和124以及模块610、612、614、620、624、626和628实现服务平面的两个不同层,即服务插入层602和服务传输层604。服务插入层602(1)识别数据报文的服务链,(2)选择用于执行该服务链的服务操作的服务路径,(3)识别所选服务路径中每一跳处的下一跳服务节点(包括对在完成服务链后数据报文所应返回至的源主计算机的识别)以及(4)对于该服务路径,为该数据报文指定服务元数据(SMD)报头属性。在一些实施例中,SMD属性包括根据IETF(互联网工程任务组)的RFC(注释请求,Request forComments)8300的网络服务报头(NSH)属性。
另一方面,服务传输层604制定服务覆盖封装报头并用该报头封装数据报文,从而该数据报文可以在服务跳之间传递。在一些实施例中,服务传输层604修改SMD报头以产生服务覆盖封装报头。例如,在这些实施例的一些中,覆盖封装报头是Geneve报头,其中SMD属性存储在Geneve报头的TLV(类型、长度、值)部分中。在其他实施例中,服务传输层604将服务覆盖封装报头添加到首先用于封装数据报文的SMD报头。此外,当在相同主计算机上执行的两跳之间(例如,在两个服务节点之间)穿过时,在一些实施例中,下面描述的若干实施例中的服务传输层未用覆盖封装报头来封装数据报文。在其他实施例中,即使在相同主计算机上的两跳之间穿过时,服务传输层也用覆盖封装报头封装数据报文。
在一些实施例中,服务插入(SI)层602包括SI预处理器610和SI后处理器612,针对其在GVM的两个IO链650和652(即,出口IO链650和入口IO链652)中各自限定了一个或多个服务链。SI层602还包括用于连接到服务平面的每个服务节点(例如,用于具有与服务平面LFE端口配对的VNIC的每个SVM)的服务代理614。服务传输(ST)层604包括每个主计算机上的一个STL端口代理620,其具有一个或多个可能的源GVM,为该源GVM限定了一个或多个服务链。ST层604还具有(1)每个源GVM的每个IO链中的STL调用器624、(2)每个SVM的IO链中的STL模块626、以及(3)一个或多个封装处理器628。
对于通过GVM的入口或出口数据路径的数据报文,该数据路径上的SI预处理器610执行若干操作。该预处理器为数据报文识别服务链,并为识别出的服务链选择服务路径。该预处理器还识别所选服务路径中第一跳服务节点的网络地址,并指定数据报文的SMD属性。在一些实施例中,SMD属性包括服务链标识符(SCI)、SPI和SI值以及用于处理服务链的服务操作的方向(例如,正向或逆向)。在一些实施例中,SPI值识别了服务路径,而SI值指定了服务节点的数量。
在SI预处理器完成其操作后,相同数据路径中的STL调用器624调用STL端口代理620以中继预处理器识别的SMD属性和第一跳的网络地址,使得端口代理可以通过服务平面将SMD属性转发到第一跳。端口代理对数据报文进行格式化以转发到第一服务节点。在一些实施例中,该格式化包括用与源GYM 102相关联的服务平面MAC地址和第一跳服务节点的MAC地址替换数据报文中的原始的源MAC地址和目的MAC地址。该格式化还为应由相同主计算机上的其他服务传输层模块(例如,其他STL模块等)处理的数据报文存储属性的集合。这些数据报文属性包括SMD属性以及原始的源MAC地址和目的MAC地址。
STL端口代理620将格式化的数据报文及其所存储的属性一起传递给软件交换机120。基于格式化的数据报文的目的MAC地址(即,第一跳MAC地址),软件交换机将该数据报文递送到与第一跳SVM关联的交换机端口。当第一跳在与端口代理620相同的主计算机上时,数据报文被提供给相同主计算机上的第一跳的服务节点的入口IO链中的STL模块626。当第一跳不在相同的主计算机上时,将数据报文用封装报头封装并转发到下一跳,如下文进一步描述。
每一跳的STL模块626通过用数据报文的原始的源MAC地址和目的MAC地址替换服务平面源MAC地址和服务平面目的MAC地址(即,其服务节点的MAC地址)来重新格式化该数据报文。然后该模块将该重新格式化的数据报文连同其伴随的SMD属性传递到其跳的服务代理614。该服务代理在GVM的入口数据路径的IO链中。为了防止图6中的图示因不必要的细节而过于复杂,与GVM 102的入口路径和出口路径650和652不同,该示例中的每个SVM的入口路径和出口路径在该图中被组合。
服务代理614用存储了数据报文的SMD属性的封装NSH报头来封装接收到的数据报文,并在其服务节点可以支持NSH报头时将这个经封装的数据报文提供给该服务节点。当该服务节点是SVM时,一些实施例中的服务代理通过VNIC注入过程将数据报文及其NSH报头提供给SVM的VNIC,如下文进一步描述的。当服务节点无法处理NSH报头时,服务代理614将SMD属性存储到传统(legacy)QinQ封装报头或GRE封装报头中,然后将经封装的数据报文传递给SVM的VNIC。下面将进一步描述这些报头。
在一些实施例中,每个服务跳的服务代理614将用于该跳的服务节点与服务传输层分离。这种分离提高了SVM和服务传输层的安全性。该分离还允许服务代理确保提供给其SVM的数据报文被适当格式化,这对于不支持较新的NSH格式的传统SVM尤其重要。
在一些实施例中,服务代理614还与其服务节点执行活动性(liveness)检测信令以确保服务节点是可操作的。在一些实施例中,服务代理在每个循环时间段中至少一次向其服务节点发送具有活动性值的数据报文。为此,服务代理设置并重置计时器以确保其已将每个时间段的活动性信号发送到其服务节点。每个活动性值都伴随有活动性序列号,以允许服务代理跟踪由SVM提供的活动性响应。服务节点每次回复活动性信号时,其在一些实施例中在响应数据报文中向服务代理提供相同的活动性值,或者在其他实施例中在响应数据报文中提供其对应值。另外,对于每个活动性响应数据报文,服务节点在一些实施例中提供相同的序列号,或者在其他实施例中提供由服务代理提供的序列号的递增版本。
如下文进一步描述的,一些实施例的服务代理在其从服务转发平面传递到其服务节点的每个数据报文上搭载了服务代理的一些活动性检测信令。服务代理每次向其服务节点发送活动性信号时,都会重置其活动性计时器。每次服务节点处理数据报文时,都会将处理后的数据报文与响应的活动性值和关联的序列号(在一些实施例中递增,或在其他实施例中不递增,如上所述)一起返回到服务节点。
在一些实施例中,当服务节点在特定的时间(例如,0.3秒内)内没有响应服务代理的活动性信号时,服务代理登记活动性检测失败。在登记两次连续的活动性检测失败之后,在一些实施例中,服务代理将SVM已出故障通知给在其主机上执行的本地控制平面(LCP)模块,从而LCP可以通知中央控制平面(CCP)服务器。响应于这样的通知,CCP从数据平面的转发和路径选择规则中移除SVM和SVM所位于的服务路径,并且如果需要,为故障的SVM的相关联的服务链生成额外的服务路径。此外,在一些实施例中,服务代理将带内(in-band)数据报文发送回到源GVM以将其分类器编程为不选择故障服务节点所在的服务路径。
在一些实施例中,服务代理还应其服务节点的要求执行流编程。在一些实施例中,该流编程涉及修改源GVM的IO链如何选择服务链、服务路径和/或沿服务路径转发数据报文流。在其他实施例中,该流编程涉及对数据报文流如何由服务平面处理的其他修改。下面将进一步描述流编程。
在接收到数据报文及其SMD属性(在封装NSH报头或一些其他封装报头中)时,SVM执行其服务操作。在一些实施例中,SVM使用从其服务管理器接收的映射记录来将SMD属性中的SCI、SI和方向值映射到服务配置文件,然后将该服务配置文件映射到其规则集合之一,然后对其进行检查以识别用于处理的一个或多个服务规则。在一些实施例中,每个服务规则具有关于数据报文属性(例如,五元组属性,即源和目的IP地址、源和目的端口地址以及协议)限定的规则标识符。一些实施例中的SVM将规则的标识符与数据报文的属性进行比较以识别匹配规则。在识别一个或多个匹配规则时,一些实施例中的SVM执行由最高优先级匹配规则指定的动作。例如,防火墙SVM可以指定数据报文应该被允许通过、应该被丢弃和/或应该被重定向。
一旦SVM完成了其服务操作,SVM就沿其出口数据路径转发数据报文。出口数据路径的IO链中的服务代理然后捕获此数据报文,并针对此数据报文,识别服务路径中下一跳的网络地址。为此,在一些实施例中,服务代理递减SI值,然后使用该递减的值连同数据报文的所存储的属性集合中的SPI值来识别用于识别出下一跳网络地址的完全匹配转发规则。在一些实施例中,SVM可以递减SI值。对于这种情况,一些实施例中的服务代理可以被配置为当其对应的SVM递减SI值时不递减SI值。
在任一配置中,服务代理通过使用适当的SPI/SI值识别可适用于数据报文的下一跳转发规则来识别下一跳网络地址。当代理的服务节点在多个服务路径上时,代理的转发规则存储装置中存储了多个完全匹配的转发规则,这些完全匹配的转发规则可以为与不同服务路径关联的不同SPI/SI值指定不同的下一跳网络地址。假设递减的SI值不为零,则服务路径中的下一跳是另一个服务节点。因此,在一些实施例中,代理在SVM的出口数据路径中向代理的相关联STL模块626提供下一跳的MAC地址。这个模块然后通过如下操作来重新格式化数据报文:将SVM的MAC地址和下一跳的MAC地址指定为源MAC地址和目的MAC地址,并将数据报文的原始源MAC地址和目的MAC地址存储在为数据报文存储的属性的已存储的集合中。STL模块626然后沿着出口路径转发数据报文,该数据报文通过出口路径到达软件交换机,然后该软件交换机必须将该数据报文及其存储的属性转发到下一跳服务节点。
当下一跳在相同主计算机上时,软件交换机将数据报文及其属性传递到与下一跳的服务节点的STL模块连接的端口,如上所述。另一方面,当下一跳服务节点在另一主计算机上时,软件交换机向连接到VTEP(VXLAN隧道端点)的上行链路端口提供数据报文,该VTEP通过覆盖网络隧道与另一主计算机上的VTEP通信。封装处理器628然后沿该端口的出口路径捕获该数据报文,为该数据报文限定封装覆盖报头并用该覆盖报头封装该数据报文。在一些实施例中,覆盖报头是存储了SMD和STL属性这两者的单个报头。例如,在一些实施例中,覆盖报头是将SMD和STL属性存储在一个或多个TLV中的Geneve报头。
如上所述,一些实施例中的SMD属性包括SCI值、SPI值、SI值和服务方向。此外,在一些实施例中,STL属性包括源GVM的原始L2源MAC地址、原始L2目的MAC地址、数据报文方向和服务平面源MAC地址。在一些实施例中,服务方向和服务平面源MAC地址已经是SMD属性的一部分。在一些实施例中,服务传输层需要这些属性以及每个处理过的数据报文,以便重新创建原始数据报文,并且稍后在服务路径的末端将数据报文返回到原始主机以沿其数据路径重新开始。
当在下一跳的主计算机处接收到经封装的数据报文时,数据报文由软件交换机的下行链路端口的封装处理器628捕获,该下行链路端口连接到从前一跳的VTEP接收该数据报文的VTEP。该封装处理器从数据报文中去除封装报头,并将STL和SMD属性存储为数据报文的属性的集合。然后该封装处理器将解封装的报文传递到下行链路端口,该下行链路端口然后将该报文传递给软件交换机以转发到下一跳的交换机端口。从那里,数据报文在到达服务节点之前由STL模块和服务代理处理,如上所述。
当服务代理确定递减的SI值为零时,服务代理将递减的SI值和嵌入的SPI值与引导服务代理将下一跳识别为源GVM的服务平面MAC地址的规则相匹配。在一些实施例中,该确定不是由转发表的转发条目指定,而是硬编码到服务代理的逻辑中。因此,当SI值为零时,代理将源GVM的服务平面MAC地址提供给其相关联的STL模块626,以用于将数据报文转发回到GVM的主计算机。STL模块然后将报文的目的MAC(DMAC)地址限定为源GVM的服务平面MAC地址,同时将报文的源MAC(SMAC)地址限定为与其服务节点关联的服务平面MAC地址(例如,与服务节点关联的软件交换机的端口的服务平面MAC)。代理还将数据报文的原始SMAC和DMAC存储在数据报文的属性集合中。
STL模块然后沿着出口路径传递格式化的数据报文及其属性,该数据报文通过该出口路径到达其相关联的软件交换机端口。然后,软件交换机将此报文传递到其上行链路端口。该端口的封装处理器628然后捕获该数据报文,为该数据报文限定封装覆盖报头,并用该覆盖报头封装该数据报文。如上所述,这个覆盖报头是Geneve头,其将SMD和STL属性存储在一个或多个TLV中。这个经封装的数据报文然后穿过覆盖网络到达源GVM的主计算机,在那里这个数据报文由下行链路端口的封装处理器解封装,然后提供给软件交换机,然后该软件交换机将其转发到端口代理。
一旦端口代理620接收到解封装的数据报文,其就识别与来自原始源MAC地址的此数据报文相关联的GVM,该原始源MAC地址现在是解封装的数据报文的所存储的属性的一部分。在一些实施例中,端口代理具有将所接收数据的SMD属性中的原始源MAC地址和服务方向映射到其主机上的GVM(例如,映射到与访客转发平面相关联的软件交换机端口以及其主机上的GVM)的记录。然后,端口代理将数据报文格式化以包括其原始SMAC和DMAC,并将该数据报文提供回到源GVM的IO链。该IO链中的SI后处理器612然后处理该数据报文,之后将该数据报文返回到GVM的出口数据路径。下面将进一步描述该后处理器的操作。
普通技术人员将意识到,其他实施例中的服务插入层和服务传输层的实现方式与上述示例性实现方式不同。例如,代替使用依赖于MAC地址来穿过不同服务跳的L2覆盖(L2传输层),其他实施例使用L3覆盖(L3传输层),其使用L3和/或L4网络地址来识别连续服务跳。此外,上述服务插入模块和/或服务传输模块可以被配置为不同地操作。
现在将参考图7-图19描述服务插入层和服务传输层的操作的更详细示例。图7图示了由一些实施例的SI预处理器610和STL调用器624执行的过程700。下面参考图8所示的数据流示例描述该过程。过程700始于当调用SI预处理器610以分析沿GVM的入口路径或出口数据路径发送的数据报文时。
如图所示,过程700最初确定(在705处)预处理器610是否已经预先为数据报文的流选择了服务链和服务路径,并为所选择的服务链和路径存储了SMD属性。在一些实施例中,过程700通过使用数据报文的属性(例如,其五元组属性)来尝试在存储已为其预先选择了服务链和路径的报文流的记录的连接跟踪器中识别报文的流的记录来进行该确定,并且预先在连接跟踪器记录中为这些链和路径存储了SMD属性。
图8图示了沿着GVM 102的出口数据路径接收数据报文802的预处理器610。图8还示出了预处理器,该预处理器最初检查连接跟踪存储装置804以尝试找到具有与接收到的数据报文的属性的集合(例如,五元组属性)相匹配的流标识符(例如,五元组标识符)的连接记录。在该示例中,预处理器610无法找到这样的连接记录,因为接收到的数据报文是其流的第一数据报文。
当过程700确定(在705处)连接存储装置804具有与接收到的数据报文匹配的连接记录时,该过程从该记录或从匹配连接记录所引用的另一记录中检索(在710处)SMD属性。一些实施例中的SMD属性包括SCI、SPI、SI和方向值。该过程从710转变到740,这将在下面描述。
另一方面,当过程700确定(在705处)连接存储装置804不具有与接收到的数据报文匹配的连接记录时,该过程执行(在715处)分类操作,该分类操作试图将数据报文与SI规则存储装置(在图8中被图示为存储装置806)中的服务插入规则进行匹配。在一些实施例中,SI规则存储装置806存储具有关于一个或多个数据报文流属性(例如,五元组属性中的一个或多个或其部分)限定的规则标识符的服务插入规则822。每个服务规则还指定了SCI,该SCI识别可适用于与服务规则的规则标识符相匹配的数据报文流的服务链。
在720处,该过程确定分类操作是否将数据报文的属性与要求对数据报文执行服务链的服务插入规则的规则标识符相匹配。当分类操作没有识别出要求对数据报文执行服务链的服务插入规则时,过程700结束。在一些实施例中,当数据报文的属性不匹配任何更高优先级的SI规则时,SI规则存储装置806具有匹配任何数据报文的默认低优先级规则,并且该默认低优先级规则指定了未对数据报文的流限定服务链。在一些实施例中,当不需要对数据报文流执行服务操作时,不为数据报文流限定服务链。
另一方面,当分类操作将数据报文的属性与要求对数据报文执行服务链的服务插入规则的规则标识符匹配时,过程700执行(725)路径选择操作以选择由在715识别的服务插入规则指定的服务链的服务路径。如图8所示,预处理器610通过检查对每个服务链标识符识别一个或多个服务路径的路径存储表808来执行路径选择操作。
每个服务路径是关于其SPI值指定的。当为服务链指定了多个服务路径时,路径存储装置808为每个服务链存储用于从可用SPI中选择一个SPI的选择度量820的集合。不同的实施例使用不同的选择度量。例如,一些实施例使用选择度量,该选择度量基于服务路径的服务节点在其上执行的主机的数量而花费服务路径。在其他实施例中,这些选择度量是权重值,其允许预处理器以由这些权重值指示的负载均衡方式为服务链选择SPI。例如,在一些实施例中,这些权重值由中央控制平面基于该服务路径中的服务节点中的每个服务节点上的负载和/或基于其他花费(诸如该服务路径所穿过的主机的数量等)而生成。
在这些实施例中的一些中,预处理器保持其已为特定的服务链做出的先前选择的记录,并基于这些先前选择来选择后续服务路径。例如,对于四个服务路径,权重值可以是1、2、2、1,这指定了在服务链的六个连续SPI选择上,第一个SPI应该被选择一次,然后第二个和第三个SPI应该各被选择两次,第四个SPI应该被选择一次。此服务链的下一个SPI选择然后将选择第一个SPI,因为选择机制是循环赛(round robin)。
在其他实施例中,权重值与数值范围(例如,哈希值的范围)相关联,并且为每个数据报文流随机或确定性地生成数字以将该数据报文流映射到数值范围并且从而映射到其相关联的SPI。在其他实施例中,主机LCP从可用服务路径的池中为每个服务链标识符选择一个服务路径,因此在路径表808中为每个SCI只存储一个SPI。这些实施例中的LCP基于花费来选择每个服务链的服务路径(例如每个服务路径所穿过的主机的数量和/或服务路径的服务节点上的负载)。
在为所识别的服务链识别服务路径之后,过程700接下来识别(在730处)所选择的服务路径的第一跳的网络地址。在一些实施例中,该跳的MAC地址被存储在与所选择的路径的SPI相同的记录中。因此,在这些实施例中,该MAC地址是用所选择的SPI从路径选择存储装置808检索的。在其他实施例中,预处理器从完全匹配转发表810中检索第一跳的MAC地址,该转发表810存储了相关联的SPI/SI值对的下一跳网络地址,如图8所示。在一些实施例中,服务链的初始SI值存储在SI规则存储装置806的SI规则中,而在其他实施例中,这些初始SI值与该SPI值一起存储在该路径表808中。
在735处,过程700指定数据报文的SMD属性,并将这些属性与数据报文相关联。如上所述,在一些实施例中,SMD属性包括SCI、SPI、SI和方向值。因为通过服务链的方向取决于服务路径,所以服务路径的服务方向与SPI值一起存储在路径表808中。此外,如下所述,在一些实施例中,服务链对于从第一GVM到第二GVM的数据报文必须在正向方向上执行,并且然后对于从第二GVM到第一GVM的数据报文在逆向方向上执行。对于这样的服务链,预处理器610在其处理从第一GVM到第二GVM的流中的第一数据报文时,选择用于正向的服务路径和用于逆向的服务路径两者。
在SI预处理器完成其操作后,相同数据路径中的STL调用器624调用(在740处)STL端口代理620来中继预处理器识别的SMD属性和第一跳的网络地址,从而端口代理可以通过服务平面将SMD属性转发到第一跳。将参考图9-图19来描述端口代理620以及服务插入层和服务传输层中的其他模块的操作。这些图描述了通过服务路径处理来自GVM 102的数据报文的示例,该服务路径包括SVM 106,然后是SVM 108,然后是SVM 110。
在这些图中,每个GVM是多租户数据中心中的租户的计算机,并且通过与租户的访客VNI(GVNI)相关联的交换机端口连接到软件交换机。此外,在这些图中,每个SVM都是用于处理GVM报文流量的服务机器,并通过与租户的服务VNI(SVNI)相关联的交换机端口连接到软件交换机。如上所述和下文进一步描述,一些实施例使用GVNI来为租户执行访客逻辑转发操作(即,建立访客逻辑转发元件,例如,逻辑交换机或路由器,或访客逻辑网络),同时使用SVNI为租户执行服务逻辑转发操作(即,建立服务逻辑转发元件,例如,逻辑交换机或路由器,或服务逻辑网络)。
在一些实施例中,这些逻辑网络标识符(即,GVNI和SVNI)都是由管理或控制平面为租户生成的。一些实施例的管理或控制平面为不同的租户生成不同的GVNI和SVNI,使得没有两个租户具有相同的GVNI或SVNI。在一些实施例中,每个SVM专用于一个租户,而在其他实施例中,一个SVM可以由多个租户使用。在多租户情况下,每个SVM可以连接到用于不同租户的不同服务平面(例如不同的逻辑交换机)的不同端口。
如图9所示,端口代理620通过用与源GVM 102相关联的服务平面MAC地址和第一跳服务节点的MAC地址替换数据报文中的原始源MAC地址和目的MAC地址来格式化用于转发到第一服务节点的数据报文。该操作被描绘为图10的过程1000中的操作1005。该过程1000是每当SI模块(例如SI预处理器610或SI代理614)完成对数据报文的处理时端口代理620或STL模块626开始的过程。
在这个过程1000中,端口代理还将(在1010处)数据报文的原始源MAC地址和目的MAC地址添加到应该由相同主计算机上的其他服务传输层模块(例如,vswitch、其他STL模块、封装处理器等)处理的数据报文的属性的集合中。图9中描绘了重新格式化的数据报文902和增强的属性化集合904。
在重新格式化数据报文并增强其属性集合之后,端口代理620将格式化的数据报文连同其存储的属性集合沿其出口路径传递(在1015处),数据报文通过该出口路径到达软件交换机120。基于格式化的数据报文的目的MAC地址(例如,第一跳MAC地址),软件交换机确定(在1020处)下一跳的端口是否是本地的。这是图9所图示的示例的情况。因此,软件交换机将数据报文递送(在1025处)到与第一跳SVM 106相关联的交换机端口。然后该端口沿着SVM的入口路径发送数据报文,其中数据报文902及其增强的属性集合904由STL模块626通过第一跳的SVM的入口IO链的函数调用来识别,如图9所示。
该STL模块626然后通过用其从增强的属性集合904检索到的该数据报文的原始源MAC地址和目的MAC地址替换GVM的服务平面MAC地址和第一跳MAC地址(即,SVM 106的MAC地址)来重新格式化(在1030处)该数据报文。在检索原始SMAC和DMAC地址时,STL模块626修改数据报文的属性集合。图9中描绘了重新格式化的数据报文906和修改的属性化集合908。然后STL模块沿着SVM的入口路径传递这个重新格式化的数据报文及其伴随的SMD属性,其中随后由该跳的入口服务代理614处理该数据报文。
图11图示了在一些实施例中服务代理614在其每次接收到沿着服务节点的入口路径穿过的数据报文时执行的过程1100。如图所示,如果需要,服务代理最初制作(在1105处)数据报文的副本。例如,在一些实施例中,服务节点只需要接收数据报文的副本来执行其操作。此类服务节点的一个示例是需要为其报文监控操作或镜像操作获取数据报文副本的监控SVM。
在这些实施例中,服务代理复制数据报文并执行关于该副本的剩余操作1110-1125,同时将原始数据报文传递到下一个服务跳或传递回到源GVM。为了将原始数据报文转发到下一个服务跳或转发回到GVM,服务代理必须基于SPI/SI值执行下一跳查找,然后提供下一跳地址(例如,下一个服务跳的地址或源GVM的服务平面MAC)给STL模块进行转发。这些查找和转发操作类似于下面参考图15-图17所描述的那些操作。
接下来,在1110处,服务代理在数据报文的所存储的SMD属性集合中设置活动性属性(在一些实施例中,该数据报文可以是此点处的数据报文副本)。该活动性属性是引导服务节点在其处理完数据报文后向数据报文提供响应活动性值(相同值或相关值)的值。对该活动性属性,服务代理还向响应活动性值提供序列号,服务节点必须返回该序列号,或递增并返回该序列号,如上所述。
在1115处,如果需要,服务代理将数据报文格式化以将其转为可以由服务节点处理的形式。例如,当服务节点不知道被设置为数据报文的目的MAC的当前的下一跳MAC时,服务代理将报文的目的MAC改变为与服务节点相关联的目的MAC。
在格式化数据报文以对其进行清理(sanitize)以转发到服务节点之后,服务代理614用其可以被配置为使用的三个封装报头之一来封装(在1120处)该数据报文,并沿着服务节点的入口路径传递(在1125处)该经封装的报文,以便该报文可以被转发到服务节点。图9图示了从服务代理传递到具有原生(native)NSH封装报头的SVM 106的经封装的数据报文920。如图所示,封装报头922包括服务链标识符、服务索引、服务链方向和活动性信号。
图12图示了一些实施例的三个封装报头,即(1)用于支持NSH的服务节点的原生NSH封装报头1205,(2)用于不支持NSH的传统服务节点的GRE封装报头1210,以及(3)用于不支持NSH的传统服务节点的QinQ封装报头1215。原生NSH报头用以下面参考图21和图22描述的格式来存储服务元数据。下面将参考图25-图26进一步描述GRE报头格式。在GRE和QinQ两种格式中,一部分服务元数据被存储在GRE和QinQ报头字段中,但服务元数据不能像在原生NSH报头中那样丰富地存储。QinQ报头用于不需要很多服务元数据的简单的传统服务节点,例如,只需要服务链标识符和服务方向,或者服务链标识符和服务索引。该服务元数据被存储在QinQ报头的VLAN报头字段中。
除了三种不同类型的封装报头1205、1210和1215之外,图12还图示了一些实施例的SVM的vmxnet3半虚拟化(paravirtualized)NIC 1240。如图所示,该NIC可以将经封装的数据报文提供给SVM的DPDK驱动器1204的轮询模式驱动器1202,或者中断模式驱动器1204。具体地,取决于在SVM中使用的驱动器,vmxnet3半虚拟化NIC可以被配置为在不同的操作模式下操作。轮询模式驱动器1202可以被看作是DPDK(数据平面开发工具包)驱动器1206的后端。轮询模式驱动器定期轮询VNIC以获取要检索的数据报文,同时VNIC产生中断以使得基于中断的驱动器1204检索数据报文。
轮询模式驱动器将数据报文传递给DPDK驱动器1206,然后该DPDK驱动器1206在最初接收到流时将该数据报文传递给用户空间中的报文处理模块。另一方面,基于中断的驱动器1204向内核或用户空间中的报文处理模块1212提供数据报文。SVM的报文处理模块然后对经封装的数据报文进行解封装,并进行SVM的服务操作。在一些实施例中,不同的SVM基于其随数据报文接收的SCI、SI和服务方向值执行不同的服务操作。
图13图示了在一些实施例中SVM每次在其从服务代理接收到要处理的数据报文时执行的一个示例性过程1300。在其他实施例中,SVM可以不同地使用SCI、SI和服务方向值执行其操作。如图所示,过程100最初(在1305处)去除封装报头并从封装报头中检索SCI、SI、方向和活动性参数。然后,该过程使用(在1310处)其从其服务管理器接收的映射记录将SCI、SI和方向值映射到服务配置文件,然后(在1315处)将该服务配置文件映射到其规则集合之一,然后进行检查以识别(在1320处)一个或多个用来处理的服务规则。
图14示出了SVM的第一映射表1405。如图所示,该表中的每条记录都将SCI、SI和方向值映射到服务配置文件。该图还示出了SVM的第二映射表1410,并且该表将服务配置文件映射到识别服务规则表1415中的若干规则的规则集合标识符。如图14所示,一些实施例中的服务插入管理器提供第一表1405的记录(例如,SI网络管理器将这些记录提供给SVM的服务管理器,然后该服务管理器将这些记录提供给SVM),而SVM的服务管理器为第二表1410和第三表1415提供这些记录。在一些实施例中,这两个服务管理器是由两个不同的实体(例如,数据中心管理员和第三方管理员,或者租户管理员和数据中心管理员)掌管的两个不同的管理平面。
在一些实施例中,服务规则表145中的每个服务规则1420具有关于数据报文属性(例如,五元组属性)限定的规则标识符。SVM将规则的标识符与数据报文的属性进行比较(在1320处)以识别匹配规则。在识别一个或多个匹配规则时,一些实施例中的SVM执行(在1325处)由最高优先级匹配规则指定的动作。例如,防火墙SVM可以指定数据报文应该被允许通过、应该被丢弃和/或应该被重定向。
一旦SVM完成其服务操作,假设服务操作不会导致数据报文的丢弃,SVM就用封装报头封装(在1330处)该数据报文。该封装报头具有与SVM接收到的数据报文相同的格式(例如,为NSH报头、GRE报头或QinQ报头)。在该封装报头中,一些实施例中的SVM设置(1)活动性值以响应服务代理的活动性值和(2)活动性值的适当序列号(例如,未调整或递增的序列号)。
在一些实施例中,一些服务节点被配置为递减其接收到的SI值,而其他服务节点未被配置为递减SI值。如果服务节点被配置为递减SI值,则该服务节点在1330处在递减SI值后将递减的SI值插入封装报头中。一些实施例中的SVM还设置封装报头中的SMD属性(SCI、SI和服务方向),而在其他实施例中,出口路径中的服务代理从服务代理在将数据报文传递到SVM之前创建的较早记录中检索这些值。
在一些实施例中,SVM还可以在封装报头中设置(一个或多个)流编程属性以引导服务代理修改数据报文的流的服务处理。下面将进一步描述该流编程。对数据报文进行封装后,SVM沿其出口路径转发数据报文。图15图示了SVM 106返回在其封装报头1504中具有SMD和活动性属性的经封装的数据报文1502的示例。
图16图示了在一些实施例中服务代理614在其每次接收到沿着其服务节点的出口路径穿过的数据报文时执行的过程1600。如图所示,一些实施例中的服务代理最初(在1605处)从数据报文中移除封装报头,从该报头中移除SMD属性,并将这些属性存储在其为数据报文创建的属性集合中。在一些实施例中,服务代理从服务代理在将数据报文沿入口路径传给服务节点之前创建的先前记录中检索(在1605处)数据报文的一些或全部SMD属性(例如,源GVM的服务平面MAC地址、SPI值)。图15图示了服务代理614为解封装的数据报文1507创建的属性集合1506的示例。
接下来,在1610处,该过程重置其维护的活动性计时器(例如,每0.25秒到期的计时器)以记下其从服务节点接收到的活动性值,这表示该节点仍可使用。利用这个活动性值,服务代理从服务节点接收序列号,过程验证该序列号以确保其为需要接收的下一个活动性值。
在1615处,过程确定SVM是否指定了(一个或多个)任何流编程属性,这需要服务代理通过向后处理器612发送带内数据报文来引导源GVM的SI后处理器612执行流编程。在一些实施例中,服务代理发送带有另一数据报文的带内流编程控制信号,该另一数据报文由该服务代理生成以送回到源GVM,并将由源GVM的后处理器612拦截。
当源GVM接收到带有流编程控制信号的数据报文时,其后处理器可以通过使用对该流而言唯一的流标识符来唯一地识别其所应用于的数据报文流。如下文进一步描述的,该流标识符部分地基于源GVM的唯一标识符而导出。该唯一的流标识符还允许其他服务平面模块(例如服务节点、服务代理和STL模块)唯一地识别每个数据报文流。在一些实施例中,该唯一的流标识符是在服务路径的服务跳之间传递并传递回到源GVM的SMD属性的一部分。
然而,在一些实施例中,服务代理发送带内流编程控制信号及其正在处理的当前数据报文。在这些实施例中的一些实施例中,服务代理仅在其相关联的服务节点是服务路径的最后一跳服务节点时才这样做,而在其他实施例中,服务代理甚至在其服务节点不是最后一跳服务节点时也这样做。当服务代理的服务节点不是服务路径的最后一跳服务节点时,服务代理将流编程嵌入数据报文的SMD属性中,在一些实施例中,该SMD属性最终被转发到源GVM的SI后处理器作为执行最后一跳服务时的数据报文封装报头的一部分。即使在这种情况下,其他实施例中最后一跳的服务代理也将流编程信号作为单独的报文发送。
下面将参考图20进一步描述流编程信号。此外,如下文进一步描述的,当服务代理检测到其服务节点发生了故障时,服务代理还将流编程信号发送回到源GVM,使得源GVM处的分类器可以为当前数据报文流以及其他数据报文流选择另一服务路径。在这种情况下,服务代理也会通知其主计算机上的LCP,从而LCP可以通知CCP,而CCP转而可以修改对使用故障服务节点的服务链指定的服务路径。
在1620处,过程1600确定其服务节点是否指定应丢弃数据报文。如果是,则该过程丢弃数据报文,然后结束。否则,假设数据报文不应该被丢弃并且应该沿着其服务路径继续,则在一些实施例中,服务代理在服务节点尚未递减SI值的情况下递减(在1625处)SI值,然后使用(在1630处)该递减的值与数据报文的存储的属性集合中的SPI值一起识别用于识别下一跳网络地址的完全匹配转发规则。当代理的服务节点在多个服务路径上时,代理的转发规则存储装置中存储了多个完全匹配的转发规则,其可以为不同的SPI/SI值指定不同的下一跳网络地址。
当递减的SI值为零时,在一些实施例中,服务代理将递减的SI值和嵌入的SPI值与规则进行匹配,该规则引导服务代理将下一跳识别为源GVM的服务平面MAC地址。在一些实施例中,该规则不提供MAC地址,而是引用作为为数据报文存储的SMD属性集合的一部分的服务平面MAC地址。在一些实施例中,该SI值为零时将数据报文返回到源GVM的服务平面MAC地址的指令不是由转发表的转发条目指定的,而是硬编码到服务的逻辑中。
在1630处,服务代理将下一跳网络地址(例如,MAC地址)存储在为数据报文存储的属性集合中。图15图示了服务代理614的示例,其存储了与解封装的数据报文1507的属性集合1506中的下一服务节点相关联的下一跳MAC地址。在识别下一跳网络地址之后,服务代理(在1635处)将数据报文返回到其服务节点的出口路径,且过程1600结束。
一旦服务代理将数据报文返回到服务节点的出口路径,STL模块626接收该数据报文并开始图10的过程1000。STL模块626在其每次从服务插入层接收到数据报文时执行该过程的前三个操作1005-1015。具体地,STL模块通过将数据报文中的原始源MAC地址和目的MAC地址替换为当前服务跳和下一服务跳的服务平面MAC地址(即,图15所图示的示例中的hop1mac地址和hop2mac地址)来将数据报文格式化(在1005处)以转发到下一跳服务节点。
在1010处,STL模块还将数据报文的原始源MAC地址和目的MAC地址添加到应该由相同主计算机上的其他服务传输层模块(例如,vswitch、封装处理器等)处理的数据报文的属性的集合中。图15中描绘了重新格式化的数据报文1508和增强的属性化集合1510。在重新格式化数据报文并增强其属性集合之后,STL模块626将格式化的数据报文沿出口路径传递(在1015处),数据报文通过该出口路径到达软件交换机120。
基于格式化的数据报文的目的MAC地址(即,下一跳MAC地址),软件交换机确定(在1020处)下一跳的端口不是本地的。因此,软件交换机(在1035处)向连接到VTEP1的上行链路端口1550提供数据报文,该VTEP1通过覆盖网络隧道与主机114上的VTEP2通信,如图15的示例所示。如图所示,STL封装处理器628沿着该上行链路端口的出口路径(在1040处)接收该数据报文(例如,被称为为上行链路端口指定的钩子之一),限定用于该数据报文的封装覆盖报头1540,并用此覆盖报头封装数据报文。
在一些实施例中,覆盖报头是Geneve报头,该Geneve报头将SMD和STL属性存储在其TLV中的一个或多个TLV中。如上所述,一些实施例中的SMD属性包括SCI值、SPI值、SI值和服务方向。此外,在一些实施例中,STL属性包括原始L2源MAC地址和原始L2目的MAC地址。图15图示了这个封装报头的示例,下面将参考图28对其进行进一步描述。
当在下一跳的主计算机114处接收到经封装的数据报文时,数据报文由连接到VTEP的下行链路端口1552的STL封装处理器628(例如限定为用于下行链路端口1552的钩子)捕获,该VTEP通过覆盖网络隧道连接到前一跳的VTEP。图17图示了由接收经封装的数据报文的下一跳计算机上的封装处理器628启动的过程1700,该经封装的数据报文需要由在其计算机上执行的SVM进行处理。
如图所示,该封装处理器从数据报文中去除封装报头(在1705处),并(在1705处)将STL和SMD属性存储为数据报文的相关联的属性的集合。然后该封装处理器(在1710处)将解封装的报文传递到下行链路端口,然后将其传递到软件交换机以转发(在1715处)到其连接到下一跳SVM的端口(即,与目的MAC地址相关联的端口)。然后,该端口将数据报文1508和属性集合1510传递到下一跳SVM的入口路径,如图15的SVM 108的示例所示。
此入口路径上的STL模块626然后通过将先前跳和当前跳服务平面MAC地址(即,hop1mac和hop2mac)替换为从数据报文属性集合中检索的该数据报文的原始源MAC地址和目的MAC地址来对数据报文重新格式化(在1720处)。在检索原始SMAC和DMAC地址时,STL模块626修改数据报文的属性集合。图15中描绘了重新格式化的数据报文1530和修改的属性化集合1532。然后STL模块沿着SVM的入口路径传递这个重新格式化的数据报文及其伴随的SMD属性,随后由该跳的入口服务代理614处理该数据报文。
该服务代理的操作如上文参考图9和图11所述。图15示出了主机114上的SVM 108的服务代理将经封装的数据报文传递到SVM。该数据报文的封装报头由SVM 108支持并存储SCI、SI、服务方向和活动性值。在一些实施例中,作为相同服务路径的一部分的SVM支持不同的封装报头。在这些实施例中的一些实施例中,沿着服务路径的服务代理可以在将数据报文传递到其关联SVM之前用不同的封装报头封装该数据报文。例如,在一种情况下,第一跳服务代理将具有NSH封装报头的数据报文传递到SVM 106,而第二跳服务代理将具有QinQ封装报头的数据报文传递到SVM 108。
一旦SVM 108对数据报文执行其服务操作(例如,按照图13的过程1300),如图18所示,SVM沿其出口数据路径发送经处理的数据报文。如图所示,然后服务代理识别下一个服务跳的MAC地址,并将此MAC地址添加到为数据报文的存储的属性集合。此时,下一跳是第三服务跳,其对应于SVM 110。该代理通过递减SI值(当SVM108没有递减SI值时)来识别该MAC,然后使用嵌入的SPI值和递减的SI值来查找提供下一跳MAC地址的转发规则。该出口路径中的STL模块然后将数据报文中的原始SMAC和DMAC替换为当前跳和下一跳MAC地址(即,图18的示例中的hop2mac和hop3mac),将原始SMAC和DMAC存储在数据报文的存储的属性集合中,然后将数据报文沿出口路径传递,数据报文通过该出口路径被软件交换机122接收。
软件交换机然后确定下一跳与其上行链路端口1552相关联,并且因此将数据报文传递到该端口。如图18所示,该端口的出口路径上的封装处理器628(例如,被指定为该出口路径上的钩子)然后用Geneve报头封装该数据报文,该Geneve报头将SMD和STL属性存储在一个或多个TLV中并指定了数据报文从此端口的关联的VTEP2穿过到与主机116的端口1554关联的VTEP3。
端口1554的入口路径中的STL封装处理器628然后从数据报文中去除封装报头并且将STL和SMD属性存储为数据报文的相关联的属性集合。然后STL封装处理器628将解封装的报文传递到端口1554,然后该端口1554将解封装的报文传递到软件交换机124以转发到其连接到下一跳SVM 110的端口(即,转发到其与服务平面DMAC相关联的端口)。然后,此端口将数据报文和属性集合传递到此SVM的入口路径,如图18所示。
该入口路径中的STL模块626用从数据报文属性集合中检索的该数据报文的原始源MAC地址和目的MAC地址替换先前和当前跳服务平面MAC地址(即,hop2mac和hop3mac)。STL模块626还通过移除原始SMAC和DMAC地址来修改数据报文的属性集合,然后沿着SVM的入口路径传递该重新格式化的数据报文及其伴随的SMD属性以由该跳的入口服务代理614处理。该服务代理将具有由SVM110支持并存储了SCI、SI、服务方向和活动性值的封装报头的经封装的数据报文传递到SVM 110。
一旦SVM 110对数据报文执行其服务操作(例如,按照图13的过程1300),如图19所示,SVM沿其出口数据路径发送经处理的数据报文。服务代理递减SI值(假设SVM 110尚未这样做时)。在本例中,递减的SI值现在为零。在一些实施例中,服务代理然后将该SI值和SPI值与转发规则的规则标识符进行匹配,该转发规则指定其应选择源GVM的服务平面MAC(spmac)作为下一跳MAC地址。在其他实施例中,服务代理的硬编码逻辑引导其将源GVM的服务平面MAC识别为下一跳MAC。在任一情况下,服务代理将源GVM的服务平面MAC添加到数据报文的属性集合。
STL模块接下来将数据报文中的原始SMAC和DMAC替换为第三跳MAC地址和源GVM的服务平面MAC,将原始SMAC和DMAC存储在数据报文的存储的属性集合中,然后通过将数据报文传递到其软件交换机124。然后软件交换机确定下一跳与其端口1554相关联,因此将数据报文传递到该端口。如图19所示,该端口的出口路径上的封装处理器628然后用Geneve报头封装数据报文,该Geneve报头将SMD和STL属性存储在一个或多个TLV中,并指定该数据报文是从该端口的相关联的VTEP3穿过到与主机112的端口1550关联的VTEP1。
端口1550的入口路径中的STL封装处理器628然后从数据报文中去除封装报头并且将STL和SMD属性存储为数据报文的属性的相关联的集合。然后该封装处理器将解封装的报文传递到端口1550,该端口1550然后将该报文传递到软件交换机120以转发到其连接到端口代理620的端口。然后该端口将数据报文和属性集合传递到端口代理620,如图19所示。
端口代理620然后用从数据报文属性集合中检索的该数据报文的原始源MAC地址和目的MAC地址替换先前和当前跳服务平面MAC地址(即,hop3mac和spmac)。端口代理620还修改数据报文的属性集合以去除原始SMAC和DMAC,然后将该重新格式化的数据报文连同其伴随的SMD属性传递回到首先调用其的STL调用器624。在一些实施例中,端口代理使用其在STL调用器最初调用其时创建的连接记录来识别该STL调用器以进行回调。在其他实施例中,端口代理使用映射表,该映射表将每个服务平面MAC与GVM的STL调用器进行映射。在一些实施例中,该映射表具有使服务平面MAC和服务方向与关联于GVM的访客转发平面端口标识符相关联的记录。
一旦被调用,STL调用器就沿着GVM 102的出口路径传递数据报文,数据报文接下来将被转发到SI后处理器612。图20图示了一些实施例中SI后处理器612执行的过程2000。后处理器在其每次接收到沿着GYM的IO链传递到其的数据报文时执行该过程2000。如图所示,在一些实施例中,后处理器612最初确定(在2005处)其是否需要检查接收的数据报文以进行SI后处理。这是因为作为沿着GVM的IO链的模块,后处理器将被调用以用于所有沿此IO链传递的数据报文流,并且这些数据报文中的一些可能与要求对这些数据报文进行服务插入操作的SI规则不匹配。在一些实施例中,过程2000通过确定数据报文是否具有关联的服务元数据来确定(在2005处)是否需要处理该数据报文。如否,则该过程转变到2020,这将在下面进行描述。
当SI后处理器612确定需要处理数据报文时,该过程确定(在2010处)与数据报文相关联的SMD元数据是否指定了要求后处理器执行流编程的流编程标签。在一些实施例中,这样的流编程标签将由服务节点在数据报文的SMD属性中指定以改变源GVM处的服务路径处理,或者由服务代理在检测到其服务节点的故障时出于同样的原因这样操作。当流编程标签没有指定任何流编程时,该过程转变到2020,这将在下面描述。
否则,当流编程标签指定流编程操作时,过程2000执行该操作,然后转变到2020。在一些实施例中,流编程操作需要修改连接跟踪存储装置804中的连接记录以指定数据报文的流所期望的操作和/或SMD属性(例如,允许、丢弃等)。后处理器对连接跟踪器804的写入在图19中描述。如上所述和下面进一步描述的,用于经处理的数据报文的SMD元数据包括流标识符,该流标识符通过至少部分地从源GVM的唯一服务平面标识符导出而唯一地识别数据报文的流。在一些实施例中,后处理器612使用该流标识符来匹配连接跟踪器中的数据报文的流。
在一些实施例中,流编程标签可以指定以下操作(1)NONE(无):当不需要动作(这导致不执行流编程操作)时,(2)DROP(丢弃):当该流的数据报文不应沿着服务链进一步被转发而应在源GVM处被丢弃时,(3)ACCEPT(接受):当该流的数据报文不应沿着服务链进一步被转发而应在源GVM处被接受时。在一些实施例中,流编程标签还可以指定DROP_MESSAGE(丢弃报文)。当服务节点需要与代理通信(例如,以响应ping请求)并希望丢弃用户数据报文(如果有的话)时使用DROP_MESSAGE,即使不需要在源处的流编程。
在一些实施例中,附加动作可用于服务代理以在内部传达其SVM的故障。在一些实施例中,该动作将引导SI后处理器为数据报文的流选择另一服务路径(例如,另一SPI)。通过在一些实施例中设置适当的元数据字段,在一些实施例中该动作与用户数据报文一起在带内携带。例如,如下文进一步描述的,服务代理通过数据平面上的带内数据报文流量通过NSH属性的OAM(操作、管理和维护)元数据与源GVM的后处理器通信。鉴于设计流程编程动作受信令延迟的影响并且容易丢失,在将流编程动作传达给代理后的一段时间内,SVM或服务代理可能仍会看到属于预期在源处被丢弃、接受或重定向的流的数据报文。在这种情况下,服务平面应继续设置动作以在源处丢弃、允许或重定向。
在完成流程编程操作之后,过程2000转变到2020。当该过程确定(在2005处)不需要对数据报文执行SI后处理或确定不需要对该数据报文执行流编程时,该过程也转变到2020。在2020处,该过程2000让数据报文通过GVM 102的出口路径,然后结束。
以上参考图8、图9、图15、图18和图19描述的示例示出了对沿着源GVM的出口路径识别的数据报文执行的服务平面操作。这些服务平面操作(通过参考图7、图10-图14、图16、图17和图20进行描述)同样可适用于在沿着源GVM的入口路径穿过时识别的数据报文。为了执行这些入口侧操作,入口路径上的SI预处理器610和SI后处理器612与出口路径上这两个处理器的位置是相反的。具体地,如图6所示,预处理器610从与该GVM的VNIC相关联的软件交换机端口接收进入该GVM的入口路径的数据报文,而后处理器612将经处理的数据报文沿入口IO链传递到该GVM的VNIC。
然而,用于入口侧处理的服务插入操作和服务传输操作类似于去往和来自特定的GVM的数据报文的出口侧处理。在某些情况下,此GVM与另一GVM交换数据报文。如上面参考图4和图5所描述的,可以引导服务平面在每个方向上但以相反的顺序对数据报文执行相同的服务链。在这种情况下,入口侧的服务路径的服务节点对另一GVM发送给特定的GVM的数据报文以服务链的第一方向执行一系列服务操作,而出口侧的服务路径的服务节点通过服务链以相反的第二方向执行相同的一系列服务操作。另外,如上所述在一些实施例中用于正向和逆向的服务节点的两个集合包括相同的服务节点。
现在将参考图21、图22和图25-图28来描述在一些实施例中使用的报头格式。图21图示了NSH报头2100,一些实施例中的一些服务代理使用NSH报头2100在将数据报文提供给其相关联的服务节点之前封装该数据报文。在这些实施例中的一些实施例中,服务节点返回用这样的NSH报头封装的经处理的数据报文。在一些实施例中,NSH报头也被主计算机的服务平面模块用来将双重封装的数据报文转发到其他主计算机,其中第一封装报头为NSH报头,第二封装报头为服务传输报头。然而,在其他实施例中,服务插入属性和服务传输属性被放置在一个封装报头中,如下所述。此外,如上文所述和下文进一步描述的,一些实施例中的服务代理和服务节点不使用NSH报头来封装它们所交换的数据报文。
如图所示,NSH报头的前8个字节的所有字段都按照RFC 8300使用。在一些实施例中该报头包括固定长度元数据(MD)内容报头2110。在一些实施例中该报头还包括(1)MD类型,其被设置为1,(2)下一协议值,其为3以表示以太网通信,以及(3)长度值,其为6,因为MD内容报头2110具有固定长度。此外,在一些实施例中,SPI字段2122和SI字段2124填充有所选路径的服务路径标识符和当前服务索引值,该当前服务索引值在由源GVM的预处理器610限定时是初始SI值(即,初始服务跳数)。
在一些实施例中,除了在与数据报文一起携带的NSH报头中之外,服务插入模块不存储或缓存元数据。在此模型中,服务节点保留了其不打算更改的元数据字段。在一些实施例中,某些元数据字段被用作服务代理/节点和源GVM的服务模块之间的数据平面介导(mediated)信令的通信机制。在一些实施例中,数据报文元数据在NSH固定长度上下文报头2110中在线路上编码。在一些实施例中,该固定大小的报头总共提供十六字节的信息。在一些实施例中,每个服务插入部署可以自由限定其自身的MD内容格式。
图22图示了在一些实施例中存储在MD内容报头2110中以将服务元数据发送到连续的服务跳、发送到服务节点和/或发送到服务代理的元数据内容的示例。如图所示,该报头有包括许多字段的十六个字节。一个字段2202包含F位,其用于区分MD内容报头中的内容类型,例如服务元数据内容、流编程内容等。在一些实施例中,服务元数据内容的F位是b00。另一个字段2204存储P位,其可以被设置为1以强制服务节点对数据报文作出响应。在一些实施例中,响应必须带有包含了与请求的序列号相同的序列号的NSH报头,其中P位也设置为1。
源节点标识符(ID)字段2206明确地为服务平面识别作为数据报文的源或宿的数据计算节点(例如,GVM)。在一些实施例中,源节点ID包括该源数据计算节点(DCN)的服务平面MAC地址,数据报文针对该源数据计算节点而插入到服务平面中。MD内容报头还包括序列号2208,其为不透明的6位值,用于识别数据报文以进行活动性检测。该值通常为零,除非服务代理作为其活动性检测的一部分在将数据报文转发到其服务节点之前填充。
MD内容报头还包括租户ID 2212,其为多租户数据中心唯一地识别租户。在一些实施例中,租户ID是与租户相关联的VNI。MD内容报头2200还包括流ID 2215和流ID有效性位2222。在一些实施例中,当流ID(也称为流标签)的其余部分存在时,流ID有效性位被设置为1。流ID 2215是每个流和源DCN(即,每个流和源节点ID 2206)的唯一标识符。在一些实施例中,流ID由源DCN的分类器(例如,执行分类操作的SI预处理器610)设置。
在一些实施例中,当数据报文穿过不处于原生模式的服务(即,该服务不知道服务平面)时,可以丢弃流ID。在这种情况下,当在兼容性模式报头中没有足够的位来携带流ID时,流ID将被丢弃,如下所述。当原生服务(即,服务平面知道服务节点)以使得流ID变得无意义的方式修改数据报文时,例如当服务对进入单个IPsec隧道的来自多个流的流量进行加密时,流ID也可能会被丢弃。在这种情况下,保留内部数据报文的流标签将无意义。在一些实施例中,在这种情况下,服务节点将A位设置为零。
MD内容报头2200还包括用于服务代理的流编程的动作字段2230。在一些实施例中,该动作指定源DCN的后处理器612应该对流执行的动作。对于流编程,在一些实施例中动作字段必须是非零的。另外,对于流编程,F位2202也被设置为10并且P位2204在代理处被设置为0并且被分类器忽略,并且流有效性位2222和流标签2215必须有效。
以下是动作字段2230的值的示例性集合,但是普通技术人员将意识到在其他实施例中指定了其他值。动作位的值为0指明未指定流编程动作。值为1表示该数据报文的流的所有报文都应在源处丢弃,该流的进一步的数据报文不应被转发到服务平面。相反,数据报文应在分类后在源处丢弃。
在一些实施例中,动作字段中的值为2指明数据报文应该在源处被接受,并且相同流的其他数据报文不应该被转发到服务功能。相反,应该跳过该服务功能,并直接调用链中的下一个服务。动作字段中的值为3指明应仅丢弃此数据报文,而不指示应对相同流的其他数据报文采取的动作。在一些实施例中,即使不应该发生流编程,当服务节点与服务代理通信(例如,以响应ping请求)并且想要丢弃数据报文时也使用该动作。
MD内容报头2200还包括方向字段2214,其指明数据报文从源DCN到网络角度的方向(例如,从DCN到网络是出口方向,从网络到DCN是入口方向)。当方向不是未知时,方向字段中的值为0表示没有方向或未知方向。在一些实施例中,值为1表示数据报文正在入口方向上移动(即,正在为作为数据报文的目的地的源DCN处理数据报文),例如,数据报文在从VTEP到其对应的DCN的途中。在一些实施例中,值为2指示出口方向(例如,正在为作为数据报文的源的源DCN处理数据报文)。
在一些实施例中,值为3指示数据报文仅在转接(transit)中并且适用于入口和出口两者。当用于限定规则时,这表示该规则应该在一个方向上或在一些实施例中在任何方向上匹配数据报文。从服务的角度,在一些实施例中,方向字段中的值为3表示该流量由既不是该流量的源也不是该流量的宿的转接装置转发到服务平面。在一些实施例中,转接指示被用于通过路由器转接的流量。
MD内容报头2200还包括服务链ID 2216,其指定数据报文所应该沿其流动的服务链。一些实施例不将SCI嵌入NSH报头中,而是仅存储SPI值。然而,其他实施例将SCI存储在字段2216中,因为许多SPI可以对应于相同的服务链并且SPI也不是持续的。换句话说,一些实施例嵌入了服务链ID,因为SCI为服务节点提供了更稳定的标识符以用于识别与其处理的数据报文匹配的服务规则。
在一些实施例中,其他元数据内容格式由服务平面在内部使用而不暴露给服务节点,以便在源DCN的服务后处理器和服务代理之间执行数据平面信令。在这些实施例的一些中,当使用其他元数据内容格式时,NSH报头的OAM位(图21中的O位2170)被设置并且不携带用户有效载荷(或者,如果NSH有要求的话,该位在目的地被忽略)。在一些实施例中,在这种情况下NSH下一协议字段被设置为0。
在一些实施例中,服务平面不知道服务节点仅接收元数据的子集,这取决于服务代理用于与服务节点通信的非NSH报头的类型。如上所述,当服务节点不能处理NSH报头时,一些实施例中的服务节点可以接收GRE报头或QinQ报头中的服务元数据。GRE报头和QinQ报头在下面被称为兼容性模式报头,因为GRE报头和QinQ报头是一些现有服务节点支持的报头。在一些实施例中需要这种兼容性模式封装报头,以便区分经受不同服务处理的数据报文流并隔离具有冲突L3地址的流(在单个服务节点对多个网络(诸如多个租户网络)的数据报文执行服务的情况下)。
在一些实施例中,GRE兼容性模式中的服务节点通过两个VNIC连接到其服务代理,并且被配置为处于线路插件(bump-in-the-wire)模式。此外,在一些实施例中,VNIC是vmxnet3装置,其MAC地址不变,并且用于其的MTU大小被设置为固定大小(例如,2048字节)。服务节点的一个VNIC被限定为未受保护侧,用于接收源DCN的出口侧流量并提供源DCN的入口侧流量,而另一VNIC被限定为受保护侧,用于接收源DCN的入口侧流量并提供源DCN的出口侧流量。在一些实施例中,该信息通过OVF(开放虚拟格式)参数传达到服务管理器或服务节点,其中OVF是支持虚拟设备跨产品和平台交换的文件格式。
即使存在两个VNIC以支持线路插件模式,一些实施例对于每对兼容性模式VNIC仅使用一个服务代理实例,并且仅使用服务平面上的一个端点来指代一对接口。图23和图24图示了服务代理2305利用封装GRE报头向GVM 2315的SVM 2310出口侧和入口侧转发数据报文的示例。为此,服务代理为SVM 2310的受保护和不受保护的VNIC创建了若干个虚拟GRE隧道端点2320。
每个受保护的虚拟隧道端点具有对应的未受保护的虚拟隧道端点。每个虚拟隧道端点关联于虚拟IP地址、虚拟MAC地址和GRE参数。服务代理用GRE报头封装数据报文,以通过服务节点在相应端点对之间穿过,其中该节点在不修改GRE报头的线路插件模式下操作。如下文进一步描述的,服务代理将服务元数据嵌入到GRE报头中以向服务节点提供其处理数据报文所需的服务元数据。此外,在一些实施例中,不同的隧道端点对被用于不同的流。
在一些实施例中,服务插入平台支持RFC 2784中限定的GRE封装以及RFC 2890中限定的key扩展。在一些实施例中,GRE隧道使用IPv4地址并且GRE协议类型按照RFC 1701被设置为透明以太网桥接。在GRE兼容性模式下,服务插入层(例如,服务代理)为每个流生成元组(例如,源IP、目的IP、GRE key)。在一些实施例中,该过程是确定性的并且基于SMD报头的内容,其然后可以被剥离并替换为IP和GRE堆栈。在一些实施例中,该过程生成的IP地址是虚拟的,并且没有配置在除了服务代理及其关联的SVM之外的任何网络实体上,并且结果这些IP地址的范围限于服务代理及其服务节点之间的本地链接。
生成IP地址对和GRE key以便即使在服务节点不支持GRE时也将元数据连同数据报文一起携带。在一些实施例中,服务节点和服务代理两者都消耗该元数据。此外,在一些实施例中,服务节点被预期为原样保留外部报头而无需修改。在一些实施例中,每个流被一致地封装在相同的GRE隧道中并且隧道内不存在IP地址冲突。此外,仅在其方向(入口相对于出口)上有所不同的数据报文使用相同的GRE key并调换源IP和目标IP来封装,并以正确的(受保护端到不受保护端,或不受保护端到受保护端)方向通过GRE隧道端点穿过。
在一些实施例中,IP源/目的地址和GRE key可以由服务节点根据需要进行检查以执行适当的数据报文处理。图25和图26说明了如何在GRE封装报头中对服务元数据进行编码,以代替源IP地址和目的IP地址以及GRE key字段。图25图示了在一些实施例中存储用于出口方向(例如,从GVM到交换机)的服务数据的GRE报头格式,而图26图示了在一些实施例中存储用于入口方向(例如,从软件交换机到源GVM)的服务数据的GRE报头格式。
在这些图中,所有字段是以网络字节顺序。在一些实施例中,路径ID与服务路径一起生成并且对每个服务具有全局值。如图25和图26所示,在一些实施例中,对于出口和入口侧数据报文,IP地址字段相反。与原生模式一样,GRE兼容性模式下的服务平面可以修改或生成任何流量,只要该流量在其到达服务代理时具有有效的封装。在一些实施例中,这意味着重新使用服务节点为相关的流接收的IP和GRE堆栈之一。
在一些实施例中,当进入第一GRE兼容性模式服务时,沿服务链的流标签信息被丢弃,并且不在下游恢复。这可以防止后续服务能够声明流动作。因此,在一些实施例的GRE兼容性模式下不向服务节点提供流编程。此外,在一些实施例中,通过在可信接口和不可信接口之间传递BFD(双向转发检测)报文来支持活动性检测。在一些实施例中,这些数据报文是由服务代理从可信侧和不可信侧注入的。服务节点可以识别此流量,因为该流量没有被封装在GRE中。在一些实施例中,服务节点被预期为通过将该流量桥接到虚拟线路的另一侧来无修改地转发此流量(实际上是任何非GRE封装的流量)。此外,在一些实施例中,如果BFD的实例不可用,则数据报文可以是硬编码的。
由于一些实施例中的空间限制,某些报头字段被编码为汇总版本。在一些实施例中,服务链标签、SPI和SI被汇总在单个4位字段中。在一些实施例中,每个兼容性模式服务节点因此可以存在于最多16个服务链跳中。每次服务存在于服务链内时,会消耗一个服务路径ID。如果服务存在于多个链上,则会消耗多个服务路径ID。另外,每次有服务出现在服务链的两个方向上,会消耗两个服务路径ID。
在一些实施例中,只要使用相关的外部报头堆栈(达到并包括GRE),就以兼容性模式支持本地生成的流量。在一些实施例中,不允许对外部报头堆栈进行修改,除非(1)可选地用广播替换外部以太网目的地址,(2)更新IP总大小字段和IP校验和,以及(3)GRE校验和被忽略但GRE key必须存在。
图27和图28图示了在一些实施例中用于将数据报文从与至少一个服务节点关联的一个VTEP(例如,从一个主计算机)发送到与另一服务节点关联的另一个VTEP(例如,到另一主计算机)的封装报头的示例。这两个示例都是Geneve封装报头,并在一个或多个GeneveTLV中携带了服务元数据(例如,SMD元数据)。Geneve报头支持逻辑L2覆盖传输,并且具有用于携带服务元数据的可变TLV空间。因此,不同的服务插入平台可以指定在连续跳之间携带的不同数量的服务元数据。
图27图示了两个Geneve封装报头的使用,即用于携带服务传输层数据的外部Geneve报头2705和用于携带服务插入层元数据的内部Geneve报头2710。如图所示,服务元数据存储在SMD TLV 2715中。在一些实施例中,该TLV2715具有图21的NSH报头格式。因此,该TLV将服务元数据存储在如上所述的固定长度报头2110中,并将SPI和SI值存储在报头2100的SPI字段2122和SI字段2124中。
为了效率起见,一些实施例将这两个报头组合成图28的单个Geneve报头2805。为此,这些实施例用当前跳和下一跳的服务平面MAC替换数据报文的原始源MAC地址和目的MAC地址,并将原始源MAC和目的MAC连同源GVM的服务方向、服务平面MAC和其他SMD元数据(诸如服务链标识符、SPI值、SI值、流编程值、租户标签、流标签等)一起存储在新的GeneveTLV中。在一些实施例中,这个新的Geneve TLV具有24字节的SMD元数据字段,以及用于存储STL数据的12字节,诸如原始源MAC地址和目的MAC地址。在一些实施例中,12字节的STL数据在24字节的SMD元数据之前,在一些实施例中该24字节的SMD元数据包括图21和图22中图示的元数据。
如图所示,在图27和图28的两个实施方式中,Geneve封装报头存储了服务平面的SVNI,其允许限定多个服务平面。例如,如上所述,一些实施例使用不同的SVNI来为多实体或多租户数据中心中的不同实体或租户限定不同的服务平面。不同实体或租户的不同服务平面可以与实体或租户的数据报文类型的相同或不同的QoS和/或SLA保证相关联。其他实施例对相同实体或租户的不同服务平面(例如,与相同实体或租户的不同数据报文类型的不同QoS和/或SLA保证相关联的不同服务平面)使用多个SVNI。另外,两种报头都存储了源和目的VTEP的MAC地址以及UDP和IP源和目的地址。
图29图示了一些实施例的对象数据模型2900。在该模型中,实线示出的对象由用户提供,而虚线示出的对象由服务平面管理器和控制器生成。如图所示,这些对象包括服务管理器2902、服务2904、服务配置文件2906、供应商模板2907、服务附件2908、服务实例2910、服务部署2913、服务实例运行时(SIR)2912、实例端点2914、实例运行时端口2916、服务链2918、服务插入规则2920、服务路径2922和服务路径跳2924。
在一些实施例中,可以在创建服务对象2904之前或之后创建服务管理器对象2902。管理员或服务管理系统可以调用服务管理器API来创建服务管理器。服务管理器2902可以在任何时间点与服务相关联。在一些实施例中,服务管理器2902包括服务管理器信息,例如供应商名称、供应商标识符、restUrl(用于回调)和认证/证书信息。
如上所述,服务平面不需要服务管理器的存在或使用,因为服务节点可以在零感知模式下操作(即,对服务平面具有零感知)。在一些实施例中,零感知模式仅允许基本操作(例如,将流量重定向到服务的SVM)。在一些这样的实施例中,集成未被提供为向服务管理器服务器分发对象信息(诸如,服务链信息、服务配置文件等)。相反,这些服务器可以轮询网络管理器以查找关注的对象。
服务对象2904表示由服务节点提供的服务类型。服务对象有传输类型属性,其指定了服务对象的用于接收服务元数据的机制(例如,NSH、GRE、QinQ等)。每个服务对象还具有由服务管理器返回的状态属性(其可以是启用或禁用),以及对服务管理器的引用,其可以被用于暴露REST API端点以传送事件和执行API调用。服务对象还包括对用于部署服务实例的OVA/OVF属性的引用。
供应商模板对象2907包括一个或多个服务配置文件对象2906。在一些实施例中,服务管理器可以登记供应商模板,并且服务配置文件可以基于每个服务并基于具有可能专用的参数的供应商模板来限定。服务链可以通过引用一个或多个服务配置文件来限定。在一些实施例中,服务配置文件没有被分配标签并且未在线路上明确识别。为了确定将哪个功能要应用于流量,服务节点执行查找(例如,基于服务链标识符、服务索引和服务方向,如上所述)以识别可适用的服务配置文件。每当创建或修改服务链时,此查找的映射由管理平面提供给服务管理器。
在一些实施例中,服务配置文件对象2906包括:(1)供应商模板属性以识别其关联的供应商模板,(2)当模板通过服务配置文件暴露了可配置值时的一个或多个自定义属性,以及(3)动作属性,例如转发动作或复制和重定向,这些属性分别引导服务代理将接收到的数据报文转发到其服务节点,或将接收到的数据报文的副本转发到其服务节点,同时将接收到的数据报文转发到下一服务跳,或者当该服务代理的服务节点是最后一跳时,转发回到原始源GVM。
服务附件对象2908表示服务平面(即,是用户的角度的服务平面的表示,诸如多租户数据中心中的租户的网络管理员,或私有数据中心中的网络管理员)。该服务附件对象是一种抽象概念,其支持服务平面的任意数量的不同实施方式(例如,逻辑L2覆盖、逻辑L3覆盖、逻辑网络覆盖等)。在一些实施例中,通过服务平面进行通信的每个端点(在SIR或GVM上)指定服务附件。服务附件是通信域。因此,服务附件外的服务或GVM可能无法相互通信。
在一些实施例中,服务附件可以被用于创建其间具有硬隔离的多个服务平面。服务附件具有以下属性:(1)逻辑标识符(例如,逻辑交换机的SVNI),其识别携带服务附件流量的逻辑网络或逻辑转发元件,(2)服务附件的类型(例如,L2附件、L3附件等),以及(3)指定服务附件的范围的“应用到(applied_To)”标识符(例如,用于南北操作的传输节点0和传输节点1以及用于东西操作的主机的集群或集合)。在一些实施例中,控制平面(例如,中央控制平面)基于由网络管理员(例如,私有云或公共云的数据中心管理员,或者公共云中的网络虚拟化提供商)指定的参数将从管理平面接收到的服务附件表示转换为特定的LFE或逻辑网络部署。
服务实例对象2910表示服务的实际部署实例。因此,每个这样的对象通过指定服务对象2904和服务实例对象2910之间的关系的服务部署对象2913与一个服务对象2904相关联。部署的服务实例可以是独立的服务节点(例如,独立的SVM),或者可以是高可用性(HA)服务节点集群。在一些实施例中,服务部署对象2913描述服务实例类型,例如独立或HA。如下所述,在一些实施例中服务部署对象的API可以被用于部署服务的若干服务实例。
服务实例运行时(SIR)对象2912表示以独立模式操作的实际运行时服务节点,或HA集群的实际运行时服务节点。在一些实施例中,服务实例对象包括以下属性:(1)部署模式属性,其指定服务实例是在独立模式、活动/备用模式还是活动/活动模型下操作,(2)状态属性,其指定实例是启用还是禁用,以及(3)“部署到(deployed_to)”属性,其在南北操作的情况下包括对服务附件标识符的引用。
在一些实施例中,手动启动SVM供应。为此,在一些实施例中,管理平面提供用于如下操作的API:(1)创建现有服务的服务实例,(2)删除服务实例,(3)通过添加额外的SIR来发展已经配置为高可用性集群的服务实例,以及(4)通过去除其SIR之一来缩减服务实例。在创建现有服务的服务实例时,在一些实施例中可以基于服务中包含的模板来创建服务实例。调用器可以在独立实例或HA集群之间挑选,在这种情况下,HA集群中的所有VM都已供应。同样,在一些实施例中,用于服务实例部署的API允许多个服务实例(例如,用于HA集群)仅通过一次API调用来部署。
在一些实施例中,创建一个或多个SVM的API指定SVM所应放置在的一个或多个逻辑位置(例如集群、主机、资源池)。在一些实施例中,只要可能,管理平面就会尝试将属于相同服务实例的SVM放置在不同的主机上。反亲和(anti-affinity)规则还可以被适当地配置为维护跨迁移事件(诸如,VMware公司的动态资源调度器支持的VMotion事件)的SVM分布。类似地,管理平面可以在可用时配置与特定的主机(或主机组)的亲和规则,或者供应服务实例的用户可以明确挑选主机或集群。
如上所述,服务实例运行时对象2912表示在主机上运行以实现服务的实际SVM。SIR是服务实例的一部分。每个SIR可以有一个或多个完全专用于服务平面流量的流量接口。在一些实施例中,每个SIR运行至少一个服务代理实例以根据需要处理SIR的数据平面信令和数据报文格式转换。在一些实施例中,当部署服务实例时,为与服务实例相关联的每个SVM创建SIR。网络管理器还为东西服务插入中的每个服务实例创建实例端点。在一些实施例中,每个SIR对象2912具有以下属性:(1)状态属性,该属性对于可以处理流量的SVM是活动的,而对于所有其他SVM是不活动的,无论处于何种原因,以及(2)运行时状态,其指定了数据平面活动性检测检测到SIR是上升还是下降。
实例运行时接口2916是服务实例端点2914的每端点版本。在一些实施例中,实例运行时接口2916被用于识别可以是源或宿服务平面流量的SIR或GVM的接口。在东西服务插入中,在一些实施例中,实例运行时接口的生命周期与服务实例运行时的生命周期相联系。在一些实施例中,不需要用户动作来配置实例运行时接口。
在一些实施例中,实例运行时接口2916具有以下属性:端点标识符、类型、对服务附件的引用和位置。端点标识符是SIR VNIC的数据平面标识符。端点标识符是在SIR或GVM向服务传输层登记时生成的,可以是MAC地址或MAC地址的一部分。类型属性可以是共享的或专用的。SIR VNIC是专用的,这意味着只有服务平面流量能够到达SIR VNIC;而GVM VNIC是共享的,意味着GVM VNIC将接收和传送服务平面和常规的流量两者。服务附件引用是对服务附件的引用,其实现用于传送和接收服务平面流量的服务平面。在一些实施例中,该引用是对服务平面的SVNI。一些实施例中的位置属性指定了实例运行时接口的位置,该位置是实例运行时接口当前所位于的主机的UUID。
在一些实施例中,用户根据服务配置文件2906的有序列表来限定服务链对象2918。在一些实施例中,每个服务链在概念上为正向和逆向服务方向提供单独的路径,但如果只有一个方向是在创建时提供,则另一个方向是通过反转服务配置文件顺序而自动生成的。服务链的任一方向(甚至两个方向)都可以为空,这意味着没有服务将处理该方向上的流量。在一些实施例中,即使对于空的服务链,数据平面也将执行查找。
服务链是抽象概念。服务链不指向服务节点的特定集合。相反,作为服务平面平台的一部分的网络控制器自动生成指向服务链的服务节点的序列的服务路径,并沿着生成的服务路径引导报文/流。在一些实施例中,服务链在管理平面或控制平面中通过其UUID(服务链的唯一标识符)被识别。服务节点通过管理平面API被提供有服务链ID的含义,该管理平面API是通过其服务管理器接收到的。上面参考图14描述了这样的一个示例。
一些实施例中的服务链标签可以被用于识别数据平面中的服务链,因为UUID太长而无法在封装报头中携带。在一些实施例中,服务链ID是类似规则ID的无符号整数。重定向到服务的每个数据报文携带该数据报文正在穿过的服务链的服务链标签。在创建或修改服务链时,管理平面将UUID通告给服务链标签映射。服务链标签与服务链UUID有1对1的映射关系,而单个服务链可以有0到多个服务路径索引。
除了服务链ID之外,一些实施例中的服务链具有以下属性:(1)对所有经计算的服务路径的引用,(2)故障策略,以及(3)对服务配置文件的引用。上面描述了对计算服务路径的引用。当无法穿过为服务链选择的服务路径时,将应用故障策略。在一些实施例中,故障策略可以是PASS(转发流量)和FAIL(丢弃流量)。对服务链的服务配置文件的引用可以包括出口流量(例如,从GVM行进到交换机的数据报文)必须穿过的服务配置文件的出口列表,以及入口流量(例如,从交换机行进到GVM的数据报文)必须穿过的服务配置文件的入口列表。在一些实施例中,入口列表被默认初始化为出口列表的反转。
在一些实施例中可以使用不同的技术来限定服务链的服务路径。例如,在一些实施例中,服务链可以具有关联的负载均衡策略,其可以是以下策略之一。负载均衡策略负责跨服务链的不同服务路径对流量进行负载均衡。根据ANY策略,服务框架可以自由地将流量重定向到任何服务路径,而不管任何负载均衡考虑或流锁定。另一种策略是LOCAL策略,其指定了本地服务实例(例如,与源GVM在相同主计算机上执行的SVM)优选于远程服务实例(例如,在其他主计算机或外部服务设备上执行的SVM)。
一些实施例基于有多少SIR是本地的来生成服务路径的分数,并且无论负载如何都选择最高分数。另一种策略是集群策略,其指定由共同位于相同主机上的VM实现的服务实例是优选的,无论该主机是本地主机的还是不同的主机。循环赛策略引导以相等的概率或基于由权重值的集合指定的概率命中所有活动服务路径。
SI规则对象2920使数据报文属性的集合与由服务链对象2918表示的服务链相关联。服务链由一个或多个服务路径实现,每个服务路径由服务路径对象2922限定。每个服务路径具有一个或多个服务跳,其由一个或多个服务路径跳对象2924表示,其中每一跳与一个实例运行时接口2916相关联。每一服务跳也引用相关联的服务配置文件、相关联的服务路径,以及在一些实施例中的下一跳SIR端点标识符。
在一些实施例中,服务路径对象具有若干属性,其中一些属性可以在潜在条件改变时由管理或控制平面更新。这些特性包括服务路径索引、状态(例如启用或禁用)、当必须手动禁用服务路径(例如出于调试原因)时使用的管理模式(例如启用或禁用)、主机经过(cross)计数(表示穿过服务路径的数据报文经过主机的次数)、位置计数(表示沿该路径的SIR中有多少位于本地主机上)、备份服务路径列表、服务长度路径、逆向路径(以相反的顺序列出SIR的相同集合)、以及维护模式标识符(在一些实施例中,如果服务路径中的任一跳处于维护模式下,则该指示符为指示为真的位)。
主机经过计数是整数,并且指示经过服务路径的数据报文必须被发送出PNIC的次数。在一些实施例中,当存在多个可用替代时,本地或中央控制平面使用该度量来确定优选路径。该值由管理平面或控制平面填充(populated),并且对于使用该服务路径的每个主机都是相同的。在一些实施例中,位置计数不是由管理平面或控制平面初始化,而是在创建或更新服务路径时由本地控制平面计算。每个LCP可能计算出不同的数字。当存在多个可用替代时,该值由本地控制平面用来识别优选路径。服务路径长度是服务平面用来设置初始服务索引的一个参数。
在一些实施例中,备份服务路径的列表是指向相同服务链的所有服务路径的排序列表的指针。该列表列出了当沿路径的特定的SIR下降时要尝试的所有可能的替代。此列表可以包含服务路径所穿过的每个HA集群中SVM的所有可能排列的服务路径。在一些实施例中,该列表将不包含属于不同HA集群的SIR。
在一些实施例中,当至少一个服务跳不活动时,服务路径被禁用。这种情况是暂时的,并由服务活动性检测故障触发。可以随时以这种方式禁用服务路径。在一些实施例中,当至少一个服务跳没有匹配的SIR时,服务路径也被禁用。当服务跳所引用的SIR消失,但服务路径仍然存在于对象模型中时,该服务跳进入这种状态。
服务平面必须能够唯一地识别每个SPI。在一些实施例中,为每个服务路径发送控制平面生成的UUID。由于服务平面中数据报文报头限制,在一些实施例中,不随每条数据报文发送大的ID。在一些实施例中,控制平面在为每个服务路径生成UUID时,还为其生成小的唯一ID,并且在这些实施例中,该ID与每个数据报文一起发送。
图30概念性地图示了在一些实施例中网络管理器和控制器执行以限定用于服务插入、下一服务跳转发和服务处理的规则的若干操作。如图所示,这些操作由服务登记器3004、服务链创建器3006、服务规则创建器3008、服务路径生成器3010、服务平面规则生成器3012和规则分发器3014执行。在一些实施例中,这些操作器中的每一个可以由网络管理器或控制器的一个或多个模块实现和/或可以由一个或多个独立服务器实现。
通过服务合作方界面3002(例如,API集合或合作方用户界面(UI)门户),服务登记器3004接收指定不同服务合作方执行的服务的供应商模板3005。这些模板关于一个或多个服务描述符(包括服务配置文件)限定合作方服务。登记器3004将服务配置文件存储在配置文件存储装置3007中,供服务链创建器3006用来限定服务链。
具体地,通过用户界面3018(例如,API集合或UI门户),服务链创建器3006从网络管理员(例如,数据中心管理员、租户管理员等)接收一个或更多服务链限定。在一些实施例中,每个服务链限定将识别服务链的服务链标识符与一个或多个服务配置文件的有序序列相关联。限定的服务链中的每个服务配置文件都与需要由服务节点执行的服务操作相关联。服务链创建器3006将每个服务链的限定存储在服务链存储装置3020中。
通过用户界面3018(例如,API集合或UI门户),服务规则创建器3008从网络管理员(例如,数据中心管理员、租户管理员等)接收一个或多个服务插入规则。在一些实施例中,每个服务插入规则将数据报文流属性的集合与服务链标识符相关联。在一些实施例中,流属性是流报头属性,如L2属性或L3/L4属性(例如,五元组属性)。在这些或其他实施例中,流属性是上下文属性(例如,AppID、过程ID、活动目录ID等)。在美国专利申请15/650,251中描述了用于捕获和使用上下文属性以执行转发和服务操作的多种技术,其并入本文。这些技术中的任何一种都可以与这里描述的实施例结合使用。
服务规则创建器3008生成一个或多个服务插入规则并将这些规则存储在SI规则存储装置3022中。在一些实施例中,每个服务插入规则具有规则标识符和服务链标识符。一些实施例中的规则标识符可以关于识别SI规则可适用的(一个或多个)数据报文流的流标识符(例如,报头属性、上下文属性等)来限定。另一方面,每个SI规则的服务链标识符识别了服务平面必须为与SI规则的规则标识符匹配的任何数据报文流执行的服务链。
对于作为服务规则的一部分的每个服务链,服务路径生成器3012生成一个或多个服务路径,每个路径为一个或多个服务节点识别一个或多个服务实例端点以执行由链的服务配置文件序列指定的服务操作。在一些实施例中,为服务链生成服务路径的过程考虑了一个或多个标准,诸如(1)作为服务路径的候选服务节点的服务节点(例如,SVM)上的数据报文处理负载,(2)流的数据报文在其穿过每个候选服务路径时所经过的主计算机的数量等。
在美国专利申请16/282,802中进一步描述了这些服务路径的生成,该申请通过引用并入本文。如该专利申请中所述,一些实施例基于一个或多个度量来识别要用于特定的主机上的特定的GVM的服务路径,例如主机经过计数(指示穿过服务路径的数据报文经过主机的次数)、位置计数(指示沿该路径的SIR中有多少SIR位于本地主机上)等。其他实施例基于其他度量(例如财务和许可度量)识别服务路径(即,为服务路径选择服务节点)。
服务路径生成器3012将所生成的服务路径的身份存储在服务路径存储装置3024中。在一些实施例中,该存储装置将每个服务链标识符与一个或多个服务路径标识符相关联,并且对于每个服务路径(即,每个SPI)提供了限定该服务路径的服务实例端点的列表。一些实施例将服务路径限定存储在一个数据存储装置中,同时将服务链与其服务路径之间的关联存储在另一个数据存储装置中。
然后,服务规则生成器3010根据存储在存储装置3020、3022和3024中的规则生成用于服务插入、下一服务跳转发和服务处理的规则,并将这些规则存储在规则存储装置3026、3028和3030中,规则分发器3014可以从这些存储装置中检索这些规则并分发给SI预处理器、服务代理和服务节点。在一些实施例中,分发器3014还分发来自服务路径存储装置3024的路径限定。在一些实施例中,路径限定包括沿每个路径的第一跳的第一跳网络地址(例如,MAC地址)。在一些实施例中,服务规则生成器3010和/或规则分发器3014为相同的服务链指定和分发不同的服务路径集合到不同的主计算机,因为不同的服务路径集合对于不同的主计算机而言是最佳的或优选的。
在一些实施例中,存储在规则存储装置3026中的SI分类规则将流标识符与服务链标识符相关联。因此,在一些实施例中,规则生成器3010从存储装置3022检索这些规则并将其存储在分类规则存储装置3026中。在一些实施例中,规则分发器3014直接从SI规则存储装置3022检索分类规则。对于这些实施例,SI分类规则存储装置3026的描述更多的是概念性说明,以突出分布式规则以及下一跳转发规则和服务节点规则这三种类型。
在一些实施例中,服务规则生成器3010为每个服务链的每个服务路径的每一跳服务代理生成下一跳转发规则。如上所述,在一些实施例中,每个服务代理的转发表具有识别代理的关联服务节点所在的每个服务路径的下一跳网络地址的转发规则。每个这样的转发规则将当前的SPI/SI值映射到下一跳网络地址。服务规则生成器3010生成这些规则。对于SI预处理器必须查找第一跳网络地址的实施例,服务规则生成器还为SI预处理器生成第一跳查找规则。
此外,在一些实施例中,服务规则生成器3010为服务节点生成服务规则,这些服务规则将服务链标识符、服务索引值和服务方向映射到服务节点的服务配置文件。为此,服务规则生成器使用来自存储装置3020和3024的服务链和服务路径限定,以及来自服务配置文件存储装置3007的服务配置文件限定。在一些实施例中,规则分发器通过服务节点的服务管理器(当存在这样的服务管理器时)将服务节点规则转发到服务节点。在一些实施例中,服务配置文件限定也由分发器3014分发到主计算机(例如,分发到其LCP),使得这些主计算机(例如,LCP)可以使用这些服务配置文件来配置其服务代理,例如,配置服务代理以将接收到的数据报文转发到其服务节点,或者将接收到的数据报文复制并将副本转发到其服务节点,同时将原始的接收到的数据报文转发到其下一服务节点跳或当其为最后一跳时返回到其源GVM。
在一些实施例中,管理和控制平面基于服务路径的服务节点的状态和这些服务节点上的数据报文处理负载来动态地修改服务链的服务路径。图31图示了在一些实施例中如何动态修改服务路径。在这些实施例中,中央控制平面3100与主计算机3120上的本地控制平面3110一起工作以限定服务链的服务路径,并修改这些服务路径。在一些实施例中,CCP3100是提供控制平面操作的服务器集群(例如,三个服务器),用于基于由网络管理员通过提供管理操作的管理服务器的集群指定的服务规则来限定配置。
如图所示,CCP具有从主计算机3120上的状态发布器3103接收服务节点状态数据的状态更新器3102。如上所述,每次服务代理确定其关联的服务节点出故障(例如,每次服务节点连续两次未能响应服务代理的活动性信号)时,服务代理通知其主机的LCP 3110。LCP然后让其状态发布器3103将服务节点的故障通知给CCP的状态更新器3102。
状态更新器3102将任何服务节点故障中继到服务路径生成器3012,在一些实施例中,服务路径生成器3012与SP规则生成器3010和统计信息收集器3104同为CCP的一部分。每次服务节点出故障时,服务路径生成器从服务路径存储装置3024中移除其先前限定的使用该服务节点的服务路径。对于每个移除的服务路径,服务路径生成器3012针对对应服务链的服务链标识符删除或停用所移除路径的SPI值。
在一些实施例中,每个移除的服务路径是从先前接收到针对该服务路径的转发规则或路径限定的所有主机的记录中移除(例如,删除或停用)的。在一些实施例中,CCP(例如,服务路径生成器3010或规则分发器3014)引导这些主机从其转发规则存储装置3128和路径限定存储装置808的转发和路径限定规则中移除服务路径。在一些实施例中,故障的服务节点的LCP从其转发和路径限定规则中移除服务路径,而在其他实施例中,甚至该LCP也等待来自CCP的这样做的指令。
在一些实施例中,每个主机3120还具有统计信息发布器3105,其发布服务代理为其服务节点生成的数据报文负载统计信息。每次服务代理接收到已由其服务节点处理的数据报文时,在一些实施例中,服务代理递增其在统计信息存储装置3107中为其服务节点维护的统计信息(例如,数据报文计数、字节计数等)。在一些实施例中,统计信息发布器3105周期性地或按需从存储装置3107中检索收集的统计信息并将这些统计信息转发到CCP的统计信息收集器3104。在一些实施例中,统计信息收集器3104(通过管理平面)接收服务节点的服务管理器从服务节点接收的统计信息。
统计信息收集器3104将收集到的统计信息中继到服务路径生成器3012。如上所述,在一些实施例中,服务路径生成器部分地基于服务节点上的数据报文负载来限定通过服务节点的服务路径。例如,当服务节点上的数据报文负载超过阈值时,在一些实施例中,服务路径生成器执行一个或多个动作以减少该服务节点上的负载。例如,在一些实施例中,服务路径生成器停止将服务节点添加到其可能限定的任何新的服务路径。在这些或其他实施例中,服务路径生成器还引导分发器3014从一些主机或所有主机中移除使用该服务节点的服务路径。
可结合地或替代地,服务路径生成器引导CCP模块(例如,分发器3014)来引导一个或多个主计算机的LCP调整选择标准820,该选择标准820用于选择LCP生成的服务路径,以便控制SI预处理器如何执行其路径选择。在其他实施例中,服务路径生成器或另一CCP模块聚合每个服务节点的负载统计信息并将聚合的负载连同其关联SPI值一起分发给主机LCP,使得LCP可以分析这些统计信息并调整其生成的路径选择标准。在一些实施例中,每个LCP使用或具有路径评估器3115来生成路径选择标准,以基于服务节点统计信息和/或基于其他标准(诸如每个服务路径穿过的主机的数量)评估和选择路径。
在一些实施例中,实现管理平面、控制平面、服务管理器的服务器与在其上执行访客机器和服务机器和模块(例如,GVM、SVM、服务代理、端口代理、STL模块、SFE等)的主计算机在相同数据中心中。在这些实施例中,管理平面服务器、控制平面服务器、服务管理器和主计算机模块(例如,LCP、SVM、GVM、管理程序模块等)通过数据中心的共享网络基础设施(例如,交换机、路由器、有线和无线链路等)互相通信。
在其他实施例中,管理平面服务器、控制平面服务器、服务管理器和/或主计算机在不同的数据中心(例如,企业私有数据中心和公共云数据中心)中操作。在一些这样的实施例中,管理平面服务器、控制平面服务器、服务管理器和/或主计算机模块(例如,LCP、SVM、GVM、管理程序模块等)通过在其各自的数据中心外部的网络基础设施相互通信。此外,一些这样的实施例将服务传输层实现为跨越多个数据中心(例如,多个私有数据中心、多个公共数据中心、多个私有/公共数据中心)的分布式逻辑L3路由器和/或网络。
图32图示了一些实施例执行以限定多租户数据中心中的租户的服务平面及其相关联的服务节点的过程3200。此过程仅呈现一个示例性操作序列,而并不意味着传达任何所要求的操作顺序。如图所示,该过程最初指定(在3205处)用于建立服务平面的服务附件。服务附件构造与服务平面的实施方式无关(agnostic)。在一些实施例中,服务附件被实现为逻辑交换机,但是,如上所述,在其他实施例中,服务附件被不同地实现(例如,逻辑路由器、逻辑网络等)。
在一些实施例中,服务平面用于将一个租户的数据流量的服务处理与其他租户的数据流量的服务处理分离。在这些或其他实施例中,不同的服务平面用于对不同类型的流量提供不同的QoS或SLA保证。例如,一些实施例使用不同的服务平面为不同租户的不同数据计算端点之间的流量提供不同的QoS或SLA保证,或者为由相同租户或不同租户的不同数据报文流携带的不同类型的内容提供不同的QoS或SLA保证。
在创建服务附件之后,该过程创建(在3210处)要由服务平面提供的服务的服务实例。对于每个已部署的服务实例,该过程指定服务实例是应由高可用性集群提供还是应由独立服务节点提供。该过程还提供服务附件标识符,其识别与服务实例关联的服务附件。该过程还提供了部署规范和实例部署配置。
接下来,在3215处,该过程为在3210处创建的每个服务实例部署每个服务实例运行时。对于每个服务实例运行时,必须在服务附件上创建实例端点。当服务附件为逻辑交换机时,所创建的实例端点为逻辑交换机的逻辑端口。在一些实施例中,当SVM(用作服务实例运行时)得以附接到逻辑交换机时,自动创建逻辑交换机端口。在一些实施例中,在每次部署服务实例时,由管理平面创建服务实例端点。此外,在一些实施例中,可以通过调用一个服务部署对象API来部署服务的服务实例和服务实例运行时。正如刚才提到的,使用该单个API极大地减轻了多次重复调用一个API以部署多个服务实例和服务实例运行时的需要。
在3220处,该过程创建一个或多个服务链。每个服务链被创建为服务配置文件的有序列表。每个服务链都有正向处理方向和逆向处理方向。对于每个服务链,如上所述限定了故障策略。此外,如上所述,一些实施例中对每个服务链将负载均衡标准限定为以下类型之一:任何、本地、服务集群或循环赛。最后,在3225处,为租户限定了服务规则段,在这些段中限定了一个或多个服务规则。每个服务规则将数据报文流属性的集合与服务链标识符相关联,以便指定必须对与指定的流属性集合匹配的数据报文执行的服务链。
一些实施例提供了用于在一个或多个数据中心中操作的主机之间迁移与服务平面相关联的机器的新颖方法。例如,一些实施例通过以下方式迁移与服务平面相关联的服务机器(例如,SVM)或访客机器(例如,GVM):(1)在源主机处收集关于机器的服务平面数据,(2)将数据传送到目标主机,(3)在目标主机上部署机器,以及(4)从源主机中移除机器。
代替在机器的新位置为该机器分配新的服务平面网络地址,该机器可通过在目的主机处的与在源主机处相同的服务平面网络地址寻址。例如,在一些实施例中,可由服务平面MAC(SPMAC)地址寻址的访客机器在迁移到不同主机之后可由相同SPMAC寻址。类似地,在一些实施例中,当与特定的下一跳MAC地址相关联的服务机器被迁移时,该服务机器在迁移之前和之后都可由相同的下一跳MAC地址寻址。在一些这样的实施例中,不需要基于机器迁移之后服务机器位置的变化来更新引用迁移的服务机器的下一跳转发规则。因此,下一跳转发可以与迁移无关。
相反,在一些实施例中,服务平面本身负责跟踪迁移的机器的位置。在一些实施例中,服务平面(例如,配置服务平面的控制器的集合)维护和更新服务平面MAC地址到VTEP的映射以跟踪机器位置并确保寻址到MAC地址的报文被转发到正确的隧道端点以递送到机器。
在一些实施例中,迁移的机器与必须随机器迁移的本地维护的数据相关联。例如,在一些实施例中,访客机器的IO链的预处理器基于在访客机器的主机处维护的动态状态(例如,连接跟踪)来识别流并提供用于服务平面转发的服务元数据(SMD)。此外,在一些实施例中,主机存储特定于访客机器的静态数据,诸如,可适用于访客机器的SI规则和SI规则中识别的服务链的服务路径。在一些实施例中,该信息中的一些或全部信息不在服务插入平台中的其他地方维护。
现在将参考图33-图35来描述访客机器迁移的操作的更详细示例。图33图示了由迁移的GVM的源主机执行的过程3300和由迁移的GVM的目的主机执行的过程3305。下面参考图34A-图34C中所示的GVM迁移示例来描述该过程。应该注意的是,虽然图34A-图34C仅图示了每个GVM VNIC的一个IO链,但GVM VNIC通常具有两个IO链,一个用于从交换机到VNIC的入口,另一个用于从VNIC到交换机的出口。在一些实施例中,出口IO链包括与入口IO链相同的模块,但以相反的顺序放置在VNIC和交换机之间。图34A图示了在迁移GVM 3402的迁移之前的源主机112和目的主机114。过程3300始于当源主机112确定GVM 3402需要被迁移到目的主机114时。
如图所示,过程3300最初(在3310处)收集并保存关于迁移GVM3402的GVM数据。在一些实施例中,GVM数据包括用于在目的主机114上部署或实例化GVM 3402的实例的GVM部署数据。此外,在一些实施例中,GVM数据包括由服务插入模块用来将服务元数据分配给与GVM相关联的数据报文的动态状态数据和静态规则数据。主机112传送(在3320处)收集的GVM数据3490。GVM数据包括用于部署迁移GVM 3402的GVM部署数据的集合。在该示例中,GVM数据3490还包括从连接跟踪存储装置804(包括动态状态数据,诸如,服务元数据(SMD)到流标识符的映射)收集的连接跟踪数据、来自SI规则存储装置806的与GVM 3042相关的服务插入规则、以及与来自路径表808的SI规则识别的服务链的GVM 3402相关的服务路径。在一些实施例中,GVM数据通过虚拟机移动性管理服务(例如,VMware公司的企业移动性管理)发送。此外,在一些实施例中,当传送GVM数据时,为GVM部署数据、连接数据、SI规则和服务路径中的每一个限定TLV报头。
在一些实施例中,服务路径选择度量和下一跳地址都从路径表中收集并与GVM数据一起传送。在其他实施例中,服务路径的第一跳MAC地址被存储在单独的转发表(例如,图8的转发表810)处并从该单独的转发表收集。在一些实施例中,服务路径和服务路径选择度量不与GVM数据一起收集和传送。一些这样的实施例替代地在每个主机处存储从CCP分发的每个服务路径或者仅在每个特定的主机处存储由CCP分发给该特定的主机的服务路径。
在从源主机112传送GVM数据之后,过程3305开始并在目的主机114处接收(在3325处)GVM数据。在一些实施例中,GVM数据向目的主机提醒机器迁移。该过程使用GVM数据在目的主机114上部署(在3335处)迁移GVM 3402。图34B图示了在GVM 3402已部署在主机114上之后的源主机112和目的主机114。在3335处,该过程还部署了端口3452和用于新部署的GVM3402的入口和出口IO链。GVM 3402连接到这些IO链,并通过这些IO链连接到主机114上的交换机122的端口3452。在该示例中,部署的入口IO链包括SI预处理器3411、STL调用器3425以及SI后处理器3413。在一些实施例中,端口代理3420存储GVM 3402到其新位置的映射。在一些实施例中,端口代理3420将GVM SPMAC地址映射到STL调用器3425。另外,在一些实施例中,GVM 3402在源主机112和目的主机114处具有相同的SPMAC。
一旦已经部署了GVM 3402及其IO链,过程3305开始从接收到的GVM数据3490恢复GVM 3402动态状态和静态规则数据。在一些实施例中,SI预处理器3411不能处理迁移的GVM3402的流,直到GVM 3402状态和规则数据的至少一部分已经在目的主机114上恢复并且可以由SI预处理器访问为止。在3345处,该过程为GVM 3402恢复连接数据,将接收到的连接数据存储在连接跟踪存储装置3404中。在一些实施例中,SI预处理器3411可以立即开始处理现有数据流,其中连接跟踪存储装置包含足以用于服务平面转发的服务元数据(例如,SPI、SI、方向、第一个下一跳地址等)。在这种情况下,预处理器3411可以在恢复GVM 3402的服务插入规则和路径之前重新开始流处理。在一些实施例中,新数据流被保持(例如,在SI预处理器处)直到服务插入规则和服务路径数据被恢复为止。在其他实施例中,与服务插入规则不匹配的新的流被转发到其目的地。
在3355处,过程3305基于接收到的GVM数据3490恢复GVM 3402的SI规则。SI规则存储在SI规则存储装置3406中。在该示例中,SI规则存储装置将GVM 3402的SI规则和GVM3402存储在不同的段中。在其他实施例中,每个GVM都有其自己的规则存储装置。在一些实施例中,用于所有GVM的规则被存储在单个存储装置的单个段中。在恢复GVM 3402的SI规则之后,该过程恢复(在3365处)路径表3408中的接收的路径和路径数据(例如,选择标准、第一跳MAC地址等)。在该示例中,GVM 104和GVM 3402共享路径表3408,但是在一些实施例中,相同主机上的访客机器也可以共享单个段或具有它们自己的存储装置。在一些实施例中,一旦路径表被恢复,预处理器3411就开始处理新的流。然而,在其他实施例中,预处理器在控制平面更新路径表之后才开始处理新的流。在一些此类情况下,预处理器继续保持属于新数据流的数据报文。一旦路径表已经恢复,过程3305就通知(在3365处)控制位置(例如,CCP)GVM部署和数据恢复完成并结束。
当主机112接收到GVM 3402已经部署在主机114上并且GVM 3402的状态和规则已经恢复的确认时,过程3300将在3330处从主机112启动对GVM 3402的销毁。在一些实施例中,源主机112从CCP接收确认,而在其他实施例中,从目的主机114本身接收确认。在一些实施例中,GVM 3402首先在主机114处与其IO链断开连接,然后被移除。
在3330,主机112还销毁GVM的IO链和端口3450,GVM 3402通过其连接到vswitch120,包括SI预处理器3410、STL调用器3424和SI后处理器3412。在一些实施例中,IO链在从主机112移除之前从端口3450断开。在一些实施例中,过程3300从主机112移除特定于迁移的GVM 3402的数据。在这种情况下,主机112从连接跟踪存储装置804、SI规则存储装置806和路径表808中移除GVM 3402数据。端口代理620还移除了GVM 3402到其SPMAC的映射。一旦GVM 3402、GVM 3402的IO链及其相关联的数据已从主机112移除,过程3300就通知(在3340处)控制平面(例如,CCP)GVM 3402已与源主机112断开连接并结束。图34C图示了在完成GVM3402的迁移后的主机112和主机114。
在一些实施例中,控制平面负责检测机器迁移并相应地更新服务平面。参考图35进一步描述了在GVM迁移之后执行的控制平面操作,图35图示了在一些实施例中由控制平面执行的过程3500。下面也参考图34A-图34C描述该过程。
如图所示,过程3500始于当控制平面确定(在3510处)GVM 3402已经从源主机112迁移到目的主机114时。在一些实施例中,控制平面基于在CCP处接收的一个或多个通知来确定访客机器已经迁移了主机。在一些实施例中,控制平面从目的主机接收已部署访客机器的第一通知并从源主机接收访客机器已断开的第二通知。在一些实施例中,第一通知由目的主机的LCP发送并且第二通知由源主机的LCP发送。
一旦控制平面确定GVM 3402已经迁移,过程(在3520处)公布迁移的GVM的新位置。在一些实施例中,控制平面发布GVM SPMAC(其在迁移之后与之前相同)到VTEP的映射,通过该VTEP可以到达GVM。在一些实施例中,VTEP用于在数据流完成了服务路径之后将数据流返回到其源GVM IO链。在一些实施例中,VTEP是用于新主机上的端口代理的VTEP,其将与GVM相关联的数据流从服务平面插入和插入到服务平面(例如,端口代理3420)。
在一些实施例中,VTEP到SPMAC的映射被发布到由服务平面维护的全局转发表,并在该表中替换SPMAC到源主机的VTEP的映射。在一些实施例中,将映射从CCP发布到服务平面的每个转发元件的主机处的LCP。
在一些实施例中,迁移的GVM的新位置也由服务平面基于从GVM的IO链插入到服务平面中的数据流通过源学习而获悉。在一些这样的实施例中,插入的流量附加有识别从GVM转发流量所通过的源VTEP的VTEP源标签。VTEP源标签沿着其穿过服务平面的每一跳携带。在一些实施例中,VTEP源标签被添加到数据流的数据报文的服务元数据。在一些这样的实施例中,针对SPMAC和VTEP标签在每一跳处检查数据报文。从数据报文的服务元数据中检索源标签的SPMAC和VTEP,并获悉SPMAC到VTEP的映射。在一些实施例中,该映射可以用来将服务路径的端部处的数据报文返回到源GVM的IO链,该数据报文就是从该IO链插入到服务平面中。
如果需要,控制平面为迁移的GVM的目的主机114生成(在3530处)新的服务路径。在一些实施例中,至少部分地基于服务路径的SVM相对于选择服务路径的主机的位置(例如,在其处为了要执行的服务路径而将数据报文插入服务平面中)而为服务链选择服务路径。因此,为GVM迁移的源主机112生成的服务路径对于目的主机114可能不是最佳的。在一些实施例中,新的服务路径是基于目的主机相对于服务的SVM的位置而选择的最佳服务路径。新的服务路径被递送到GVM的目的主机,并存储在路径表中。在一些实施例中,新的服务路径在CCP处生成,并通过目的主机的LCP分发到目的主机。一些实施例仅将每个服务链的单个服务路径递送到每个主机。其他实施例为每个主机每个服务链分发多个服务路径。在一些这样的实施例中,每个主机的LCP基于选择标准从多个接收到的服务路径中选择每个服务链的一个服务路径来存储。在其他这样的实施例中,每个接收到的服务路径被存储并且LCP为接收到的服务路径生成选择度量。在一些这样的实施例中,例如基于加权循环赛选择,使用服务路径选择度量在逐个流的基础上为服务链选择服务路径。
在一些实施例中,服务路径选择不依赖于服务路径的SVM相对于GVM主机的位置。例如,服务路径选择可以取决于SVM相对于彼此的位置,而不是相对于GVM的主机的位置。在这种情况下,GVM的迁移不会影响服务路径选择。在这种情况下,新的服务路径的生成在GVM迁移后将不是必要的,可以跳过。在一些实施例中,在机器迁移期间不迁移服务规则和/或服务路径,而是由CCP将GVM的旧服务规则和/或服务路径分发到目的主机(例如,主机114)。
在3540处,如果有必要,控制平面为目的主机114处的路径表3408的服务路径计算新的服务路径选择度量。在一些实施例中,总是为从中央控制平面接收的新服务路径计算服务路径选择度量。此外,在一些实施例中,在没有服务路径选择度量的情况下迁移服务路径,并且为接收到的服务路径计算服务路径选择度量。当服务路径选择度量至少部分基于服务路径SVM相对于GVM主机的位置时,迁移的服务路径选择度量可能不再准确,并且在一些实施例中计算新的服务路径选择度量以替换迁移的服务路径选择度量。在一些实施例中,当迁移的GVM是主机上的第一个GVM时,主机在迁移之前没有存储任何服务路径。在一些这样的实施例中,迁移后存储在目的主机的所有服务路径是从源主机迁移的服务路径。在其他实施例中,服务路径根本不随GVM迁移。
在一些实施例中,服务路径选择度量不依赖于GVM本身的位置,而是依赖于生成选择度量的主机的位置。在一些这样的实例中,不需要为已经存储在目的主机上的路径表中的服务路径计算服务路径选择度量。在这样的实施例中,由于服务平面中的其他变化,仍然可以计算服务路径选择度量。在其他实施例中,当服务路径选择度量不依赖于GVM主机的位置时,为已经具有选择度量的任何服务路径计算服务路径选择度量是不必要的并且可以跳过。一旦计算出任何必要的服务路径选择度量,过程3500就结束。
一些实施例还提供用于在一个或多个数据中心中操作的主机之间迁移服务机器(例如,SVM)的新颖方法。例如,当托管一个或多个服务机器的第一主计算机需要停机维护时,第一主计算机上运行的服务机器可以迁移到第二主计算机上。在一些情况下,可以在主机器之间迁移服务机器以均衡工作负载、简化权限或防火墙实现或提供改进的服务路径。
在一些这样的实施例中,SVM在主计算机的共享存储器(例如,VMware ESX主机中的共享存储器)中执行。在一些这样的实施例中,为了对文件执行服务操作,SVM定位该文件在共享存储器中的存储位置,并在执行服务操作之前在内核空间打开该文件。在一些这样的实施例中,SVM只能对存储在相同ESX中的文件执行服务操作。在一些这样的实施例中,主机之间的SVM的迁移需要与VM相关联的过滤器模块(例如,dvFilter)的迁移。在其他这样的实施例中,SVM替代地是不在共享存储器中运行的MAC可寻址实体。现将参考图36-图39描述MAC可寻址服务机器迁移操作的更详细示例。
图36图示了在迁移的SVM 3706的源主机112处执行的过程3600和在迁移的SVM的目的主机114处执行的过程3605。下面参考图37A-图37C中图示的SVM迁移示例来描述该过程。图37A图示了SVM 3706的迁移之前的主机112和主机114。过程3600始于当源主机112确定SVM 3706需要迁移到目的主机114时。
如图所示,过程3600最初保存(在3610处)关于SVM 3706的SVM数据。在一些实施例中,SVM数据包括用于在主机114上部署SVM 3706的数据。在一些实施例中,SVM数据还包括由SVM 3706用来识别数据报文流和对数据报文流执行服务的动态状态SVM数据和静态规则SVM数据。
在一些实施例中,SVM规则数据包括服务元数据(例如,SCI、SI和目的地)到用于对数据报文流执行服务的服务规则集合的映射。此外,在一些实施例中,SVM状态数据包括流标识符到用于对数据报文流执行的服务操作的映射。在一些实施例中,状态数据包括基于对服务规则集合中的数据流标识符的查找的决策到数据流标识符的映射。在一些实施例中,SVM数据还包括用于为SVM IO链配置SI代理(例如,SI代理3715)的数据和由SI代理使用的任何状态数据。在一些实施例中,SI代理数据包括迁移的SVM所属于的服务路径的下一跳转发规则的集合。此外,在一些实施例中,SI代理状态数据包括在SI代理处维护的度量和统计信息,例如流量记录。
源主机1112将保存的SVM数据3790传送(在3620处)到目的主机114。在一些实施例中,SVM数据3790通过虚拟机移动性管理服务(例如,VMware公司的企业移动性管理)发送。在一些实施例中,包括任何SVM规则数据、SVM状态数据和SI代理数据的所有SVM数据与迁移的SVM 3706一起移动。在其他实施例中,SVM规则数据、SVM状态数据和SI代理数据中的一些或全部通过虚拟机迁移框架单独迁移。
在从源主机112传送SVM数据3790之后,过程3605开始并在目的主机114处接收(在3625处)SVM数据。在一些实施例中,SVM数据向目的主机提醒机器迁移。该过程使用SVM数据3790在目的主机114上部署(在3635处)SVM 3706。图37B示出了在SVM 3706已经部署在主机2上之后的主机112和主机114。在一些实施例中,迁移的SVM 3706与使用迁移的SVM数据3790的迁移的SVM状态和SVM规则中的一些或全部一起部署。在其他实施例中,SVM状态和规则数据中的一些或全部在部署之后被恢复,例如,恢复单独迁移的SVM数据(例如,SI代理状态)。
在3635处,过程3605还部署端口3755以及入口和出口IO链。该过程将SVM 3706连接到IO链,并将SVM 3706通过IO链连接到目的主机114处的交换机122上的端口3755。在该示例中,部署的IO链包括SI代理3715和STL模块3727。在一些实施例中,迁移的下一跳转发规则在SI代理3715的部署期间被消耗,并且SI代理部署有已配置的下一跳转发规则。在其他实施例中,下一跳转发规则由服务平面全局存储并提供给SI代理3715。在还有其他实施例中,下一跳转发规则在部署之后由CCP提供。在一些实施例中,在IO链的部署期间,迁移的SVM 3706的下一跳地址由服务平面保存。此外,在一些实施例中,迁移的SVM可通过目的主机处的与源主机处相同的下一跳地址进行寻址。在此示例中,服务平面存储SVM 3706到VTEP的映射,通过该VTEP可以在目的主机114处通过端口3755到达SVM 3706,其为在主机114处的与在主机112处分配给SVM 3706的相同的下一跳MAC地址。
在一些实施例中,一旦已经部署了SVM 3706及其IO链,过程3605就从接收到的SVM数据3790恢复(在3645处)SVM 3706动态状态和静态规则数据。在一些这样的实施例中,恢复的状态可以用于在恢复静态规则之前处理先前处理的流的数据报文。在一些实施例中,当迁移的SVM是目的主机上的第一SVM时,目的主机不具有任何下一跳转发规则或VTEP到MAC地址的映射。在一些这样的实施例中,过程3605从迁移的SVM数据3790中恢复下一跳转发规则和/或VTEP到MAC的映射。在一些实施例中,当CCP不活动或以其他方式无法分发服务平面信息时,过程3605还恢复下一跳转发规则和/或VTEP到MAC地址的映射。在其他实施例中,所有迁移的SVM数据在部署迁移的SVM时反而被消耗。在这种情况下,部署后恢复SVM状态是不必要的,可以跳过。一旦恢复了任何必要的状态和/或规则,过程3605就结束。
当主机112接收到SVM 3706已经在主机114上部署和配置的确认时,过程3600将从主机112发起对SVM 3706的销毁(在3630处)。在一些实施例中,源主机从CCP接收确认,而在其他实施例中,从目的主机本身接收确认。在一些实施例中,SVM 3706首先与其IO链断开连接,然后被移除。
在3630处,该过程还销毁SVM 3706的IO链和端口3754,SVM 3706通过其连接到vswitch 120,包括SI代理3714和STL模块3726。在一些实施例中,IO链在从主机112移除之前从端口3754断开。在一些实施例中,源主机移除特定于迁移的SVM的数据。在一些实施例中,服务平面还移除迁移的SVM 3706到其在主机112处的位置的映射。一旦SVM 3705、SVM3706的IO链及其关联数据已经从源主机112移除,过程3600结束。图37C图示了在SVM 3706的迁移已经完成之后的主机112和主机114。
在一些实施例中,控制平面负责检测SVM迁移并相应地更新服务平面和转发平面。参考图38进一步描述在SVM迁移之后执行的控制平面操作,图38示出了在一些实施例中由控制平面执行的过程3800。下面也参考图37A-图37C描述该过程。
如图所示,过程3800始于当控制平面确定(在3810处)SVM 3706已经从源主机112迁移到目的主机114时。在一些实施例中,控制平面基于在CCP处接收的一个或多个通知来确定SVM已经迁移了主机。在一些实施例中,控制平面从目的主机114接收已部署SVM 3706的第一通知并从源主机112接收SVM 3706已断开的第二通知。在一些实施例中,第一通知由目的主机的LCP发送,第二通知由源主机的LCP发送。
一旦控制平面确定SVM 3706已经迁移,过程(在3820处)发布迁移的SVM 3706的新位置以配置服务平面以将寻址到SVM 3706的报文转发到目的主机114而不是源主机112。在一些实施例中,控制平面发布SVM下一跳MAC地址(迁移后与之前相同)到VTEP的映射,通过该VTEP现在可以到达SVM。在一些实施例中,该映射被发布到在服务平面处维护的全局转发表,其中该映射替换SVM到与源主机(例如,112)相关联的VTEP的先前映射。在一些这样的实施例中,将映射从CCP发布到在实现服务平面的每个转发元件的主机处的LCP。在这个示例中,封装模块628和3428被配置为用主机114的VTEP而不是主机112的VTEP来封装寻址到SVM3706的MAC地址的数据包。
如果需要,控制平面基于SVM 3706的迁移生成(在3830处)新的服务路径。在一些实施例中,服务路径选择度量至少部分取决于服务路径中服务节点彼此之间的相对位置。在这样的一些实施例中,一旦SVM已经迁移到不同的主机,就不再优化包括该SVM的服务路径。在一些实施例中,生成新的服务路径以替换包括迁移的SVM 3706的服务路径,其中SVM3706被执行相同服务的不同SVM替换。在一些实施例中,SVM的迁移允许生成包括迁移的SVM的新服务路径,这些新服务路径与服务链的先前服务路径相比是最优的。
在3840处,该过程分发服务路径。在一些实施例中,以下一跳转发规则的形式发送服务路径。在一些实施例中,控制平面(例如,CCP)向目的主机114分发包括迁移的SVM 3706的任何服务路径。在其他实施例中,下一跳转发规则在服务平面中全局维护,并且目的主机114将已经具有用于包括迁移的SVM 3706的服务路径的下一跳转发规则。在一些实施例中,接收的服务路径由服务路径的服务节点的服务代理(例如,SI代理3715)存储。
在一些实施例中,服务路径在CCP处生成并通过每个主机的LCP分发到主机。在一些实施例中,CCP将用于新服务路径的下一跳转发规则分发到托管服务平面的SVM的每个主机,而在其他实施例中,将用于每个特定服务路径的下一跳转发规则分发到特定服务路径所跨越的主机。
在一些实施例中,新生成的服务路径被至少分发到执行与为其生成该服务路径的服务链相关联的GVM的主机的子集。在一些实施例中,每个主机为每个服务链接收一个服务路径,而在其他实施例中,每个主机为每个服务链接收多个服务路径。在一些实施例中,主机接收与其GVM相关联的服务链的服务路径,而在其他实施例中,每个主机接收每个分布式服务路径。在一些实施例中,接收到的服务路径存储在其各自主机的服务路径表中。此外,在一些实施例中,每个GVM主机的LCP为每个服务链选择一个服务路径来存储。
在3850处,控制平面为某些路径表的服务路径计算新的服务路径选择度量。在一些实施例中,为包括迁移的SVM 3706的每个服务路径计算新的服务路径选择度量。在一些实施例中,当生成新的服务路径时,为每个新的服务路径生成服务路径选择度量。在一些实施例中,由主机的LCP为每个主机的路径表计算服务路径选择度量。一旦计算出服务路径选择度量,过程3800就结束。当对每个服务链只存储一个服务路径时,在一些实施例中,服务路径选择度量不与服务路径一起存储。
一些实施例还提供用于在相同主计算机的磁盘配给之间迁移服务机器的新颖方法。例如,用户或管理员可能希望将SVM从私有磁盘配给迁移到共享磁盘配给,或反之亦然。在一些实施例中,第一磁盘配给和第二磁盘配给与相同主计算机上的单独数据存储器(例如,两个VMware NFS数据存储器)相关联。在一些实施例中,磁盘配给是相同磁盘存储装置的第一配给和第二配给。在其他实施例中,磁盘配给是分开的第一磁盘存储装置和第二磁盘存储装置。在一些这样的实施例中,SVM可以在相同主计算机的硬件磁盘存储装置之间迁移以均衡其间的工作负载。用于在磁盘配给之间迁移SVM的过程遵循图36中图示的相同的一组操作。然而,在主机内SVM迁移的情况下,过程3600由源磁盘配给执行以进行迁移,并且过程3605由目的磁盘配给执行。下面参考图39图示的主机内SVM迁移示例来描述该过程。过程3600始于当确定主机112的第一磁盘配给上的NFS数据存储器3910上的SVM 3906需要迁移到也位于主机112上的第二磁盘配给上的NFS数据存储器3920时。3901图示了迁移之前的主机112。
如图所示,过程3600最初保存(在3610处)关于SVM 3906的SVM数据。源NFS 3910将(在3620处)保存的SVM数据3990传送到目的NFS 3920。在一些实施例中,SVM数据3990至少包括将在主计算机间的SVM迁移期间收集的SVM数据(例如,SVM数据3790)的子集。在一些实施例中,SVM数据3990通过主机112上的虚拟机移动性管理服务(例如,VMware公司的企业移动性管理)发送。在从源NFS 3910传送SVM数据3990之后,过程3605开始并在目的NFS 3920处接收(在3625处)SVM数据3990。在一些实施例中,SVM数据3990向NFS 3920提醒机器迁移。
过程3605使用SVM数据3990来在目的NFS 3920上部署(在3635处)SVM 3906。在一些实施例中,SVM 3906使用迁移的SVM数据3990部署有迁移的SVM状态和规则中的一些或全部。在其他实施例中,部分或全部的SVM状态和规则数据会替代地在部署后恢复。在3635处,该过程还部署了端口3955以及入口IO链和出口IO链。SVM 3906连接到IO链,并通过IO链连接到交换机120的端口3955。在该示例中,部署的IO链包括SI代理3915和STL模块3927。
在3902处,SVM的IO链的两个实例在主机112上执行。在一些实施例中,SVM 3906的两个实例的IO链可通过相同的VNIC MAC地址寻址。此外,在一些实施例中,端口3954和端口3955具有不同的端口ID。在一些实施例中,作为部署的一部分(在3635处),该过程保存从至部署在NFS 3920上的SI代理3915的句柄(handle)到MAC地址和端口3955端口ID的映射(例如,在端口表或句柄表中)。
在一些实施例中,一旦SVM 3906及其IO链已经部署在NFS 3920上,过程3605就从接收到的SVM数据3990恢复(在3645处)NFS 3920处的SVM 3906动态状态和静态规则数据。在其他实施例中,所有迁移的SVM数据替代地在部署SVM 3906时消耗,并且在部署后恢复SVM状态和规则是不必要的,可以跳过。一旦恢复了任何必要的状态和/或规则,过程3605就结束。
当NFS 3910接收到SVM 3906已经部署和配置在NFS 3920上的确认时,过程3600将启动从NFS 3920销毁SVM 3906(在3630处)的操作。在一些实施例中,源NFS从CCP接收确认,而在其他实施例中,从LCP或目的NFS本身接收确认。在一些实施例中,SVM 3906首先与其IO链断开,然后从NFS 3920中移除。
在3630处,该过程还销毁在NFS 3910处的SVM 3906的IO链和端口3954,SVM 3906通过其从NFS 3910连接到vswitch 120,包括SI代理3914和STL模块3926。在一些实施例中,IO链在从NFS 3910中移除之前与端口3954断开。在一些实施例中,源NFS 3910移除特定于迁移的SVM 3906的数据。在一些实施例中,服务平面还移除其SVM 3906到端口3954的映射。一旦SVM 3906、SVM的IO链及其关联数据已从NFS 3910中移除,过程3600结束。3903图示了在SVM 3906的主机内迁移已经完成之后的NFS 3910和NFS 3920。
如上所述,在一些实施例中,在主机内迁移期间存在间隔,在该间隔中SVM的IO链在具有相同MAC地址的相同主机上的第一磁盘配给和第二磁盘配给中执行。在一些实施例中,这发生在SVM的IO链已经部署在第二磁盘配给中(在3635处)之后但在SVM的IO链已经从第一磁盘配给中移除(在3630处)之前。例如,在3902处,NFS 3910处的SI代理3914和NFS3920处的SI代理3915都在主机112上执行。在一些实施例中,这会导致控制平面和SI代理之间的通信出现问题。例如,在一些实施例中,当LCP 3930需要向SI代理3915发送报文时,LCP基于SVM 3906的MAC地址查找SI代理3915的句柄。但是,当具有相同MAC地址的两个SI代理在相同主机上运行时,仅基于MAC地址的查找将识别出两个SI代理句柄。MAC地址查找因此返回SI代理3914的句柄和SI代理3915的句柄。
在一些实施例中,使用期望的SI代理的端口ID来执行第二次查找以选择正确的句柄。在该示例中,为了识别SI代理3915的句柄,LCP 3930使用端口3955的端口ID执行第二次查找。该第二次查找返回SI代理3915的句柄。在其他实施例中,替代地使用SI代理的MAC地址和端口ID这两者执行初始查找,以便在一次搜索中识别正确的句柄。在一些实施例中,LCP使用该句柄发送配置报文来配置SI代理。
在一些实施例中,活动性线程3940在确定其用于SVM 3906的活动性计时器已经期满时向SVM 3906代理发送报文以向SVM 3906发送报文。为确保将活动性计时器报文发送到SI代理3915而不是3914,活动性线程3940还执行使用MAC地址进行的第一次查找和使用端口ID进行的第二次查找,或使用MAC地址和端口ID这两者进行的单次查找,以识别SI代理3915的句柄。此外,在一些实施例中,服务平面自动存储端口ID与MAC地址的关联,并在数据平面转发期间使用相关端口ID和目的机器的MAC地址这两者来识别SVM的IO链。
许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的指令集的软件过程。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,其使得(一个或多个)处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或存储在磁存储装置中的应用程序,并可以被读入存储器以供处理器处理。此外,在一些实施例中,多个软件发明可以被实现为较大程序的子部分,同时保留不同的软件发明。在一些实施例中,多个软件发明也可以实现为单独的程序。最后,一起实现这里描述的软件发明的单独程序的任何组合都在本发明的范围内。在一些实施例中,当安装软件程序以在一个或多个电子系统上运行时,软件程序限定了执行和实行软件程序的操作的一个或多个特定的机器实现。
图40概念性地示出了利用其实施本发明的一些实施例的计算机系统4000。计算机系统4000可以被用于实现上述主机、控制器和管理器中的任何一个。因此,计算机系统4000可以用于执行任何上述过程。该计算机系统包括各种类型的非暂时性机器可读介质和用于各种其他类型的机器可读介质的接口。计算机系统4000包括总线4005、(一个或多个)处理单元4010、系统存储器4025、只读存储器4030、永久存储装置4035、输入装置4040和输出装置4045。
总线4005共同代表通信地连接计算机系统4000的众多内部装置的所有系统、外围和芯片组总线。例如,总线4005将(一个或多个)处理单元4010通信地连接到只读存储器4030、系统存储器4025和永久存储装置4035。
(一个或多个)处理单元4010从这些不同的存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同的实施例中,(一个或多个)处理单元可以是单个处理器或多核处理器。只读存储器(ROM)4030存储(一个或多个)处理单元4010和计算机系统的其他模块所需的静态数据和指令。另一方面,永久存储装置4035是读写存储器装置。该装置是非易失性存储器单元,其即使在计算机系统4000关闭时也存储指令和数据。本发明的一些实施例使用大容量存储装置(例如磁盘或光盘及其对应的磁盘驱动器)作为永久存储装置4035。
其他实施例使用可移除存储装置(例如闪存驱动器等)作为永久存储装置。与永久存储装置4035一样,系统存储器4025是读写存储器装置。然而,与存储装置4035不同,系统存储器是易失性读写存储器,例如随机存取存储器。系统存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程存储在系统存储器4025、永久存储装置4035和/或只读存储器4030中。从这些不同的存储器单元中,(一个或多个)处理单元4010检索要执行的指令和要处理的数据,以执行一些实施例的过程。
总线4005还连接到输入装置4040和输出装置4045。输入装置使用户能够向计算机系统传达信息和选择命令。输入装置4040包括字母数字键盘和指示装置(也称为“光标控制装置”)。输出装置4045显示由计算机系统生成的图像。输出装置包括打印机和显示装置,例如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括用作输入装置和输出装置二者的装置,例如触摸屏。
最后,如图40所示,总线4005还通过网络适配器(未示出)将计算机系统4000联接到网络4065。以此方式,计算机可以是计算机的网络(例如局域网(“LAN”)、广域网(“WAN”),或内联网,或网络的网络,例如互联网)的一部分。计算机系统4000的任何或所有组件可以结合本发明使用。
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器-可读存储介质)的电子部件,诸如微处理器、存储装置和存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读紧凑盘(CD-ROM)、可记录紧凑盘(CD-R)、可重写紧凑盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存(如SD卡、迷你SD卡、微型SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录蓝
Figure BDA0003221031950000761
盘、超密度光盘以及任何其他光学或磁性介质。计算机可读介质可以存储可由至少一个处理单元执行并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子部件或使用解释器的微处理器执行的高级代码的文件。
虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但一些实施例由一个或多个集成电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))执行。在一些实施例中,这种集成电路执行存储在电路本身上的指令。
如本说明书中所使用的,术语“计算机”、“服务器”、“处理器”和“内存”均指电子装置或其他技术装置。这些术语不包括人或人群。出于说明书的目的,术语显示器或显示意味着在电子装置上显示。本说明书中使用的术语“计算机可读介质”和“机器可读介质”完全限于以计算机可读的形式存储信息的有形物理对象。这些术语不包括任何无线信号、有线下载信号和任何其他短暂或暂时的信号。
虽然已经参考许多具体细节描述了本发明,但是本领域的普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其他具体形式实施。例如,若干个图在概念上说明了过程。这些过程的特定的操作可能不会按照所示和描述的确切顺序执行。具体的操作可以不是在一个连续的操作系列中进行,在不同的实施例中可以进行不同的具体操作。此外,该过程可以使用若干个子过程来实现,或者作为一个更大的宏过程的一部分。
尽管在若干个上述示例中的服务插入规则提供了服务链标识符,但是可以通过使服务插入规则提供由服务插入规则指定的不同服务的服务标识符(例如,SPI)来实现这里描述的一些发明。类似地,若干上述实施例执行分布式服务路由,该路由依赖于在每个服务跳处通过基于SPI/SI值执行完全匹配而识别下一服务跳。然而,这里描述的一些发明可以通过使服务插入预处理器将所有服务跳标识符(例如,服务跳MAC地址)嵌入为数据报文的服务属性集合和/或嵌入数据报文的封装服务报头中来实现。
此外,一些实施例以与上述方法不同的方式(例如,在不同的时间)递减SI值。此外,代替仅基于SPI和SI值执行下一跳查找,一些实施例基于SPI、SI和服务方向值执行此查找,因为这些实施例对在两个机器之间流动的数据报文的正向和逆向使用共同的SPI值。
在一些实施例中使用上述方法来表达单个租户环境中的路径信息。因此,普通技术人员将意识到本发明的一些实施例同样可适用于单个租户数据中心。相反,在一些实施例中,当一个实体(例如,一个公司)是不同提供商的多个不同数据中心中的租户时,上述方法用于跨不同数据中心提供商的不同数据中心携带路径信息。在这些实施例中,嵌入在隧道报头中的租户标识符必须跨数据中心唯一,或者在从一个数据中心穿过到下一个数据中心时必须被转换。因此,本领域的普通技术人员将理解,本发明不受前述说明性细节的限制,而是由所附权利要求书限定。

Claims (40)

1.一种执行用于与在主计算机上执行的机器相关联的数据报文的服务的方法,所述方法包括:
在主计算机上:
配置第一分布式转发元件(DFE)以基于由机器指定的网络地址转发由机器发送的数据报文;并且
在第一DFE基于由机器指定的网络地址转发数据报文之前,配置第二DFE以将由机器发送的数据报文转发到一个或多个服务节点的集合,
每个DFE由在主计算机上执行的至少一个软件转发元件(SFE)和在至少一个其他主计算机上执行的至少一个其他SFE实现。
2.如权利要求1所述的方法,其中,所述第一DFE和所述第二DFE是相同类型的转发元件。
3.如权利要求2所述的方法,其中,每个DFE是分布式软件交换机,并且每个SFE是软件交换机。
4.如权利要求1所述的方法,其中,主计算机上的一个SFE被配置为实现所述第一DFE和所述第二DFE两者。
5.如权利要求1所述的方法,其中,主计算机上的第一SFE和第二SFE被配置为分别实现所述第一DFE和所述第二DFE。
6.如权利要求1所述的方法,其中,所述第二DFE限定了服务转发平面,用于在基于由机器指定的网络地址转发数据报文之前将数据报文转发到服务节点,而所述第一DFE限定了访客转发平面以基于由机器指定的网络地址转发数据报文。
7.如权利要求6所述的方法,其中
所述方法在数据中心中利用用作数据报文流的源机器和目的机器的访客机器和用作服务节点的至少子集的服务机器来实现,
所述第一DFE包括用于从与转发平面连接的访客机器接收数据报文和向与转发平面连接的访客机器提供数据报文的端口,
所述第二DFE包括用于向与服务平面连接的服务机器提供数据报文和从与服务平面连接的服务机器接收数据报文的端口,并且
通过不为所述第一DFE上的服务机器限定端口来将服务机器与访客转发平面分离,并且通过不为所述第二DFE上的每个访客机器限定端口来将访客机器与服务平面分离,
分离通过确保服务机器不能将数据报文直接转发到访客机器并且访客机器不能将数据报文直接转发到服务机器来提高访客机器和服务机器的安全性。
8.如权利要求6所述的方法,其中
所述第一DFE具有用于从机器接收数据报文的端口,
所述第二DFE不具有用于从机器接收数据报文的端口,但具有用于从特定端口代理接收数据报文的特定端口,所述特定端口代理在主计算机上执行以接收由机器发送的数据报文并将数据报文转发到所述特定端口。
9.如权利要求8所述的方法,其中,端口代理用作在主计算机上执行的多个机器与所述第二DFE之间的接口。
10.如权利要求1所述的方法,其中,所述第二DFE包括用于每个服务节点的服务代理,所述服务代理在主计算机上执行以对由机器发送的数据报文执行服务操作,并且所述服务代理用于将提供给所述服务代理的关联服务节点的数据报文格式化。
11.一种存储程序的非暂时性机器可读介质,所述程序用于由主计算机的至少一个处理单元执行,并且用于执行用于与在主计算机上执行的机器相关联的数据报文的服务,所述程序包括用于以下的指令集:
配置第一分布式转发元件(DFE)以基于由机器指定的网络地址转发由机器发送的数据报文;并且
在第一DFE基于由机器指定的网络地址转发数据报文之前,配置第二DFE以将由机器发送的数据报文转发到一个或多个服务节点的集合,
每个DFE由在主计算机上执行的至少一个软件转发元件(SFE)和在至少一个其他主计算机上执行的至少一个其他SFE实现。
12.如权利要求11所述的非暂时性机器可读介质,其中,所述第一DFE和所述第二DFE是相同类型的转发元件。
13.如权利要求12所述的非暂时性机器可读介质,其中,每个DFE是分布式软件交换机,并且每个SFE是软件交换机。
14.如权利要求11所述的非暂时性机器可读介质,其中,主计算机上的一个SFE被配置为实现所述第一DFE和所述第二DFE两者。
15.如权利要求11所述的非暂时性机器可读介质,其中,主计算机上的第一SFE和第二SFE被配置为分别实现所述第一DFE和所述第二DFE。
16.如权利要求11所述的非暂时性机器可读介质,其中,所述第二DFE限定了服务转发平面,用于在基于由机器指定的网络地址转发数据报文之前将数据报文转发到服务节点,而所述第一DFE限定了访客转发平面以基于由机器指定的网络地址转发数据报文。
17.如权利要求16所述的非暂时性机器可读介质,其中
数据中心中的访客机器用作数据报文流的源机器和目的机器,并且服务机器用作服务节点的至少子集,
所述第一DFE包括用于从与转发平面连接的访客机器接收数据报文和向与转发平面连接的访客机器提供数据报文的端口,
所述第二DFE包括用于向与服务平面连接的服务机器提供数据报文和从与服务平面连接的服务机器接收数据报文的端口,并且
通过不为所述第一DFE上的服务机器限定端口来将服务机器与访客转发平面分离,并且通过不为所述第二DFE上的每个访客机器限定端口来将访客机器与服务平面分离,
分离通过确保服务机器不能将数据报文直接转发到访客机器并且访客机器不能将数据报文直接转发到服务机器来提高访客机器和服务机器的安全性。
18.如权利要求16所述的非暂时性机器可读介质,其中
所述第一DFE具有用于从机器接收数据报文的端口,
所述第二DFE不具有用于从机器接收数据报文的端口,但具有用于从特定端口代理接收数据报文的特定端口,所述特定端口代理在主计算机上执行以接收由机器发送的数据报文并将数据报文转发到所述特定端口。
19.如权利要求18所述的非暂时性机器可读介质,其中,端口代理用作在主计算机上执行的多个机器与所述第二DFE之间的接口。
20.如权利要求11所述的非暂时性机器可读介质,其中,所述第二DFE包括用于每个服务节点的服务代理,所述服务代理在主计算机上执行以对由机器发送的数据报文执行服务操作,并且所述服务代理用于将提供给所述服务代理的关联服务节点的数据报文格式化。
21.一种用于将机器从第一主计算机迁移到第二主计算机的方法,所述方法包括:
在所述第一主计算机处:
收集由第一服务插入模块使用的服务插入数据的集合,所述第一服务插入模块在所述第一主计算机上执行以识别一个或多个服务节点的集合必须对与在所述第一主计算机上执行的机器相关联的数据报文流执行的一个或多个服务的链;并且
向所述第二主计算机发送机器配置数据的集合和所收集的服务插入数据的集合,其中,所述第二主计算机(i)使用机器配置数据在所述第二主计算机上部署机器,以及(ii)使用所收集的服务插入数据的集合来在所述第二主计算机上配置第二服务插入模块以识别一个或多个服务节点的集合必须对与所述机器相关联的特定数据报文流执行的一个或多个服务的链。
22.如权利要求21所述的方法,其中
所收集的服务插入数据包括服务插入规则的集合,每个规则包括规则标识符并指定对与机器相关联的数据报文流执行的服务链;并且
所述第二服务插入模块使用服务插入规则来识别要对所述特定数据报文流执行的服务链。
23.如权利要求21所述的方法,其中
所收集的服务插入数据包括服务路径的集合,每个服务路径包括通过用于对与机器相关联的数据报文流执行服务链的服务节点的集合的路径;并且
所述第二服务插入模块使用服务路径的集合来识别用于对所述特定数据报文流执行服务链的服务路径。
24.如权利要求23所述的方法,其中,识别用于执行服务链的服务路径包括基于服务路径选择度量的集合从用于执行服务链的多个服务路径中选择服务路径,其中,服务路径选择度量至少部分取决于每个服务路径的服务节点的位置。
25.如权利要求21所述的方法,其中
所收集的服务插入数据包括连接记录的集合,每个连接记录包括流标识符并指定用于执行服务链的服务节点的集合;并且
当数据报文与连接记录的集合中的流标识符匹配时,所述第二服务插入模块使用连接记录的集合来识别用于对数据报文执行服务链的服务节点的集合。
26.如权利要求21所述的方法,其中
当对与机器相关联的数据报文流执行服务链的最后一个服务时,执行所述最后一个服务的服务节点通过将流寻址到与机器相关联的特定MAC地址来将数据报文流返回到机器;
当机器在所述第一主计算机上执行时,机器与所述特定MAC地址相关联;并且
当机器在所述第二主计算机上执行时,机器与相同的特定MAC地址相关联。
27.如权利要求26所述的方法,其中
将数据报文流返回到机器还包括识别映射到所述数据报文所发送至的所述特定MAC地址的虚拟隧道端点(VTEP);并且
基于机器在所述第二主计算机上的部署,包括转发元件的转发元件的集合中的每一个转发元件将所述特定MAC地址到所述第一主计算机上的VTEP的映射替换为所述特定MAC地址到所述第二主计算机上的VTEP的映射。
28.如权利要求21所述的方法,其中,在所述第二主计算机上部署机器还包括部署模块的集合,其中,每个模块执行处理、格式化和传递在机器与将机器连接到所述第二主机器上的转发元件的端口之间的数据包中的至少一项。
29.如权利要求28所述的方法,其中,模块的集合包括所述第二服务插入模块和服务传输模块,所述服务传输模块将所述特定数据报文流格式化以转发到执行服务链中的第一个服务的服务节点。
30.如权利要求21所述的方法,还包括从所述第一主计算机移除机器。
31.一种存储程序的非暂时性机器可读介质,所述程序用于由第一主计算机的至少一个处理单元执行,并且用于将机器从所述第一主计算机迁移到第二主计算机,所述程序包括用于以下的指令集:
收集由第一服务插入模块使用的服务插入数据的集合,所述第一服务插入模块在所述第一主计算机上执行以识别一个或多个服务节点的集合必须对与在所述第一主计算机上执行的机器相关联的数据报文流执行的一个或多个服务的链;并且
向所述第二主计算机发送机器配置数据的集合和所收集的服务插入数据的集合,其中,所述第二主计算机(i)使用机器配置数据在所述第二主计算机上部署机器,以及(ii)使用所收集的服务插入数据的集合来在所述第二主计算机上配置第二服务插入模块以识别一个或多个服务节点的集合必须对与所述机器相关联的特定数据报文流执行的一个或多个服务的链。
32.如权利要求31所述的非暂时性机器可读介质,其中
所收集的服务插入数据包括服务插入规则的集合,每个规则包括规则标识符并指定对与机器相关联的数据报文流执行的服务链;并且
所述第二服务插入模块使用服务插入规则来识别要对所述特定数据报文流执行的服务链。
33.如权利要求31所述的非暂时性机器可读介质,其中
所收集的服务插入数据包括服务路径的集合,每个服务路径包括通过用于对与机器相关联的数据报文流执行服务链的服务节点的集合的路径;并且
所述第二服务插入模块使用服务路径的集合来识别用于对所述特定数据报文流执行服务链的服务路径。
34.如权利要求33所述的非暂时性机器可读介质,其中,识别用于执行服务链的服务路径的指令集包括基于服务路径选择度量的集合从用于执行服务链的多个服务路径中选择服务路径的指令集,其中,服务路径选择度量至少部分取决于每个服务路径的服务节点的位置。
35.如权利要求31所述的非暂时性机器可读介质,其中
所收集的服务插入数据包括连接记录的集合,每个连接记录包括流标识符并指定用于执行服务链的服务节点的集合;并且
当数据报文与连接记录的集合中的流标识符匹配时,所述第二服务插入模块使用连接记录的集合来识别用于对数据报文执行服务链的服务节点的集合。
36.如权利要求31所述的非暂时性机器可读介质,其中
当对与机器相关联的数据报文流执行服务链的最后一个服务时,执行所述最后一个服务的服务节点通过将流寻址到与机器相关联的特定MAC地址来将数据报文流返回到机器;
当机器在所述第一主计算机上执行时,机器与所述特定MAC地址相关联;并且
当机器在所述第二主计算机上执行时,机器与相同的特定MAC地址相关联。
37.如权利要求36所述的非暂时性机器可读介质,其中
将数据报文流返回到机器的指令集还包括识别映射到所述数据报文所发送至的所述特定MAC地址的虚拟隧道端点(VTEP)的指令集;并且
基于机器在所述第二主计算机上的部署,包括转发元件的转发元件的集合中的每一个转发元件将所述特定MAC地址到所述第一主计算机上的VTEP的映射替换为所述特定MAC地址到所述第二主计算机上的VTEP的映射。
38.如权利要求31所述的非暂时性机器可读介质,其中,在所述第二主计算机上部署机器的指令集还包括部署模块的集合的指令集,其中,每个模块执行处理、格式化和传递在机器与将机器连接到所述第二主机器上的转发元件的端口之间的数据包中的至少一项。
39.如权利要求38所述的非暂时性机器可读介质,其中,模块的集合包括所述第二服务插入模块和服务传输模块,所述服务传输模块将所述特定数据报文流格式化以转发到执行服务链中的第一个服务的服务节点。
40.如权利要求31所述的非暂时性机器可读介质,其中,程序还包括用于从所述第一主计算机移除机器的指令集。
CN202080015661.5A 2019-02-22 2020-02-03 提供具有访客vm移动性的服务 Pending CN113454598A (zh)

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/444,956 2019-06-18
US16/444,826 US11042397B2 (en) 2019-02-22 2019-06-18 Providing services with guest VM mobility
US16/444,927 2019-06-18
US16/444,884 US11294703B2 (en) 2019-02-22 2019-06-18 Providing services by using service insertion and service transport layers
US16/444,826 2019-06-18
US16/444,884 2019-06-18
US16/444,927 US11119804B2 (en) 2019-02-22 2019-06-18 Segregated service and forwarding planes
US16/445,004 US11194610B2 (en) 2019-02-22 2019-06-18 Service rule processing and path selection at the source
PCT/US2020/016457 WO2020171937A1 (en) 2019-02-22 2020-02-03 Providing services with guest vm mobility

Publications (1)

Publication Number Publication Date
CN113454598A true CN113454598A (zh) 2021-09-28

Family

ID=72140277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080015661.5A Pending CN113454598A (zh) 2019-02-22 2020-02-03 提供具有访客vm移动性的服务

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225545A (zh) * 2022-07-21 2022-10-21 天翼云科技有限公司 一种报文传输方法及装置

Families Citing this family (32)

* 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
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US9755898B2 (en) 2014-09-30 2017-09-05 Nicira, Inc. Elastically managing a service node group
US10594743B2 (en) 2015-04-03 2020-03-17 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 华为技术有限公司 在网络中的负载均衡和报文重排序方法及装置
US11301281B2 (en) 2019-02-22 2022-04-12 Vmware, Inc. Service control plane messaging in service data plane
WO2020172593A1 (en) * 2019-02-22 2020-08-27 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
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
US11088919B1 (en) * 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
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 北京金山云网络技术有限公司 一种数据处理方法、处理装置、服务器及存储介质
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
EP4185959A1 (en) * 2020-12-15 2023-05-31 VMware, Inc. Providing stateful services 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 阿里巴巴(中国)有限公司 报文转发方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150381362A1 (en) * 2014-06-30 2015-12-31 Nicira, Inc. Encryption System in a Virtualized Environment
CN107005584A (zh) * 2014-09-30 2017-08-01 Nicira股份有限公司 内联服务交换机
CN107317887A (zh) * 2017-08-23 2017-11-03 北京知道创宇信息技术有限公司 一种负载均衡方法、装置和系统
CN107925589A (zh) * 2015-08-28 2018-04-17 Nicira股份有限公司 将远程设备管理属性分发给服务节点以用于服务规则处理
US20180248743A1 (en) * 2017-02-28 2018-08-30 Nicira, Inc. Management and control system logical network

Family Cites Families (649)

* 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
US20020010783A1 (en) 1999-12-06 2002-01-24 Leonard Primak 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
AU2001288757A1 (en) 2000-09-01 2002-03-13 Op40, Inc. System, method, uses, products, program products, and business methods for distributed internet and distributed network services
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
WO2003014955A1 (en) 2001-08-09 2003-02-20 Gigamedia Access Corporation Hybrid system architecture for secure peer-to-peer-communication
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
US7370100B1 (en) 2003-12-10 2008-05-06 Foundry Networks, Inc. Method and apparatus for load balancing based on packet header content
US8572249B2 (en) 2003-12-10 2013-10-29 Aventail Llc Network appliance for balancing load and platform services
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
WO2005096569A1 (ja) 2004-03-30 2005-10-13 Matsushita Electric Industrial Co., Ltd. 通信装置および通信システム
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
EP1920393A2 (en) 2005-07-22 2008-05-14 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
WO2007099276A1 (en) 2006-03-02 2007-09-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
WO2008102195A1 (en) 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
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
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
US8000329B2 (en) 2007-06-29 2011-08-16 Alcatel Lucent Open platform architecture for integrating multiple heterogeneous network functions
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
EP2232808A4 (en) 2007-12-17 2012-10-17 Indian Inst Technology Bombay ARCHITECTURAL STRUCTURE OF A COMMUNICATION NETWORK AND METHOD OF ESTABLISHING A 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
US8261317B2 (en) 2008-03-27 2012-09-04 Juniper Networks, Inc. Moving security for virtual machines
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
US8160063B2 (en) 2008-06-09 2012-04-17 Microsoft Corporation Data center interconnect and traffic engineering
US8996683B2 (en) 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
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
EP2374243A1 (en) 2008-12-22 2011-10-12 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
CN102025608B (zh) 2009-09-17 2013-03-20 中兴通讯股份有限公司 通信方法、通信过程中的数据报文转发方法及通信节点
CN102025702B (zh) 2009-09-17 2014-11-05 中兴通讯股份有限公司 基于身份标识和位置分离架构的网络及其骨干网和网元
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
CN102907055B (zh) 2010-03-26 2015-06-17 思杰系统有限公司 用于在多核装置上进行链路负载平衡的系统和方法
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 富士通株式会社 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ
US20120195196A1 (en) 2010-08-11 2012-08-02 Rajat Ghai 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
US8875240B2 (en) 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
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
US20120317184A1 (en) 2011-06-07 2012-12-13 Syed Mohammad Amir Husain Zero Client Device With Integrated Global Position System 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
TWI583151B (zh) 2011-08-04 2017-05-11 中界雲端公司 實施及管理虛擬網路的系統與方法
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
TWI625048B (zh) 2011-10-24 2018-05-21 內數位專利控股公司 在複數服務層之間機器到機器(m2m)通信的方法、系統及裝置
US8717934B2 (en) 2011-10-25 2014-05-06 Cisco Technology, Inc. Multicast source move detection for layer-2 interconnect solutions
US10089127B2 (en) 2011-11-15 2018-10-02 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
EP2798784B1 (en) 2011-12-27 2019-10-23 Cisco Technology, Inc. System and method for management of network-based services
EP2792113B1 (en) 2011-12-28 2016-04-27 Huawei Technologies Co., Ltd. A service router architecture
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
CA2865226A1 (en) 2012-02-28 2013-09-06 Ten Eight Technology, Inc. Automated voice-to-reporting/ management system and method for voice call-ins of events/crimes
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
US9106508B2 (en) 2012-04-30 2015-08-11 International Business Machines Corporation Providing services to virtual overlay network traffic
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
EP2853066B1 (en) 2012-05-23 2017-02-22 Brocade Communications Systems, Inc. Layer-3 overlay gateways
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
WO2013187923A2 (en) 2012-06-14 2013-12-19 Aerohive Networks, Inc. Multicast to unicast conversion technique
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
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
JP5986310B2 (ja) 2012-06-29 2016-09-06 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 情報を処理するための方法、転送プレーンデバイスおよび制御プレーンデバイス
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
US9661522B2 (en) * 2012-07-09 2017-05-23 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
US9071631B2 (en) 2012-08-09 2015-06-30 International Business Machines Corporation Service management roles of processor nodes in distributed node service management
US9678801B2 (en) 2012-08-09 2017-06-13 International Business Machines Corporation Service management modes of operation 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
KR101963321B1 (ko) 2012-09-12 2019-03-28 아이이엑스 그룹, 인크. 전송 레이턴시 평준화 장치, 방법 및 시스템
US9106561B2 (en) 2012-12-06 2015-08-11 A10 Networks, Inc. Configuration of a virtual service network
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
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
US9917865B2 (en) 2012-10-16 2018-03-13 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multilevel API integration
US9571507B2 (en) 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
AU2012393609B2 (en) 2012-11-02 2017-04-13 Silverlake Mobility Ecosystem Sdn Bhd Method of processing requests for digital services
CN103229468B (zh) 2012-11-19 2016-05-25 华为技术有限公司 分组交换资源分配方法及设备
US10713183B2 (en) 2012-11-28 2020-07-14 Red Hat Israel, Ltd. Virtual machine backup using snapshots and current configuration
US20140164477A1 (en) 2012-12-06 2014-06-12 Gary M. Springer System and method for providing horizontal scaling of stateful applications
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
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
US10356579B2 (en) 2013-03-15 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus to credit usage of mobile devices
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
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
US9660905B2 (en) 2013-04-12 2017-05-23 Futurewei Technologies, Inc. Service chain policy for distributed gateways in virtual overlay networks
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a 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
US9407540B2 (en) 2013-09-06 2016-08-02 Cisco Technology, Inc. Distributed service chaining in a network environment
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
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
CN104322019B (zh) 2013-05-23 2017-11-07 华为技术有限公司 业务路由系统、设备和方法
US9503378B2 (en) 2013-06-07 2016-11-22 The Florida International University Board Of Trustees Load-balancing algorithms for data center networks
US9444675B2 (en) 2013-06-07 2016-09-13 Cisco Technology, Inc. Determining the operations performed along a service path/service chain
US9495296B2 (en) 2013-06-12 2016-11-15 Oracle International Corporation Handling memory pressure in an in-database sharded queue
US10735327B2 (en) 2013-06-14 2020-08-04 Microsoft Technology Licensing, Llc Fault tolerant and load balanced routing
EP2813945A1 (en) 2013-06-14 2014-12-17 Tocario GmbH Method and system for enabling access of a client device to a remote desktop
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
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
US9621642B2 (en) 2013-06-17 2017-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods of forwarding data packets using transient tables and related load balancers
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
US9742666B2 (en) 2013-07-09 2017-08-22 Nicira, Inc. Using headerspace analysis to identify classes of packets
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
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
WO2015023537A2 (en) 2013-08-16 2015-02-19 Interdigital Patent Holdings, Inc. Methods and apparatus for hash routing in software defined networking
US20160277294A1 (en) 2013-08-26 2016-09-22 Nec Corporation Communication apparatus, communication method, control apparatus, and management apparatus in a communication system
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
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
US9917745B2 (en) 2013-09-27 2018-03-13 Futurewei Technologies, Inc. Validation of chained network services
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
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
CN103516807B (zh) 2013-10-14 2016-09-21 中国联合网络通信集团有限公司 一种云计算平台服务器负载均衡系统及方法
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
EP3085148B1 (en) 2013-12-19 2020-11-04 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 腾讯科技(深圳)有限公司 分配服务节点的方法、装置及系统
US9992103B2 (en) 2014-01-24 2018-06-05 Cisco Technology, Inc. Method for providing sticky load balancing
CN104811326A (zh) 2014-01-24 2015-07-29 中兴通讯股份有限公司 一种管理业务链的方法、系统及装置
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
US9215214B2 (en) 2014-02-20 2015-12-15 Nicira, Inc. Provisioning firewall rules on a firewall enforcing device
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的分布式服务器负载均衡方法
JP6217839B2 (ja) 2014-03-04 2017-10-25 日本電気株式会社 パケット処理装置、パケット処理方法およびプログラム
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
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
US9009289B1 (en) 2014-03-31 2015-04-14 Flexera Software Llc Systems and methods for assessing application usage
US9473410B2 (en) 2014-03-31 2016-10-18 Sandvine Incorporated Ulc System and method for load balancing in computer networks
US9503427B2 (en) 2014-03-31 2016-11-22 Nicira, Inc. Method and apparatus for integrating a service virtual machine
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US9215210B2 (en) 2014-03-31 2015-12-15 Nicira, Inc. Migrating firewall connection state for a firewall service virtual machine
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
US9602422B2 (en) 2014-05-05 2017-03-21 Nicira, Inc. Implementing fixed points in network state updates using generation numbers
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
JP2017518710A (ja) 2014-06-17 2017-07-06 華為技術有限公司Huawei Technologies Co.,Ltd. サービスフロー処理方法、装置、およびデバイス
US10013276B2 (en) 2014-06-20 2018-07-03 Google Llc System and method for live migration of a virtualized networking stack
US10261814B2 (en) 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
US9602308B2 (en) 2014-06-23 2017-03-21 International Business Machines Corporation Servicing packets in a virtual network and a software-defined network (SDN)
US11182185B2 (en) * 2014-06-27 2021-11-23 Vmware, Inc. Network-based signaling to control virtual machine placement
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
US9419897B2 (en) 2014-06-30 2016-08-16 Nicira, Inc. Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization
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
EP3157206B1 (en) 2014-07-23 2018-09-19 Huawei Technologies Co., Ltd. Service message forwarding method and apparatus
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
US10826835B2 (en) 2014-09-19 2020-11-03 Nokia Solutions And Networks Oy Chaining of network service functions in a communication network
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
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
BR112017006377A2 (pt) * 2014-09-30 2018-06-26 Huawei Tech Co Ltd “aparelho e método de geração de trajeto de serviço
US9755898B2 (en) 2014-09-30 2017-09-05 Nicira, Inc. Elastically managing a service node group
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
CN105830407A (zh) 2014-11-28 2016-08-03 华为技术有限公司 业务处理装置及方法
US20160164826A1 (en) 2014-12-04 2016-06-09 Cisco Technology, Inc. Policy Implementation at a Network Element based on Data from an Authoritative Source
WO2016090552A1 (zh) 2014-12-09 2016-06-16 华为技术有限公司 一种自适应流表的处理方法及装置
US9866472B2 (en) 2014-12-09 2018-01-09 Oath Inc. Systems and methods for software defined networking service function chaining
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
SG11201702760SA (en) 2014-12-17 2017-06-29 Huawei Tech Co Ltd Data forwarding method, device, and system in software-defined networking
US9614757B2 (en) 2014-12-17 2017-04-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for relocating packet processing functions
US9094464B1 (en) 2014-12-18 2015-07-28 Limelight Networks, Inc. Connection digest for accelerating web traffic
US9998954B2 (en) 2014-12-19 2018-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Method 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
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
CN106465230B (zh) 2015-02-13 2019-07-23 华为技术有限公司 控制接入的装置、系统和方法
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
US10594743B2 (en) 2015-04-03 2020-03-17 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
WO2016171691A1 (en) 2015-04-23 2016-10-27 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
US10021216B2 (en) 2015-05-25 2018-07-10 Juniper Networks, Inc. Monitoring services key performance indicators using TWAMP for SDN and NFV architectures
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
EP3300317B1 (en) 2015-06-10 2020-08-26 Huawei Technologies Co., Ltd. Method, device and system for realizing service link
SG10201911899VA (en) 2015-06-10 2020-01-30 Soracom Inc Communication system and communication method for providing ip network access to wireless terminals
EP3308508B1 (en) 2015-06-15 2020-07-29 Telefonaktiebolaget LM Ericsson (publ) Methods 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
WO2016209275A1 (en) 2015-06-26 2016-12-29 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
US11204791B2 (en) 2015-06-30 2021-12-21 Nicira, Inc. Dynamic virtual machine network policy for ingress optimization
US9806948B2 (en) 2015-06-30 2017-10-31 Nicira, Inc. Providing firewall rules for workload spread across multiple 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
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 华为技术有限公司 一种在云计算系统中获取业务链信息的方法和装置
US9948577B2 (en) 2015-09-30 2018-04-17 Nicira, Inc. IP aliases in logical networks with hardware switches
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
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 华为技术有限公司 网络节点、通信网络及通信网络中的方法
EP3361684B1 (en) 2015-10-31 2020-07-29 Huawei Technologies Co., Ltd. Route determining method and corresponding apparatus and system
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10078527B2 (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
US10075393B2 (en) 2015-12-31 2018-09-11 Fortinet, Inc. Packet routing using a software-defined networking (SDN) switch
CN106936939B (zh) 2015-12-31 2020-06-02 华为技术有限公司 一种报文处理方法、相关装置及nvo3网络系统
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
EP3229418B1 (en) 2016-04-07 2019-01-09 Telefonica, S.A. A method to assure correct data packet traversal through a particular path of a network
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
US20170317936A1 (en) 2016-04-28 2017-11-02 Cisco Technology, Inc. Selective steering network traffic to virtual service(s) using policy
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10469320B2 (en) 2016-04-29 2019-11-05 Deutsche Telekom Ag Versioning system for network states in a software-defined network
US10491688B2 (en) 2016-04-29 2019-11-26 Hewlett Packard Enterprise Development Lp Virtualized network function placements
EP3278513B1 (en) 2016-04-29 2020-03-18 Hewlett-Packard Enterprise Development LP Transforming a service packet from a first domain to a second domain
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
CN113055290B (zh) * 2016-07-01 2022-12-06 华为技术有限公司 基于业务功能链sfc的报文转发方法、装置和系统
WO2018000442A1 (zh) 2016-07-01 2018-01-04 华为技术有限公司 业务功能链sfc中用于转发报文的方法、装置和系统
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
CN109565500B (zh) 2016-08-05 2021-10-29 上海诺基亚贝尔股份有限公司 按需安全性架构
US10841208B2 (en) 2016-08-05 2020-11-17 Huawei Technologies Co., Ltd. Slice/service-based routing in virtual networks
US10972437B2 (en) 2016-08-08 2021-04-06 Talari Networks Incorporated Applications and integrated firewall design in an adaptive private network (APN)
US11989332B2 (en) 2016-08-11 2024-05-21 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
EP3504848B1 (en) * 2016-08-26 2020-06-10 Telefonaktiebolaget LM Ericsson (PUBL) Improving service function chain, sfc, proxy performance in software defined networking, sdn, networks
US10484302B2 (en) 2016-08-27 2019-11-19 Nicira, Inc. Managed forwarding element executing in public cloud data compute node with different internal and external network addresses
CN109863720B (zh) 2016-08-27 2022-05-13 Nicira股份有限公司 网络控制系统到公共云中的扩展
US10404593B2 (en) * 2016-08-29 2019-09-03 Vmware, Inc. Stateful connection optimization over stretched networks with temporary tromboning
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
WO2018058677A1 (zh) 2016-09-30 2018-04-05 华为技术有限公司 一种报文处理方法、计算设备以及报文处理装置
US10938668B1 (en) 2016-09-30 2021-03-02 Amazon Technologies, Inc. Safe deployment using versioned hash rings
US20180102965A1 (en) 2016-10-07 2018-04-12 Alcatel-Lucent Usa Inc. Unicast branching based multicast
US10616100B2 (en) 2016-11-03 2020-04-07 Parallel Wireless, Inc. Traffic shaping and end-to-end prioritization
US11824863B2 (en) 2016-11-03 2023-11-21 Nicira, Inc. Performing services on a host
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
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
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
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
EP3673627B1 (en) 2017-08-27 2023-09-13 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
WO2019068031A1 (en) 2017-09-30 2019-04-04 Oracle International Corporation DYNAMIC MIGRATION OF CONTAINER GROUPS
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
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10708229B2 (en) 2017-11-15 2020-07-07 Nicira, Inc. Packet induced revalidation of connection tracker
US10757077B2 (en) 2017-11-15 2020-08-25 Nicira, Inc. Stateful connection policy filtering
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
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
US10659252B2 (en) 2018-01-26 2020-05-19 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 华为技术有限公司 设备接入方法、相关平台及计算机存储介质
US11720412B2 (en) 2018-03-01 2023-08-08 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
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
CN112673596B (zh) 2018-09-02 2023-05-02 Vm维尔股份有限公司 逻辑网关处的服务插入方法、设备和系统
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion 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
US11301281B2 (en) 2019-02-22 2022-04-12 Vmware, Inc. Service control plane messaging in service data plane
US11012351B2 (en) 2019-02-22 2021-05-18 Vmware, Inc. Service path computation for service insertion
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
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US11108643B2 (en) 2019-08-26 2021-08-31 Vmware, Inc. Performing ingress side control through egress side limits on forwarding elements
LU101361B1 (en) 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Computer device including nested network interface controller switches
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
US20210136140A1 (en) 2019-10-30 2021-05-06 Vmware, Inc. Using service containers to implement service chains
WO2021086462A1 (en) 2019-10-30 2021-05-06 Vmware, Inc. Distributed service chain across multiple clouds
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
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
US11627124B2 (en) 2020-04-02 2023-04-11 Vmware, Inc. Secured login management to container image registry in a virtualized computer system
US11372668B2 (en) 2020-04-02 2022-06-28 Vmware, Inc. Management of a container image registry in a virtualized computer system
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
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
EP4185959A1 (en) 2020-12-15 2023-05-31 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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150381362A1 (en) * 2014-06-30 2015-12-31 Nicira, Inc. Encryption System in a Virtualized Environment
CN107005584A (zh) * 2014-09-30 2017-08-01 Nicira股份有限公司 内联服务交换机
CN107925589A (zh) * 2015-08-28 2018-04-17 Nicira股份有限公司 将远程设备管理属性分发给服务节点以用于服务规则处理
US20180248743A1 (en) * 2017-02-28 2018-08-30 Nicira, Inc. Management and control system logical network
CN107317887A (zh) * 2017-08-23 2017-11-03 北京知道创宇信息技术有限公司 一种负载均衡方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225545A (zh) * 2022-07-21 2022-10-21 天翼云科技有限公司 一种报文传输方法及装置
CN115225545B (zh) * 2022-07-21 2023-11-03 天翼云科技有限公司 一种报文传输方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
AU2020224067B2 (en) Providing services with guest VM mobility

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: U.S.A.

Address after: California, USA

Applicant after: Weirui LLC

Address before: California, USA

Applicant before: VMWARE, Inc.

Country or region before: U.S.A.