CN105743993A - 报文处理方法和系统 - Google Patents
报文处理方法和系统 Download PDFInfo
- Publication number
- CN105743993A CN105743993A CN201610203148.4A CN201610203148A CN105743993A CN 105743993 A CN105743993 A CN 105743993A CN 201610203148 A CN201610203148 A CN 201610203148A CN 105743993 A CN105743993 A CN 105743993A
- Authority
- CN
- China
- Prior art keywords
- address
- virtual
- request message
- message
- arp request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
-
- 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/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种报文处理方法和系统,该报文处理方法包括:在每个集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份;为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,每个VF的状态包括:激活状态或监听状态;每个处于激活状态的VF接收到ARP请求报文后,判断自身是否应答ARP请求报文;VF在判断出自身应答时,发送ARP应答报文,所述ARP应答报文中包括自身的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据虚拟MAC地址确定目的MAC地址。该方法能够解决服务器数量难以扩展的问题,并且服务器间能够实现负载分担。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种报文处理方法和系统。
背景技术
Linux虚拟服务器(LinuxVirtualServer,LVS)是一个虚拟的服务器集群系统,包括前端的调度器和后端的真实服务器(RealServer,RS),调度器采用互联网协议(InternetProtocol,IP)负载均衡技术和基于内容请求分发技术将请求均衡地转移到不同的RS上执行。为了避免调度器的单点故障,可以在LVS中引入keepalived,keepalived是一个基于虚拟路由冗余协议(VirtualRouterRedundancyProtocol,VRRP)实现的高可用方案。
在结合LVS和keepalived的方案(以下简称为DLVS方案)中,用作调度器的服务器有两台,一台是主服务器(master),另一台是备份服务器(backup),这两台服务器间运行keepalived,但对外表现为一个虚拟IP地址,主服务器会发送VRRP消息给备份服务器,当备份服务器接收不到这个消息时,即主服务器宕机时,备份服务器就会接管虚拟IP地址,继续提供服务,从而保证了高可用性。
但是,目前的DLVS方案会存在如下问题:虚拟IP地址漂移通常应用于主备两台服务器,服务器的数量有限,难以扩展。主备两个服务器不能同时工作,达不到负载分担的效果。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种报文处理方法,该方法可以解决服务器数量难以扩展的问题,并且服务器间能够实现负载分担。
本发明的另一个目的在于提出一种报文处理系统。
为达到上述目的,本发明第一方面实施例提出的报文处理方法,包括:在每个集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份;为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,所述每个VF的状态包括:激活状态或监听状态;每个处于激活状态的VF接收到ARP请求报文后,判断自身是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址;VF在判断出自身应答时,发送ARP应答报文,所述ARP应答报文中包括自身的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址配置配置。
本发明第一方面实施例提出的报文处理方法,通过在每个集群服务器上启动VF,且为每个VF配置虚拟IP地址,可以使得不同集群服务器上的VF都具有虚拟IP地址,而不是如虚拟IP地址漂移方案中只能有一个集群服务器具有虚拟IP地址,从而可以扩展集群服务器的数量,可以部署更多的集群服务器。另外,每个集群服务器上启动的VF的个数与集群服务器的个数相同,且相互备份,可以实现在不同集群服务器上分别由不同的VF进行报文处理,从而不同的集群服务器可以同时工作,实现负载分担。
为达到上述目的,本发明第二方面实施例提出的报文处理系统,包括:包括集群服务器,所述集群服务器包括:启动模块,用于在自身的集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份;配置模块,用于为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,所述每个VF的状态包括:激活状态或监听状态;判断模块,用于触发每个处于激活状态的VF接收到ARP请求报文后,判断所述VF是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址;应答模块,用于在所述VF判断出应答时,触发所述VF发送ARP应答报文,所述ARP应答报文中包括所述VF的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址配置。
本发明第二方面实施例提出的报文处理系统,通过在每个集群服务器上启动VF,且为每个VF配置虚拟IP地址,可以使得不同集群服务器上的VF都具有虚拟IP地址,而不是如虚拟IP地址漂移方案中只能有一个集群服务器具有虚拟IP地址,从而可以扩展集群服务器的数量,可以部署更多的集群服务器。另外,每个集群服务器上启动的VF的个数与集群服务器的个数相同,且相互备份,可以实现在不同集群服务器上分别由不同的VF进行报文处理,从而不同的集群服务器可以同时工作,实现负载分担。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是通常的DLVS的系统结构示意图;
图2是本发明一实施例提出的报文处理方法的流程示意图;
图3是本发明应用在二层网络时的系统结构示意图;
图4是本发明应用在三层网络时的系统结构示意图;
图5是本发明另一实施例提出的报文处理方法的流程示意图;
图6是本发明实施例中特殊格式的ARP请求报文的一种格式示意图;
图7是本发明实施例中VF状态切换的系统结构示意图;
图8是本发明另一实施例提出的报文处理系统的结构示意图;
图9是本发明另一实施例提出的报文处理系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
为了更好的理解本发明,先对通常的DLVS进行说明。如图1所示,通常的DLVS中包括两台集群服务器,分别用DLVS1和DLVS2表示,通过虚拟IP地址漂移确定由DLVS1或DLVS2进行报文转发等处理。
图2是本发明一实施例提出的报文处理方法的流程示意图。参见图2,该方法包括:
S21:在每个集群服务器上启动与集群服务器个数相同的虚拟转发器(VirtualForwarder,VF),且不同集群服务器上的相同VF相互备份。
S22:为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟媒体接入控制(MediaAccessControl,MAC)地址,并配置每个VF的状态,其中,每个VF的状态包括:激活状态或监听状态。
本实施例中,以集群服务器是DLVS系统中的集群服务器为例。
如图3所示,假设集群服务器是两个,分别用DLVS1和DLVS2表示,则在DLVS1和DLVS2上分别启动两个VF。
不同集群服务器上的相同VF相互备份是指不同集群服务器上启动VF是相同的,且对应同一个VF,在同一时刻,只有一个集群服务器上的该VF作为主VF,而其余集群服务器上的同一个VF作为备份VF。
本实施例中,主VF和备份VF可以通过VF的状态确定。VF的状态可以包括:激活状态(active)和监听状态(listen),当一个VF处于激活状态时,则表明该VF是主VF,当一个VF处于监听状态时,表明该VF是备份VF。
处于激活状态的VF(activeVF)用于正常处理报文,例如对接收的报文进行转发处理,应答接收的报文等。对应同一个VF,处于监听状态的VF(listenVF)用于监听其他集群服务器上的activeVF是否正常,如果监听到某个activeVF所在的DLVS服务器故障,会根据优先级高低在所有的listenVF中选择一个转变为activeVF,当DLVS服务器故障恢复后,这个VF状态会重新变为listen。其中,不同DLVS服务器上的VF状态和监听等可以由增强的keepalive报文来携带和通告。
对应同一个VF,初始时可以设置哪个集群服务器上的该VF处于激活状态,其余集群服务器上的该VF则处于监听状态,之后,可以根据监听情况进行VF的主备转换。
例如,如图3所示,DLVS1和DLVS2上都启动相同的两个VF,分别用VF1和VF2表示,另外,初始时,可以设置DLVS1上的VF1处于激活状态,设置DLVS2上的VF2处于激活状态,相应的,对应同一个VF其余DLVS上的该VF处于监听状态,则DLVS2上的VF1处于监听状态,DLVS1上的VF2处于监听状态。
在每个DLVS上启动VF后,可以为每个VF配置虚拟IP地址。DLVS可以根据负载均衡(LoadBalance,LB)实例配置虚拟IP地址,在不同的LB实例下可以配置不同的虚拟IP地址,在一个LB实例下,为所有DLVS上启动的所有VF配置相同的一个虚拟IP地址。
在同一个LB实例下,不同DLVS上的VF可以配置相同的虚拟IP地址。例如,参见图3,DLVS1上的VF1和VF2,以及DLVS2上的VF1和VF2具有相同的虚拟IP地址:10.80.1.234。
在启动每个VF后,还需要为每个VF配置虚拟MAC地址,其中不同的VF具有不同的虚拟MAC地址,但不同的DLVS上相同的VF具有相同的虚拟MAC地址。例如,参见图3,在DLVS1和DLVS2上,VF1的虚拟MAC地址是0003-f3e2-0081,VF2的虚拟MAC地址是0003-f3e2-0082。
S23:每个处于激活状态的VF接收到地址解析协议(AddressResolutionProtocol,ARP)请求报文后,判断自身是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址。
VF接收到ARP请求报文时,如果ARP请求报文是普通格式的ARP请求报文,则根据预设算法判断自身是否应答,例如,根据ARP请求报文的源MAC地址进行哈希(hash)运算判断自身是否应答。或者,
VF接收到ARP请求报文时,如果ARP请求报文是预设特殊格式的ARP请求报文,则可以直接确定自身应答。其中,所述特殊格式的ARP请求报文是在普通格式的ARP请求报文中增加预设字段,或者,修改普通格式的ARP请求报文中已有字段的字段值。
上述的普通格式的ARP请求报文和特殊格式的ARP请求报文可以分别用于将本发明应用在二层或三层网络环境下。
其中,图3是以二层网络环境为例,图3中的交换机(switch,SW)是指二层的交换机,SW可以接收主机(如图3所示的PC31或服务器32)发送的ARP请求报文,并广播给集群服务器(DLVS1和DLVS2)。其中,在二层网络环境下,ARP请求报文采用普通的报文格式。
由于DLVS1上处于激活状态的VF是VF1,DLVS2上处于激活状态的VF是VF2,则DLVS1上的VF1和DLVS2上的VF2接收到ARP请求报文后,会分别判断自身是否应答该ARP请求报文。
在判断时,可以根据ARP请求报文中的源MAC地址进行hash运算来判断,例如,对源MAC地址进行hash运算的运算结果的种数与VF个数相同,每种运算结果对应一个VF,从而可以根据运算结果确定由哪个VF进行应答。比如运算结果是第一种运算结果,而预先配置的是第一种运算结果对应VF1,则确定由VF1进行应答。
对于三层网络环境的说明可以具体参见后续实施例。
S24:VF在判断出自身应答时,发送ARP应答报文,所述ARP应答报文中包括自身的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址。
其中,当应用在二层网络环境时,接收者接收到ARP应答报文时,在后续向集群服务器发送报文时可以将ARP应答报文中包含的虚拟MAC地址作为目的MAC地址。
例如,PC31发送的ARP请求报文经过VF的判断,确定由DLVS2上的VF2进行应答,则DLVS2上的VF2向PC发送ARP应答报文,且该ARP应答报文中包含VF2的虚拟MAC地址,从而,后续PC31向DLVS发送报文时以VF2的虚拟MAC地址(0003-f3e2-0082)作为目的MAC地址,由处于激活状态的VF2处理PC的报文,如图3的虚线所示。
又例如,服务器32发送的ARP请求报文经过VF的判断,确定由DLVS1上的VF1进行应答,则DLVS1上的VF1向服务器发送ARP应答报文,且该ARP应答报文中包含VF1的虚拟MAC地址,从而,后续服务器32向DLVS发送报文时以VF1的虚拟MAC地址(0003-f3e2-0081)作为目的MAC地址,由处于激活状态的VF1处理服务器的报文,如图3的实线所示。
本实施例中,通过在每个集群服务器上启动VF,且为每个VF配置虚拟IP地址,可以使得不同集群服务器上的VF都具有虚拟IP地址,而不是如虚拟IP地址漂移方案中只能有一个集群服务器具有虚拟IP地址,从而可以扩展集群服务器的数量,可以部署更多的集群服务器。另外,每个集群服务器上启动的VF的个数与集群服务器的个数相同,且相互备份,可以实现在不同集群服务器上分别由不同的VF进行报文处理,从而不同的集群服务器可以同时工作,实现负载分担。
图3是二层网络环境为例,本发明也可以应用到三层网络环境。
图4是应用本发明的三层网络系统的示意图。如图4所示,该系统中包括属于三层设备的网关,PC41或服务器42通过网关与集群服务器通信。
图5是本发明另一实施例提出的报文处理方法的流程示意图。参见图5,该方法包括:
S51:在每个集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份。
S52:为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,每个VF的状态包括:激活状态或监听状态。
S51-S52的具体内容可以参见上一实施例,在此不再详细说明。
S53:网关向集群服务器广播特殊格式的ARP请求报文,所述ARP请求报文的目的IP地址是虚拟IP地址。
本实施例中,可以在网关上启动ARP功能,并且与通常的ARP功能中一个IP地址对应一个MAC地址不同的是,本实施例中一个IP地址对应多个MAC地址,从而该功能可以称为多MACARP功能。
网关在启动多MACARP功能时,可以广播ARP请求报文,并且该ARP请求报文是特殊格式的,以与普通的ARP请求报文进行区分。
具体的特殊格式可以预先设置。
一种方式是在普通的APR请求报文中增加新的字段,例如,参见图6,与普通的ARP请求报文相比,本实施例中的特殊格式的ARP请求报文可以是新增了选项字段(option)61,并将该字段设置为预设值,如EF。
另一种方式是改变普通的ARP请求报文中的字段值。例如,普通的ARP请求报文中操作字段的值是0x0001,本实施例中可以将该字段的值修改为0x1111。
另外,在广播ARP请求报文之前,网关可以先获取VF的虚拟IP地址,将该虚拟IP地址作为ARP请求报文的目的IP地址。
S54:每个处于激活状态的VF接收到特殊格式的ARP请求报文后,向网关发送特殊格式的ARP应答报文,所述ARP应答报文中包括自身的虚拟MAC地址。
当ARP请求报文是特殊格式时,每个处于激活状态的VF都会应答该报文,并且,相应的ARP应答报文也采用特殊格式。
特殊格式的ARP应答报文也可以是通过增加新字段或改变原有字段值的方式实现。例如,当ARP请求报文是增加值是EF的选项字段时,则相应的ARP应答报文也可以在末尾增加选项字段且值也是EF。或者,如果ARP请求报文是将操作类型修改为0x1111时,则相应的ARP应答报文也可以是将操作类型修改为0x1112。
另外,VF1在发送ARP应答报文时,在该ARP应答报文中包含VF1的虚拟MAC地址(0003-f3e2-0081),VF2在发送ARP应答报文时,在该ARP应答报文中包含VF2的虚拟MAC地址(0003-f3e2-0082)。
S55:网关接收到特殊格式的ARP应答报文时,从所述特殊格式的ARP应答报文中获取每个VF的虚拟MAC地址,得到多个虚拟MAC地址,并建立预先获取的所述虚拟IP地址与所述多个虚拟MAC地址的对应关系。
例如,网关会接收到VF1和VF2的应答报文,可以从每个应答报文中获取一个虚拟MAC地址,当应答报文是多个VF发送的,就可以获取到多个虚拟MAC地址,从而如图4所示,可以建立一个IP地址(10.80.1.234)与多个MAC地址(0003-f3e2-0081和0003-f3e2-0082)的对应关系。其中,多个MAC地址也可以称为多MAC表项。
另外,对于其他未支持该功能的正常ARP应答报文,则根据正常的ARP报文进行处理,但有相同IP的应答报文时,替换原有的ARP表项。
当需要网关向集群服务器转发报文时,该方法还可以包括:
S56:网关接收到目的IP地址是所述虚拟IP地址的报文时,根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,并采用选择的MAC地址作为目的MAC地址对所述报文进行封装后转发。
预设算法例如是对所述报文的源IP地址进行哈希运算,根据哈希运算结果在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址。
例如,网关接收到目的IP地址是10.80.1.234的报文后,可以根据源IP地址进行hash运算,以确定封装时的目的MAC地址是0003-f3e2-0081或者0003-f3e2-0082。
hash运算时例如是,对源IP地址进行hash运算的运算结果的种数与VF个数相同,每种运算结果对应一个VF,从而可以根据运算结果确定选择哪个VF的虚拟MAC地址。比如运算结果是第一种运算结果,而预先配置的是第一种运算结果对应VF1,则选择VF1的虚拟MAC地址。
例如,假设经过hash运算,PC的IP地址对应VF2的虚拟MAC地址,服务器的IP地址对应VF1的虚拟MAC地址,则如图4的虚线所示,网关将来自PC41的报文转发给DLVS2的VF2,如图4的实线所示,网关将来自服务器42的报文转发给DLVS1的VF1。
进一步的,该方法还可以包括:
S57:网关接收VF发送的特殊格式的免费ARP报文,根据所述免费ARP报文中包含的修改后的虚拟MAC地址,更新记录的MAC地址。
其中,DLVS由于物理地址冲突或者规划,可以重新设置VF的虚拟MAC地址,修改完成后每个VF会发送免费ARP报文,以通知网关进行MAC地址修改。例如,免费ARP报文中包含VF的虚拟IP地址和虚拟MAC地址,从而网关可以将与该虚拟IP地址对应的MAC地址修改为免费ARP报文中包含的MAC地址。
本实施例中,免费ARP通知消息也是特殊格式的,例如,结尾包括值是EF的选项字段,或者,将操作类型设置为与普通的操作类型不同的值,如0x1113。
本实施例以三层网络为例,可以理解的是,在二层网络中,VF发生MAC地址更换后,也可以通过广播普通格式的免费ARP报文进行通告,以使其他主机更新VF的MAC地址。
进一步的,该方法还可以包括:
S58:在发生VF状态切换时,切换后的处于激活状态的VF发送免费ARP报文,以使二层网络中的设备修改端口映射关系。
当一个DLVS服务器发生故障或者链接网络的物理链接断开时,VRRP心跳会检查到对端丢失,则其他的DLVS服务器会将优先级最高的VF,由listen状态转换成active状态,并向外发送免费ARP报文进行通告,二层网络中的设备接收到免费ARP报文后,会修改端口映射关系,例如,将原来的第一端口对应第一MAC地址修改为第二端口对应第一MAC地址,其中,第一端口是连接切换前的VF的端口,第二端口是连接切换后的VF的端口。
例如,参见图7,DLVS1上的VF1的链路断开后,DLVS2上的VF1可以检测到DLCS1出现故障,则DLVS2上的VF1将从监听状态切换为激活状态,之后DLVS2上的VF1可以发送免费ARP报文,从而二层网络中的设备将VF1的虚拟MAC地址对应的端口由DLVS1上的VF1对应的端口切换为DLVS2上的VF1对应的端口,从而后续发送给VF1的虚拟MAC地址的报文从DLVS1上的VF1切换为DLVS2上的VF1。
网关接收到免费ARP报文后,由于MAC地址并未变化,则多MAC表项没有区别,只刷新更新时间,内容不变。后续,发往这个MAC地址的报文则在网关处处理不变,还是根据源IP地址进行MAC地址封装,报文在二层网络中,根据MAC地址转发到新的VF上。
在三层网络中,上述的免费ARP报文也可以采用特殊格式,例如,新增值是EF的选项字段。
本实施例在应用到三层网络环境时,还可以进一步实现网关的多MAC表项,一个IP地址可以对应多个MAC地址;通过对源IP地址进行哈希运算,可以确定封装的MAC地址。通过新增字段或改变已有字段值的方式可以识别多MACARP功能,以进行多MAC地址学习及MAC地址变更后表项替换。
图8是本发明另一实施例提出的报文处理系统的结构示意图。该系统包括集群服务器81,集群服务器81包括:启动模块811、配置模块812、判断模块813和应答模块814。
启动模块811用于在自身的集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份。
配置模块812用于为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,每个VF的状态包括:激活状态或监听状态;
判断模块813用于触发每个处于激活状态的VF接收到ARP请求报文后,判断所述VF是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址;
可选的,所述判断模块813具体用于:
如果所述ARP请求报文是普通格式的ARP请求报文,则根据预设算法判断自身是否应答;或者,
如果所述ARP请求报文是预设的特殊格式的ARP请求报文,则直接确定自身应答,其中,所述特殊格式的ARP请求报文是在普通格式的ARP请求报文中增加预设字段,或者,修改普通格式的ARP请求报文中已有字段的字段值。
可选的,所述判断模块813进一步用于:
对所述ARP请求报文中的源MAC地址进行哈希运算,根据哈希运算结果判断自身是否应答。
应答模块814用于在所述VF判断出应答时,触发所述VF发送ARP应答报文,所述ARP应答报文中包括所述VF的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址。
一些实施例中,参见图9,集群服务器81还包括:发送模块815。
发送模块815用于在发生VF状态切换时,触发切换后的处于激活状态的VF发送免费ARP报文,以使二层网络中的设备修改端口映射关系。
一些实施例中,参见图9,当所述ARP请求报文是特殊格式的ARP请求报文时,所述特殊格式的ARP请求报文是网关广播的,所述网关预先获取为所有VF配置的相同的虚拟IP地址,以便将所述虚拟IP地址作为所述特殊格式的ARP请求报文的目的IP地址,应答模块814具体用于:
在所述VF判断出应答时,向网关发送与所述特殊格式的ARP请求报文对应的特殊格式的ARP应答报文,所述特殊格式的ARP应答报文中包含对应的VF的虚拟MAC地址。
相应的,参见图9,所述系统还包括网关82,网关82包括:多MAC表项建立模块821。
多MAC表项建立模块821用于接收所述VF发送的所述特殊格式的ARP应答报文,从所述特殊格式的ARP应答报文中获取每个VF的虚拟MAC地址,得到多个虚拟MAC地址,并建立预先获取的所述虚拟IP地址与所述多个虚拟MAC地址的对应关系。
一些实施例中,参见图9,网关82还可以包括封装模块822。
封装模块822用于接收到目的IP地址是所述虚拟IP地址的报文时,根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,并采用选择的MAC地址作为目的MAC地址对所述报文进行封装后转发。
可选的,所述封装模块822用于根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,包括:
对所述报文的源IP地址进行哈希运算,根据哈希运算结果在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址。
可以理解的是,本实施例的系统与上述的方法实施例对应,具体内容可以参见方法实施例中的相关描述,在此不再详细说明。
本实施例中,通过在每个集群服务器上启动VF,且为每个VF配置虚拟IP地址,可以使得不同集群服务器上的VF都具有虚拟IP地址,而不是如虚拟IP地址漂移方案中只能有一个集群服务器具有虚拟IP地址,从而可以扩展集群服务器的数量,可以部署更多的集群服务器。另外,每个集群服务器上启动的VF的个数与集群服务器的个数相同,且相互备份,可以实现在不同集群服务器上分别由不同的VF进行报文处理,从而不同的集群服务器可以同时工作,实现负载分担。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种报文处理方法,其特征在于,包括:
在每个集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份;
为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,所述每个VF的状态包括:激活状态或监听状态;
每个处于激活状态的VF接收到ARP请求报文后,判断自身是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址;
VF在判断出自身应答时,发送ARP应答报文,所述ARP应答报文中包括自身的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址。
2.根据权利要求1所述的方法,其特征在于,所述判断自身是否应答所述ARP请求报文,包括:
如果所述ARP请求报文是普通格式的ARP请求报文,则根据预设算法判断自身是否应答;或者,
如果所述ARP请求报文是预设的特殊格式的ARP请求报文,则直接确定自身应答,其中,所述特殊格式的ARP请求报文是在普通格式的ARP请求报文中增加预设字段,或者,修改普通格式的ARP请求报文中已有字段的字段值。
3.根据权利要求1所述的方法,其特征在于,还包括:
在发生VF状态切换时,切换后的处于激活状态的VF发送免费ARP报文,以使二层网络中的设备修改端口映射关系。
4.根据权利要求2所述的方法,其特征在于,当所述ARP请求报文是特殊格式的ARP请求报文时,所述特殊格式的ARP请求报文是网关广播的,所述网关预先获取为所有VF配置的相同的虚拟IP地址,以便将所述虚拟IP地址作为所述特殊格式的ARP请求报文的目的IP地址,所述VF在判断出自身应答时,发送ARP应答报文,包括:
VF在判断出自身应答时,向网关发送与所述特殊格式的ARP请求报文对应的特殊格式的ARP应答报文,所述特殊格式的ARP应答报文中包含对应的VF的虚拟MAC地址,以使所述网关从所述特殊格式的ARP应答报文中获取每个VF的虚拟MAC地址,得到多个虚拟MAC地址,并建立预先获取的所述虚拟IP地址与所述多个虚拟MAC地址的对应关系。
5.根据权利要求4所述的方法,其特征在于,还包括:
网关接收到目的IP地址是所述虚拟IP地址的报文时,根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,并采用选择的MAC地址作为目的MAC地址对所述报文进行封装后转发。
6.根据权利要求5所述的方法,其特征在于,所述根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,包括:
对所述报文的源IP地址进行哈希运算,根据哈希运算结果在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址。
7.一种报文处理系统,其特征在于,包括集群服务器,所述集群服务器包括:
启动模块,用于在自身的集群服务器上启动与集群服务器个数相同的VF,且不同集群服务器上的相同VF相互备份;
配置模块,用于为所有VF配置相同的虚拟IP地址,以及为每个VF配置唯一的虚拟MAC地址,并配置每个VF的状态,其中,所述每个VF的状态包括:激活状态或监听状态;
判断模块,用于触发每个处于激活状态的VF接收到ARP请求报文后,判断所述VF是否应答所述ARP请求报文,所述ARP请求报文的目的IP地址是所述虚拟IP地址;
应答模块,用于在所述VF判断出应答时,触发所述VF发送ARP应答报文,所述ARP应答报文中包括所述VF的虚拟MAC地址,以使接收者在后续向集群服务器发送报文时根据所述虚拟MAC地址确定目的MAC地址。
8.根据权利要求7所述的系统,其特征在于,所述判断模块具体用于:
如果所述ARP请求报文是普通格式的ARP请求报文,则根据预设算法判断自身是否应答;或者,
如果所述ARP请求报文是预设的特殊格式的ARP请求报文,则直接确定自身应答,其中,所述特殊格式的ARP请求报文是在普通格式的ARP请求报文中增加预设字段,或者,修改普通格式的ARP请求报文中已有字段的字段值。
9.根据权利要求8所述的系统,其特征在于,当所述ARP请求报文是特殊格式的ARP请求报文时,所述特殊格式的ARP请求报文是网关广播的,所述网关预先获取为所有VF配置的相同的虚拟IP地址,以便将所述虚拟IP地址作为所述特殊格式的ARP请求报文的目的IP地址,所述应答模块具体用于:
在所述VF判断出应答时,向网关发送与所述特殊格式的ARP请求报文对应的特殊格式的ARP应答报文,所述特殊格式的ARP应答报文中包含对应的VF的虚拟MAC地址;
所述系统还包括:网关,所述网关包括:
多MAC表项建立模块,用于接收所述VF发送的所述特殊格式的ARP应答报文,从所述特殊格式的ARP应答报文中获取每个VF的虚拟MAC地址,得到多个虚拟MAC地址,并建立预先获取的所述虚拟IP地址与所述多个虚拟MAC地址的对应关系。
10.根据权利要求9所述的系统,其特征在于,所述网关还包括:
封装模块,用于接收到目的IP地址是所述虚拟IP地址的报文时,根据预设算法在与所述虚拟IP地址对应的多个虚拟MAC地址中选择一个MAC地址,并采用选择的MAC地址作为目的MAC地址对所述报文进行封装后转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203148.4A CN105743993B (zh) | 2016-03-31 | 2016-03-31 | 报文处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203148.4A CN105743993B (zh) | 2016-03-31 | 2016-03-31 | 报文处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105743993A true CN105743993A (zh) | 2016-07-06 |
CN105743993B CN105743993B (zh) | 2019-03-05 |
Family
ID=56253588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610203148.4A Active CN105743993B (zh) | 2016-03-31 | 2016-03-31 | 报文处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105743993B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411771A (zh) * | 2016-09-09 | 2017-02-15 | 北京锐安科技有限公司 | 一种数据转发方法及系统 |
WO2018107749A1 (zh) * | 2016-12-14 | 2018-06-21 | 郑州云海信息技术有限公司 | 一种在集群服务器系统中进行数据交换的方法 |
CN108259294A (zh) * | 2017-02-28 | 2018-07-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN109302498A (zh) * | 2018-11-29 | 2019-02-01 | 杭州迪普科技股份有限公司 | 一种网络资源访问方法及装置 |
CN109522287A (zh) * | 2018-09-18 | 2019-03-26 | 平安科技(深圳)有限公司 | 分布式文件存储集群的监控方法、系统、设备及介质 |
CN110581890A (zh) * | 2019-09-10 | 2019-12-17 | 中国建设银行股份有限公司 | 一种服务请求的路由方法和装置 |
CN110601802A (zh) * | 2019-08-16 | 2019-12-20 | 网宿科技股份有限公司 | 一种降低集群回父带宽的方法及装置 |
CN110750393A (zh) * | 2019-09-03 | 2020-02-04 | 北京字节跳动网络技术有限公司 | 避免网络服务双机热备脑裂的方法、装置、介质和设备 |
CN113835825A (zh) * | 2021-03-03 | 2021-12-24 | 京东科技控股股份有限公司 | 虚拟服务主机的动态调整方法、装置、服务器和存储介质 |
CN114268630A (zh) * | 2021-12-14 | 2022-04-01 | 浪潮思科网络科技有限公司 | 基于静态arp表项实现随机负载均衡访问方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404619A (zh) * | 2008-11-17 | 2009-04-08 | 杭州华三通信技术有限公司 | 一种实现服务器负载均衡的方法和一种三层交换机 |
CN102123105A (zh) * | 2011-04-20 | 2011-07-13 | 杭州华三通信技术有限公司 | Vrrp标准协议与vrrp负载均衡协议之间的切换方法和设备 |
CN102333027A (zh) * | 2011-06-17 | 2012-01-25 | 杭州华三通信技术有限公司 | 基于vrrpe备份组的流量负载分担实现方法及其装置 |
US20130188521A1 (en) * | 2012-01-20 | 2013-07-25 | Brocade Communications Systems, Inc. | Managing a large network using a single point of configuration |
CN104023095A (zh) * | 2014-06-23 | 2014-09-03 | 杭州华三通信技术有限公司 | 一种虚拟网关媒质访问控制地址响应方法和设备 |
CN105262685A (zh) * | 2014-07-14 | 2016-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
-
2016
- 2016-03-31 CN CN201610203148.4A patent/CN105743993B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404619A (zh) * | 2008-11-17 | 2009-04-08 | 杭州华三通信技术有限公司 | 一种实现服务器负载均衡的方法和一种三层交换机 |
CN102123105A (zh) * | 2011-04-20 | 2011-07-13 | 杭州华三通信技术有限公司 | Vrrp标准协议与vrrp负载均衡协议之间的切换方法和设备 |
CN102333027A (zh) * | 2011-06-17 | 2012-01-25 | 杭州华三通信技术有限公司 | 基于vrrpe备份组的流量负载分担实现方法及其装置 |
US20130188521A1 (en) * | 2012-01-20 | 2013-07-25 | Brocade Communications Systems, Inc. | Managing a large network using a single point of configuration |
CN104023095A (zh) * | 2014-06-23 | 2014-09-03 | 杭州华三通信技术有限公司 | 一种虚拟网关媒质访问控制地址响应方法和设备 |
CN105262685A (zh) * | 2014-07-14 | 2016-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411771A (zh) * | 2016-09-09 | 2017-02-15 | 北京锐安科技有限公司 | 一种数据转发方法及系统 |
WO2018107749A1 (zh) * | 2016-12-14 | 2018-06-21 | 郑州云海信息技术有限公司 | 一种在集群服务器系统中进行数据交换的方法 |
CN108259294A (zh) * | 2017-02-28 | 2018-07-06 | 新华三技术有限公司 | 报文处理方法及装置 |
CN108259294B (zh) * | 2017-02-28 | 2021-01-26 | 新华三技术有限公司 | 报文处理方法及装置 |
CN109522287A (zh) * | 2018-09-18 | 2019-03-26 | 平安科技(深圳)有限公司 | 分布式文件存储集群的监控方法、系统、设备及介质 |
CN109522287B (zh) * | 2018-09-18 | 2023-08-18 | 平安科技(深圳)有限公司 | 分布式文件存储集群的监控方法、系统、设备及介质 |
CN109302498A (zh) * | 2018-11-29 | 2019-02-01 | 杭州迪普科技股份有限公司 | 一种网络资源访问方法及装置 |
CN109302498B (zh) * | 2018-11-29 | 2021-03-23 | 杭州迪普科技股份有限公司 | 一种网络资源访问方法及装置 |
CN110601802A (zh) * | 2019-08-16 | 2019-12-20 | 网宿科技股份有限公司 | 一种降低集群回父带宽的方法及装置 |
CN110601802B (zh) * | 2019-08-16 | 2022-05-20 | 网宿科技股份有限公司 | 一种降低集群回父带宽的方法及装置 |
CN110750393A (zh) * | 2019-09-03 | 2020-02-04 | 北京字节跳动网络技术有限公司 | 避免网络服务双机热备脑裂的方法、装置、介质和设备 |
CN110750393B (zh) * | 2019-09-03 | 2023-10-13 | 北京字节跳动网络技术有限公司 | 避免网络服务双机热备脑裂的方法、装置、介质和设备 |
CN110581890A (zh) * | 2019-09-10 | 2019-12-17 | 中国建设银行股份有限公司 | 一种服务请求的路由方法和装置 |
CN110581890B (zh) * | 2019-09-10 | 2022-02-22 | 中国建设银行股份有限公司 | 一种服务请求的路由方法和装置 |
CN113835825A (zh) * | 2021-03-03 | 2021-12-24 | 京东科技控股股份有限公司 | 虚拟服务主机的动态调整方法、装置、服务器和存储介质 |
CN114268630A (zh) * | 2021-12-14 | 2022-04-01 | 浪潮思科网络科技有限公司 | 基于静态arp表项实现随机负载均衡访问方法、装置及设备 |
CN114268630B (zh) * | 2021-12-14 | 2024-04-12 | 浪潮思科网络科技有限公司 | 基于静态arp表项实现随机负载均衡访问方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105743993B (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105743993A (zh) | 报文处理方法和系统 | |
CN101815007B (zh) | 一种基于vrrp负载均衡的快速切换方法和设备 | |
JP7009560B2 (ja) | プロセス制御システムに冗長性を提供するための方法および装置 | |
US10225233B2 (en) | Media access control (MAC) address learning in virtualized computing environments | |
US7929420B2 (en) | Method and apparatus for learning VRRP backup routers | |
US9525648B2 (en) | Method for acquiring physical address of virtual machine | |
US7848327B2 (en) | Methods and apparatus for creating addresses | |
CN101110776B (zh) | 数据业务的备份方法、备份装置与备份系统 | |
US8938516B1 (en) | Switch provided failover | |
CN102025630A (zh) | 负载均衡方法及负载均衡系统 | |
CN110572318A (zh) | 一种主备切换方法及路由器 | |
CN104506372A (zh) | 一种实现主备服务器切换的方法及系统 | |
CN102123105A (zh) | Vrrp标准协议与vrrp负载均衡协议之间的切换方法和设备 | |
CN105721328B (zh) | 一种vrrp负载均衡的方法、装置和路由器 | |
CN106101297B (zh) | 一种报文应答方法及装置 | |
CN102437960B (zh) | 集群模式的检测处理方法、系统和网络设备 | |
JP5775473B2 (ja) | エッジ装置冗長化システム、切替制御装置およびエッジ装置冗長化方法 | |
CN104243304A (zh) | 非全连通拓扑结构的数据处理方法、设备和系统 | |
CN104158694B (zh) | DHCPv6服务器的热备方法和装置 | |
US8438261B2 (en) | Failover scheme with service-based segregation | |
US10491421B2 (en) | Ring protection network module | |
CN104780097A (zh) | 非全连接网络拓扑条件下的热备方法和第一路由设备 | |
US9554290B2 (en) | Wireless communication system and method for automatically switching device identifications | |
US20230246951A1 (en) | Data transfer for access points or switches in a cluster upon data tunnel failure | |
CN116743614A (zh) | 一种实现nfv的nat网关高可靠性的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |