CN109547354B - 负载均衡方法、装置、系统、核心层交换机及存储介质 - Google Patents

负载均衡方法、装置、系统、核心层交换机及存储介质 Download PDF

Info

Publication number
CN109547354B
CN109547354B CN201811390873.2A CN201811390873A CN109547354B CN 109547354 B CN109547354 B CN 109547354B CN 201811390873 A CN201811390873 A CN 201811390873A CN 109547354 B CN109547354 B CN 109547354B
Authority
CN
China
Prior art keywords
layer switch
access layer
switch
data packet
address
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.)
Active
Application number
CN201811390873.2A
Other languages
English (en)
Other versions
CN109547354A (zh
Inventor
邱旭威
蓝昭宝
蒋德为
田依腾
张东明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology 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 Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN201811390873.2A priority Critical patent/CN109547354B/zh
Publication of CN109547354A publication Critical patent/CN109547354A/zh
Application granted granted Critical
Publication of CN109547354B publication Critical patent/CN109547354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

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

Abstract

本发明公开了一种负载均衡方法、装置、系统、核心层交换机及存储介质。该方法应用于所述核心层交换机,核心层交换机与接入层交换机连接,接入层交换机与服务器连接,包括:接收三层交换机发送的数据包,数据包包括客户端的源IP地址;将源IP地址映射为指定的目标值;查找目标值对应的接入层交换机;将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器该方法。本发明实施例解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。

Description

负载均衡方法、装置、系统、核心层交换机及存储介质
技术领域
本发明实施例涉及负载均衡技术,尤其涉及一种负载均衡方法、装置、系统、核心层交换机及存储介质。
背景技术
在由客户端、三层交换机和服务器构成的数据交互系统中,如果三层交换机作了堆叠处理,在此条件下,要求服务器提供有状态服务,所谓有状态服务可以理解为由同一客户端发送的两个数据包具有上下文关系,需要由同一服务器进行处理,则容易出现如下情况:
如果上述两个数据包经过的是两个不同的三层交换机,则两个数据包可能将分别发送给两个服务器进行处理,上述将导致服务器无法提供有状态服务,或者,从另一角度说,可将上述情况归结为负载均衡混乱。
如果出现了上述情况,将使得系统无法正常运行,进而影响了业务处理进程。
发明内容
本发明实施例提供一种负载均衡方法、装置、系统、核心层交换机及存储介质,以实现三层交换机堆叠情况下的负载均衡。
第一方面,本发明实施例提供了一种负载均衡方法,核心层交换机与接入层交换机连接,所述接入层交换机与服务器连接;所述方法应用于所述核心层交换机,包括:
接收三层交换机发送的数据包,所述数据包包括客户端的源IP地址;
将所述源IP地址映射为指定的目标值;
查找所述目标值对应的接入层交换机;
将所述数据包发送给所述接入层交换机,以使所述接入层交换机基于负载均衡将所述数据包发送给所述服务器。
进一步的,所述将所述源IP地址映射为指定的目标值,包括:
将所述源IP地址映射为奇数或偶数。
进一步的,所述查找所述目标值对应的接入层交换机,包括:
在预设的映射关系表中查找与所述目标值相同的索引值,所述映射关系表中记录索引值与接入层交换机之间的映射关系;
在所述映射关系表中查找所述索引值对应的接入层交换机。
进一步的,所述接入层交换机包括第一接入层交换机和第二接入层交换机;
所述在所述映射关系表中查找所述索引值对应的接入层交换机,包括:
若所述索引值为奇数,则在所述映射关系表中查找所述奇数对应的第一接入层交换机;
若所述索引值为偶数,则在所述映射关系表中查找所述偶数对应的第二接入层交换机。
进一步的,所述将所述源IP地址映射为指定的目标值,包括:
将所述源IP地址映射为哈希值。
进一步的,所述接入层交换机通过如下方式发送数据包:
查询所述接入层交换机的物理端口;
采用所述物理端口和所述源IP地址进行哈希运算,获得哈希值;
查找所述哈希值对应的服务器;
将所述数据包发送给所述服务器。
第二方面,本发明实施例还提供了一种负载均衡装置,核心层交换机与接入层交换机连接,所述接入层交换机与服务器连接;所述装置应用于所述核心层交换机,包括:
数据包接收模块,用于接收三层交换 机发送的数据包,所述数据包包括客户端的源IP 地址;
目标值映射模块,用于将所述源IP地址映射为指定的目标值;
接入层交换机查找模块,用于查找所述目标值对应的接入层交换机;
数据包发送模块,用于将所述数据包发送给所述接入层交换机,以使所述接入层交换机基于负载均衡将所述数据包发送给所述服务器。
进一步的,所述目标值映射模块,包括:
第一目标值映射单元,用于将所述源IP地址映射为奇数或偶数。
进一步的,所述接入层交换机查找模块,包括:
索引值查找单元,用于在预设的映射关系表中查找与所述目标值相同的索引值,所述映射关系表中记录索引值与接入层交换机之间的映射关系;
接入层交换机查找单元,用于在所述映射关系表中查找所述索引值对应的接入层交换机。
进一步的,所述接入层交换机包括第一接入层交换机和第二接入层交换机;
所述接入层交换机查找单元,具体用于:
若所述索引值为奇数,则在所述映射关系表中查找所述奇数对应的第一接入层交换机;
若所述索引值为偶数,则在所述映射关系表中查找所述偶数对应的第二接入层交换机。
进一步的,所述目标值映射模块,包括:
第二目标值映射单元,用于将所述源IP地址映射为第一哈希值。
进一步的,所述接入层交换机通过如下方式发送数据包:
查询所述接入层交换机的物理端口;
采用所述物理端口和所述源IP地址进行哈希运算,获得第二哈希值;
查找所述第二哈希值对应的服务器;
将所述数据包发送给所述服务器。
第三方面,本发明实施例还提供了一种负载均衡系统,该系统包括:核心层交换机和接入层交换机;所述核心层交换机与所述接入层交换机连接,所述接入层交换机与服务器连接;
所述核心层交换机,包括:
数据包接收模块,用于接收三层交换 机发送的数据包,所述数据包包括客户端的源IP 地址;
目标值映射模块,用于将所述源IP地址映射为指定的目标值;
接入层交换机查找模块,用于查找所述目标值对应的接入层交换机;
数据包发送模块,用于将所述数据包发送给所述接入层交换机;
所述接入层交换机,包括:
服务器发送模块,用于基于负载均衡将所述数据包发送给所述服务器。
第四方面,本发明实施例还提供了一种核心层交换机,该核心层交换机包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为指定的目标值,查找目标值对应的接入层交换机,将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器,上述针对源IP 地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同,进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
附图说明
图1是本发明实施例中的一种负载均衡方法的应用场景示意图;
图2是本发明实施例中的另一种负载均衡方法的应用场景示意图;
图3是本发明实施例中的一种负载均衡方法的流程图;
图4是本发明实施例中的另一种负载均衡方法的流程图;
图5是本发明实施例中的再一种负载均衡方法的流程图;
图6是本发明实施例中的一种负载均衡方法的信令图;
图7是本发明实施例中的一种负载均衡装置的结构示意图;
图8是本发明实施例中的一种负载均衡系统的结构示意图;
图9是本发明实施例中的一种核心层交换机的结构示意图。
具体实施方式
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例
在由客户端、三层交换机和服务器组成的数据交互系统中,可通过三层交换机实现负载均衡,其中,三层交换机为由至少两个三层交换机经堆叠形成的,即所述三层交换机为三层堆叠交换机。在上述数据交互系统中,需要服务器提供有状态服务,即由同一客户端发送的两个数据包具有上下文关系,可称为有状态请求,需要由同一服务器进行处理,但由于三层堆叠交换机中包括至少两个三层交换机,而不同三层交换机建立的MAC(MediaAccess Control,介质访问控制)地址表可能不同,相应的,基于MAC地址表确定的服务器就有可能不同,因此,如果上述两个数据包经过的是三层堆叠交换机中的两个不同三层交换机,则两个数据包可能将分别发送给两个服务器进行处理,上述将导致服务器无法提供有状态服务,或者,从另一角度说,可将上述情况归结为负载均衡混乱。
需要说明的是,除了可以利用建立的MAC地址表确定对应的服务器外,还可以采用其它负载均衡方法确定对应的服务器。
另需要说明的是,出现上述情况的原因在于:首先,至少两个三层交换机经堆叠形成三层堆叠交换机后,数据包可能进入不同三层交换机,再者,无法控制客户端发送的数据包由哪个三层交换机进行处理。
示例性的,如图1所示,给出了一种负载均衡方法的应用场景示意图。如图2所示,给出了另一种负载均衡方法的应用场景示意图。其中,数据包A和数据包B为有状态请求,即需要由同一服务器来处理。两个三层交换机1102经堆叠形成了一个三层堆叠交换机。
针对数据包A和数据包B为有状态请求,可以通过以下示例进行说明,具体的:如该应用场景为短视频场景,客户端1101可以为直播应用程序,该直播应用程序需要用户登录后才可以发表评论。服务器1103可以为Web服务器,数据包A为用于请求登录该直播应用程序,数据包B为用于请求发送的评论,由此可见,数据包A和数据包B为有状态请求。
图1中,客户端1101将生成的数据包A发送三层交换机1102,三层交换机1102再将该数据包A发送给服务器1103。当完成对数据包A的处理过程后,客户端1101继续将生成的数据包B发送给三层交换机1102,三层交换机1102再将该数据包B发送给服务器1103。从图1可以看出:数据包A和数据包B由同一三层交换机1102进行转发,并且发送给同一服务器1103进行处理。上述实现了服务器可以提供有状态服务,并未引发负载均衡混乱。
图2中,客户端1101将生成的数据包A发送三层交换机1102,三层交换机1102再将该数据包A发送给服务器1103。当完成对数据包A的处理过程后,客户端1101继续将生成的数据包B发送给另一个三层交换机1102,三层交换机1102再将该数据包B发送给另一个服务器1103。从图2可以看出:数据包A和数据包B分别由两个三层交换机1102进行转发,并且发送给不同服务器1103进行处理。上述无法实现服务器提供有状态服务,引发了负载均衡混乱。
为了解决图2中引发的负载均衡混乱的问题,即为了解决将三层交换机作堆叠处理后,可能引发的负载均衡混乱问题,可以考虑对由客户端、三层交换机和服务器所组成的数据交互系统进行改进,上述改进的关键点在于:针对有状态请求,如何确保数据包可以进入同一个交换机。下面将结合具体实施例对上述内容进行进一步说明。在此之前,首先针对上述出现的三层交换机、负载均衡、有状态服务、有状态请求、MAC地址表以及与上述概念相关的其它内容进行说明,具体的:
两个数据包是否具有上下文关系是表示上述两个数据包在服务器1103上是否具有上下文关系。此外,可将上述具有上下文关系的请求称为有状态请求,相应的,可将不具有上下文关系的请求称为无状态请求,从服务器1103角度来说,当请求为有状态请求时,其需要提供有状态服务;当请求为无状态请求时,其可以提供无状态服务。
由于现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一服务器无法承担上述工作量。在此情况下,如果扔掉现有设备去进行大量的硬件升级,则将造成对现有资源的浪费,而且如果再面临下一次业务量的提升时,则又将导致需要再进行一次硬件升级,上述势必造成高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。针对上述情况,可以采用负载均衡技术进行解决。
负载均衡是将负载(或称工作任务)进行平衡和分摊到多个操作单元上进行执行,如 Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。负载均衡有两方面的含义,具体的:其一、单个重负载的运算分担到多个节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,上述即为集群技术;其二、大量的并发访问或数据流量分担到多个节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。此外,负载均衡通常会根据网络层次进行划分,这里所述的网络层次指的是OSI(Open System Interconnect,开放式系统互联)模型中的网络层次,共分为七层,具体为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,其中,网络层为第三层,数据链路层为第二层。相应的,二层负载均衡指的是将多条物理链路当作一条单一的聚合逻辑链路使用,即链路聚合技术,其是交换机等网络设备的常用技术。负载均衡可以分为软件负载均衡和硬件负载均衡,其中,软件负载均衡是指在一个或多个服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡;硬件负载均衡是直接在服务器和外部网络间安装负载均衡设备,这种设备称为负载均衡器,即负载均衡器来执行负载均衡。由于使用专门的设备来完成专门的任务,该设备独立于操作系统,使得整体性能得到大幅度提高,加上可采用多元化的负载均衡策略和智能化的流量管理,因此,可达到最佳的负载均衡效果。负载均衡器的具体实现形式有多种,除了作为独立意义上的负载均衡器外,还可以将负载均衡器集成在交换机中。
基于上述,在由客户端、交换机和服务器组成的数据交互系统中,可以通过交换机实现负载均衡。交换机(或称为交换式集线器)是一种基于MAC地址识别,能完成封装转发数据帧功能的网络设备。
交换机的工作原理为:交换机根据接收到的数据帧中的源MAC地址建立该地址同交换机的物理端口的映射关系,并将其写入MAC地址表中,交换机将数据帧中目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个物理端口进行转发。如果数据帧中的目的MAC地址不在MAC地址表中,则向所有物理端口转发,这个过程称为泛洪。交换机可以采用源MAC地址学习的方法建立MAC地址表,具体建立过程如下:当交换机处于初始状态时,MAC地址表为空,现假设客户端向服务器发送数据帧,数据帧的源MAC地址为 00-01-B5-4B-30-85,目的MAC地址为00-01-B5-4B-30-65,客户端与交换机的物理端口E0/1 连接,服务器与交换机的物理端口E0/23连接,交换机有N个物理端口。当客户端将数据帧被发送到交换机后,由于MAC地址表为空,因此,交换机将向除物理端口E0/1以外的其它所有物理端口转发该数据帧。交换机在执行转发操作之前,首先检查该数据帧的源MAC地址,即00-01-B5-4B-30-85,并在交换机的MAC地址表中添加一条对应关系,使 00-01-B5-4B-30-85与物理端口E0/1相对应。服务器接收到该数据帧后,将数据帧的目的MAC 地址和本机的MAC地址比较,确定两者一致,则接收并处理该数据帧,其它物理端口便丢弃该数据帧。交换机接收到服务器对数据帧的反馈信息后,通过物理端口E0/1发送给客户端,同时,交换机将学习到00-01-B5-4B-30-85与物理端口E0/23相对应,并将其添加到MAC地址表中,可以理解到,对于服务器来说,客户端发送的数据帧中的目标MAC地址即为服务器生成的反馈信息中的源MAC地址,相应的,客户端发送的数据帧中的源MAC地址即为服务器生成的反馈信息中的目的MAC地址,即对于发送者和接收者是相对的,因此,源MAC 地址和目的MAC地址也是相对的。交换机的其它物理端口同样利用源MAC地址学习的方法,在MAC地址表中添加新的MAC地址与物理端口的对应关系,直至MAC地址表添加完整为止,上述可将每个MAC地址与物理端口之间的对应关系称为一条记录。
此外,为了保证MAC地址表能够实时地反映网络情况,每个学习到的对应关系都有一个老化时间,如果在老化时间内接收到新的MAC地址,则更新记录。如果在老化时间内没有接收到新的MAC地址,则从MAC地址表中删除记录。示例性的,如服务器停止了与交换机之间的通信连接,则在达到老化时间后,交换机将其对应的记录从MAC地址表中删除。需要说明的是,除了上述采用源MAC地址学习的方法添加MAC地址表的记录外,还可以采用人工方式添加MAC地址表的记录,可将采用人工方式添加的记录称为静态记录,相应的,可将采用源MAC地址学习的方法添加的记录称为动态记录,静态记录是没有老化时间的限制的。但由于MAC地址表中对于同一个MAC地址只能由一条记录,因此,如果人工配置了MAC地址与物理端口的对应关系后,交换机就不再动态学习MAC地址。
交换机的工作特性包括如下几点,具体的:其一、交换机的每个端口所连接的网段都是一个独立的冲突域;其二、交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播,除了在配有VLAN(Virtual Local Area Network,虚拟局域网)的环境中;其三、交换机根据数据帧的帧头的信息进行转发,因此,上述所述的交换机是工作在数据链路层的网络设备,即工作在第二层的网络设备,也即上述所述的交换机为二层交换机。
二层交换机是按照接收到的数据帧的目的MAC地址来进行转发,对于网络层(即第三层)或者高层协议来说是透明的,其不处理网络层的IP(Internet Protocol,网络之间互联的协议)协议的IP地址,也不处理高层协议的端口地址,如传输层的TCP(TransmissionControl Protocol,传输控制协议)协议和UDP(User Datagram Protocol,用户数据报协议)。二层交换机只需要数据帧的MAC地址,数据交换是依靠硬件来实现的,由于其不能处理不同IP子网之间的数据交换,传统的路由器可以处理大量的跨域IP子网的数据包,但是它的转发效率比二层交换机低,因此,要利用二层交换机转发效率高的优点,同时又要处理三层IP数据包,三层交换机便应运而生。
下面需要对数据帧和数据包进行说明,具体的:数据帧是数据链路层的数据单元,数据帧由两部分组成,即帧头和帧数据。其中,帧头包括接收方主机物理地址的定位信息(如源 MAC地址和目的MAC地址)以及其它网络信息;帧数据包含有一个数据体。
数据包是TCP/IP协议通信传输中的数据单位,数据包包括包头和包体,其中,包头包括源IP地址、目的IP地址以及其它信息;包体包括TCP协议、UDP协议以及数据包的其它信息。
由于TCP/IP协议是工作第三层(即网络层)或第四层(即传输层)的协议,相应的,数据包是工作在第三层(即网络层)或第四层(即传输层),而数据帧工作在第二层(即数据链路层),上一层的内容需要由下一层的内容来传输,因此,数据包是包含在数据帧中的。
路由器是工作在第三层(即网络层)的网络设备,其负责将数据包从源主机经最佳路径传送到目的主机。路由器主要用于同类或异类局域网以及局域网与广域网之间的互联,其是连接不同逻辑子网的网络互连设备。与第一层(即物理层)或第二层(即数据链路层)的网络互连设备相比,其具有一些第一层(即物理层)或第二层(即数据链路层)的网络互连设备所没有的重要功能。它可以实现异构网络的互连,在物理上拓展了网络的规模;实现网络的逻辑划分;实现VLAN之间的通信。同时,还可以实现其它一些重要的网络功能,如提供访问控制功能、优先级服务和负载平衡等。
路由器的工作原理为:路由器依据目的IP地址,通过路由选择算法确定一条从源主机到达目的主机的最佳路由,该最佳路由信息保存在路由表中。其中,路由选择算法为网络上的路由产生一个权值,路由器通过权值来选择最佳路径,权值越小,路由最佳。对于一个路由器来说,其分组转发的任务即是在接收到数据包后,根据路由表所提供的最佳路径的信息,将其转发给下一个路由器,目的端口或是缺省路由器。缺省路由器也称缺省开关,它是与源主机在同一个子网中的路由端口的IP地址。如果目标IP地址中没有直接显示在路由表中,则将数据分组传送给缺省网关。
路由表的维护有如下两种不同的方式,具体的:一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
三层交换机指的是具有部分路由器功能的二层交换机,即三层交换机为具有“路由器的功能、交换机的性能”的交换机。三层交换机最重要作用是加快大型局域网内部的数据交换,所具有的路由功能也是为起到这一作用服务的,三层交换可以做到一次路由、多次转发。相应的,三层交换技术就是二层交换技术与三层转发技术的结合体。
交换机具有会话保持功能,会话保持可以用于保持会话的连续性和一致性,由于服务器之间很难做到实时同步用户访问信息,这就要求把用户的前后访问会话保持到一个服务器上来处理。上述使得当不同数据包由同一交换机来处理后,如果是有状态请求,则也可以保证不同数据包发送给同一服务器来处理。
下面以客户端和服务器之间的数据交互为例对三层交换机的工作原理进行说明,具体的:客户端要给服务器发送数据包,数据包中包括目的IP地址,并且客户端可以利用子网掩码取得目的IP地址,并判断目的IP地址是否与本机(即客户端)在同一网段,其中,子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。如果在同一网段,但不知道转发数据包所需的目的MAC 地址,则客户端就发送一个ARP(Address Resolution Protocol,地址解析协议)请求,服务器返回其MAC地址,即客户端获得目的MAC地址,客户端用此目的MAC地址封装数据包并发送给三层交换机,三层交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的物理端口。如果不在同一网段,那么客户端要实现与服务器的通信连接,且在MAC 地址表中没有对应的目的MAC地址,则将第一个正常数据包发送给一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应于三层路由模块,也即对于不是同一网段的数据,最先在MAC地址表中存放的是缺省网关的MAC地址,然后由三层路由模块接收到此数据包,查找路由表以确定到达服务器的路由,并构造一个新的帧头,其中以缺省网关的MAC 地址为源MAC地址,以服务器的MAC地址为目的MAC地址。通过一定的识别触发机制,确立客户端的MAC地址与三层交换机的物理端口的对应关系以及服务器的MAC地址与三层交换机的物理端口的对应关系,并记录到MAC地址表,这使得之后客户端发送给服务器的数据可以直接交由二层交换模块完成。上述即为通常所说的一次路由、多次转发。
堆叠是指将一个以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的物理端口。多个交换机经过堆叠形成一个堆叠单元,通常可通过专用堆叠模块和堆叠总线进行堆叠,并不占用网络端口。同时,多个交换机堆叠后,具有足够的系统带宽,从而保证堆叠后每给物理端口仍能达到线速交换,并且多个交换机堆叠后,VLAN功能不受影响。三层交换机也是按照上述方式进行堆叠形成三层堆叠交换机的。
基于上述,对于三层堆叠交换机中每个三层交换机而言,工作是独立的,即当其中每个三层交换机接收到客户端发送的数据包后,按照该三层交换机建立的路由表和MAC地址表进行执行。针对前文所提及的当将三层交换机堆叠后,便可能引发负载均衡混乱,便可以得到解释,即由于无法控制客户端1101会将数据包发送给三层堆叠交换机中的哪个三层交换机,而每个三层交换机所建立的路由表和MAC地址表可能不同,因此,导致将数据包A发送给一个服务器,而将数据包B发送给另一个服务器。
下面以图2中出现的情况为例,对上述所述的由于转发数据包A和数据包B的三层交换机不同,导致将两个数据包发送给了不同的服务器进行说明,具体的:可能存在如下情况,针对图2中左侧的三层交换机1102来说,根据客户端1101发送的数据包(包括数据包A和数据包B)中目的MAC地址,查找其MAC地址表中对应的物理端口,根据查找结果确定客户端1101发送的数据包中目的MAC地址对应于物理端口1;针对图2中右侧的三层交换机1102来说,根据客户端1101发送的数据包(包括数据包A和数据包B)中目的MAC地址,查找其MAC地址表中对应的物理端口,根据查找结果确定客户端1101发送的数据包中目的MAC地址对应于物理端口2,而物理端口1和物理端口2分别连接不同的服务器1103。
基于上述,下面将结合具体实施例对上述内容进行进一步说明。
图3为本发明实施例提供的一种负载均衡方法的流程图,本实施例可适用于解决由三层交换机堆叠引发的负载均衡混乱的情况,该方法可以由负载均衡装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于核心层交换机中,核心层交换机与接入层交换机连接,接入层交换机与服务器连接。如图3所示,该方法具体包括如下步骤:
步骤110、接收三层交换机发送的数据包,数据包包括客户端的源IP地址。
步骤120、将源IP地址映射为指定的目标值。
在本发明的实施例中,核心层是网络主干部分,是整个网络性能的保障,其设备包括路由器、防火墙和核心层交换机等。核心层交换机一般都是三层交换机或者三层以上的交换机,采用机箱式的外观,具有很多冗余的部件。接入层是指网络中直接面向用户连接或访问网络的部分。由于接入层存在的目的是允许终端用户连接到网络,因此,接入层交换机具有低成本和高端口密度特性。目标值可以用于标识源IP地址,或可以理解为,目标值可以用于区分源IP地址。
为了解决将三层交换机作堆叠处理后,可能引发的负载均衡混乱的问题,可考虑引入核心层交换机和接入层交换机,其中,核心层交换机接收三层交换机发送的数据包,数据包中包括客户端的源IP地址,核心层交换机将源IP地址映射为目标值,后续可以根据目标值从预设的映射关系表中查找与目标值对应的接入层交换机。核心层交换机所做的上述处理,可作为解决由三层交换机堆叠而引发的负载均衡混乱的问题的关键,具体原因在于:无论数据包经过哪个三层交换机,如果源IP地址相同,则通过核心层交换机对源IP作映射,将其映射为目标值,得到的目标值便相同。后续根据目标值从预设的映射关系表中查找与目标值对应的接入层交换机,确定的接入层交换机便相同。可以理解到,由同一个客户端发送的不同数据包中所包括的源IP地址是相同的,基于上述,可以确定由同一个客户端发送的不同数据包通过核心层交换机将源IP地址作映射处理后,将发送给同一个接入层交换机。后续由于不同数据包是由同一接入层交换机来处理,对于同一接入层交换机来说,通常来说,如果目的 MAC地址相同,则根据MAC地址表确定出的物理端口便相同,接入层交换机将通过该物理端口将不同数据包发送给同一服务器进行处理。
将源IP地址映射为指定的目标值,具体可以包括如下两种实现方式:其一、将源IP地址映射为奇数或偶数;其二、将源IP地址映射为第一哈希值。其中,核心层交换机可以利用路由功能将源IP地址映射为奇数或偶数,即核心层交换机可以做奇偶路由处理。哈希算法可以将任意长度的二进制值映射为较短的固定长度的二进制值,将这个较短的固定长度的二进制值的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。可以采用哈希算法将源IP地址映射为第一哈希值。需要说明的是,具体将源IP地址映射为指定的目标值的方式可根据实际情况进行确定,在此不作具体限定。
上述通过核心层交换机将源IP地址映射为指定的目标值,即核心层交换机根据数据包中的源IP地址对客户端发送的数据包进行了划分,可实现将数据包发送给目标值对应的接入层交换机,即目标值相同的数据包将由同一个接入层交换机接收。对于由同一客户端发送的不同数据包来说,由于各个数据包中的源IP地址相同,因此,将源IP地址映射所得的目标值便相同,进而根据目标值确定的接入层交换机也相同。综上,通过核心层交换机将源IP地址映射为指定的目标值,实现了同一客户端发送的数据包将由同一接入层交换机进行处理。上述是解决由三层交换机堆叠引发的负载均衡混乱问题的关键。
当然可以理解到,对于由不同客户端发送的数据包来说,虽然源IP地址不同,但可能存在经核心层交换机将源IP地址映射为指定的目标值,该目标值确相同的情况。示例性的,如将源IP地址映射为奇数或偶数,便有可能出现上述情况。
可选的,在上述技术方案的基础上,将源IP地址映射为指定的目标值,具体可以包括:将源IP地址映射为奇数或偶数。
在本发明的实施例中,核心层交换机可以利用路由功能将源IP地址映射为奇数或偶数,即核心层交换机可以做奇偶路由处理。IP地址的4个字节划分为可分成两部分,即网络地址和节点地址(或称主机地址),其中,网络地址用于表示网络设备所从属的网络段;节点地址用于指明该网络上某个特定网络设备的网络设备号。同一个网络中的网络地址应该相同,但节点地址应该不同,网络地址和节点地址可以通过网络掩码进行区分,即对应于网络掩码二进制位为“1”的IP地址部分为网络地址,其它的为节点地址。
示例性的,如IP地址为210.73.140.2,对于该IP地址,网络地址为210.73.140.0,节点地址为2。
基于上述,可以根据IP地址的主机标识来将该IP地址映射为奇数或偶数,具体的:如果该IP地址的主机标识为奇数,则可将该IP地址映射为奇数;如果该IP地址的主机标识为偶数,则可将该IP地址映射为偶数。当IP地址为源IP地址时,可以根据源IP地址的主机标识来将源IP地址映射为奇数或偶数,这里目标值为奇数或偶数。
可选的,在上述技术方案的基础上,将源IP地址映射为指定的目标值,具体可以包括:将源IP地址映射为第一哈希值。
在本发明的实施例中,可以采用哈希算法将源IP地址映射为哈希值,其中,哈希算法(或散列算法),其是将任意长度的二进制值映射为较短的固定长度的二进制值,以较短的信息作为唯一性的标识,这种标识与二进制值的每一个字节都相关,而且难以找到逆向规律。
需要说明的是,IP地址实际上是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),而为了便于用户阅读和理解,IP地址通常采用“点分十进制”的形式表示,即IP地址通常采用“a.b.c.d”的形式标识,其中,a、b、c和d均是0~255之间的十进制整数。示例性的,如IP地址“100.4.5.6”,实际上是32位二进制数“01100100.00000100.00000101.00000110”。当然可以理解到,源IP地址实际上也是32位二进制数,采用哈希算法可将源IP地址映射为较短的固定长度的二进制值。
还需要说明的是,由于哈希值与二进制数中每一位都相关,因此,对于不同的源IP地址来说,将其映射所得的哈希值是不同的,但对于同一源IP地址来说,其映射所得的第一哈希值是相同的,这也保证了由同一客户端发送的不同数据包,由于各个数据包中源IP地址相同,因此,通过核心层交换机对源IP地址映射所得的目标值也相同,这里所述的目标值即指第一哈希值。
步骤130、查找目标值对应的接入层交换机。
在本发明的实施例中,核心层交换机可以根据目标值确定对应的接入层交换机,即目标值与接入层交换机建立了对应的关系,使得可以根据目标值确定对应的接入层交换机。
需要说明的是,这里目标值可以与接入层交换机建立一一对应关系,即不同目标值对应不同的接入层交换机,目标值也可以与接入层交换机建立多对一的关系,即多个不同目标值对应同一接入层交换机。具体可以根据实际情况进行确定,在此不作具体限定。示例性的,如将IP地址映射为指定的目标值,该目标值包括奇数或偶数时,可设定奇数对应第一接入层交换机,偶数对应第二接入层交换机;将IP地址映射为指定的目标值,该目标值为第一哈希值时,可将满足预设规则的多个第一哈希值设定对应同一接入层交换机,此时,接入层交换机的个数可能为至少两个,这里所述的预设规则需要满足如下条件:可对第一哈希值进行划分,并且涵盖所有可能情况;每个第一哈希值均有对应的一个接入层交换机。示例性的,如预设规则可以是奇偶性规则,即第一哈希值为奇数的对应一个接入层交换机,第一哈希值为偶数的对应另一个接入层交换机。
还需要说明的是,可以预先建立索引值与接入层交换机的对应关系,并将该对应关系记录到映射关系表中。可以在预设的映射关系表中首先查找与目标值相同的索引值,再从该映射关系表中查找与该索引值对应的接入层交换机。
通过核心层将源IP地址映射为指定的目标值,根据目标值查找对应的接入层交换机,使得源IP地址的数据包将发送给同一接入层交换机进行处理,该操作是解决三层交换机堆叠引发的负载均衡混乱问题的关键,此外,核心层也实现了负载均衡,即根据实际情况将数据包发送给对应的接入层交换机进行处理,而不是只发送给同一接入层交换机进行处理。
可选的,在上述技术方案的基础上,查找目标值对应的接入层交换机,具体可以包括:在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系。在映射关系表中查找索引值对应的接入层交换机。
在本发明的实施例中,查找目标值对应的接入层交换机,具体可以包括:在预设的映射关系表中查找与目标值相同的索引值,再根据索引值,在该映射关系表中查找与索引值对应的接入层交换机。其中,映射关系表中记录索引值与接入层交换机之间的映射关系。接入层交换机在映射关系表中可以用接入层交换机标识表示,其中,接入层交换机标识可以为接入层交换机的MAC地址或主机号。
映射关系表可以通过如下方式生成:获取接入层交换机标识和索引值;建立索引值与接入交换机标识之间的映射关系;根据映射关系生成映射关系表。
可选的,在上述技术方案的基础上,接入层交换机包括第一接入层交换机和第二接入层交换机。在映射关系表中查找索引值对应的接入层交换机,具体可以包括:若索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机。若索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机。
在本发明的实施例中,接入层交换机可以包括第一接入层交换机和第二接入层交换机,相应的,在映射关系表中查找索引值对应的接入层交换机,具体可以包括:如果确定索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机;如果确定索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机。即核心层交换机将源IP地址映射为指定的目标值,该目标值为奇数或偶数,在预设的映射关系表中查找与目标值相同的索引值,相应的,索引值也为奇数或偶数,映射关系表中建立的索引值与接入层交换机的对应关系为:索引值为奇数对应第一接入层交换机,索引值为偶数对应第二接入层交换机。
通过核心层交换机将IP地址映射为奇数或偶数,并设定奇数对应第一接入层交换机,偶数对应第二接入层交换机,实现了源IP地址相同的数据包将发送给同一接入层交换机进行处理。同时,也可以理解到,核心层交换机通过上述处理后,也实现了负载均衡,即根据实际情况将数据包发送给对应的接入层交换机进行处理,而不是只发送给同一接入层交换机进行处理。
步骤140、将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器。
在本发明的实施例中,将数据包发送给接入层交换机,以使接入层交换机可以基于负载均衡将数据包发送给服务器。负载均衡方法可以包括:轮询、比率、优先权、最少连接数和最快响应时间等方法,还可以包括哈希算法、基于策略的负载均衡方法以及基于数据包的内容分发方法等。具体负载均衡方法可根据实际情况进行设定,在此不作具体限定。
可选的,在上述技术方案的基础上,接入层交换机通过如下方式发送数据包:查询接入层交换机的物理端口。采用物理端口和源IP地址进行哈希运算,获得第二哈希值。查找第二哈希值对应的服务器。将数据包发送给服务器。
在本发明的实施例中,接入层交换机可以查询接入层交换机的物理端口,并根据物理端口和源IP地址进行哈希运算,得到第二哈希值,根据第二哈希值查找与其对应的服务器,将数据包发送给该服务器。
上述实现了将源IP地址相同的不同数据包发送给同一服务器进行处理,原因在于:基于前文所述可知,将源IP地址映射为指定的目标值,根据目标值查找对应的接入层交换机,使得源IP地址相同的数据包将发送给同一接入层交换机进行处理。对于源IP地址相同的不同数据包来说,由于数据包的源IP地址相同且由同一接入层交换机处理,即接入层交换机的物理端口也相同,在源IP地址和物理端口均相同的情况下,采用物理端口和源IP地址进行哈希运算,获得第二哈希值也相同,进而查找第二哈希值对应的服务器,所确定的服务器器便相同。
需要说明的是,可以预先建立哈希索引值与服务器之间的映射关系,形成对应关系表。服务器在对应关系表中可以用服务器标识表示,其中,服务器标识可以为服务器的MAC地址或主机号。查找第二哈希值对应的服务器,可以包括:从预设的对应关系表中查找与第二哈希值相同的哈希索引值,在对应关系表中查找哈希索引值对应的服务器。
通过接入层交换机基于负载均衡将数据包发送给服务器,实现了接入层的负载均衡。
通过步骤110-步骤140,核心层交换机将源IP地址映射为指定的目标值,的处理,使得源IP地址相同的不同数据包将发送给同一接入层交换机进行处理,对于同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,解决了三层交换机堆叠引发的负载均衡混乱问题。同时,核心层以及接入层也同时实现了负载均衡。
需要说明的是,三层交换机可以为由至少两个三层交换机经堆叠形成的三层堆叠交换机;核心层交换机的个数可以为一个,也可以为至少两个,当核心层交换机的个数为至少两个时,上述核心层交换机也可作堆叠处理,形成核心层堆叠交换机;接入层交换的个数可以根据目标值的个数进行确定,当然接入层交换机的个数为至少两个时,接入层交换机也可作堆叠处理,形成接入堆叠交换机。还需要说明的是,根据前文所述可知,核心层交换机可以与所有接入层交换机连接。
本实施例的技术方案,通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为指定的目标值,查找目标值对应的接入层交换机,将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器,上述针对源IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同,进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
图4为本发明实施例提供的另一种负载均衡方法的流程图,本实施例可适用于解决由三层交换机堆叠引发的负载均衡混乱的情况,该方法可以由负载均衡装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于核心层交换机中,核心层交换机与接入层交换机连接,接入层交换机与服务器连接。如图4所示,该方法具体包括如下步骤:
步骤210、接收三层交换机发送的数据包,数据包包括客户端的源IP地址。
步骤220、将源IP地址映射为指定的目标值,目标值包括奇数或偶数。
步骤230、在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系。
步骤240、若索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机。
步骤250、若索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机。
步骤260、将数据表发送给接入层交换机,以使接入层交换机查询接入层交换机的物理端口,采用物理端口和源IP地址进行哈希运算,获得第二哈希值,查找第二哈希值对应的服务器,将数据表发送给服务器。
本实施例的技术方案,通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为指定的目标值,目标值包括奇数或偶数,在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系,若索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机,若索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机,将数据表发送给接入层交换机,以使接入层交换机查询接入层交换机的物理端口,采用物理端口和源IP地址进行哈希运算,获得第二哈希值,查找第二哈希值对应的服务器,将数据表发送给服务器,上述针对源 IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同(同为奇数或同为偶数),进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
图5为本发明实施例提供的再一种负载均衡方法的流程图,本实施例可适用于解决由三层交换机堆叠引发的负载均衡混乱的情况,该方法可以由负载均衡装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于核心层交换机中,核心层交换机与接入层交换机连接,接入层交换机与服务器连接。如图5所示,该方法具体包括如下步骤:
步骤310、接收三层交换机发送的数据包,数据包包括客户端的源IP地址。
步骤320、将源IP地址映射为目标值,目标值为第一哈希值。
步骤330、在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系。
步骤340、在映射关系表中查找索引值对应的接入层交换机。
步骤350、将数据表发送给接入层交换机,以使接入层交换机查询接入层交换机的物理端口,采用物理端口和源IP地址进行哈希运算,获得第二哈希值,查找第二哈希值对应的服务器,将数据表发送给服务器。
本实施例的技术方案,通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为目标值,目标值为第一哈希值,在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系,在映射关系表中查找索引值对应的接入层交换机,将数据表发送给接入层交换机,以使接入层交换机查询接入层交换机的物理端口,采用物理端口和源IP地址进行哈希运算,获得第二哈希值,查找第二哈希值对应的服务器,将数据表发送给服务器,上述针对源IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的第一哈希值相同,进而根据第一哈希值值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
图6为本发明实施例提供的一种负载均衡方法的信令图,本实施例可适用于解决三层交换机堆叠引发的负载均衡混乱的情况,该方法可以由负载均衡装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于核心层交换机中,核心层交换机与接入层交换机连接,接入层交换机与服务器连接。如图6所示,该方法具体包括如下步骤:
步骤410、三层交换机将数据包发送给核心层交换机,数据包包括客户端的源IP地址。
步骤420、核心层交换机将源IP地址映射为指定的目标值。
步骤430、核心层交换机在预设的映射关系表中查找与目标值相同的索引值。
步骤440、核心层交换机从映射关系表中查找索引值对应的接入层交换机。
步骤450、核心层交换机将数据包发送给对应的接入层交换机。
步骤460、接入层交换机查询接入层交换机的物理端口。
步骤470、接入层交换机采用物理端口和源IP地址进行哈希运算,获得第二哈希值。
步骤480、接入层交换机查找第二哈希值对应的服务器。
步骤490、接入层交换机将数据包发送给服务器。
本实施例的技术方案,通过三层交换机将数据包发送给核心层交换机,数据包包括客户端的源IP地址,核心层交换机将源IP地址映射为指定的目标值,核心层交换机在预设的映射关系表中查找与目标值相同的索引值,核心层交换机从映射关系表中查找索引值对应的接入层交换机,核心层交换机将数据包发送给对应的接入层交换机,接入层交换机查询接入层交换机的物理端口,接入层交换机采用物理端口和源IP地址进行哈希运算,获得第二哈希值,接入层交换机查找第二哈希值对应的服务器,接入层交换机将数据包发送给服务器,上述针对源IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同,进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
图7为本发明实施例提供的一种负载均衡装置的结构示意图,本实施例可适用于解决三层交换机堆叠引发的负载均衡混乱的情况,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于核心层交换机中,核心层交换机与接入层交换机连接,接入层交换机与服务器连接。如图7所示,该装置具体包括:
数据包接收模块510,用于接收三层交换 机发送的数据包,数据包包括客户端的源IP地址。
目标值映射模块520,用于将源IP地址映射为指定的目标值。
接入层交换机查找模块530,用于查找目标值对应的接入层交换机。
数据包发送模块540,用于将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器。
本实施例的技术方案,通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为指定的目标值,查找目标值对应的接入层交换机,将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器,上述针对源IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同,进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
可选的,在上述技术方案的基础上,目标值映射模块520,具体可以包括:
第一目标值映射单元,用于将源IP地址映射为奇数或偶数。
可选的,在上述技术方案的基础上,接入层交换机查找模块530,具体可以包括:
索引值查找单元,用于在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系。
接入层交换机查找单元,用于在映射关系表中查找索引值对应的接入层交换机。
可选的,在上述技术方案的基础上,接入层交换机包括第一接入层交换机和第二接入层交换机。
接入层交换机查找单元,具体用于:
若索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机。
若索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机。
可选的,在上述技术方案的基础上,目标值映射模块520,具体可以包括:
第二目标值映射单元,用于将源IP地址映射为第一哈希值。
可选的,在上述技术方案的基础上,接入层交换机通过如下方式发送数据包:
查询接入层交换机的物理端口。
采用物理端口和源IP地址进行哈希运算,获得第二哈希值。
查找第二哈希值对应的服务器。
将数据包发送给服务器。
本发明实施例所提供的负载均衡装置可执行本发明任意实施例所提供的负载均衡方法,具备执行方法相应的功能模块和有益效果。
图8为本发明实施例提供的一种负载均衡系统的结构示意图,本实施例可适用于解决三层交换机堆叠引发的负载均衡混乱的情况,该系统可以采用软件和/或硬件的方式实现,如图 8所示,该系统具体包括:核心层交换机1104和接入层交换机1105;核心层交换机1104与接入层交换机1105连接,接入层交换机1105与服务器1103连接,下面对其结构和功能进行具体说明。
核心层交换机1104,具体可以包括:
数据包接收模块,用于接收三层交换 机发送的数据包,数据包包括客户端的源IP地址。
目标值映射模块,用于将源IP地址映射为指定的目标值。
接入层交换机查找模块,用于查找目标值对应的接入层交换机。
数据包发送模块,用于将数据包发送给接入层交换机。
接入层交换机1105,具体可以包括:
服务器发送模块,用于基于负载均衡将数据包发送给服务器。
本实施例的技术方案,通过核心层交换机接收三层交换机发送的数据包,数据包包括客户端的源IP地址,将源IP地址映射为指定的目标值,查找目标值对应的接入层交换机,将数据包发送给接入层交换机,接入层交换机基于负载均衡将数据包发送给服务器,上述针对源IP地址相同的不同数据包来说,由于源IP地址相同,使得将源IP地址映射所得的目标值相同,进而根据目标值确定对应的接入层交换机为相同的接入层交换机,针对同一接入层交换机来说,当其采用的负载均衡方法未改变时,使得目的MAC地址相同的不同数据包将发送给同一服务器进行处理,从而解决了三层交换机堆叠引发的负载均衡混乱问题,实现了负载均衡。
可选的,在上述技术方案的基础上,目标值映射模块,具体可以包括:
第一目标值映射单元,用于将源IP地址映射为奇数或偶数。
可选的,在上述技术方案的基础上,接入层交换机查找模块,具体可以包括:
索引值查找单元,用于在预设的映射关系表中查找与目标值相同的索引值,映射关系表中记录索引值与接入层交换机之间的映射关系。
接入层交换机查找单元,用于在映射关系表中查找索引值对应的接入层交换机。
可选的,在上述技术方案的基础上,接入层交换机包括第一接入层交换机和第二接入层交换机。
接入层交换机查找单元,具体用于:
若索引值为奇数,则在映射关系表中查找奇数对应的第一接入层交换机。
若索引值为偶数,则在映射关系表中查找偶数对应的第二接入层交换机。
可选的,在上述技术方案的基础上,目标值映射模块,具体可以包括:
第二目标值映射单元,用于将源IP地址映射为第一哈希值。
可选的,在上述技术方案的基础上,接入层交换机通过如下方式发送数据包:
查询接入层交换机的物理端口。
采用物理端口和源IP地址进行哈希运算,获得第二哈希值。
查找第二哈希值对应的服务器。
将数据包发送给服务器。
需要说明的是,三层交换机可以为由至少两个三层交换机经堆叠形成的三层堆叠交换机;核心层交换机的个数可以为一个,也可以为至少两个,当核心层交换机的个数为至少两个时,上述核心层交换机也可作堆叠处理,形成核心层堆叠交换机;接入层交换的个数可以根据目标值的个数进行确定,当然接入层交换机的个数为至少两个时,接入层交换机也可作堆叠处理,形成接入堆叠交换机。
图9为本发明实施例提供的一种核心层交换机的结构示意图。图9显示的核心层交换机仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图9所示,本发明实施例提供的核心层交换机,包括处理器61、存储器62、输入装置63和输出装置64;核心层交换机中处理器61的数量可以是一个或多个,图9中以一个处理器61为例;核心层交换机中的处理器61 、存储器62、输入装置63和输出装置64可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器62作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的核心层交换机显示方法对应的程序指令/模块(例如,使用负载均衡装置中的数据包接收模块510、目标值映射模块520、接入层交换机查找模块530和数据包发送模块540)。处理器61通过运行存储在存储器62中的软件程序、指令以及模块,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用于核心层交换机的负载均衡方法。
存储器62可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据核心层交换机的使用所创建的数据等。此外,存储器62可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器62可进一步包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至核心层交换机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置63可用于接收用户输入的数字或字符信息,以产生与核心层交换机的用户设置以及功能控制有关的键信号输入。输出装置64可包括显示屏等显示核心层交换机。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供应用于核心层交换机的负载均衡方法的技术方案。该核心层交换机的硬件结构以及功能可参见实施例的内容解释。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种负载均衡方法,该方法包括:
接收三层交换机发送的数据包,数据包包括客户端的源IP地址。
将源IP地址映射为指定的目标值。
查找目标值对应的接入层交换机。
将数据包发送给接入层交换机,以使接入层交换机基于负载均衡将数据包发送给服务器。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器 (CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网 (WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的核心层交换机的通信连接的处理方法中的相关操作。对存储介质的介绍可参见实施例中的内容解释。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种负载均衡方法,其特征在于,核心层交换机与多个接入层交换机连接,所述接入层交换机与多个服务器连接;所述方法应用于所述核心层交换机,包括:
接收三层交换机发送的数据包,其中,所述数据包为有状态请求数据包,所述数据包包括客户端的源IP地址,其中,所述三层交换机为由至少两个三层交换机经堆叠形成的三层堆叠交换机;
将所述源IP地址映射为指定的目标值,所述目标值为奇数或偶数;
查找所述目标值对应的接入层交换机;
将所述数据包发送给所述接入层交换机,以使所述接入层交换机根据所述源IP地址和所述接入层交换机的物理端口将所述数据包发送给所述服务器;
其中,所述查找所述目标值对应的接入层交换机,包括:
在预设的映射关系表中查找与所述目标值相同的索引值,所述映射关系表中记录索引值与接入层交换机之间的映射关系,所述接入层交换机包括第一接入层交换机和第二接入层交换机;
若所述索引值为奇数,则在所述映射关系表中查找所述奇数对应的第一接入层交换机;
若所述索引值为偶数,则在所述映射关系表中查找所述偶数对应的第二接入层交换机。
2.根据权利要求1所述的方法,其特征在于,所述将所述源IP地址映射为指定的目标值,包括:
将所述源IP地址映射为第一哈希值。
3.根据权利要求1或2所述的方法,其特征在于,所述接入层交换机通过如下方式发送数据包:
查询所述接入层交换机的物理端口的端口号;
采用所述端口号和所述源IP地址进行哈希运算,获得第二哈希值;
查找所述第二哈希值对应的服务器;
将所述数据包发送给所述服务器。
4.一种负载均衡装置,其特征在于,核心层交换机与多个接入层交换机连接,所述接入层交换机与多个服务器连接;所述装置应用于所述核心层交换机,包括:
数据包接收模块,用于接收三层交换机发送的数据包,其中,所述数据包为有状态请求数据包,所述数据包包括客户端的源IP地址,其中,所述三层交换机为由至少两个三层交换机经堆叠形成的三层堆叠交换机;
目标值映射模块,用于将所述源IP地址映射为指定的目标值,所述目标值为奇数或偶数;
接入层交换机查找模块,用于查找所述目标值对应的接入层交换机;
数据包发送模块,用于将所述数据包发送给所述接入层交换机,以使所述接入层交换机根据所述源IP地址和所述接入层交换机的物理端口将所述数据包发送给所述服务器;
其中,所述查找所述目标值对应的接入层交换机包括:
在预设的映射关系表中查找与所述目标值相同的索引值,所述映射关系表中记录索引值与接入层交换机之间的映射关系,所述接入层交换机包括第一接入层交换机和第二接入层交换机;若所述索引值为奇数,则在所述映射关系表中查找所述奇数对应的第一接入层交换机;若所述索引值为偶数,则在所述映射关系表中查找所述偶数对应的第二接入层交换机。
5.一种负载均衡系统,其特征在于,包括:核心层交换机和接入层交换机;所述核心层交换机与所述接入层交换机连接,所述接入层交换机与服务器连接;
所述核心层交换机,包括:
数据包接收模块,用于接收三层交换机发送的数据包,其中,所述数据包为有状态请求数据包,所述数据包包括客户端的源IP地址,其中,所述三层交换机为由至少两个三层交换机经堆叠形成的三层堆叠交换机;
目标值映射模块,用于将所述源IP地址映射为指定的目标值,所述目标值为奇数或偶数;
接入层交换机查找模块,用于查找所述目标值对应的接入层交换机;
数据包发送模块,用于将所述数据包发送给所述接入层交换机;
所述接入层交换机,包括:
服务器发送模块,用于根据所述源IP地址和所述接入层交换机的物理端口将所述数据包发送给所述服务器;
其中,所述查找所述目标值对应的接入层交换机包括:
在预设的映射关系表中查找与所述目标值相同的索引值,所述映射关系表中记录索引值与接入层交换机之间的映射关系,所述接入层交换机包括第一接入层交换机和第二接入层交换机;若所述索引值为奇数,则在所述映射关系表中查找所述奇数对应的第一接入层交换机;若所述索引值为偶数,则在所述映射关系表中查找所述偶数对应的第二接入层交换机。
6.一种核心层交换机,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3任一所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3任一所述的方法。
CN201811390873.2A 2018-11-21 2018-11-21 负载均衡方法、装置、系统、核心层交换机及存储介质 Active CN109547354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811390873.2A CN109547354B (zh) 2018-11-21 2018-11-21 负载均衡方法、装置、系统、核心层交换机及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811390873.2A CN109547354B (zh) 2018-11-21 2018-11-21 负载均衡方法、装置、系统、核心层交换机及存储介质

Publications (2)

Publication Number Publication Date
CN109547354A CN109547354A (zh) 2019-03-29
CN109547354B true CN109547354B (zh) 2022-08-30

Family

ID=65848839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811390873.2A Active CN109547354B (zh) 2018-11-21 2018-11-21 负载均衡方法、装置、系统、核心层交换机及存储介质

Country Status (1)

Country Link
CN (1) CN109547354B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995881B (zh) * 2019-04-30 2021-12-14 网易(杭州)网络有限公司 缓存服务器的负载均衡方法和装置
CN111010342B (zh) * 2019-11-21 2023-04-07 天津卓朗科技发展有限公司 一种分布式负载均衡实现方法及装置
CN110958326B (zh) * 2019-12-13 2022-11-11 锐捷网络股份有限公司 一种负载均衡方法、装置、系统、设备及介质
CN117221214A (zh) * 2020-01-14 2023-12-12 Vm维尔股份有限公司 在物理和逻辑网络之间提供有状态服务的透明隔离区
US11411777B2 (en) 2020-01-14 2022-08-09 Vmware, Inc. Port mapping for bonded interfaces of ECMP group
CN115604272B (zh) * 2022-11-30 2023-03-14 苏州浪潮智能科技有限公司 负载均衡方法、装置、系统及系统创建方法及设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222395A (zh) * 2008-02-03 2008-07-16 华为技术有限公司 实现选择网络引导配置信息的方法、系统及装置
JP2010278584A (ja) * 2009-05-27 2010-12-09 Nec Infrontia Corp ネットワーク、ネットワーク装置及びそれらに用いる負荷分散方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003281109A (ja) * 2002-03-26 2003-10-03 Hitachi Ltd 負荷分散方法
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
US20090193428A1 (en) * 2008-01-25 2009-07-30 Hewlett-Packard Development Company, L.P. Systems and Methods for Server Load Balancing
CN103023797B (zh) * 2011-09-23 2016-06-15 百度在线网络技术(北京)有限公司 数据中心系统及装置和提供服务的方法
CN102572012B (zh) * 2012-02-14 2015-07-08 华为技术有限公司 一种消息处理方法、交换机及系统
CN105991438B (zh) * 2015-01-30 2019-10-15 华为技术有限公司 基于虚拟二层网络中数据包的处理方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222395A (zh) * 2008-02-03 2008-07-16 华为技术有限公司 实现选择网络引导配置信息的方法、系统及装置
JP2010278584A (ja) * 2009-05-27 2010-12-09 Nec Infrontia Corp ネットワーク、ネットワーク装置及びそれらに用いる負荷分散方法

Also Published As

Publication number Publication date
CN109547354A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
CN109547354B (zh) 负载均衡方法、装置、系统、核心层交换机及存储介质
US11283707B2 (en) Segment routing with fast reroute for container networking
CN107465590B (zh) 网络基础设施系统、路由网络业务的方法及计算机可读介质
US11025677B2 (en) Using symmetric and asymmetric flow response paths from an autonomous system
US20210119961A1 (en) Resolution of domain name requests in heterogeneous network environments
US10320683B2 (en) Reliable load-balancer using segment routing and real-time application monitoring
US10887119B2 (en) Multicasting within distributed control plane of a switch
US11252199B2 (en) Redirecting packets in an autonomous system
EP2740242B1 (en) System and method for implementing and managing virtual networks
US8750288B2 (en) Physical path determination for virtual network packet flows
CN111901244B (zh) 一种网络报文转发系统
CA2968964C (en) Source ip address transparency systems and methods
CN116210204A (zh) 用于vlan交换和路由服务的系统和方法
US20150172183A1 (en) Managing data flows in overlay networks
US11336570B1 (en) Layer three multi-homing for virtual networks
US9712649B2 (en) CCN fragmentation gateway
EP2369782B1 (en) Multicasting within a distributed control plane of a switch
KR101995145B1 (ko) Ue들 및 고정 액세스 네트워크에서 작동하는 방법
US11956141B2 (en) Service chaining with physical network functions and virtualized network functions
US20230370421A1 (en) Scaling ip addresses in overlay networks
US9571337B1 (en) Deriving control plane connectivity during provisioning of a distributed control plane of a switch
CN114598698B (zh) 一种数据传输方法、装置、电子设备及计算机存储介质
EP3026851B1 (en) Apparatus, network gateway, method and computer program for providing information related to a specific route to a service in a network

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231009

Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 511442 23-39 / F, building B-1, Wanda Plaza North, Wanbo business district, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right