CN102449963B - 跨层2域的负载平衡 - Google Patents

跨层2域的负载平衡 Download PDF

Info

Publication number
CN102449963B
CN102449963B CN 201080023822 CN201080023822A CN102449963B CN 102449963 B CN102449963 B CN 102449963B CN 201080023822 CN201080023822 CN 201080023822 CN 201080023822 A CN201080023822 A CN 201080023822A CN 102449963 B CN102449963 B CN 102449963B
Authority
CN
China
Prior art keywords
packet
load balancing
mux
individual
target device
Prior art date
Application number
CN 201080023822
Other languages
English (en)
Other versions
CN102449963A (zh
Inventor
P·帕特尔
D·马尔茨
A·格林伯格
袁利华
R·克恩
Original Assignee
微软公司
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
Priority to US18205709P priority Critical
Priority to US61/182,057 priority
Priority to US12/605,388 priority
Priority to US12/605,388 priority patent/US8416692B2/en
Application filed by 微软公司 filed Critical 微软公司
Priority to PCT/US2010/036757 priority patent/WO2010138936A2/en
Publication of CN102449963A publication Critical patent/CN102449963A/zh
Application granted granted Critical
Publication of CN102449963B publication Critical patent/CN102449963B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements or network protocols for addressing or naming
    • H04L61/10Mapping of addresses of different types; Address resolution
    • H04L61/103Mapping of addresses of different types; Address resolution across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • 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. local area networks [LAN], wide area networks [WAN]
    • 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
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00
    • H04L29/12Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 characterised by the data terminal
    • H04L29/12009Arrangements for addressing and naming in data networks
    • H04L29/12018Mapping of addresses of different types; address resolution
    • H04L29/12028Mapping of addresses of different types; address resolution across network layers, e.g. resolution of network layer into physical layer addresses, Address Resolution Protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Abstract

本申请涉及网络配置,且尤其涉及可扩展负载平衡网络配置。一种实现包括被耦合到可扩展负载平衡系统的外部客户机。可扩展负载平衡系统包括被配置为对来自该外部客户机的分组流的各单独的传入分组进行封装的负载平衡层。该负载平衡层还被配置为将传入分组路由到系统上的目标设备。各目标设备可以跨越多个IP子网。各传入分组可以在到达各单独的目标设备之前穿过负载平衡层的一个或多个负载平衡器。各单独的目标设备可以被配置为将分组流的至少一些传出分组路由到外部客户机而不穿过一个或多个负载平衡器中的任何一个。

Description

跨层2域的负载平衡

[0001] 背景

[0002] 负载平衡器可以是可以将一组请求分布在能够处理请求的一组服务器上的网络基础设施的关键部件。常规的负载平衡器可以包括各对设备,每一对设备都是专用硬件。因为使用专用硬件,所以常规的负载平衡器往往花费大量金钱。另一缺点是它们使用按比例扩大策略:单对负载平衡器可以应对受硬件容量限制的多个并发请求。购买包含具有更多容量的硬件的更强大的负载平衡器才能处理附加的请求。在缓解网络中的流量瓶颈方面,直接服务器返回(DSR)优化是有用的。然而,常规的负载平衡器的缺点是这种技术是通常限于网络的单个虚拟局域网(VLAN)。

[0003] 概述

[0004] 本申请涉及网络配置,且尤其涉及可扩展负载平衡网络配置。一种实现包括被耦合到可扩展负载平衡系统的外部客户机。可扩展负载平衡系统包括被配置为对来自该外部客户机的分组流的各单独的传入分组进行封装的负载平衡层。该负载平衡层被进一步配置为将传入分组路由到系统上的各目标设备。各目标设备可以跨多个IP子网。各传入分组可以在到达各单独的目标设备之前穿过负载平衡层的一个或多个负载平衡器。各单独的目标设备可以被配置为将分组流的至少一些传出分组路由到外部客户机而不穿过一个或多个负载平衡器中的任何一个。

[0005] 附图简述

[0006] 附图示出了本申请中传达的概念的实现。所示实现的特征可通过参考以下结合附图的描述来更容易地理解。只要可行,各附图中相同的附图标记用来指代相同的元素。此外,每一个附图标记的最左边的数字传达其中首次引入该附图标记的附图及相关联的讨论。

[0007] 图1-图5示出可以采用根据一些实现的各概念中的一些的网络环境。

[0008] 图6示出可以采用根据一些实现的各概念中的一些的可扩展负载平衡体系结构。

[0009] 图7-图8示出根据各概念的一些实现的在图1-图6中介绍的一些组件。

[0010] 图9示出根据一些实现的与各概念中的一些相一致的散列映射技术。

[0011] 图10和图11示出根据一些实现的可以实现可扩展负载平衡概念中的一些的流程图。

[0012] 详细描述

[0013] 介绍/概览

[0014] 网络负载平衡器可以通过将传入分组分类成会话并将各单独的会话的分组流量分发给所选择的资源(例如,服务器)来帮助增强网络中的资源的利用。为了辅助缓解在负载平衡器处分组流量的瓶颈,可以利用诸如直接服务器返回(DSR)等优化技术。DSR允许来自网络的传出分组流量绕过负载平衡器而不是如同传入分组流量那样穿过它。然而,这种技术通常限于网络的单个虚拟局域网(VLAN)。相反,图1示出各概念中的一些的高级视图。

[0015] 网络示例

[0016] 图1示出其中外部客户机102可以经由因特网106与可扩展负载平衡系统104通信的网络环境100。负载平衡或分散可以被认为是联网设备可以将流量分散在一组有效下一跳的任何合适手段。

[0017] 可扩展负载平衡系统104可以包括因为可以支持在110处指示的本质上无限量的目标设备而可扩展的负载平衡功能层108。在这种情况中,术语‘本质上无限’可以一般地意指控制可扩展负载平衡系统104的实体所期望的那样多的目标设备。举例来说,目标设备的数量可以是数万个或数十万个或更多个。负载平衡功能层108被配置为使得来自外部客户机102的通信可以穿过,且被负载平衡功能分发到各单独的目标设备,如箭头112所指示。然而,由箭头114表示的返回通信不需要在回到外部客户机102的路径上穿过负载平衡功能层108。

[0018] 简言之,一些实现可以利用层2域间分组传输技术来实现负载平衡功能108。在一些情况中,这些层2域间分组传输技术可以允许跨越多个IP子网使用诸如DSR等的负载平衡优化技术,且由此允许使用本质上无限的目标设备110。出于可扩展性和其他原因,使用网际协议的网络可以将共享它们的IP地址中的普通位前缀的主机划分到IP子网中。通常,单个子网的范围限于单个VLAN的范围。允许使用带有来自不同的子网的网际协议(IP)地址的目标设备110可以消除用于负载平衡器的先前设计的显著限制。个体IP子网可以与可扩展负载平衡系统104的若干层2域中的一个相关联。在一个或多个实施方式中,可以使用例如IP-1n-1P(在IP里面封装IP)封装来封装分组流的个体传入分组。这可以例如由负载平衡功能108的多路复用器(MUX或Mux)来完成。

[0019] 通过在到达个体目标设备之前穿过负载平衡功能108,经封装的传入分组可以被路由到在可扩展负载平衡系统104上的资源或目标设备110。在至少一些实施方式中,负载平衡功能可以使用诸如DSR等的优化技术来减少/最小化负载平衡功能上的分组流流量。目标设备(例如,服务器)可以与多个IP子网或VLAN相关联且因而跨越多个IP子网或VLAN。与个体目标设备相关联的组件(例如,软件组件)可以解封所接收的传入分组以便获得IP信息。然后,可以将结果(传出分组)从可扩展负载平衡系统104路由到外部客户机102(例如,接收传入分组中的一个或多个的客户机)而不穿过(即穿越)负载平衡功能108。简要地,可扩展负载平衡系统104可以启用新的功能,包括与负载分散和无偿地址解析协议(G-ARP)相关联的功能。下面详细叙述这些概念。

[0020] 图2示出根据一个或多个实施方式的另一示例网络环境200。网络环境200提供可以实现上面参考图1介绍的概念的示例结构或组件。网络环境200可以包括经由因特网106或其他网络与可扩展负载平衡系统204通信的外部客户机202。可扩展负载平衡系统204可以包括一组路由器206、一组动态负载平衡器(DLB) 208和一组目标设备210。在这个实例中,该组路由器206表现为路由器206 (I)和206 (η)。该组DLB 208表现为分别包括多路复用器(即,MUX) 212 (I)和212 (η)的DLB 208 (I)和208 (η)。该组目标设备210表现为应用服务器214(1)和214 (η)以及本地负载平衡器216 (I)和216 (η)。

[0021] 在218处概括示出的虚线箭头示出在可扩展负载平衡系统204的各组件之间的潜在通信路径。粗实线箭头220(1)和220(2)示出通过网络环境200从外部客户机202到应用服务器214 (I)的两个潜在的分组流路径。粗实线箭头222表示从应用服务器214 (I)到外部客户机202的返回分组流路径。举例来说,粗箭头220(1)和220(2)可以表示来自外部客户机202的由应用服务器214(1)处理的搜索查询。因而,应用服务器214(1)可以被称为‘目标设备’。尽管在这里目标设备是应用层应用服务器,但应明白和理解,该示例目标设备可以另外或替代地是另一类型的目标设备,如本地负载平衡器——例如应用层负载平衡器。值得注意的是,尽管传入分组流(即,粗箭头220(1)和220 (2))穿过该组DLB 208的成员,但传出返回分组流(即,粗箭头222)并不必定穿过负载平衡器而是改为绕过DLB。结果,可以减少在DLB中的一个或多个处的分组流流量的瓶颈或使其最小化。在至少一些实施方式中,这可以通过利用DSR优化技术来实现。下面描述示例DSR优化技术。

[0022] 在至少一些实施方式中,DLB 208(1)和208 (η)中的一个或多个上的MUX 212(1)和/或212(η)可以使用IP-1n-1P(IP中IP)封装来将分组流发送给目标设备210。尽管提供了具体的封装示例,但封装可以是用于对分组进行定址以便沿着路径或路径的一部分传输的任何手段。另外,目标设备上的解封组件222 (I)-222 (η)可以解封传入分组流的一个或多个分组并将结果(即,传出分组流)发送回去给外部客户机202。在一种情况中,可以在目标设备210上将解封组件222 (I) -222 (η)表示成可由目标设备的处理器执行的软件组件。

[0023] 在这种实现中,路由器206可以使用等价多路径(ECMP)来将分组负载分散在DLB208的MUX212(1)和212(n)上。进一步,MUX可以向发送给目标设备210的各分组提供一致散列。在各实现中的一些中,可以在诸如服务器等各单独的设备上实现DLB 208和目标设备210。举例来说,诸如服务器等单个计算设备可以包括带有MUX 212(1)和应用服务器214(1)的DLB 208(1)。在其他实现中,DLB可以在与各目标设备分开的设备上。

[0024] 在操作中,在这一示例中的DLB 208中的每一个可以被配置为提供用于管理虚拟IP-直接IP(VIP-DIP)映射的VIP到DIP映射(例如,VIP — {槽!,槽2,槽3,...,槽N})的应用程序接口(API)。各单独的槽被分配给DIP。单个DIP可以在这种VIP到DIP映射中出现多次。这种VIP到DIP映射可以被称为VipMap (虚拟ip映射)。

[0025] 尽管以上被描述为在单个VIP地址和一列DIP地址之间的映射,但应理解,每一地址也可以与端口号(例如,诸如端口 80等传输控制协议(TCP)端口)相关联。在这种广义化中,VIP地址或VIP地址和端口号可以被映射到包括作为单独的DIP地址或DIP地址和端口号的条目的列表。单个DIP地址可以出现多次,它可以单独地、或与不同的端口号一起、或与相同的端口号、以任何组合一起出现。也可以存在映射到各DIP和各DIP、端口号组合的相同列表的多个VIP或多个VIP、端口号组合。DLB 208的各单独的MUX 212 (I)-212 (η)可以各自被配置为对来自各单独的传入分组流分组的首部字段进行散列并将各单独的分组发送给与目标设备210相关联的适当的IP地址。例如,考虑示例传入分组。DLB中的一个或两者可以通过计算下式来对示例传入分组散列并选择槽(例如,{槽1,槽2,槽3,...,槽Ν}:

[0026] 槽i =散列(分组首部字段)模N

[0027] 其中N是VIP-DIP映射中的槽的数量。然后,(各)DLB的MUX可以将示例传入分组发送给槽i中所指示的地址。这种设计的潜在优点是作为同一流(例如,其中所有分组共享IP源地址、IP目的地地址、TCP源端口、TCP目的地端口和IP协议号的相同5元组的TCP流)的一部分的各分组可以被转发给相同的目标设备210,而不管哪个DLB 208处理该分组。

[0028] 图3示出提供对以上所描述的网络环境200的替代方案的又一示例网络环境300。简言之,网络环境300类似于网络环境200。然而,在网络环境300中,本地负载平衡器(LLB)可以被认为是在DLB和目标设备之间的居间层。具体地,网络环境300包括经由因特网或其他网络306与可扩展网络平衡系统304通信的外部客户机302。网络平衡系统304包括路由器层308、DLB层310、LLB层312和目标设备层314。在这种情况中,目标设备层314 包括应用服务器 314 (I) -314 (η)。LLB 层 312 包括 LLB 312 (I) -312 (η)。

[0029] 解封组件316 (I)-316 (η)分别驻留在LLB 312 (I)-312 (η)上。在这种配置中,可以将外部客户机的通信封装在DLB层310处,且当在LLB层312处收到时就解封。然后,可以将该通信转发给适当的应用服务器314(1)-314(η)。到外部客户机302的任何返回通信可以分别绕过DLB层310和LLB层312。绕过DLB层和LLB层可以避免潜在瓶颈和/或为传入的通信保留系统资源。

[0030] 图4示出可扩展负载平衡系统的网络环境400的各组件的又一高级示例。在这个实例中,这些组件包括查询生成器402 (I) -402 (η)、接入路由器(AR) 404 (I) -404 (η)、层2聚集交换机406 (I)-406 (η)和架顶式(ToR)交换机408 (I)-408 (η)。各ToR可以与诸如MUX(M)、健康监视器(H)、服务器(S)、负载平衡器(B)等各种服务器机架组件进行通信。

[0031] 对于提供特定服务的VIPl,各AR 404 (I)-404 (η)可以被配置为具有N个路线,这些路线中的每一个将其下一跳指向具有相同成本的中间IP(IIP)地址(ΙΙΡ1至ΙΙΡΝ)。在该AR上,各路线都可以是该VIP的下一跳。因此,该AR可以在N个IIP地址中均匀地分发流量。这些路线可以被配置成该AR上的具有相等规格的静态路线(即,等价静态路线(下面参考图5讨论))。替代地,可以经由与该AR具有适当会话的路由协议(例如,边界网关协议(BGP)或开放最短路径优先(OSPF))发言者(speaker)来动态地建立这些路线。另夕卜,该AR可以被配置为通告该VIP。可以跨各MUX(M)划分各IIP。除了其自己的IP地址(MIP)之外,MUX也可以被配置为带有一个或多个IIP地址,以使得它可以应答对所配置的IIP的ARP请求。因此,单独的MUX可以接收所转发的流量中的一份。一旦接收到分组,该单独的MUX可以运行一致散列算法以便选择一个活动的DLB来转发该流量。

[0032] 基于相同的一组活动DLB,MUX可以使用相同的一致散列算法。因此,可以将分组转发给相同的DLB而不管哪个MUX从AR 404 (I)-404 (η)接收到它。注意,在向该池添加或从中移除新的DLB时,这可以触发一些本地配置改变;然而,可以保持现有的连接。

[0033] 图5示出用于配置N个等价静态路线的网络环境500和关联的技术。在这种情况中,网络环境500包括接入路由器404(1)(在图4中已介绍)、IIP (I)-1IP (n)、MUX212⑴-212 (η)和DLB 208 (I)-208 (η)(在图2中已介绍)。网络环境500可为每一 VIP配置N个等价静态路线。这些等价静态路线的下一跳指向中间IP(IIP)地址IIP (I)-1IP (η)。可以从独立于VIP池和DIP池的分开的地址池取出这些IIP地址。这种实现也可以开启负载分散以使得流量将被平均分发给这N个IIP地址。

[0034] 在另一实施方式中,可以使用诸如到各路由器的BGP连接等路由协议来将活跃的且取得每一 VIP的分组的MUX通知给它们。

[0035] 各种实现可以解决在各MUX模块来来往往时如何保留长期运行连接的问题。在一些实现中所利用的一种方法可以是保留在每一 MUX处处理的各单独的流的状态,并在各单独的MUX被添加到可扩展负载平衡系统时将此状态的副本提供给各单独的MUX。为了在不断开现有连接的情况下处理MUX的添加或移除,一个替代方案是在每当由任何MUX第一次处理新连接时创建状态信息。可以在各MUX之间或者通过对等机制直接地共享这一状态或者通过将这一状态发送给逻辑上集中式的存储来间接地共享这一状态,需要处理连接的各分组的任何MUX可以从该逻辑上集中式的存储确定其他MUX已经将该连接的各分组发送到的 DIP。

[0036] 一种要求少得多的状态共享且因此更加可扩展的替代实现是,MUX或者使用VIP和DIP之间的当前映射(即,VipMap)来转发分组或者处于它们从使用一个VipMap (V)来转发分组改变为使用另一 VipMap (V’ )来转发分组的过渡时间段中。在这种实施方式中,可以使得各MUX就V、V’和它们的当前过渡状态达成一致(即是说,它们是处于在V和V’之间的过渡状态中还是它们都已经对所有分组仅使用V’而开始)。在不处于过渡时,所有MUX使用当前的VipMap来转发所有分组。在处于过渡时,每当它们看到新连接的分组(例如,TCP SYN分组)时,MUX创建一段本地状态。在转发与指示新连接的那些分组不同的分组时,MUX查看它是否拥有该连接的状态。如果它拥有状态,则MUX使用新VipMap V’来转发该分组,否则它使用旧VipMap V来转发该分组。

[0037] 简言之,在至少一些配置中,MUX 212 (I)-212 (η)可以具有下列主要组件:(I)向路由器主张拥有一 IIP并接收该IIP的流量的IIP模块,(2)确定哪个DLB208(l)-208(n)转发该流量的一致散列模块,(3)修改分组的分组重写器,(4)本地DLB监视器。在各种实现中,可以在容易获得的(即,商品)服务器上和/或在路由器上实现这些组件中的任何或全部。下面参考图6-图8更详细地描述各MUX组件。

[0038] IIP模块(IIP⑴-1IP(η))可以负责通过ARP协议将MUX 212 (I)-212 (η)注册到路由器。基本上,IIP模块可以在路由器上建立IIP地址和MUX MAC地址的IP-MAC映射。

[0039] 考虑示例函数‘bool AddIP (IP Address iip) ’:在这一示例函数中,IIP地址可作为次级IP地址合计在MUX接口上。注意,MUX可能具有多个次级IP地址。‘AddlPO’可以使得MUX网络栈发送3个无偿ARP (G-ARP)请求,这些无偿ARP请求可以更新路由器的ARP表(或触发其自身上的IP地址冲突检测)。

[0040] 出于解释的目的,考虑示例函数“RemovelP (IPAddress iip) ”:此示例函数可以从MUX接口移除IIP地址。还考虑示例函数“ SendARP O”。此示例函数可以强制发送G-ARP请求。这一 G-ARP请求可以作为IIP-MAC映射的正确性的预防措施而发送。

[0041] G-ARP和地址冲突检测

[0042] 在将IP地址添加到该接口时,操作系统(OS)可以广播G-ARP (在同一 L2域内)。此G-ARP请求可以请求它正在主张的IP地址。如果没有其他机器以此IP地址应答,则可以成功添加该IP地址。否则,可以检测到IP地址冲突,且MUX栈可以阻止该机器主张此IP地址。如果另一MUX已经主张该IIP(例如故障切换)且未能移除它,则这种情况可以发生。可以通过外部措施(例如切断防护机器)来应对这种场景。

[0043] 出于示例的目的,在新MUX MUX “B”需要代替MUX “A” (例如,因为MUX A的计划停机时间和/或在MUX A处的系统故障)时,该新MUX B可以将MUX A的(各)IIP添加到其自己的接口。

[0044] 在至少一种实施方式中,例如上面所述的模块可以将分组流定向到服务器池中的一个或多个有状态模块中,其中有状态模块可以保持每个流状态。在这种情况中,入站分组可以流过从客户机到模块到有状态模块到处理相关联的请求的目标服务器的路线。出站流可以流过从目标服务器到有状态模块到客户机的路线。在有状态模块处的每个流状态可以允许各单独的有状态模块应用流级策略以便支持附加的负载平衡特征。具体而言,有状态模块可以,例如,检查cookies或URL以便将到目标服务器的负载平衡自定义为取决于应用、客户机请求和/或服务器和网络元件的角色和/或负载和/或状况。此实施方式是有益的,这是因为它可以将CPU和状态密集的工作量分散到必要多的服务器。

[0045] 在至少一种实施方式中,该模块可以使其到有状态模块的路由适应为取决于比TCP/IP首部和应用首部中携带的首部信息更深的信息。具体而言,为了支持直接访问函数,例如在Windows 7⑧中,该模块可以学习或参与密码协议,从而允许对分组的各部分进行解密。然后,有状态模块对目标服务器的选择可以取决于这些经解密的部分。该机制可以被构建为使得目标服务器将出站流返回给能够(且可能最适合)处理它的有状态模块。这可以受益于使用可编程CPU来实现该模块。

[0046] 在至少一种实施方式中,该模块可以在诸如网际协议(IP)选项等分组首部的某一部分中包括原始目的地地址,并将该分组发送给目标设备。目标设备可以从分组首部提取这一信息并使用它来将传出分组直接发送给源(例如,外部客户机),其中分组中的一些不穿过该模块。

[0047] 图6示出可以实现上文和下文所描述的概念的示例可扩展负载平衡系统体系结构600。在这种情况中,可扩展负载平衡系统体系结构600可以包括可扩展负载平衡管理器602、在604处表不的MUX角色和在606处表不的DIP角色。负载平衡系统体系结构600还可以包括健康监视器608、健康探头(probe) 610和路由管理器612。MUX角色604可以涉及在用户模式616中操作的MUX控制器614和在内核模式620中操作的MUX驱动程序618。DIP角色606可以涉及在用户模式624中操作的DIP控制器622和在内核模式628中操作的解封驱动程序626。

[0048] 可扩展负载平衡管理器602可以被认为是与可扩展负载平衡系统体系结构600交互的入口点。可扩展负载平衡管理器602可以提供可以被用来管理可扩展负载平衡概念的实例的API。可以使用XML配置或API来指定可扩展负载平衡实例。

[0049] 可扩展负载平衡管理器602可以负责在MUX机器上配置VIP = DIP映射并确保MUX机器保持同步。此外,在向池添加DIP或从中优雅地移除DIP时,可扩展负载平衡管理器602还可以便于保留长期运行的连接。下面参考图9更详细地描述这种特征。

[0050] 为了增加可用性,可以复制可扩展负载平衡管理器602且可以使用主可扩展负载平衡管理器选择算法来确保状态的一致性。

[0051] MUX角色604可以被配置为带有一个或多个中间IP地址(IIP)。如上面参考图4所描述的,诸如路由器404(1)等路由器可以被配置为向一组IIP转发去往VIP的分组。被配置为带有给定IIP的MUX将执行向该IIP转发的分组的MUX处理。

[0052] MUX控制器614可以控制MUX驱动程序618。MUX控制器可以导出由可扩展负载平衡管理器602用来控制该MUX的web服务API。在一些实现中,MUX控制器可以执行下列功倉泛:

[0053] 1.将VIP = DIP下载到驱动程序;

[0054] 2.向该驱动程序告知长期运行的连接;

[0055] 3.从该驱动程序收集统计数据;

[0056] 4.在网络接口上配置IIP ;

[0057] 5.在网络上发出针对所指定的IIP的G-ARP分组,以便由路由器或网络上的其他主机将向该IIP转发的任何分组吸引到该MUX。

[0058] MUX驱动程序618可以实现基础分组修改功能。MUX驱动程序可以对传入分组的首部字段进行散列,基于散列值和当前VIP映射来拾取针对它的DIP,以及封装该分组以供传输。除了映射之外,MUX驱动程序618还可以维持散列的高速缓存:每一 VIP的所有长期运行连接的DIP映射。

[0059] DIP控制器622可以控制DIP机器上的解封驱动程序626。类似于Mux控制器614,DIP控制器622可以导出由可扩展负载平衡管理器602用来控制和查询DIP机器的web服务API。在一些实现中,DIP控制器622可以执行下列功能:

[0060] 1.在回送接口上配置各VIP ;

[0061] 2.配置用于所指定的VIP的解封;

[0062] 3.查询DIP机器以寻找当前活动的连接;

[0063] 4.查询DIP机器的健康(取决于健康监视器实现,这是可选的)。

[0064] 解封驱动程序626可以解封去往所指定的VIP的IP_in_IP分组。这一特征帮助避免断开与具体应用的正在进行的通信。例如,如果存在正在使用原始套接字来发送IP-1n-1P的应用(例如,虚拟专用网VPN应用),则解封驱动程序626不解封那些。

[0065] 路由管理器612可以负责在向池添加或从中移除MUX机器时配置路由器。路由管理器可以使用诸如OSPF或BGP等路由协议或接口来在各路由器上配置静态路线。

[0066] 健康监视器608可以负责维持MUX和DIP机器的健康状态,且可能负责在请求处理中所涉及的路线。为此,健康监视器可以监视一个或多个网络参数,这些参数在确定网络和/或网络组件的健康时是有价值的。可扩展负载平衡管理器602可以将健康监视器608用作关于MUX和DIP的健康信息的权威源。如果健康监视器608向可扩展负载平衡管理器602通知健康改变事件,则可扩展负载平衡管理器可以采取向相应的池添加或从中移除该节点的适当动作。

[0067] 从一个角度来看,健康监视器608可以被用来监视MUX、DLB的健康和/或到这些机器的路线。

[0068] 在至少一些实现中,健康监视器608可以包括三个模块:VPN拨号器、MUX监视器和DLB监视器。DLB可以提供HTTP接口。健康监视器608可以采用各种健康探头610来确立目标组件的健康。例如,健康监视器可以发送“http get”以便从DLB获取小的文本/xml文件。如果该文件包含健康监视器和DLB所达成一致的‘魔术词(magic word) ’,则健康监视器可以认为该DLB已启动且正在运行,并确定DLB或MUX是否正在如所预期的那样运行。此外,在至少一些实施方式中,健康监视器组件可以存在于分开的设备上而不是MUX设备上。

[0069] 健康探头610可以由健康监视器608使用。举例来说,健康监视器可以使用各种健康探头来完成其作业。健康探头610可以主动地监视目标机器的健康的一个方面,例如,Ping探头监视机器的连接性和活性。其他健康探头可以简单地查询机器/角色以得到其健康——该机器/角色可以负责维护其健康的记录,探头只是周期性地查询它。

[0070] 如果HTTP探头是成功的,则这可以指示所有事物都开启且正在运行。但是由于它在TCP上运行,所以DLB临时地用光了套接字或其他资源是可能的。在拒绝服务(DoS)攻击期间,DLB在持续时间周期内用光了资源(例如,套接字)也是可能的。对此的一种解决方案可以是维持持久的HTTP连接。然而,大多数服务器/浏览器实现将使得持久的TCP连接超时。例如,一些浏览器可以在60秒之后使得持久连接超时。因此,健康监视器准备在持久连接被关闭的情况下重建该持久连接,且不必将持久连接的关闭看作是指示DIP故障。

[0071] 如果另一 MUX可以接管故障的MUX,则由于所有MUX运行相同的一致散列函数,所以各分组将被转发给相同的DLB。因此,该流(例如,TCP连接)不会被中断。

[0072] 一分开的MUX池可以被用作活动MUX的热备份。一旦检测到MUX故障,健康监视器608就可以开始一个或多个MUX以便接管故障MUX的各IIP。在同一时刻,健康监视器可以切断该故障MUX。为了处理MUX的计划停机时间,可以使用与用于热备份的技术相似的技术。由于MUX以无状态模式操作,一些实现可以在从该MUX排出了所有分组之后安全地切断该MUX。

[0073] 在至少一种实施方式中,可以通过有状态MUX映射过渡来处理DLB计划停机时间。

[0074] 1.MUX正在使用使用DLB⑶的VipMap (V);

[0075] 2.向MUX通知DLB⑶在T时刻停机;

[0076] 3.MUX 计算不使用 DLB(D)的新 VipMap (V’ );

[0077] 4.MUX将驱动程序置于(V- > V’过渡模式);

[0078] 5.在过渡中,保持状态表,且每一 TCP SYN将在表中造成新条目;

[0079] a.如果分组与状态表中的一条目匹配,则它是新的流且因此使用V’ ;

[0080] b.否则,使用旧的V;

[0081] 注意:在这一过渡时间段期间,任何新的流将切换到新VipMap (V’),从而避开了DLB (D)。

[0082] 6.DLB(D)保持对(到VIP的)活动TCP连接的数量进行计数。在计数器达到O时,它向MUX通知该过渡已完成。

[0083] 7.替代地,MUX可以将长期运行连接标识为不与状态表中的任何条目相匹配的连接。

[0084] 8.在达到时间T时,强加过渡V- > V’。MUX将基于V’来转发所有流量。

[0085] 在一种实施方式中,经由下列步骤来处理MUX计划停机时间:

[0086] 1.在新 MUX (M’ )上设置 VipMap ;

[0087] 2.设置旧MUX(M)以便将所有VIP流量转发给Μ’,M’照常将流量转发给DLB ;

[0088] 3.从旧的 MUX(M)移除 IIP ;

[0089] 4.将IIP添加到新MUX (M,);以及,

[0090] 5.路由器应开始向新MUX转发。

[0091] 在至少一种实施方式中,健康监视器608可以将周期性的探头发送给MUX和DLB以便监视非预期故障。在观察到DLB故障时,健康监视器可以指示MUX更新其VipMap以便避免使用故障的DLB。在观察到MUX故障时,健康监视器可以指示在同一 VLAN中的另一 MUX安装该IIP(且使用G-ARP来向路由器通告)。在至少一种实施方式中,健康监视器可以每两秒发送Ke印Alive (保持活动)探头,且在3次连续失败之后通告MUX/DLB死亡。

[0092] 为了实现用于关键任务VIP的快速MUX故障切换(<< I秒),可以利用每一 IIP的MUX虚拟组。这种快速故障切换的成本可以是在正常操作期间更多使用网络。可以使用下列步骤用来为VIP管理MUX和IIP:

[0093] A.每一 IIP可以是多播地址。每一 VIP具有被分配给它的一组MUX。

[0094] B.该组的主MUX是该IIP的实际持有者。

[0095] C.主MUX向该组的所有成员发送它是此VIP的活动MUX的多播通告。以高速率(<< I秒)发送这一通告。这一通告也防止其他MUX开始新的主MUX选举过程。

[0096] D.由于IIP可以是多播地址,所以上游路由器将它所接收到的每一分组复制到该VIP组中的各MUX成员(主MUX和所有备份MUX)。

[0097] E.所指定的备份MUX将这些分组存储所指定的时间T。

[0098] F.主MUX对这些分组执行负载平衡功能并将它们转发给各DLB。

[0099] G.如果在给定的时间T内没有接收到主MUX活动的通告,则所指定的备份MUX将开始负载平衡并转发其缓冲区中的所有分组。

[0100] H.这一组中的各备份MUX将开始新的主MUX选举过程。在一些配置中,所指定的备份MUX可以变成新的主MUX。

[0101] 1.步骤G可以使得DLB两次接收一些分组,但是TCP足够好地容忍重复分组和暂时的分组丢失。注意,只要上游路由器活动且执行良好,就可以不发生分组丢失。

[0102] 图7示出根据一个或多个实施方式的MUX 212(1)(在图2中已介绍)的示例配置。图7和图8 —起示出如何沿着路径封装和解封各分组。

[0103] 图7涉及用户模式702和内核模式704,但是集中于由MUX的在内核模式中的MUX驱动程序618提供的功能。在这种情况中,MUX驱动程序被实现为网络栈的IP层的扩展。

[0104] 在这一示例中,由MUX驱动程序618例如从应用服务器接收分组706。该分组包括在708处的源客户机地址和在710处的目的地VIP地址。分组迁移通过物理网络接口卡(NIC)层712和网络驱动程序接口规范(NDIS)层714。该分组由IP层718中的MUX驱动程序的转发器716来处理。该转发器封装分组706以便生成分组720。此分组包括由源MUX地址722和目的地DIP地址724封装的在708处的源客户机地址和在710处的目的地VIP地址。因而,以给出它是来自MUX212(1)而不是来自客户机708的印象的方式将原始分组706封装在分组720中。

[0105] MUX 212(1)可以实现也称为VIP = DIP映射的层4负载平衡。可以由层I将来自客户机的流量发送到各MUX节点中的一个(通常经由等价多路径(ECMP)路由)。在MUX212(1)接收到分组706时,它可以将各分组首部字段进行散列(在散列哪些字段方面是灵活的)且可以基于此散列来拾取DIP。(下面参考图9描述此过程的示例)。然后,该MUX可以将原始分组706封装在新的IP首部中,该新的IP首部将所选择的DIP指示为目的地(即,目的地DIP地址724)并将该MUX指示为源IP地址。(替代地,MUX可以将原始发送者用作源IP。)

[0106] 负载平衡集群中的各MUX节点可以使用相同的散列函数。此外,MUX节点可以在DIP的添加和优雅删除期间维持状态。这可以允许将给定流的各分组转发给下一层中的相同服务器而不考虑哪个MUX接收该分组。

[0107] 图8示出上面参考图6介绍的DIP角色606的示例。简言之,在这种情况中,DIP解封驱动程序626可以对图7中所介绍的经封装分组720执行解封。在这种配置中,将DIP解封驱动程序被实现成网络栈的IP层的扩展。如上所述,图7提供用于在传输路径的前端处实现封装的示例,图8提供在后端处解封上面介绍的原始分组706的示例。

[0108] 在这一示例中,解封驱动程序626可以接收经封装的分组720。一旦经封装的分组在路径上行进且准备好传输给目的地VIP地址710,解封驱动程序就可以移除封装(即,源MUX地址722和目的地DIP地址724)以便产生分组706。

[0109] 上面所描述的MUX 212 (I)和DIP角色606可以与本发明的各概念一起使用以便于诸如分组706等分组的封装,该分组706与带有位置地址(B卩,目的地DIP 724)的应用地址(即,目的地VIP地址710)相关联,以使得分组706可以在层3基础设施上传输且最终被递送到层2目的地VIP地址710。此外,经封装的分组可以在由该封装所定义的路径上行进,且可以容易地为随后的分组重新选择所选择的路径以便避免拥塞。

[0110] 此外,这种配置可以便于网络节点池(即,可扩展负载平衡系统104、204和/或304的各组件)的免中断(或减少的中断)的生长和缩小。简言之,可扩展负载平衡系统状态不倾向于是静态的。举例来说,更多的应用服务器可以上线和/或各应用服务器可以下线,交换机可以来来往往,通信可被发起和结束等等。本发明的各概念可以允许从现有的可扩展负载平衡系统映射到新的可扩展负载平衡系统映射的优雅过渡。举例来说,本发明的各概念可以跟踪现有映射的现有或正在进行的通信。在利用反映可扩展负载平衡系统针对新通信的改变的新映射的同时,一些实现可以尝试利用现有映射来维持那些正在进行的通信的连续性。然后,这些实现可以以相对无缝的方式从旧映射‘优雅地’过渡到新映射。

[0111] 图9示出将散列空间映射到DIP池的示例方法900。举例来说,该映射可以允许从VIP池移除DIP而不中断对不去往受影响的DIP的流量。举例来说,在902处示出在散列空间(即,可能的散列值)和可用的DIP的池之间的第一映射。在904处示出在该散列空间和可用的DIP的不同的池的第二映射。在这种情况中,第二映射904作为如在906处所示的DIP I停机(即,变得不可用)的结果而发生。最初参见第一映射902,各散列值在908(1)、908(2)、和 908(3)处被映射到 DIP 1,在 910 (I)、910 (2)和 910(3)处被映射到 DIP2,在 912 (I)、912 (2)、和 912 (3)处被映射到 DIP3,且在 914 (I)、914 (2)和 914 (3)处被映射到DIP 4。因而,以可以减少或避免瓶颈的方式在可用的DIP当中分配各散列值。

[0112] 在906处在DIP I消失的情况下,这一实现以避免突然使得任何单独的可用DIP过载的方式在剩余的可用DIP之间重新分配DIP I的负载。举例来说,在第二映射904中,在第一映射902中的散列的在908(1)处被映射到DIP I的第一部分被重新分配给DIP 2,如在916处所指示。DIP I的第二部分908 (2)被重新分配给DIP3,如在918处所指示。DIP I的第三部分908(3)被重新分配给DIP 4,如在920处所指示。因而,这一实现以可以避免使得任何其余DIP过载且由此避免了潜在地造成与过载的DIP相关联的瓶颈的平衡方式无缝地将分组流从如第一映射902中所示的四路分布重新分配成第二映射904中所示的三路分布。

[0113] 出于更详尽的解释的目的,考虑具有确定VIP到一个或多个应用服务器(DLB)的映射的VIP-DIP映射M的MUX (例如MUX 212⑴)。现在考虑其中要将M改变成M’的场景。利用所描述的技术,可以将M优雅地改变成M’。由于可以存在长寿命的连接,所以可选地,可以定义最后期限T。然后,一旦达到T或者一旦完成了优雅改变,该MUX就可以将M改变成Μ,。

[0114] 下面描述的仅是将M优雅地改变成Μ’的方式一个示例:

[0115] 对于分组P,MUX可以计算H(P)和H’ (P)两者,其中可以使用映射M来计算H(P)且可以使用映射Μ’来计算H’(P)。

[0116]-如果H (P) = H’(P),则转发给H (P)等效于转发给H’(P);

[0117]-如果H(P) ! = H’⑵且P是SYN(TCP SYN分组,其可以发起TCP连接),则P可以被用来建立新的连接,该新连接应去往H’(P),且插入散列(P)(hash(P)) —H’⑵也可以被插入到状态表S,以使得此流可以被认为是已经被移到M,;

[0118]-如果H (P) ! = H’ (P)且P不是SYN,并且散列(P)不在S中,则这可以是正在进行的到H(P)的连接的一部分,因此继续到H(P);

[0119]-如果H(P) ! = H’(P)且P不是SYN,并且散列⑵在S中,则这可以是正在进行的已经被移到M’的连接的一部分,因此继续到H’ (P);

[0120]-在达到T或所有DLB告知过渡已完成时,可以将映射从M改变为M,,且可以对状态表S进行转储清除。

[0121] 相应地,DLB可被告知相同的M->M’过渡,且然后,则它可以计算它(S卩,该DLB)是否受到此过渡的影响。

[0122] 如果DLB确定它正在被过渡出去,则它可以优雅地耗尽它拥有的连接。

[0123] 对于持久的HTTP连接,DLB HTTP服务器可以禁用‘HTTP Ke印alive’ (HTTP保活)。如此,DLB HTTP服务器可以使用FIN来终止(TCP FIN分组,其结束TCP连接)底层TCP连接。FIN可以被认为是TCP首部中指示此分组的发送者想要终止连接的标志。外部客户机可以重启连接。然而,这将可能开始新的握手,对于该新的握手,MUX可以将该新的TCP连接路由到新的DLB。

[0124] 替代地,可以类似于下面描述的所建立的TCP连接来处理持久的HTTP连接。

[0125]-在过渡时间段期间,所建立的TCP连接可以是寂静的或繁忙的,且可以预期HTTP关闭它。一些可能的动作是:

[0126].1.令TCP连接在客户机侧超时。基本上,此技术仅仅忽略这些TCP连接。

[0127].2.在达到时间T时向客户机强制发送TCP RST以便告知该客户机。发送RST不要求具有正确的序列号。因而,此技术可以只是枚举“已建立的”连接且结束所有已建立的连接。

[0128].3.MUX可以维持持久连接的状态,直到DLB确定已经终止受过渡影响的各连接。

[0129]-在打开TCP套接字的数量是O时,可以告知MUX可以从该池安全移除该节点。

[0130] 总之,本发明的各实现可以使用IP-1n-1P封装以便可以跨越可能全部目标设备而不仅是子网来使用DSR。此外,可以按需将负载平衡器实现为可扩展逻辑层。各概念也可以在系统过渡期间保留连接。举例来说,在优雅地过渡各连接的同时,可以添加或移除DIP、可以重新平衡负载并且/或者可以调整系统容量。可以在MUX层实现一致散列以便允许可扩展性并允许移除故障的DIP而不保持状态。此外,系统监视、控制和/或管理功能可以与负载平衡功能位于一处。这可以允许主MUX确保在各MUX之间的地址连续性以及其他潜在的优点。

[0131] 第一方法示例

[0132] 图10示出根据一个或多个实施方式的参考VIP的DIP池的扩展来描述与保留长期运行连接相关联的示例的各步骤或动作的方法1000的流程图。

[0133] 可以结合任何合适的硬件、软件(例如,包括固件)或其任何组合实现该方法。在一些情况中,该方法可以被存储在可由计算设备的处理器执行以便执行该方法的计算机可读存储介质上。此外,可以重复该方法的各步骤中的一个或多个任何次数。另外或替代地,在至少一些实施方式中可以省略各步骤中的一个或多个。

[0134] 在步骤1002,标识网络或可扩展负载平衡系统的新连接。在至少一些实施方式中,这可以通过查找TCP SYN来完成。

[0135] 在步骤1004,保持新连接的状态。

[0136] 在步骤1006,对现有或旧连接使用现有或旧散列,且可对新连接使用新散列。

[0137] 在步骤1008,查询各DIP。在至少一些实施方式中,这可以包括查询DIP以便得到要保持的长期运行连接。替代地,负载平衡系统可以通过解释分组首部来确定活动连接。

[0138] 在步骤1010,使新连接的状态过期。

[0139] 在步骤1012,使所保持的连接的状态过期。在至少一些实施方式中,这可以包括在所保持的连接在DIP处终止时使得所保持的连接的状态过期。

[0140] 出于解释性目的提供方法1000,且不应以限制方式来理解方法1000。举例来说,在过渡期间可以采用的替代方法可以利用下列算法:

[0141] 1.通过解释分组首部(例如查找TCP SYN)来标识新连接发起分组;

[0142] 2.如果它是新连接发起分组,则仅根据新映射来发送它;

[0143] 3.否则根据旧映射和新映射两者发送该分组;

[0144] 4.通过询问DIP或跟踪在某一时间段期间在负载平衡器处的状态来标识旧连接;

[0145] 5.根据旧映射发送旧连接且根据新映射发送新连接;以及

[0146] 6.在超时之后或在旧连接在DIP上终止时,使得关于旧连接的状态过期。

[0147] 第二方法示例

[0148] 图11示出描述示例方法1100的各步骤或动作的流程图。可以结合任何合适的硬件、软件(例如,包括固件)或其任何组合实现该方法。在一些情况中,该方法可以被存储在可由计算设备的处理器执行以便执行该方法的计算机可读存储介质上。此外,可以重复该方法的各步骤中的一个或多个任何次数。另外或替代地,在至少一些实施方式中可以省略各步骤中的一个或多个。

[0149] 在步骤1102,可以将各网络分组分散在一系列模块之间。在至少一种实施方式中,各模块是被配置为在服务器上和/或在路由器中实现的MUX模块。除了可以将到一目的地的各分组递送到包含处理该目的地的各分组所需要的状态的MUX模块之外,分散可以无视各分组的各单独的特性。在至少一些实施方式中,使用ECMP路由器将各单独的网络分组分散在各模块之间。

[0150] 在步骤1104,网络分组可以被封装在各单独的模块。在至少一些实施方式中,该分组的封装包括IP-1n-1P封装和/或保留该分组被发送到的一个或多个VIP地址。在这一点上,应注意,在此描述的各技术的可能有价值的特征与以下相关联:基于各分组的特性(例如,5元组,IP源地址、IP目的地地址、IP协议号、TCP源端口和/或TCP目的地端口)封装各网络分组,以使得作为同一请求的一部分的各分组在一些实施方式中可以全部由同一目标设备处理,而不管哪个MUX模块封装了该分组。

[0151] 在步骤1106,可以使用在各模块之间共享的状态来选择将各网络分组封装到的目标设备。在至少一些实施方式中,在各模块之间共享的状态是一致散列函数的键空间。另外或替代地,在至少一些实施方式中,可以响应于目标设备的故障而改变在各模块之间共享的状态。

[0152] 在步骤1108,可以从各模块转发各网络分组。

[0153] 在步骤1110,可以监视目标设备、MUX模块、路由器的健康和在各组件之间的路线。

[0154] 结论

[0155] 尽管已经用对结构特征和/或方法论动作来说专用的语言描述了关于负载平衡场景的各技术、方法、设备、系统等等,但应理解,在所附权利要求中限定的主题并不必定限于所描述的具体特征或动作。相反,这些具体特征和动作是作为实现所要求保护的方法、设备、系统等等的示例性形式而公开的。

Claims (15)

1.一种用于负载平衡的方法,包括: 将网络分组分散在一系列模块之间(1102); 在各单独的模块处封装各单独的网络分组(1104)来保持如由所述各单独的模块接收到的所述各单独的网络分组的源地址和目的地地址; 使用在所述系列的各模块之间共享的状态来选择将所述各单独的网络分组封装到其来提供经封装的分组的目标设备(1106),其中每个经封装的分组包括具有保持的源地址和保持的目的地地址的各单独的网络分组,并且其中所述经封装的分组的源地址与所述各单独的模块有关而所述经封装的分组的目的地地址与所述目标设备有关;以及 从所述一系列模块的所述各单独的模块转发所述经封装的分组(1108)。
2.如权利要求1所述的方法,其特征在于,在所述系列的各模块之间共享的状态是一致散列函数的键空间。
3.如权利要求1所述的方法,其特征在于,使用等价多路径路由来将各单独的网络分组分散在所述系列的各模块之间。
4.如权利要求1所述的方法,其特征在于,还包括监视所述目标设备的健康。
5.如权利要求1所述的方法,其特征在于,响应于所述目标设备的故障来改变在所述系列的各模块之间共享的状态。
6.如权利要求1所述的方法,其特征在于,在不造成所提供的服务的停机时间的情况下基于负载参数或一个或多个其他参数中的一个或多个来动态地改变所述系列中的多个模块。
7.如权利要求1所述的方法,其特征在于,所述目标设备是一组目标设备的成员,且在其中接收到所述组的一个或多个现有目标设备将变得不可用或一个或多个新的目标设备可用的指示的情况下,过渡到将与将来通信相关联的网络分组分散到新的一组目标设备的配置,同时继续将与正在进行的通信相关联的网络分组发送给所述一组目标设备。
8.如权利要求1所述的方法,其特征在于,封装所述分组包括网际协议(IP)-1n-1P封装。
9.如权利要求6所述的方法,其特征在于,封装所述分组保留所述分组被发送到的一个或多个虚拟IP地址。
10.一个用于负载平衡的系统(104),包括: 被配置为对来自外部客户机设备(102)的分组流的各单独的传入分组进行封装以提供经封装的分组的负载平衡层(108),其中每个经封装的分组包括具有保存的源地址和保存的目的地地址的所述各单独的传入分组,并且其中所述经封装的分组的源地址与所述负载平衡层有关,而所述经封装的分组的目的地地址与目标设备有关,所述负载平衡层(108)还被配置为将所述传入分组路由到所述系统(104)的目标设备(110),其中所述目标设备(110)跨一个或多个网际协议(IP)子网,且其中所述经封装的分组在到达各单独的目标设备(210)之前穿过所述负载平衡层(108)的一个或多个负载平衡器(208);以及, 所述各单独的目标设备(210)被配置为将所述分组流的至少一些传出分组路由(222)到所述外部客户机设备(102)而不穿过所述一个或多个负载平衡器(208)中的任何一个。
11.如权利要求10所述的系统,其特征在于,所述负载平衡层被配置为利用网际协议(IP) -1n-1P封装或分组修改及IP选项中的一个或两者来封装所述各单独的传入分组。
12.如权利要求11所述的系统,其特征在于,所述负载平衡层包括至少一个动态负载平衡器和至少一个多路复用器,且其中所述至少一个多路复用器被配置为封装所述各单独的传入分组。
13.如权利要求11所述的系统,其特征在于,所述负载平衡层包括至少一个多路复用器,且其中所述至少一个多路复用器被配置为利用IP-1n-1P封装来封装所述各单独的传入分组。
14.如权利要求11所述的系统,其特征在于,所述各单独的目标设备包括被配置为解封来自所述负载平衡层的分组的解封组件,或其中各单独的目标设备跨多个虚拟局域网。
15.如权利要求11所述的系统,其特征在于,所述一个或多个负载平衡器包括被配置为提供用于管理所述负载平衡层的虚拟IP (VIP)到直接IP (DIP)映射的应用程序接口的动态负载平衡器。
CN 201080023822 2009-05-28 2010-05-28 跨层2域的负载平衡 CN102449963B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US18205709P true 2009-05-28 2009-05-28
US61/182,057 2009-05-28
US12/605,388 2009-10-26
US12/605,388 US8416692B2 (en) 2009-05-28 2009-10-26 Load balancing across layer-2 domains
PCT/US2010/036757 WO2010138936A2 (en) 2009-05-28 2010-05-28 Load balancing across layer-2 domains

Publications (2)

Publication Number Publication Date
CN102449963A CN102449963A (zh) 2012-05-09
CN102449963B true CN102449963B (zh) 2014-11-05

Family

ID=43220098

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201080024662.2A CN102726021B (zh) 2009-05-28 2010-05-28 灵活的数据中心网络体系结构
CN 201080023822 CN102449963B (zh) 2009-05-28 2010-05-28 跨层2域的负载平衡

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201080024662.2A CN102726021B (zh) 2009-05-28 2010-05-28 灵活的数据中心网络体系结构

Country Status (9)

Country Link
US (1) US8416692B2 (zh)
EP (2) EP2436156B1 (zh)
JP (1) JP5960050B2 (zh)
KR (1) KR101678711B1 (zh)
CN (2) CN102726021B (zh)
CA (2) CA2759957C (zh)
ES (1) ES2614614T3 (zh)
HK (1) HK1175321A1 (zh)
WO (2) WO2010138937A2 (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497039B2 (en) * 2009-05-28 2016-11-15 Microsoft Technology Licensing, Llc Agile data center network architecture
US9391716B2 (en) 2010-04-05 2016-07-12 Microsoft Technology Licensing, Llc Data center using wireless communication
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
US8225131B2 (en) * 2010-06-17 2012-07-17 Microsoft Corporation Monitoring service endpoints
CN102143041B (zh) * 2010-07-02 2014-03-26 华为技术有限公司 一种网络流量分担的方法、装置及系统
US8391174B2 (en) * 2010-07-13 2013-03-05 Hewlett-Packard Development Company, L.P. Data packet routing
US8755283B2 (en) * 2010-12-17 2014-06-17 Microsoft Corporation Synchronizing state among load balancer components
US8934483B2 (en) 2011-01-20 2015-01-13 Broadcom Corporation Data center switch
US8612550B2 (en) 2011-02-07 2013-12-17 Microsoft Corporation Proxy-based cache content distribution and affinity
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
EP2692095B1 (en) * 2011-03-28 2019-06-05 Telefonaktiebolaget LM Ericsson (publ) Method, apparatus and computer program product for updating load balancer configuration data
US9210048B1 (en) 2011-03-31 2015-12-08 Amazon Technologies, Inc. Clustered dispersion of resource use in shared computing environments
EP2713565B1 (en) * 2011-05-19 2017-02-01 Huawei Technologies Co., Ltd. Method and network device for generating tunneling forwarding entries
EP2774329B1 (en) * 2011-11-01 2019-06-19 Hewlett-Packard Enterprise Development LP Data center network architecture
US8842988B2 (en) 2011-06-20 2014-09-23 Plexxi Inc. Optical junction nodes for use in data center networks
US9301026B2 (en) 2011-11-01 2016-03-29 Plexxi Inc. Affinity modeling in a data center network
US9288555B2 (en) 2011-11-01 2016-03-15 Plexxi Inc. Data center network architecture
US9204207B2 (en) 2011-11-01 2015-12-01 Plexxi Inc. Hierarchy of control in a data center network
US9337931B2 (en) 2011-11-01 2016-05-10 Plexxi Inc. Control and provisioning in a data center network with at least one central controller
US8812727B1 (en) * 2011-06-23 2014-08-19 Amazon Technologies, Inc. System and method for distributed load balancing with distributed direct server return
US9274825B2 (en) 2011-08-16 2016-03-01 Microsoft Technology Licensing, Llc Virtualization gateway between virtualized and non-virtualized networks
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US8954575B2 (en) * 2012-05-23 2015-02-10 Vmware, Inc. Fabric distributed resource scheduling
US9229800B2 (en) 2012-06-28 2016-01-05 Microsoft Technology Licensing, Llc Problem inference from support tickets
US9262253B2 (en) 2012-06-28 2016-02-16 Microsoft Technology Licensing, Llc Middlebox reliability
US8805990B2 (en) 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
US8831000B2 (en) * 2012-10-10 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) IP multicast service join process for MPLS-based virtual private cloud networking
US9246998B2 (en) 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
CN103780502A (zh) * 2012-10-17 2014-05-07 阿里巴巴集团控股有限公司 一种负载均衡下的数据交互系统、方法及装置
US9565080B2 (en) 2012-11-15 2017-02-07 Microsoft Technology Licensing, Llc Evaluating electronic network devices in view of cost and service level considerations
US9325748B2 (en) 2012-11-15 2016-04-26 Microsoft Technology Licensing, Llc Characterizing service levels on an electronic network
CN102983995B (zh) * 2012-11-19 2017-05-03 浪潮电子信息产业股份有限公司 一种基于数据中心的组网设计方法
US20140173095A1 (en) * 2012-12-19 2014-06-19 Hewlett-Packard Development Company, L.P. Triggering a high availability feature in response to detecting impairment of client experience
CN103905473B (zh) * 2012-12-25 2017-12-15 华为技术有限公司 云计算系统、负载均衡系统、负载均衡方法及装置
US9450874B2 (en) 2013-01-04 2016-09-20 Futurewei Technologies, Inc. Method for internet traffic management using a central traffic controller
US9832136B1 (en) 2013-01-23 2017-11-28 Liberty Mutual Insurance Company Streaming software to multiple virtual machines in different subnets
CN103971687B (zh) * 2013-02-01 2016-06-29 腾讯科技(深圳)有限公司 一种语音识别系统中的负载均衡实现方法和装置
US9917780B2 (en) 2013-03-15 2018-03-13 Hewlett Packard Enterprise Development Lp Traffic control across a layer 2 layer 3 boundary in a software defined network
JP6264737B2 (ja) * 2013-03-25 2018-01-24 日本電気株式会社 負荷分散システム
US9553809B2 (en) 2013-04-16 2017-01-24 Amazon Technologies, Inc. Asymmetric packet flow in a distributed load balancer
US10135914B2 (en) 2013-04-16 2018-11-20 Amazon Technologies, Inc. Connection publishing in a distributed load balancer
US9871712B1 (en) 2013-04-16 2018-01-16 Amazon Technologies, Inc. Health checking in a distributed load balancer
US9559961B1 (en) 2013-04-16 2017-01-31 Amazon Technologies, Inc. Message bus for testing distributed load balancers
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US9354928B1 (en) * 2013-04-24 2016-05-31 Brian K. Buchheit User facing load balancing via virtual machine synchronization
JP6131710B2 (ja) * 2013-05-16 2017-05-24 富士通株式会社 通信システム、負荷分散装置、および、負荷分散プログラム
US9350601B2 (en) 2013-06-21 2016-05-24 Microsoft Technology Licensing, Llc Network event processing and prioritization
EP3020161B1 (en) 2013-07-11 2018-03-21 Plexxi Inc. Network node connection configuration
US9742636B2 (en) * 2013-09-11 2017-08-22 Microsoft Technology Licensing, Llc Reliable address discovery cache
US9876715B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US20150271075A1 (en) 2014-03-20 2015-09-24 Microsoft Corporation Switch-based Load Balancer
US9660914B1 (en) 2014-05-08 2017-05-23 Google Inc. System and method for providing congestion notification in layer 3 networks
US9560124B2 (en) * 2014-05-13 2017-01-31 Google Inc. Method and system for load balancing anycast data traffic
US20170111452A1 (en) * 2014-06-13 2017-04-20 Abb Schweiz Ag Method and system for secure bidirection communication for industrial devices
US9882814B2 (en) * 2014-09-25 2018-01-30 Intel Corporation Technologies for bridging between coarse-grained and fine-grained load balancing
US20160142295A1 (en) * 2014-11-14 2016-05-19 Nicira, Inc. Stateful services on stateless clustered edge
US10044617B2 (en) 2014-11-14 2018-08-07 Nicira, Inc. Stateful services on stateless clustered edge
US9876714B2 (en) 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
CN105704180B (zh) * 2014-11-27 2019-02-26 英业达科技有限公司 数据中心网络的配置方法及其系统
US9800653B2 (en) * 2015-03-06 2017-10-24 Microsoft Technology Licensing, Llc Measuring responsiveness of a load balancing system
US9954751B2 (en) 2015-05-29 2018-04-24 Microsoft Technology Licensing, Llc Measuring performance of a network using mirrored probe packets
US10191757B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing Llc Seamless address reassignment via multi-tenant linkage
CN105024860A (zh) * 2015-07-23 2015-11-04 上海斐讯数据通信技术有限公司 一种远程通信控制方法及系统
JP6505171B2 (ja) * 2016-08-25 2019-04-24 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
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
US10305973B2 (en) 2017-01-09 2019-05-28 International Business Machines Corporation Distributed load-balancing for software defined networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
EP1494422A2 (en) * 2003-06-30 2005-01-05 Microsoft Corporation Network load balancing with connection manipulation

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718387B1 (en) 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
AT381191T (de) 2000-10-26 2007-12-15 Prismedia Networks Inc Verfahren und system zur verwaltung von verteilten inhalten und entsprechenden metadaten
US7296268B2 (en) 2000-12-18 2007-11-13 Microsoft Corporation Dynamic monitor and controller of availability of a load-balancing cluster
US7333482B2 (en) 2000-12-22 2008-02-19 Interactive People Unplugged Ab Route optimization technique for mobile IP
US20020184368A1 (en) 2001-04-06 2002-12-05 Yunsen Wang Network system, method and protocols for hierarchical service and content distribution via directory enabled network
US6999462B1 (en) 2001-06-18 2006-02-14 Advanced Micro Devices, Inc. Mapping layer 2 LAN priorities to a virtual lane in an Infiniband™ network
US20030009559A1 (en) * 2001-07-09 2003-01-09 Naoya Ikeda Network system and method of distributing accesses to a plurality of server apparatus in the network system
WO2003009539A1 (en) * 2001-07-10 2003-01-30 Fujitsu Limited Mobile machine communication system and communication method
US7213065B2 (en) 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US20030154236A1 (en) 2002-01-22 2003-08-14 Shaul Dar Database Switch enabling a database area network
US7512702B1 (en) 2002-03-19 2009-03-31 Cisco Technology, Inc. Method and apparatus providing highly scalable server load balancing
JP2003281109A (ja) * 2002-03-26 2003-10-03 Hitachi Ltd 負荷分散方法
US7007103B2 (en) 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7289334B2 (en) 2003-08-27 2007-10-30 Epicenter, Inc. Rack architecture and management system
KR100962647B1 (ko) * 2003-10-27 2010-06-11 삼성전자주식회사 모바일 단말기의 이동성 지원 방법 및 그 시스템
US7860095B2 (en) * 2003-10-30 2010-12-28 Hewlett-Packard Development Company, L.P. Method and apparatus for load-balancing
EP1528744A1 (en) * 2003-10-30 2005-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for load-balancing
JP2005260594A (ja) * 2004-03-11 2005-09-22 Oki Techno Creation:Kk ネットワークシステム及び通信装置
US8255422B2 (en) 2004-05-28 2012-08-28 Microsoft Corporation Highly reliable and scalable architecture for data centers
US8422500B2 (en) 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US20070002770A1 (en) 2005-06-30 2007-01-04 Lucent Technologies Inc. Mechanism to load balance traffic in an ethernet network
JP4619943B2 (ja) * 2005-12-28 2011-01-26 富士通株式会社 パケット通信方法、パケット通信システム
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US8014308B2 (en) 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
US8054840B2 (en) 2007-06-12 2011-11-08 International Business Machines Corporation Data center virtual local area network system and method
US20090063706A1 (en) 2007-08-30 2009-03-05 International Business Machines Corporation Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
JP4729549B2 (ja) * 2007-09-26 2011-07-20 日本電信電話株式会社 負荷制御方法及び装置及びプログラム
US8285789B2 (en) 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network
US9497039B2 (en) 2009-05-28 2016-11-15 Microsoft Technology Licensing, Llc Agile data center network architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
EP1494422A2 (en) * 2003-06-30 2005-01-05 Microsoft Corporation Network load balancing with connection manipulation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Albert Greenberg 等."Towards a next generation data center architecture scalability and commoditization".《PROCEEDINGS OF THE 2008 WORKSHOPS》.2008, *

Also Published As

Publication number Publication date
EP2436157B1 (en) 2016-03-30
HK1175321A1 (zh) 2017-05-05
US20100302940A1 (en) 2010-12-02
CN102726021A (zh) 2012-10-10
WO2010138936A3 (en) 2011-03-03
CA2759957C (en) 2017-02-28
JP2012528551A (ja) 2012-11-12
CN102726021B (zh) 2016-07-06
KR20120019462A (ko) 2012-03-06
EP2436156A2 (en) 2012-04-04
JP5960050B2 (ja) 2016-08-02
WO2010138937A3 (en) 2011-03-03
KR101678711B1 (ko) 2016-11-22
CA2759957A1 (en) 2010-12-02
EP2436157A2 (en) 2012-04-04
CN102449963A (zh) 2012-05-09
EP2436156A4 (en) 2013-09-11
EP2436157A4 (en) 2012-04-04
ES2614614T3 (es) 2017-06-01
WO2010138936A2 (en) 2010-12-02
EP2436156B1 (en) 2016-11-09
CA2763032A1 (en) 2010-12-02
WO2010138937A2 (en) 2010-12-02
US8416692B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
US8499093B2 (en) Methods, systems, and computer readable media for stateless load balancing of network traffic flows
US8447871B1 (en) Simplified method for processing multiple connections from the same client
US7055173B1 (en) Firewall pooling in a network flowswitch
US6760775B1 (en) System, method and apparatus for network service load and reliability management
ES2713078T3 (es) Sistema y método para implementar y gestionar redes virtuales
US9515920B2 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US8923294B2 (en) Dynamically provisioning middleboxes
US9912612B2 (en) Extended ethernet fabric switches
EP1989835B1 (en) A technique for efficiently and dynamically maintaining bidirectional forwarding detection on a bundle of links
JP5410614B2 (ja) クラウドコンピューティングにおける企業のレイヤ2シームレスサイト拡張
US9979628B2 (en) Providing cloud-based services using dynamic network virtualization
US7318100B2 (en) Cooperative proxy auto-discovery and connection interception
US8369333B2 (en) Method and apparatus for transparent cloud computing with a virtualized network infrastructure
EP1417817B1 (en) Load balancing for a server farm
CN1770743B (zh) 软路由器
US9397946B1 (en) Forwarding to clusters of service nodes
CN104702537B (zh) 用于实现和管理虚拟交换机的方法和装置
US6941366B2 (en) Methods, systems and computer program products for transferring security processing between processors in a cluster computing environment
CN102726021B (zh) 灵活的数据中心网络体系结构
US9973387B1 (en) System and method of traffic inspection and stateful connection forwarding among geographically dispersed network alliances organized as clusters
US20020124089A1 (en) Methods, systems and computer program products for cluster workload distribution without preconfigured port identification
US20050080923A1 (en) System and method for load balancing and fail over
US7146432B2 (en) Methods, systems and computer program products for providing failure recovery of network secure communications in a cluster computing environment
KR101790315B1 (ko) 분산 로드 밸런서
US20080320154A1 (en) Cooperative proxy auto-discovery and connection interception

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of the right of patent application or the patent right