CN113424501A - 虚拟网络功能的透明迁移 - Google Patents
虚拟网络功能的透明迁移 Download PDFInfo
- Publication number
- CN113424501A CN113424501A CN201980092093.6A CN201980092093A CN113424501A CN 113424501 A CN113424501 A CN 113424501A CN 201980092093 A CN201980092093 A CN 201980092093A CN 113424501 A CN113424501 A CN 113424501A
- Authority
- CN
- China
- Prior art keywords
- middlebox
- network
- host
- connection
- flow
- 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
Links
- 230000006870 function Effects 0.000 title abstract description 55
- 230000005012 migration Effects 0.000 title abstract description 8
- 238000013508 migration Methods 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000036541 health Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 12
- 230000003862 health status Effects 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 33
- 238000013459 approach Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/76—Routing in software-defined topologies, e.g. routing between virtual machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种用于虚拟网络功能的透明迁移的方法(300)。方法包括,识别接收网络流并与一个或多个后端虚拟机(150)通信的中间盒(160)。该方法还包括接收与中间盒的网络流对应的流统计(202)并确定该流统计是否满足卸载规则(211)。该卸载规则(211)指示何时将该网络流从中间盒(160)迁移到终端主机(140、150)。当该流统计(202)满足该卸载规则(211)时,方法还包括将该网络流从中间盒(160)迁移到终端主机(140、150)。
Description
技术领域
本公开涉及虚拟网络功能的透明迁移。
背景技术
软件定义网络中的计算设备可以没有物理连接,而可以彼此虚拟链接(即虚拟网络)。软件定义网络允许通过对较低级别功能的抽象来管理网络。虚拟网络中的控制平面通常会决定如何将网络流量的数据包从网络中的源虚拟机路由到目标虚拟机。数据平面将网络流量转发到选定的目的端。在软件定义的网络中,网络虚拟化方法将网络的控制平面与数据平面分离。因此,虚拟网络通常与底层物理网络几乎没有相似之处,这意味着用于扩展网络的传统技术不适用于虚拟网络。因此,使用传统网络功能扩展以形成大型虚拟网络可能会有问题。
发明内容
本公开的一个方面提供了一种用于虚拟网络功能的透明迁移的方法。该方法包括由数据处理硬件识别接收网络流并与一个或多个后端虚拟机通信的中间盒;该方法还包括在该数据处理硬件中,接收与该中间盒的该网络流相对应的流统计;该方法还包括由该数据处理硬件确定该流统计是否满足卸载规则,该卸载规则指示何时将该网络流从该中间盒迁移到终端主机。当该流统计满足该卸载规则时,方法包括由该数据处理硬件将该网络流从该中间盒迁移到该终端主机。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实施方式中,中间盒包括网络地址转换器(NAT)、负载均衡器或防火墙中的至少一个。在这些实施方式中,中间盒可以与被配置为执行网络路由的单个网络设备相关联。中间盒可以包括负载均衡器,该负载均衡器被配置为在网络连接和一个或多个后端虚拟机之间均衡网络负载。这里,负载均衡器包括连接表,该连接表将每个网络连接映射到该一个或多个后端虚拟机中的相应一个。
在一些示例中,将网络流从中间盒迁移到终端主机包括在终端主机处启动终端-主机连接表。附加地或可选地,将网络流从中间盒迁移到终端主机可以包括在终端主机启动终端-主机连接表、识别在终端主机接收的网络连接请求、确定该网络连接请求对应于新的网络连接、用该新的网络连接更新终端-主机连接表、以及在终端主机处控制该新的网络连接的网络流。
在一些配置中,将网络流从中间盒迁移到终端主机包括在终端主机启动终端-主机连接表、识别在终端主机接收的网络连接请求、确定网络连接请求对应于不存在于终端-主机连接表中的现有网络连接、以及将该现有网络连接的网络流从终端主机传送到中间盒。这里,从中间盒迁移网络流还可以包括将中间盒连接表从中间盒传送到终端主机。当中间盒连接表从中间盒传送到终端主机时,该方法可以包括中断终端主机与中间盒之间的通信。在将网络流从中间盒迁移到终端主机之后,该方法还可以包括由数据处理硬件确定在一段时间内到终端主机的网络流的减少,以及由数据处理硬件将网络流从终端主机迁移到中间盒。
在一些实施方式中,该中间盒被配置为基于一致性哈希与该一个或多个后端虚拟机通信。在一些配置中,将网络流从中间盒迁移到终端主机还可以包括识别与该中间盒通信的该一个或多个后端虚拟机的每个后端虚拟机的第一健康特征指示健康状态;以及确定对应于该终端主机的第二健康特征与该第一健康特征的该健康状态相匹配。该终端主机可包括该一个或多个后端虚拟机中的一个或物理网络层内的端点。
本公开的另一方面提供了一种用于虚拟网络功能的透明迁移的系统。该系统包括数据处理硬件和与该数据处理硬件通信的存储器硬件。该存储器硬件存储指令,该指令在数据处理硬件上执行时使数据处理硬件执行操作。这些操作包括识别接收网络流并与一个或多个后端虚拟机通信的中间盒;以及接收与该中间盒的该网络流相对应的流统计;该操作还包括确定该流统计是否满足卸载规则。该卸载规则指示何时将该网络流从该中间盒迁移到终端主机。当该流统计满足该卸载规则时,操作还包括将该网络流从该中间盒迁移到该终端主机。
该方面可以包括以下可选特征中的一个或多个。在一些示例中,中间盒包括网络地址转换器(NAT)、负载均衡器或防火墙中的至少一个。在这些示例中,中间盒可以与被配置为执行网络路由的单个网络设备相关联。可选地,中间盒包括负载均衡器,该负载均衡器被配置为在网络连接和一个或多个后端虚拟机之间均衡网络负载。这里,负载均衡器包括连接表,该连接表将每个网络连接映射到该一个或多个后端虚拟机中的相应一个。将网络流从中间盒迁移到终端主机可以包括在终端主机处启动终端-主机连接表。附加地或可选地,将网络流从中间盒迁移到终端主机可以包括在终端主机启动终端-主机连接表、识别在终端主机接收的网络连接请求、确定该网络连接请求对应于新的网络连接、用该新的网络连接更新终端-主机连接表、以及在终端主机处控制该新的网络连接的网络流。
在一些配置中,网络流从中间盒到终端主机包括在终端主机启动终端-主机连接表、识别在终端主机接收的网络连接请求、确定网络连接请求对应于不存在于终端-主机连接表中的现有网络连接、以及将该现有网络连接的网络流从终端主机传送到中间盒。在该配置中,从中间盒迁移网络流还可以包括将中间盒连接表从中间盒传送到终端主机。当中间盒连接表从中间盒传送到终端主机时,该操作可以包括中断终端主机与中间盒之间的通信。在其他配置中,在将网络流从中间盒迁移到终端主机之后,该操作包括确定在一段时间内到终端主机的网络流的减少,以及将网络流从终端主机迁移到中间盒。
在一些实施方式中,该中间盒被配置为基于一致性哈希与该一个或多个后端虚拟机通信。在一些配置中,将网络流从中间盒迁移到终端主机可以包括识别与该中间盒通信的该一个或多个后端虚拟机的每个后端虚拟机的第一健康特征指示健康状态;以及确定对应于该终端主机的第二健康特征与该第一健康特征的该健康状态相匹配。该终端主机可包括该一个或多个后端虚拟机中的一个或物理网络层内的端点。
本公开的一个或多个实施方式的细节在附图和以下描述中阐述。通过说明书、和附图、以及权利要求书,其他方面、特征和优点将变得显而易见。
附图说明
图1A-1C是示例虚拟网络环境的示意图。
图2A-2D是迁移虚拟网络功能的示例中间盒管理器的示意图。
图3是迁移虚拟网络功能的方法的示例布置的流程图。
图4是用于实施迁移虚拟网络功能的系统和方法的示例计算设备的示意图。
在各个附图中,相同的附图符号表示相同的元件。
具体实施方式
参考图1A-1C,在一些实施方式中,网络环境100包括物理网络层102和虚拟网络层104。在一些示例中,物理网络层102是具有松散耦合计算资源110、110a-n的分布式系统(例如,诸如云环境的远程网络)。这些计算资源110可以包括数据处理硬件(例如,一个或多个中央处理单元(CPU))和/或存储器硬件(例如,闪存、随机存取存储器(RAM)、相变存储器(PCM)和/或磁盘)可供一个或多个客户端120、120a-n访问。例如,计算资源110示出为多个服务器。客户端120可以通过网络130与托管在物理网络层102上的计算资源110通信。例如,客户端120和服务器代表形成物理网络端点的机器(例如,主机)的集合。
可能有许多不同类型的网络130,范围从专用网络和企业网络到公共网络。一些更具体的网络示例包括个域网(PAN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、存储/系统区域网(SAN)、无源光网络(PON))、企业专用网络(EPN)、虚拟专用网络(VPN)等。在一些配置中,客户端120和终端主机(即,计算资源110的主机)可以经由硬件访问(即,连接到)网络130例如网络接口控制器(NIC)(也称为网络接口卡、网络适配器或LAN适配器),或者在光网络的情况下,同步传输模块(STM)。例如,图1A-1C描绘了具有至少一个NIC 122、122a-n的每个客户端120和具有至少一个NIC 112、112a-n的每个服务器。
虚拟网络层,例如虚拟网络层104,可以覆盖在物理网络层102上以形成具有其自己的互联网协议(IP)地址空间的虚拟网络(也称为覆盖网络)。虚拟网络层104使网络130能够以可以将网络功能与硬件设备(例如,专有硬件设备)分离的方式来管理(例如,由网络管理员)、设计和/或部署。换言之,虚拟网络层104允许虚拟网络功能(也称为网络功能虚拟化),使得网络服务可以通过软件操作以准许在具有专用硬件的传统网络上的适应性和可扩展性。例如,虚拟网络的软件定义网络(SDN)将控制平面从网络硬件中移除,并在软件中实施控制平面。在一些实施方式中,网络130的虚拟网络层104通过软件虚拟地执行一些网络功能,同时以混合虚拟化方法利用专用硬件执行其他网络功能。虚拟和/或混合方法可以容许网络提供商或网络管理员在网络空间、能源、大小、可扩展性、部署时间和/或维修和维护方面的灵活性和/或优化。例如,虚拟网络层104被动态地配置为允许在底层改变物理网络层102而不打扰网络服务。
虚拟网络层104可以被配置为执行各种网络功能和/或反映物理网络的传统网络功能。这些网络功能的一些示例包括路由、网络地址转换(NAT)、负载均衡(LB)、安全性(例如,防火墙和入侵检测/预防系统)、协议转换、广域网优化、代理、缓存等。换言之,虚拟网络功能可适用于网络130内的任何数据平面处理或控制平面功能。
继续参考图图1A-1C,虚拟网络层104包括虚拟网络端点。此处,虚拟网络端点被描绘为虚拟机(VM),例如客户端虚拟机(客户端VM)140、140a-n和后端虚拟机(后端VM)150、150a-n。虚拟机(VM)通常是指一个或多个主机计算机系统的仿真或映像,其使用户能够体验主机计算机系统的功能而不能干扰对应主机计算机系统的底层操作系统。可以创建虚拟机(VM)以在一个或多个主机环境中执行专门的任务。在一些示例中,虚拟网络层104允许多个VM同时存在于主计算机系统中。为了允许多个虚拟机同时运行,虚拟机通常被从主机计算机系统的关键操作系统资源中沙盒化。VM可能对虚拟网络层104有利,因为它们可以被设计成经由后端VM 150映射到(例如,访问)物理网络层102的一个或多个计算资源110。例如,一个或多个客户端VM 140映射到一个或多个后端VM 150,其中后端VM 150是与物理网络层102(例如,分布式系统)的计算资源110相关联的VM。通过映射到特定计算资源110,客户端VM 140连同后端VM150可以被设计用于特定网络服务(例如,网络应用)。在一些配置中,后端VM 150作为基于主机的VM运作,其中数据可以包含在物理网络层102的服务器上并且可由各种远程客户端120访问或分配给各种远程客户端120。例如,具有VM的虚拟网络层104允许集中管理的网络结构。虽然网络虚拟化通常是针对VM进行描述的,但网络虚拟化(例如,具有虚拟网络层104)可以推广到连接其他类型的网络端点,包括虚拟专用网络(VPN)、裸机服务器、代理等。例如,网络环境100支持VPN网关作为客户端,转发来自客户场所的请求。因此,在一些示例中,VM更一般地是适应其他类型的网络连接的网络端点。
在一些实施方式中,为了执行网络功能,网络环境100的虚拟网络层104包括至少一个中间盒160。中间盒160通常是指在源主机(例如,经由客户端VM 140的客户端)和目的主机(例如,经由后端VM 150的物理网络层102的服务器)之间的数据报路径上执行除网际协议(IP)路由器的正常标准功能之外的功能的任何中间设备。换言之,中间盒160通常负责除分组路由之外的网络功能(例如,网络地址转换(NAT)、网络地址端口转换(NAPT)、负载均衡(LB)、防火墙、入侵检测/预防系统、协议转换,代理)。尽管中间盒160通常负责除路由之外的网络功能,但是中间盒160可以是也处理路由的一部分设备,使得网络环境100包括支持路由和中间盒功能两者的单个设备。
在网络环境100内,中间盒160从一个或多个客户端120接收网络流以执行网络功能。可以基于来自客户端120的连接请求124来建立与中间盒160的网络连接。换言之,可以在客户端120和后端之间协商连接,使得中间盒160位于中间,处理和潜在地修改属于连接的包。一旦与中间盒160建立了连接(例如,在客户端VM 140和后端VM 150之间形成虚拟连接),中间盒160基于中间盒160的配置的网络功能接收网络流量(例如,数据126).
在一些示例中,中间盒160对客户端120和后端(例如,后端VM)之间的包执行NAT或NAPT。在NAPT的情况下,中间盒160跟踪每个连接和分配给每个连接的端口映射。在其他示例中,中间盒160是第4层负载均衡器中间盒,其在客户端120和后端之间转发数据包,同时还潜在地跟踪连接以确保属于连接的未来数据包继续连接到同一后端。可选地,中间盒160可以是第7层负载均衡器,其中客户端120与中间盒160建立传输控制协议(TCP)并且中间盒160与后端(即,代表客户端120)建立单独的连接.对于第7层负载均衡器,传输协议状态(例如,TCP序列号和窗口大小)将从中间盒160传输到相应的终端主机。
在一些实施方式中,不需要诸如虚拟网络层104之类的覆盖网络来执行中间盒功能。例如,在诸如物理以太网网络之类的网络中,在终端主机上运行的软件可以通过将目的地媒体访问控制(MAC)地址设置为对应于中间盒160的MAC地址来将连接定向到中间盒160。在这里,为了卸载连接,主机会将MAC地址设置为目的地的地址(或到达目的地的适当网关的地址)。换言之,中间盒160可以与物理机而不是虚拟机(VM)进行通信。例如,在负载均衡中,客户端120和服务器不需要是虚拟网络层104上的VM,而是物理机之间的连接。
中间盒160在以下方面不同于路由器:中间盒160经常执行有状态网络功能。更具体地,有状态网络功能是指跟踪与网络功能相关联的网络连接的操作状态和/或特性的网络功能。例如,中间盒160跟踪连接以使得中间盒160知道连接、检查包的下文(例如,周期性地检查有效载荷)和/或将新连接与现有连接相关联。通过执行有状态功能,中间盒160包括更大程度的数据粒度以识别和/或调用与客户端120或VM的先前会话相关联的连接事件或连接数据。这些有状态功能可以提供有助于稳定网络服务的虚拟网络层104安全和性能优势。
图1B示出,在一些实施方式中,虚拟网络层104包括与一个或多个后端VM150相关联的不止一个中间盒160。虚拟网络层104可以配置有集群,其中与客户端VM140相关联的网络流被分配给专用于一组特定后端虚拟机(VM)150的至少一个中间盒160(例如,与后端虚拟机(VM)150a-b相关联的中间盒160a)。在这些示例中,集群还可以将特定中间盒160和一组后端VMs 150与物理网络层102的特定计算资源110相关联。例如,第一中间盒160a与使用来自物理网络层102的计算资源110a的两个后端VMs 150a-b相关联。另外或可选地,集群配置还可以支持具有多租户的虚拟网络,其中多个客户端120在共享物理网络层102的计算资源110的不同虚拟网络中操作VM。
如图1A和1B所示,虚拟网络层104的网络功能由中间盒160执行。随着客户端和/或主机数量的增加,中间盒160按比例接收网络流量和连接的增加,这需要更多的编程资源来编程和/或管理中间盒160中的动作,特别是在由具有状态跟踪(例如,连接表)的中间盒160执行的功能中。在这些情况下,作为中间设备的中间盒160可以为客户端VM 140和后端VM150之间的网络功能增加延迟、瓶颈和附加跃点。因此,虽然虚拟网络功能可以应对网络控制平面中的扩展挑战,但虚拟网络功能仍然在数据平面中遇到扩展问题。
参考图1C,在一些示例中,虚拟网络层104被配置为通过中间盒160卸载一个或多个中间网络连接以引导客户端VM 140和后端VM 150之间的网络连接。例如,图1C将虚拟网络层104内的先前中间网络连接描绘为第一客户端VM 140a和第一后端VM150a之间的直接网络连接170。尽管这只是一个说明,但中间盒管理器200(图1A-1C所示)可以根据卸载规则动态管理中间盒功能的卸载。由于虚拟网络层104可能的动态和流动性质,中间盒管理器200还可以旨在管理虚拟网络层104的可扩展性以解决或最小化虚拟网络内的控制平面和/或数据平面的可扩展性问题(例如,有状态网络功能的可扩展问题)。通过将网络流从中间盒160卸载或迁移到终端主机(例如,后端VM 150),虚拟网络层104可以战略性地均衡与网络功能相关联的网络流以改善客户端网络体验,尤其是在更大或不断增长的网络中。终端主机可以指虚拟网络层104内的端点,例如后端VM 150,或在一些配置中,指物理网络层102内的端点。
尽管在下文中可以关于负载均衡的网络功能来描述中间盒管理,但是中间盒管理技术同样适用于其他中间盒功能(例如,NAT、防火墙等)。通常,客户端120可以使用带有服务器的负载均衡服务来均衡网络负载。传统上,一种负载均衡方法采用专用的中间盒设备,该设备包括CPU、本地存储和/或用于数据包处理的装置(例如,专用集成电路(ASIC))。对于专用设备,当客户端120发起连接时(例如,通过连接请求124),网络130将连接发送到专用中间盒装置,并且中间盒装置代理到后端的流量(例如,后端VM 150)。作为专用的中间盒装置,中间盒装置是网络中的物理硬件。不幸的是,作为一个物理硬件,专用中间盒装置面临扩展的挑战,因为扩展需要按比例扩展物理硬件以适应大小变化。此外,专用设备也可能导致大量过度供应,因为必须供应专用硬件设备以满足网络130内的峰值流量需求。
另一种传统的负载均衡方法是客户端侧负载均衡。客户端侧网络功能是一种分布式方法,其中,在终端主机上实施中间盒功能,消除中间盒。一个这样的例子是,客户端网络功能被内置到操作系统(OS)内核或虚拟交换机(例如,Open vSwitch)中。例如,在客户端负载均衡中,客户端主机使用软件来独立决定使用哪些后端。这种方法将所有负载均衡功能转移到终端主机,其中终端主机具有所有后端的表。与专用硬件方法不同,客户端功能(即分布式方法)可以适应数据平面扩展,但受到控制平面扩展挑战的影响。这通常是因为,在分布式方法中,客户端必须分发有关所有服务、后端、健康特征等的信息,以允许客户端功能决策。
与这些传统方法不同,图2A-2D示出了具有中间盒管理器200的混合方法。这里,中间盒管理器200被配置为接收度量202,例如从接收网络流到一个或多个后端VMs 150的中间盒160的流统计,并且基于度量202从中间盒160迁移(即卸载)网络流。在一些示例中,度量202的测量和/或分析发生在网络环境100内的其他网络组件(例如,中间盒160、终端主机、架顶式交换机等)中,以及中间盒管理器200从这些其他网络组件接收指令以卸载特定网络流。中间盒管理器200可以是网络管理员或与虚拟网络层104相关联的控制平面的元件。
在一些实施方式中,为了确定是否从中间盒160迁移网络流,中间盒管理器200包括配置有至少一个卸载规则211的卸载器210。卸载器210决定是否卸载满足给定卸载规则211的标准的通过中间盒160的网络流。如图2A所示,卸载器210基于至少一个度量202是否满足至少一个卸载规则211来确定是否卸载与特定连接相关联的特定连接或网络流。例如,卸载规则211可以卸载超过特定速度或带宽(例如,20kbps)的任何流,由此该示例中的度量202对应于网络流的速度/带宽。卸载规则也可以被复合或约束。例如,虽然第一卸载规则211可以卸载超过20kbps的流,但是第二卸载规则211可以约束被第一规则卸载的流的数量(例如,中间盒管理器200可以卸载不超过20个超过20kbps的流)。附加卸载规则211可以是当通过高带宽流正在使用的特定中间盒160的总带宽超过中间盒160的可配置带宽阈值时卸载高带宽流。在其他示例中,卸载器210卸载子网内或某个物理半径内的所有流。卸载器210可以基于以下因素动态地确定卸载规则211:当前通过中间盒160的总带宽、已经卸载到给定主机的流的数量、卸载的流的总数(例如,在控制平面或虚拟网络层104内)、以及其他流量统计信息。附加地或可选地,卸载规则211可以包括阈值,该阈值基于中间盒160或SDN网络控制器的负载自动调整。
参考图2B,虚拟网络层104包括由中间盒160支持的四个客户端VMs 140a-d和两个后端VMs 150a-b。这里,卸载器210决定(例如,由围绕“卸载”的虚线框所示)卸载从具有直接网络连接170(由虚线箭头所示)的中间盒160到第二后端VM 150b的与第四客户端VM140d相关联的网络流或连接。图2B用虚线描绘第二后端VM 150b以指示第二后端VM 150b对于虚拟网络层104可能是新的(例如,用于资源的可扩展性)或先前就存在而现在被连接以从第四客户端VM 140d接收网络流。
在一些示例中,中间盒管理器200被配置为基于来自度量202的流统计来识别网络流的异常类型(不常见类型)。中间盒管理器200然后可以将与这些异常相关联的连接识别为迁移(例如,直接连接)到终端主机的候选。在一些示例中,中间盒管理器200被配置为在基于与卸载器210相关联的至少一个卸载规则211迁移网络流之前首先迁移异常值候选。
在一些实施方式中,网络环境100的中间盒160包括粘性要求。粘性要求通常是指维持现有连接,使得不需要为与客户端120的每次交互(例如,每个会话)重新建立或初始化到中间盒160的连接。为了跟踪中间盒160的连接,中间盒160可以包括连接的记录162。记录162可以是指示预先存在的源和目的连接的表(例如,如图2A–2C所示).粘性概念的一个说明是如果图2A包括三个客户端VMs 140a-c,然后转变为如图2B所示的四个客户端VMs140a-d。在该保持粘性的转变中,当中间盒160从第四客户端VM 140d接收到新的连接请求或网络流时,中间盒管理器200被配置为将新的第四客户端VM 140d映射到不干扰连接的相应的后端VM 150。例如,代替将第一、第二或第三客户端VM 140a-c的现有网络流从第一后端VM 150a卸载到第二后端VM 150b,中间盒管理器200维持这些现有连接并形成第四客户端VM 150d和第二后端VM 150b之间的直接连接。在这方面,在一些实施方式中,添加到虚拟网络层104的新后端VM可以仅用于新连接以避免干扰现有连接。
在一些配置中,例如图2C,中间盒管理器200包括连接器220以保持粘性。这里,连接器220可以通过使用诸如用于无状态中间盒网络功能(例如,负载均衡)的一致性哈希和/或用于有状态中间盒网络功能的连接跟踪的技术来保持粘性。使用一致性哈希技术,连接器220尝试以无状态方式最小化对连接的干扰。例如,当N个后端VM 150转换到N+1个后端VM150时,被重新分配的连接数等于1/N。换句话说,一致性哈希不会阻止对现有连接的破坏,而是最大限度地减少重新分配的后端连接的数量。
在一些示例中,连接器220使用连接跟踪技术。对于连接跟踪,中间盒160(例如,负载均衡器、NAT或防火墙)具有诸如连接表之类的记录162。记录162跟踪将各种客户端VM140连接到后端VM 150(或后端VM 150到物理网络层102的计算资源110)的过去的中间盒决策和活动。这种方法可以防止对现有连接的干扰,因为在卸载或负载均衡时,中间盒管理器200不会重新组织记录162内的现有连接。
附加地或可选地,当连接器220使用连接跟踪时,中间盒管理器200可以决定卸载先前存在的连接。当这种情况发生时,连接器220可以确保记录162与卸载的连接一起传输。通过传输记录162(例如,连接表),卸载的终端主机可以继续跟踪给定网络连接的状态。例如,图2C描绘了来说明第四客户端VM 140d从中间盒160卸载的、传输到第二后端VM 150b的记录162。
在一些示例中,当中间盒管理器200将连接从中间盒160迁移到终端主机时,连接器220处理卸载过程的过渡阶段。作为过渡阶段的一部分,连接器220在终端主机中发起新记录162a(例如,连接表)。最初,终端主机处的这个新记录162a是空的,但是连接器220用新连接更新新记录162a,使得终端主机控制来自这些新连接的任何后续网络流。在该过渡阶段期间,中间盒160可以处理来自不在终端主机中的新记录162a内的现有连接的网络流。换言之,中间盒160继续控制中间盒160中的现有记录162b内的现有连接,同时中间盒160将现有记录162b传送到终端主机。一旦传输完成,过渡过程就在终端主机上形成了新记录162a和现有记录162b的合并记录162ab。此时,中间盒160停止处理连接(即,停止处理来自现有记录162b的现有连接)。
参考图2A-2C,记录162被示为表的简化版本。在一些实施方式中,记录162是跟踪各个TCP流的连接表。记录162可以包括诸如源IP、目的地IP、协议(例如,TCP、用户数据报协议(UDP)、互联网控制消息协议(ICMP))、源传输端口、目的传输端口、或关于使用的数据(例如,上次使用时间)的连接数据的任何组合。当记录162是表时,记录162可以包括用于每种类型的连接数据的列。记录162还可包括与每个条目相关联的状态。在一些示例中,当用于NAPT的中间盒160将IP和传输端口重写为不同的IP和传输端口时,记录162记录这些转换。例如,在负载均衡中,记录162包括为给定连接选择/建立的后端的标识符(ID)。防火墙的记录162可能什么都没有,或者包括与其序列号验证过程相对应的数字的序列。
在一些示例中,联网环境100包括支持具有无状态和有状态网络操作的组合的流量的多个中间盒160。例如,在网络环境100中可能存在嵌套负载均衡(多层),使得端主机负载均衡到中间盒,而中间盒/端主机负载均衡到后端。在这种情况下,为了卸载或迁移网络连接,连接器220可以使用一致性哈希或连接跟踪或两者的某种组合来优化跨越中间盒160的一层或多层的网络环境100的网络功能。
参考图2D,中间盒管理器200还可包括健康检查器230。该健康检查器230被配置为检查每个后端VM 150的健康特征232。例如,图2D描绘了中间盒管理器200从第一后端VM150a接收第一健康特征232a和从第二后端VM 150b接收第二健康特征232b。这些健康特征232可以传送给健康检查器230或由健康检查器230识别。在一些示例中,在中间盒功能期间,健康检查器230确认连接到对应中间盒160的每个后端VM150指示健康状态。在这些示例中,当中间盒管理器200决定迁移或卸载网络连接时(例如,图2D示出卸载到第二后端VM150b),健康检查器230将对应于原始中间盒连接的第一健康特征232a与预期终端主机(例如,第二后端VM 150b)的第二健康特征232b进行比较。当健康检查器230确定对应于预期终端主机的第二健康特征232b与第一健康特征232a的健康状态匹配时,健康检查器230可以允许中间盒管理器200继续迁移网络流。在一些示例中,当健康检查器230确定对应于预期终端主机的第二健康特征232b未能匹配第一健康特征232a的健康状态(即,对应于不健康状态)时,健康检查器230阻止中间盒管理器200执行迁移。换言之,中间盒管理器200可以首先决定迁移连接和迁移的连接的终端主机,然后确保所选择的终端主机包括指示健康状态的健康特征232。虽然图2D描绘了具有健康检查器230和连接器220的中间盒管理器220,在一些配置中,健康检查器230可以被中间盒管理器200采用而没有连接器220的功能(例如,一致性哈希和/或连接跟踪)。
中间盒管理器200可以以对网络环境100具有性能影响的特定粒度进行操作(即由卸载器210卸载)。当卸载发生时,匹配特定标准的包将具有由终端主机(例如,后端VM 150)而不是由中间盒160应用的网络功能。粒度通常是指包的标准的特性。在一些示例中,中间盒管理器200以参考源IP、目的地IP、IP协议、源传输端口和目的传输端口(例如,单个传输控制协议(TCP)连接)的5元组粒度操作。这里,这个5元组的粒度可以以相对简单的方式用于网络功能,例如负载均衡、防火墙或NAPT,但是它要求大量的流被卸载。
在其他示例中,关于负载均衡的卸载发生在<发送方,负载均衡IP>(<sender,load-balanced IP>)的粒度。在该模型中,当发生卸载时,将终端主机编程为有负载均衡后端的表(例如,记录162)以供客户端120使用。然后,终端主机将能够独立地为来自该客户端120的任何未来连接选择后端。在这里,这些连接不需要单独卸载。
在某些实现中,防火墙以<源IP范围、目标IP范围、协议>(<source IP range,destination IP range,protocol>)的粒度卸载.在此模型中,当卸载发生时,终端主机将使用防火墙分类器进行编程,该分类器指示对于给定的源IP范围、目标IP范围和协议,防火墙准许哪些端口。例如,当中间盒160中配置的数千个防火墙规则中的两个规则指示应基于目标IP前缀10.0.0.0/8允许TCP端口22和80时,此模型的实施方式将卸载防火墙分类器,指示tcp:2,80应该被允许到终端主机。此处的关键扩展优势是无需在所有终端主机中编写所有防火墙规则。在此模型中,有状态防火墙要求在卸载时传输连接跟踪状态。附加地或可选地,可以以<源IP范围,目标IP范围>(<source IP range,destination IP range>)的粒度卸载防火墙,但是这种粒度级别会导致更大的防火墙分类器,因为防火墙分类器需要传达协议信息。
当卸载NAPT功能时,中间盒管理器200可以卸载与给定发送方相关联的所有出口流。当卸载发生时,SDN控制器使用一组IP和端口对终端主机进行编程,终端主机可以会将这些IP和端口分配给由发送方发起的未来的连接。在一些示例中,当终端主机耗尽所有指定的IP和端口时,未来的连接可以恢复到中间盒160,直到终端主机解析IP和端口(例如,从控制器接收另一组IP和端口)。在这个模型中,当卸载发生时,任何现有的连接跟踪状态也必须从中间盒160转移到终端主机。
在一些实施方式中,为了控制卸载,中间盒160和/或中间盒管理器200是可编程软件或硬件(例如,专用集成电路(ASIC)或现场可编程网格阵列(FPGA))。此处,软件或硬件可以位于终端主机上、邻近终端主机(例如,线内凸块拓扑)或位于架顶式交换机中。
图图3是迁移虚拟网络功能的方法300的示例。中间盒管理器200可以执行方法300。物理网络层102的数据处理硬件或其他数据处理硬件可以执行中间盒管理器200。在操作302,方法300识别接收网络流并与一个或多个后端VM 150通信的中间盒160。在操作304,方法300接收对应于中间盒160的网络流的流统计(也称为度量202)。在操作306,方法300确定流统计是否满足卸载规则211。这里,卸载规则211指示何时将网络流从所述中间盒160迁移到终端主机。在操作308,当流统计满足卸载规则211时,方法300将网络流从中间盒160迁移到终端主机。
图4是可用于实现本文档描述的系统和方法的示例计算设备400的示意图。计算设备400旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机、和其它合适的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅旨在作为示例,并且不旨在限制本文档中描述的和/或者要求保护的本发明的实施。
计算设备400包括:处理器410(例如,数据处理硬件)、存储器420、存储设备430、连接至存储器420和高速扩展端口450的高速接口/控制器440、和连接至低速总线470和存储设备430的低速接口/控制器460。通过使用不同的总线将每个部件410、420、430、440、450、和460互相连接,并且可以将上述每个部件安装在公共主板上、或者根据需要以其它的方式安装上述每个部件。处理器410(例如,数据处理硬件)可以对在计算设备400内执行的指令进行处理,指令包括存储在存储器420中或者存储设备430上以在外部输入/输出设备上显示图形用户界面(GUI)的图形信息的指令,外部输入/输出设备诸如为耦合至高速接口440的显示器480。例如,中间盒管理器200可以在处理器410(例如,数据处理硬件)上执行。存储器420和存储设备430可以对应于与数据处理硬件(例如,处理器410)通信的存储器硬件。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种存储器一起使用。同样,可以连接多个计算设备400,每个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。
存储器420将信息非暂时性地存储在计算设备400内。存储器420可以是计算机可读介质、(多个)易失性存储器单元、或者(多个)非易失性存储器单元。非易失性存储器420可以是用于在暂时或者持久基础上存储供计算设备400使用的程序(例如,指令序列)或者数据(程序状态信息)的物理设备。非易失性存储器的示例包括,但不限于:闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除编程只读存储器(EPROM)/电可擦除编程只读存储器(EEPROM)(例如,通常用于诸如为引导程序的固件)。易失性存储器的示例包括:但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)、以及光盘或者磁带。
存储设备430能够为计算设备400提供海量存储。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备、或者磁带设备、闪存或者其它相似的固态存储器设备、或者设备阵列,包括:在存储区域网络或者其它配置中的设备。在附加实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在被执行时执行一种或者多种方法,诸如,上文描述的方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器420、存储设备430、或者在处理器410上的存储器。
高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低带宽的密集型操作。这种功能分配仅仅是示例性的。在一些实施方式中,高速控制器440耦合至存储器420、显示器480(例如,通过图形处理器或者加速器)耦合至高速扩展端口450,该高速扩展端口1150可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器460耦合至存储设备430和低速扩展端口490。低速扩展端口490可以包括各种通信端口(例如,USB、蓝牙、以太网,和无线以太网),可以,例如通过网络适配器,耦合至一个或者多个输入/输出设备,例如,键盘、指向设备、扫描器、或者诸如交换机或者路由器的网络设备。
如图所示,可以利用多种形式来实施计算设备400。例如,可以将计算设备800实施为标准服务器400a、或者多次实施在一组这种服务器400a中、或者实施为膝上型计算机400b、或者实施为机架式服务器系统400c的一部分。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统和/或光学电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用的,可以从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入设备、和该至少一个输出设备。
这些计算机程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、非暂时性计算机可读介质、设备、和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
可以通过一个或者多个可编程处理器来执行本说明书中所描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来执行功能。也可以通过诸如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)的专用逻辑电路来执行过程和逻辑流程。适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于执行指令的处理器、和用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储设备,或者计算机可以操作地耦合以接收来自该一个或者多个海量存储设备的数据或者将数据传输至该一个或者多个海量存储设备或者进行两者,该海量存储设备例如为磁盘、磁光盘、或者光盘。然而,计算机不必具有这种设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括,例如,半导体存储设备(例如EPROM,EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,可以在计算机上实施本公开的一个或者多个方面,该计算机具有:用于向用户显示信息的显示设备,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器、或者触摸屏、以及可选地包括键盘和指向设备(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向设备来将输入提供给计算机。其它种类的设备可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声输入、语音输入或者触觉输入的任何形式来接收来自用户的输入。另外,计算机可以通过将文档发送到用户所使用的设备并且接收来自该设备的文档,来与用于交互,例如,通过响应于从网络浏览器接收的请求来将网页发送至在用户的客户端设备上的网络浏览器。
已经描述了多个实施方式。然而,可理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。
Claims (26)
1.一种方法(300),其特征在于,包括:
由数据处理硬件(410)识别接收网络流并与一个或多个后端虚拟机(150)通信的中间盒(160);
在所述数据处理硬件(410)接收与所述中间盒(160)的所述网络流相对应的流统计(202);由所述数据处理硬件(410)确定所述流统计(202)是否满足卸载规则(211),所述卸载规则(211)指示何时将所述网络流从所述中间盒(160)迁移到终端主机(140、150);以及
当所述流统计(202)满足所述卸载规则(211)时,由所述数据处理硬件(410)将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)。
2.根据权利要求1所述的方法(300),其特征在于,所述中间盒(160)包括网络地址转换器(NAT)、负载均衡器或防火墙中的至少一个。
3.根据权利要求2所述的方法(300),其特征在于,所述中间盒(160)与被配置为执行网络路由的单个网络设备相关联。
4.根据权利要求1-3中任一项所述的方法(300),其特征在于,所述中间盒(160)包括负载均衡器,所述负载均衡器被配置为均衡网络连接与所述一个或多个后端虚拟机(150)之间的网络负载,所述负载均衡器包括连接表(162),所述连接表(162)将每个网络连接映射到所述一个或多个后端虚拟机(150)中的相应一个。
5.根据权利要求1-4中任一项所述的方法(300),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括在所述终端主机(140、150)处启动终端-主机连接表(162)。
6.根据权利要求1-5中任一项所述的方法(300),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括:
在所述终端主机(140、150)处启动终端-主机连接表(162);
识别在所述终端主机(140、150)处接收的网络连接请求(124);
确定所述网络连接请求(124)对应于新的网络连接;
用所述新的网络连接来更新所述终端-主机连接表(162);以及
在所述终端主机(140、150)处控制所述新的网络连接的所述网络流。
7.根据权利要求1-6中任一项所述的方法(300),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括:
在所述终端主机(140、150)处启动终端-主机连接表(162);
识别在所述终端主机(140、150)处接收的网络连接请求(124);
确定所述网络连接请求(124)对应于不存在于所述终端-主机连接表(162)中的现有网络连接;以及
将所述现有网络连接的所述网络流从所述终端主机(140、150)传送到所述中间盒(160)。
8.根据权利要求7所述的方法(300),其特征在于,将所述网络流从所述中间盒(160)迁移还包括:
将中间盒连接表(162)从所述中间盒(160)传送到所述终端主机(140、150);以及
当所述中间盒连接表(162)从所述中间盒(160)传送到终端主机(140、150)时,中断所述终端主机(140、150)与所述中间盒(160)之间的通信。
9.根据权利要求1-8中任一项所述的方法(300),其特征在于,还包括,在将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)之后:
由所述数据处理硬件(410)确定在一段时间内到所述终端主机(140、150)的所述网络流的减少;以及
由所述数据处理硬件(410)将所述网络流从所述终端主机(140、150)迁移到所述中间盒(160)。
10.根据权利要求1-9中任一项所述的方法(300),其特征在于,所述中间盒(160)被配置为基于一致性哈希与所述一个或多个后端虚拟机(150)通信。
11.根据权利要求1-10中任一项所述的方法(300),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)还包括:
识别与所述中间盒(160)通信的所述一个或多个后端虚拟机(150)的每个后端虚拟机(150)的第一健康特征(232)指示健康状态;以及
确定对应于所述终端主机(140、150)的第二健康特征(232)与所述第一健康特征(232)的所述健康状态相匹配。
12.根据权利要求1-11中任一项所述的方法(300),其特征在于,所述终端主机(140、150)包括所述一个或多个后端虚拟机(150)中的一个。
13.根据权利要求1-12中任一项所述的方法(300),其特征在于,所述终端主机(140、150)包括物理网络层(102)内的端点。
14.一种系统(100),其特征在于,包括:
数据处理硬件(410);和
与所述数据处理硬件(410)通信的存储硬件(420),所述存储硬件(420)存储指令,所述指令在所述数据处理硬件(410)上执行时使所述数据处理硬件(410)执行以下操作:
识别接收网络流并与一个或多个后端虚拟机(150)通信的中间盒(160);
接收与所述中间盒(160)的所述网络流相对应的流统计(202);
确定所述流统计(202)是否满足卸载规则(211),所述卸载规则(211)指示何时将所述网络流从所述中间盒(160)迁移到终端主机(140、150);以及
当所述流统计(202)满足所述卸载规则(211)时,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)。
15.根据权利要求14所述的系统(100),其特征在于,所述中间盒(160)包括网络地址转换器(NAT)、负载均衡器或防火墙中的至少一个。
16.根据权利要求15所述的系统(100),其特征在于,所述中间盒(160)与被配置为执行网络路由的单个网络设备相关联。
17.根据权利要求14-16中任一项所述的系统(100),其特征在于,所述中间盒(160)包括负载均衡器,所述负载均衡器被配置为均衡网络连接与所述一个或多个后端虚拟机(150)之间的网络负载,所述负载均衡器包括连接表(162),所述连接表(162)将每个网络连接映射到所述一个或多个后端虚拟机(150)中的相应一个。
18.根据权利要求14-17中任一项所述的系统(100),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括在所述终端主机(140、150)处启动终端-主机连接表(162)。
19.根据权利要求14-18中任一项所述的系统(100),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括:
在所述终端主机(140、150)处启动终端-主机连接表(162);
识别在所述终端主机(140、150)处接收的网络连接请求(124);
确定所述网络连接请求(124)对应于新的网络连接;
用所述新的网络连接来更新所述终端-主机连接表(162);以及
在所述终端主机(140、150)处控制所述新的网络连接的所述网络流。
20.根据权利要求14-19中任一项所述的系统(100),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)包括:
在所述终端主机(140、150)处启动终端-主机连接表(162);
识别在所述终端主机(140、150)处接收的网络连接请求(124);
确定所述网络连接请求(124)对应于不存在于所述终端-主机连接表(162)中的现有网络连接;以及
将所述现有网络连接的所述网络流从所述终端主机(140、150)传送到所述中间盒(160)。
21.根据权利要求20所述的系统(100),其特征在于,将所述网络流从所述中间盒(160)迁移还包括:
将中间盒连接表(162)从所述中间盒(160)传送到所述终端主机(140、150);以及
当所述中间盒连接表(162)从所述中间盒(160)传送到终端主机(140、150)时,中断所述终端主机(140、150)与所述中间盒(160)之间的通信。
22.根据权利要求14-21中任一项所述的系统(100),其特征在于,所述操作还包括,在将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)之后:
确定在一段时间内到所述终端主机(140、150)的所述网络流的减少;以及
将所述网络流从所述终端主机(140、150)迁移到所述中间盒(160)。
23.根据权利要求14-22中任一项所述的系统(100),其特征在于,所述中间盒(160)被配置为基于一致性哈希与所述一个或多个后端虚拟机(150)通信。
24.根据权利要求14-23中任一项所述的系统(100),其特征在于,将所述网络流从所述中间盒(160)迁移到所述终端主机(140、150)还包括:
识别与所述中间盒(160)通信的所述一个或多个后端虚拟机(150)的每个后端虚拟机(150)的第一健康特征(232)指示健康状态;以及
确定对应于所述终端主机(140、150)的第二健康特征(232)与所述第一健康特征(232)的所述健康状态相匹配。
25.根据权利要求14-24中任一项所述的系统(100),其特征在于,所述终端主机(140、150)包括所述一个或多个后端虚拟机(150)中的一个。
26.根据权利要求14-25中任一项所述的系统(100),其特征在于,所述终端主机(140、150)包括物理网络层(102)内的端点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/219,929 US11070475B2 (en) | 2018-12-13 | 2018-12-13 | Transparent migration of virtual network functions |
US16/219,929 | 2018-12-13 | ||
PCT/US2019/060256 WO2020123066A1 (en) | 2018-12-13 | 2019-11-07 | Transparent migration of virtual network functions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113424501A true CN113424501A (zh) | 2021-09-21 |
Family
ID=69160077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980092093.6A Pending CN113424501A (zh) | 2018-12-13 | 2019-11-07 | 虚拟网络功能的透明迁移 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11070475B2 (zh) |
EP (2) | EP4307640A3 (zh) |
KR (2) | KR102659644B1 (zh) |
CN (1) | CN113424501A (zh) |
WO (1) | WO2020123066A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11115322B1 (en) | 2019-03-27 | 2021-09-07 | Amazon Technologies, Inc. | Stateful network router for managing network appliances |
US11310309B1 (en) | 2020-12-11 | 2022-04-19 | Amazon Technologies, Inc. | Arc jump: per-key selection of an alternative server when implemented bounded loads |
US11140220B1 (en) * | 2020-12-11 | 2021-10-05 | Amazon Technologies, Inc. | Consistent hashing using the power of k choices in server placement |
US11258846B1 (en) | 2021-05-26 | 2022-02-22 | Capital One Services, Llc | Real-time serverless streaming in a multi-cloud environment |
US11909656B1 (en) * | 2023-01-17 | 2024-02-20 | Nokia Solutions And Networks Oy | In-network decision for end-server-based network function acceleration |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268357A1 (en) * | 2003-06-30 | 2004-12-30 | Joy Joseph M. | Network load balancing with session information |
CN1599351A (zh) * | 2003-12-17 | 2005-03-23 | 浪潮电子信息产业股份有限公司 | 构建高性价比机群网络负载均衡转发器的方法 |
US20090086651A1 (en) * | 2007-10-02 | 2009-04-02 | Luft Siegfried J | Intelligent collection and management of flow statistics |
US7738452B1 (en) * | 2005-06-22 | 2010-06-15 | Cisco Technology, Inc. | Techniques for load balancing subscriber-aware application proxies |
CN101986666A (zh) * | 2010-11-05 | 2011-03-16 | 清华大学 | 基于虚拟网络接口和反向地址转换的网络数据传输方法 |
US20120054367A1 (en) * | 2010-08-24 | 2012-03-01 | Ramakrishnan Kadangode K | Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network |
US20120182992A1 (en) * | 2011-01-14 | 2012-07-19 | International Business Machines Corporation | Hypervisor routing between networks in a virtual networking environment |
US20150358236A1 (en) * | 2014-06-05 | 2015-12-10 | KEMP Technologies Inc. | Adaptive load balancer and methods for intelligent data traffic steering |
US20170126789A1 (en) * | 2015-10-30 | 2017-05-04 | AppDynamics, Inc. | Automatic Software Controller Configuration based on Application and Network Data |
US9712386B1 (en) * | 2015-02-18 | 2017-07-18 | Amazon Technologies, Inc. | Grouping routing resources for isolated virtual network traffic management |
CN107395445A (zh) * | 2011-11-15 | 2017-11-24 | Nicira股份有限公司 | 具有中间盒的网络架构 |
CN107959625A (zh) * | 2016-10-14 | 2018-04-24 | 谷歌公司 | 具有动态流卸载能力的虚拟路由器 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9203703B2 (en) * | 2011-08-17 | 2015-12-01 | Nicira, Inc. | Packet conflict resolution |
WO2013126442A1 (en) * | 2012-02-20 | 2013-08-29 | Virtustream Canada Holdings, Inc. | Systems involving firewall of virtual machine traffic and methods of processing information associated with same |
CN103491053A (zh) * | 2012-06-08 | 2014-01-01 | 北京百度网讯科技有限公司 | Udp负载均衡方法、系统及装置 |
US9407557B2 (en) * | 2012-12-22 | 2016-08-02 | Edgewater Networks, Inc. | Methods and systems to split equipment control between local and remote processing units |
US20150006730A1 (en) * | 2013-06-27 | 2015-01-01 | Sap Ag | Enabling multi-tenant virtual servers in a cloud system |
US20160274951A1 (en) * | 2013-11-26 | 2016-09-22 | Nec Corporation | Virtual middle box management system, virtual middle box management method, and virtual middle box management program |
US20150180769A1 (en) * | 2013-12-20 | 2015-06-25 | Alcatel-Lucent Usa Inc. | Scale-up of sdn control plane using virtual switch based overlay |
US9635114B2 (en) | 2014-01-24 | 2017-04-25 | Netapp, Inc. | Externally initiated application session endpoint migration |
US9667543B2 (en) * | 2014-08-08 | 2017-05-30 | Microsoft Technology Licensing, Llc | Routing requests with varied protocols to the same endpoint within a cluster |
US10409649B1 (en) * | 2014-09-30 | 2019-09-10 | Amazon Technologies, Inc. | Predictive load balancer resource management |
US9667560B2 (en) * | 2014-12-24 | 2017-05-30 | Nicira, Inc. | Flow sequencing |
US10812632B2 (en) * | 2015-02-09 | 2020-10-20 | Avago Technologies International Sales Pte. Limited | Network interface controller with integrated network flow processing |
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
US20170070912A1 (en) * | 2015-09-08 | 2017-03-09 | Argela-USA, Inc. | Method and apparatus for programmable spectrum switching licensed and unlicensed spectrum |
US9781037B2 (en) * | 2015-09-15 | 2017-10-03 | Cisco Technology, Inc. | Method and apparatus for advanced statistics collection |
US9998371B2 (en) * | 2015-12-16 | 2018-06-12 | Nicira, Inc. | Packet communication between container data compute nodes and a managed forwarding element |
US10063469B2 (en) * | 2015-12-16 | 2018-08-28 | Nicira, Inc. | Forwarding element implementation for containers |
US10348687B2 (en) | 2015-12-18 | 2019-07-09 | Worcester Polytechnic Institute | Method and apparatus for using software defined networking and network function virtualization to secure residential networks |
WO2017113273A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 一种软件定义数据中心及其中的服务集群的调度和流量监控方法 |
JP6505172B2 (ja) * | 2016-08-25 | 2019-04-24 | エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation | 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム |
US10320895B2 (en) * | 2016-11-15 | 2019-06-11 | Microsoft Technology Licensing, Llc | Live migration of load balanced virtual machines via traffic bypass |
CN106850459B (zh) * | 2017-02-27 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种实现虚拟网络负载均衡的方法及装置 |
US10331973B2 (en) * | 2017-06-26 | 2019-06-25 | Nicira, Inc. | System and method for deploying graphical diagram topologies |
US11128700B2 (en) * | 2018-01-26 | 2021-09-21 | Cisco Technology, Inc. | Load balancing configuration based on traffic flow telemetry |
-
2018
- 2018-12-13 US US16/219,929 patent/US11070475B2/en active Active
-
2019
- 2019-11-07 EP EP23212762.1A patent/EP4307640A3/en active Pending
- 2019-11-07 KR KR1020247003428A patent/KR102659644B1/ko active IP Right Grant
- 2019-11-07 EP EP19836040.6A patent/EP3895391B1/en active Active
- 2019-11-07 KR KR1020217017570A patent/KR102632518B1/ko active IP Right Grant
- 2019-11-07 WO PCT/US2019/060256 patent/WO2020123066A1/en unknown
- 2019-11-07 CN CN201980092093.6A patent/CN113424501A/zh active Pending
-
2021
- 2021-06-28 US US17/304,907 patent/US12010024B2/en active Active
-
2023
- 2023-11-22 US US18/518,029 patent/US20240089207A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040268357A1 (en) * | 2003-06-30 | 2004-12-30 | Joy Joseph M. | Network load balancing with session information |
CN1599351A (zh) * | 2003-12-17 | 2005-03-23 | 浪潮电子信息产业股份有限公司 | 构建高性价比机群网络负载均衡转发器的方法 |
US7738452B1 (en) * | 2005-06-22 | 2010-06-15 | Cisco Technology, Inc. | Techniques for load balancing subscriber-aware application proxies |
US20090086651A1 (en) * | 2007-10-02 | 2009-04-02 | Luft Siegfried J | Intelligent collection and management of flow statistics |
US20120054367A1 (en) * | 2010-08-24 | 2012-03-01 | Ramakrishnan Kadangode K | Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network |
CN101986666A (zh) * | 2010-11-05 | 2011-03-16 | 清华大学 | 基于虚拟网络接口和反向地址转换的网络数据传输方法 |
US20120182992A1 (en) * | 2011-01-14 | 2012-07-19 | International Business Machines Corporation | Hypervisor routing between networks in a virtual networking environment |
CN107395445A (zh) * | 2011-11-15 | 2017-11-24 | Nicira股份有限公司 | 具有中间盒的网络架构 |
US20150358236A1 (en) * | 2014-06-05 | 2015-12-10 | KEMP Technologies Inc. | Adaptive load balancer and methods for intelligent data traffic steering |
US9712386B1 (en) * | 2015-02-18 | 2017-07-18 | Amazon Technologies, Inc. | Grouping routing resources for isolated virtual network traffic management |
US20170126789A1 (en) * | 2015-10-30 | 2017-05-04 | AppDynamics, Inc. | Automatic Software Controller Configuration based on Application and Network Data |
CN107959625A (zh) * | 2016-10-14 | 2018-04-24 | 谷歌公司 | 具有动态流卸载能力的虚拟路由器 |
Non-Patent Citations (3)
Title |
---|
MANAR ALQARNI等: "LB-MAP: Load-Balanced Middlebox Assignment in Policy-Driven Data Centers", 2017 26TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION AND NETWORKS (ICCCN) * |
MICHAEL DALTON等: "Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization", USENIX * |
房爱军等: "网络功能虚拟化:基于虚拟化的中间件盒子", 万方数据库 * |
Also Published As
Publication number | Publication date |
---|---|
KR102659644B1 (ko) | 2024-04-22 |
WO2020123066A1 (en) | 2020-06-18 |
EP4307640A3 (en) | 2024-03-20 |
US20240089207A1 (en) | 2024-03-14 |
EP3895391A1 (en) | 2021-10-20 |
EP3895391B1 (en) | 2024-01-03 |
KR102632518B1 (ko) | 2024-02-02 |
US20200195558A1 (en) | 2020-06-18 |
KR20240017134A (ko) | 2024-02-06 |
KR20210088673A (ko) | 2021-07-14 |
US20210328927A1 (en) | 2021-10-21 |
US11070475B2 (en) | 2021-07-20 |
US12010024B2 (en) | 2024-06-11 |
EP4307640A2 (en) | 2024-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113454971B (zh) | 基于远程智能nic的服务加速 | |
US11438194B2 (en) | Scalable tenant networks | |
US11102079B2 (en) | Cross-regional virtual network peering | |
US11177978B2 (en) | Connecting virtual computer networks with overlapping IP addresses using transit virtual computer network | |
US10944811B2 (en) | Hybrid cloud network monitoring system for tenant use | |
Patel et al. | Ananta: Cloud scale load balancing | |
EP3895391B1 (en) | Transparent migration of virtual network functions | |
CN109937401B (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
US9112812B2 (en) | Distributed virtual appliance | |
CN113302884B (zh) | 公共云环境中的服务插入 | |
Bankston et al. | Performance of container network technologies in cloud environments | |
US11811656B2 (en) | Direct communication between endpoints across remote sites | |
US11012357B2 (en) | Using a route server to distribute group address associations | |
US20240022452A1 (en) | Dynamic on-demand virtual private network (vpn) session distribution for gateways | |
Qutait | Using Software defined Network and virtualization to implement NAT and backup functionality and resulting business benefits of implementation in ISPs | |
US20240214311A1 (en) | Elastic scaling of software-defined distributed load balancers across clouds |
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 |