CN109309635A - 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质 - Google Patents

虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质 Download PDF

Info

Publication number
CN109309635A
CN109309635A CN201811141619.9A CN201811141619A CN109309635A CN 109309635 A CN109309635 A CN 109309635A CN 201811141619 A CN201811141619 A CN 201811141619A CN 109309635 A CN109309635 A CN 109309635A
Authority
CN
China
Prior art keywords
message
flow table
matching
virtual machine
matched
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811141619.9A
Other languages
English (en)
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.)
New H3C Cloud Technologies Co Ltd
Original Assignee
New H3C Cloud Technologies 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 New H3C Cloud Technologies Co Ltd filed Critical New H3C Cloud Technologies Co Ltd
Priority to CN201811141619.9A priority Critical patent/CN109309635A/zh
Publication of CN109309635A publication Critical patent/CN109309635A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质,涉及通信技术领域,该方法包括:获取目标网络设备发送的报文;在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,第一流表用于在检测到报文是未被追踪过的报文时指示报文匹配第二流表,第二流表用于在判断出报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃报文;利用第一流表和第二流表对报文进行匹配,并在匹配成功的情况下对报文进行处理,本申请通过目标流表匹配的方式,能够阻止各种报文的新连接请求,进而缓解了现有的虚拟机弹性伸缩方式局限性较大的技术问题。

Description

虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质
技术领域
本申请涉及通信技术领域,尤其是涉及一种虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质。
背景技术
为了连接虚拟机网络,出现了虚拟交换机,虚拟交换机实现了物理交换机所具有的大部分功能,用户态数据处理就是其中一。其中,Open Vswitch(开源虚拟交换机,OVS)是当前最流行的一款实现虚拟机交换机的开源软件。
现有技术中,不断地监控虚拟机资源,如果虚拟机资源值达到了预定阈值,就会回收虚拟机。若即将回收的虚拟机获取到新的(Transmission Control Protocol,TCP)连接,那么在TCP三次握手过程中,OVS用户态在处理三次握手的首包同步序列编号(SynchronizeSequence Numbers,简称SYN)报文时,采取阻断丢弃的方式,使其三次握手超时失败,最终阻止了新的TCP报文的连接。也就是说,现有技术通过OVS阻断SYN报文,从而达到拒绝新的TCP连接的目的,但是该方法不能阻断UDP和ICMP报文与虚拟机的连接。
发明内容
有鉴于此,本申请的目的在于提供一种虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质,以缓解了现有的虚拟机弹性伸缩方式局限性较大的技术问题。
第一方面,本申请实施例提供了一种虚拟机弹性伸缩方法,应用于虚拟交换机,包括:获取目标网络设备发送的报文;在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
进一步地,所述第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息;所述第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
进一步地,利用所述第一流表和所述第二流表对所述报文进行匹配和处理包括:在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文。
进一步地,若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行收缩处理。
第二方面,本申请实施例提供了一种虚拟机弹性伸缩装置,设置于虚拟交换机,包括:获取单元,用于获取目标网络设备发送的报文;流表创建下发单元,用于在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;匹配单元,用于利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
进一步地,所述第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息;所述第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
进一步地,所述匹配单元用于:在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文。
进一步地,所述装置还用于:若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行收缩处理。
第三方面,本申请实施例提供了一种主机设备,所述主机设备中安装有虚拟机,所述主机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面中任一项所述的方法。
在本申请实施例中,获取目标网络设备发送的报文;在确定对虚拟机进行收缩处理时,则下发第一流表和第二流表,其中,第一流表用于在检测到报文是未被追踪过的报文时指示报文匹配第二流表,第二流表用于在判断出报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;最后,利用第一流表和第二流表对所述报文进行匹配和处理。如果报文与第一流表和第二流表匹配,则可以丢弃该报文。在本实施例中,通过第一流表和第二流表匹配的方式,能够阻止各种报文的连接,进而缓解了现有的虚拟机弹性伸缩方式局限性较大的技术问题,从而实现了虚拟机弹性缩减的技术效果。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种虚拟机弹性伸缩方法的流程图;
图2是根据本申请实施例的一种组网测试网络的示意图;
图3是根据本申请实施例的另一种虚拟机弹性伸缩方法的流程图;
图4是根据本申请实施例的一种虚拟机弹性伸缩装置的示意图;
图5是根据本申请实施例的一种主机设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
通过背景技术部分描述可知,在现有技术中,通过OVS用户态来阻断TCP连接报文中的SYN报文,但是该方法不能阻断UDP和ICMP连接报文。基于此,在本实施例中,提出了一种虚拟机弹性伸缩方法,该方法通过报文匹配目标流表的方式,将已追踪过且通过新建立的连接向虚拟机发送的报文丢弃。通过该阻断方式,不仅能够阻断TCP连接报文,还能够阻断UDP和ICMP连接报文,下面将结合具体实施例介绍该方法。
实施例一:
根据本申请实施例,提供了一种虚拟机弹性伸缩方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种虚拟机弹性伸缩方法的流程图,如图1所示,该方法应用于虚拟交换机,该方法包括如下步骤:
步骤S102,获取目标网络设备发送的报文;
步骤S104,在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;
在本实施例中,目标网络设备可以为除虚拟机所在主机的其他主机,还可以为出该虚拟机之外的其他虚拟机,本实施例中不做具体限定。其中,在本实施例中,可以通过虚拟交换机下发第一流表和第二流表。
例如,在图2所示的组网测试网络中,该组网测试网络采取交换机连接三台主机CVM(云虚拟机,Cloud Virtual Machine)、主机cvk1和主机cvk2。其中,主机cvk1包含虚拟机VM1和虚拟机VM2,主机cvk2包含虚拟机VM3和虚拟机VM4。虚拟机VM1和虚拟机VM2在虚拟交换机1中的端口ID分别为vnet1和vnet2。虚拟机VM3和虚拟机VM4在虚拟交换机2中的端口ID分别为vnet3和vnet4。在本实施例中,如果设置虚拟机VM1弹性伸缩,那么主机或其他虚拟机(即,上述目标网络设备)可以给虚拟机VM1发送连接报文,此时,虚拟交换机1执行上述步骤S102至步骤S106,该报文都会被丢弃。
步骤S106,利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
在本申请实施例中,获取目标网络设备发送的报文;在确定对虚拟机进行收缩处理时,则下发第一流表和第二流表,其中,第一流表用于在检测到报文是未被追踪过的报文时指示报文匹配第二流表,第二流表用于在判断出报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;最后,利用第一流表和第二流表对所述报文进行匹配和处理。如果报文与第一流表和第二流表匹配,则可以丢弃该报文。在本实施例中,通过第一流表和第二流表匹配的方式,能够阻止各种报文的连接,进而缓解了现有的虚拟机弹性伸缩方式局限性较大的技术问题,从而实现了虚拟机弹性缩减的技术效果。
在本实施例中,首先,需要设置虚拟机的弹性伸缩模式。在将虚拟机设置为弹性伸缩模式之后,如果获取到新的报文连接请求,就可以阻断该新的报文连接请求,从而实现虚拟机弹性缩减。
可选地,在本实施例中,通过以下方式开启对所述虚拟机的弹性伸缩处理:
将所述虚拟机连接端口的预设标识字段设置为预设标识,其中,所述预设标识为禁止报文请求连接的标识字段。例如该预设标识字段可以为标识字段pkt-connect-forbid。虚拟交换机维护了一个数据库,在该数据库中包括虚拟交换机各个端口的表格。在本实施例中,可以在对应端口的表格中设置相应的标识字段pkt-connect-forbid。例如,确定如图2所示的虚拟机VM1进行收缩处理,虚拟机VM1与虚拟交换机1之间通过端口vnet1进行连接。此时,就可以在虚拟交换机维护的数据库中,查找该端口vnet1所对应的表格,并在该表格中添加标识字段pkt-connect-forbid。
如果不设置该预设标识字段pkt-connect-forbid,那么该字段的字段值默认为false,此时能正常连接上虚拟机,并能进入该虚拟机所在的主机设备。
如果设置虚拟机该预设标识字段pkt-connect-forbid的字段值为true,此时不能正常连接上该虚拟机。
在将虚拟机该预设标识字段pkt-connect-forbid的字段值为true之后,如果再将该预设标识字段pkt-connect-forbid设置为false,此时又能正常连接上虚拟机。
可选地,在本实施例中,可以设置虚拟机自动设置弹性伸缩模式,还可以通过手动设置方式设置虚拟机的弹性伸缩模式。
具体地,手动设置方式为:用户在该虚拟机所在主机设备中调用ovs-vsctl命令,并通过该ovs-vsctl命令向虚拟机的连接端口下发命令,其中,ovs-vsctl命令中包括控制命令字,用于控制将该虚拟机连接端口的预设标识字段设置为预设标识(例如,true)。
具体地,自动设置弹性伸缩模式的方式为:检测虚拟机资源值,如果检测到虚拟机资源值达到了预定阈值,则自动向虚拟机的连接端口下发命令,以将该虚拟机连接端口的预设标识字段设置为预设标识(例如,true)。除此之外,还可以在检测到虚拟机资源值小于预定阈值之后,自动向虚拟机的连接端口下发另外一个命令,以将该虚拟机连接端口的预设标识字段设置为false。
需要说明的是,在本实施例中,还可以结合手动设置方式和自动设置方式设置预设标识字段,本实施例中不做具体限定。
在本实施例中,在将虚拟机该预设标识字段pkt-connect-forbid的字段值为true之后,创建包含第一流表和第二流表的所述目标流表。其中,该目标流表用于指示虚拟交换机丢弃被标记为已追踪且通过新建立的连接向所述虚拟机发送的报文。
在本发明一实施例中,上述目标流表(即,包含第一流表和第二流表的流表)为带“+new”状态的ip协议流表,例如,该ip协议流表中可以携带以下类似信息:+new,out_put=vnet0,ip actions=drop,其中,“+new”表示新的报文连接,“out_put=vnet0”表示报文发送至端口vnet0,并通过端口vnet0发送给与其连接的虚拟机VM1,“actions=drop”表示丢弃该报文。“+new,out_put=vnet0,ip actions=drop”可以表示为:丢弃需要通过建立新的连接来发送的报文,以及通过端口vnet0向与其连接的虚拟机VM1发送的报文。
可选地,在本实施例中,在该第二流表中可以包括以下信息:“+new,out_put=vnet0,ip actions=drop”。
需要说明的是,在本实施例中,CT(connection track)追踪模块用于维护通信端点间的连接状态信息。
CT追踪模块可以通过流表匹配域的匹配ct_state来获取,通过该t_state能够提供多种网络连接状态。例如,new:表示为一个连接的开始状态(NEW),该状态用于判断该报文是否为当前网络连接中的第一个报文。trk:表明当前报文经过了CT追踪模块。当trk为-trk时,则用于判断该报文是否为未被追踪过的报文;当trk为+trk时,则用于判断该报文是否为被追踪过的报文。
在本实施例中,创建的目标流表的一个可选实施例为:
(1)table=0,priority=100,ip,ct_state=-trk,action=ct(table=1)
(2)table=1,out_port=vnet1,ip,ct_state=+trk+new,action=drop
流表(1)即为上述第一流表,流表(2)即为上述第二流表。流表(1)为优先级最高的流表。
在本实施例中,第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息。
针对流表(1)table=0,priority=100,ip,ct_state=-trk,action=ct(table=1)。匹配域为:priority=100,ip,ct_state=-trk,动作域为:action=ct(table=1)。匹配域中的匹配“ct_state=-trk”用于确定报文是否未被追踪过。动作域“action=ct(table=1)”表示若报文未被追踪过,则将该报文执行进入table=1的动作(即,该报文匹配table=1)。基于此,结合第一流表的定义,该流表(1)用于在判断出报文是未被追踪过的报文的情况下,将该报文与table=1进行匹配。
在本实施例中,第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
针对流表(2)table=1,out_port=vnet1,ip,ct_state=+trk+new,action=drop。其中,table=1为该流表的标记号,匹配域中的匹配out_port=vnet1表示图2中虚拟机VM1与虚拟交换机1之间连接端口的端口信息,ip表示虚拟机VM1与虚拟交换机1之间交互报文的协议类型信息,ct_state=+trk+new用于判断报文是否为被追踪过且是否通过新建立连接发送的报文,action=drop用于在报文与“ct_state=+trk+new”匹配成功时指示丢弃该报文。
在本申请实施例中,在构建的目标流表中,携带“+trk+new”,以及“action=drop”。通过在流表中设置“+trk+new”和“action=drop”能够将通过新建立的连接发送的各种报文丢弃,从而解决现有技术中存在的现有的虚拟机弹性伸缩方式局限性较大的技术问题。
下面将结合图2对本申请中所涉及到的报文处理流程进行详细的介绍。
假设,在如图2所示的组网测试网络中,设置虚拟机VM1弹性伸缩。
在将虚拟机VM1设置为弹性伸缩之后,如果虚拟交换机1获取到从其他主机或者其他虚拟机转发至vnet1端口的报文时,检测虚拟机VM1是否被设置为收缩状态,若检测到是,则将报文与第一流表和第二流表进行匹配。
可选地,在本实施例中,通过以下方式检测虚拟机VM1是否被设置为弹性伸缩状态:
若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行弹性伸缩处理。
也就是说,在本实施例中,如果虚拟交换机1检测到该虚拟机VM1与虚拟交换机1之间的连接端口vnet1的预设标识字段为预设标识(例如,true),则确定虚拟机VM1被设置为弹性伸缩状态。
可选地,利用所述第一流表和所述第二流表对所述报文进行匹配和处理包括如下步骤:
步骤S1041,在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;
步骤S1042,若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文;
假设,目标流表为:
(1)table=0,priority=100,ip,ct_state=-trk,action=ct(table=1);
(2)table=0,priority=10,arp,action=normal;
(3)table=0,priority=1,action=drop;
(4)table=1,out_port=vnet1,ip,ct_state=+trk+new,action=drop。
具体地,在本实施例中,一个报文从主机或其他虚拟机转发至vnet1端口时,刚开始报文处于未被追踪untracked状态(即ct_state=-trk),根据优先级会进行流表(1)的匹配,此时进行ct action动作。该动作是将报文与流表(4)进行匹配。
需要说明的是,如果报文与流表(1)不匹配,则可以将该报文与流表(2)进行匹配。若该报文与流表(2)相匹配,则表明允许arp协议的报文通过。若该报文与流表(2)不匹配,则可以将该报文与流表(3)进行匹配,若该报文与流表(3)相匹配,则表示丢弃该报文。
在报文执行ct aciton后,报文处于已追踪tracked状态(即ct_state=+trk),此时CT追踪模块跟踪并记录该报文的连接状态。
由于该报文是发给vnet1端口的,满足流表(4)中的out_port=vnet1。同时虚拟交换机1会新建立一个从主机或其他虚拟机到vnet1之间的new connection(新建立的连接),此时虚拟交换机会标记此时的连接状态为“+new”状态。虚拟交换机1通过CT追踪模块的接口获得该连接的状态为:ct_state=+new。此时,虚拟交换机1会将该新连接报与流表(4)进行匹配。执行完流表(4)中的action后,该报文被丢弃drop。这样保证了从主机或其他虚拟机端口转发到vnet1端口的报文(包含icmp、tcp、udp)都被丢弃drop。
通过上述描述可知,虚拟交换机1在确定出报文与流表(1)相匹配之后,会新建立一个从主机或其他虚拟机到vnet1之间的连接。此时,若虚拟交换机通过CT追踪模块的接口获取到该连接为新建立的连接,就会将该报文与流表(4)进行匹配,从而丢弃该报文。然而,针对在将虚拟机VM1设置为弹性伸缩之前已经处理的业务,仍然能够正常处理。在本实施例中,通过目标流表中的“+new,out_put=vnet0,ip actions=drop”阻断的是已追踪且通过新建立的连接向与vnet0端口相连接的虚拟机发送的报文,针对虚拟机VM1设置为弹性伸缩之前已经处理的业务,不执行丢弃的操作。
通过上述描述可知,本实施例所提供的方法,不仅能够阻止TCP连接的SYN报文,而且也阻止了其他报文如UDP或ICMP的连接,保证了报文连接的拒绝,使得虚拟机弹性缩减更加高效。
图3是根据本申请实施例的另一种虚拟机弹性伸缩方法的流程图,如图3所示,该方法应用于虚拟交换机,该方法包括如下步骤:
步骤S301,检测是否将虚拟机的连接端口的预设标识字段设置为预设标识,其中,预设标识为禁止报文请求连接的标识字段;如是,则执行步骤S302至步骤S304,否则执行步骤S305至步骤S306;
步骤S302,构建并下发目标流表,其中,目标流表中包括第一流表和第二流表,第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;
步骤S303,获取目标网络设备发送的报文,并将该报文与目标流表中的流表进行匹配;
步骤S304,若匹配,则丢弃该报文;
步骤S305,不构建目标流表;
步骤S306,获取目标网络设备发送的报文,并接受报文。
通过上述描述可知,本实施例所提供的方法,不仅能够阻止TCP连接的SYN报文,而且也阻止了其他报文如UDP或ICMP的连接,保证了报文连接的拒绝,使得虚拟机弹性缩减更加高效。
实施例二:
本申请实施例还提供了一种虚拟机弹性伸缩装置,该虚拟机弹性伸缩装置主要用于执行本申请实施例上述内容所提供的虚拟机弹性伸缩方法,以下对本申请实施例提供的虚拟机弹性伸缩装置做具体介绍。
图4是根据本申请实施例的一种虚拟机弹性伸缩装置的示意图,如图2所示,该虚拟机弹性伸缩装置主要包括获取单元10,流表创建下发单元20和匹配单元30,其中:
获取单元,用于获取目标网络设备发送的报文;
流表创建下发单元,用于在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;
匹配单元,用于利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
在本申请实施例中,获取目标网络设备发送的报文;在确定对虚拟机进行收缩处理时,则下发第一流表和第二流表,其中,第一流表用于在检测到报文是未被追踪过的报文时指示报文匹配第二流表,第二流表用于在判断出报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;最后,利用第一流表和第二流表对所述报文进行匹配和处理。如果报文与第一流表和第二流表匹配,则可以丢弃该报文。在本实施例中,通过第一流表和第二流表匹配的方式,能够阻止各种报文的连接,进而缓解了现有的虚拟机弹性伸缩方式局限性较大的技术问题,从而实现了虚拟机弹性缩减的技术效果。
可选地,所述第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息;所述第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
可选地,所述匹配单元用于:在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文。
可选地,所述装置还用于:若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行收缩处理。
本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例四:
参见图5,本申请实施例还提供一种主机设备100,包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本申请实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
在本申请实施例中,还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述方法实施例中任一所述的方法。
另外,在本申请实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种虚拟机弹性伸缩方法,其特征在于,应用于虚拟交换机,包括:
获取目标网络设备发送的报文;
在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;
利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
2.根据权利要求1所述的方法,其特征在于,
所述第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息;
所述第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
3.根据权利要求2所述的方法,其特征在于,利用所述第一流表和所述第二流表对所述报文进行匹配和处理包括:
在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;
若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文。
4.根据权利要求1所述的方法,其特征在于,若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行收缩处理。
5.一种虚拟机弹性伸缩装置,其特征在于,设置于虚拟交换机,包括:
获取单元,用于获取目标网络设备发送的报文;
流表创建下发单元,用于在确定对虚拟机进行收缩处理时,下发第一流表和第二流表,所述第一流表用于在检测到所述报文是未被追踪过的报文时指示所述报文匹配所述第二流表,所述第二流表用于在判断出所述报文的跟踪状态为被追踪过且通过新建立连接发送的报文时丢弃所述报文;
匹配单元,用于利用所述第一流表和所述第二流表对所述报文进行匹配和处理。
6.根据权利要求5所述的装置,其特征在于,
所述第一流表的匹配域包括:所述第一流表的优先级和用于匹配未被追踪过的报文的匹配字段,所述第一流表的动作域包括:用于在所述报文与所述第一流表的匹配域中的信息匹配成功时指示所述报文匹配所述第二流表的动作信息;
所述第二流表的匹配域包括:所述虚拟机与所述虚拟交换机之间连接端口的端口信息、所述虚拟机与所述虚拟交换机之间交互报文的协议类型信息、用于匹配被追踪过且通过新建立连接发送的报文的匹配字段,所述第二流表的动作域包括:用于在所述报文与所述第二流表的匹配域中的信息匹配成功时指示丢弃所述报文的动作信息。
7.根据权利要求6所述的装置,其特征在于,所述匹配单元用于:
在接收到所述报文之后进行流表匹配,若匹配到优先级最高的流表为所述第一流表,则将所述报文与所述第一流表中的匹配域进行匹配;
若所述报文与所述第一流表中匹配域匹配成功,则按照所述第一流表中动作域的指示将所述报文与所述第二流表中的匹配域进行匹配,并在报文与所述第二流表中匹配域匹配成功的情况下,按照所述第二流表中动作域的指示丢弃所述报文。
8.根据权利要求5所述的装置,其特征在于,所述装置还用于:若检测到所述虚拟机连接端口的预设标识字段为所述预设标识,则确定对所述虚拟机进行收缩处理。
9.一种主机设备,所述主机设备中安装有虚拟机,所述主机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至4中任一项所述的方法。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行上述权利要求1至4中任一项所述的方法。
CN201811141619.9A 2018-09-28 2018-09-28 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质 Pending CN109309635A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811141619.9A CN109309635A (zh) 2018-09-28 2018-09-28 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811141619.9A CN109309635A (zh) 2018-09-28 2018-09-28 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质

Publications (1)

Publication Number Publication Date
CN109309635A true CN109309635A (zh) 2019-02-05

Family

ID=65225175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811141619.9A Pending CN109309635A (zh) 2018-09-28 2018-09-28 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质

Country Status (1)

Country Link
CN (1) CN109309635A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110677321A (zh) * 2019-09-25 2020-01-10 广州通导信息技术服务有限公司 一种弹性伸缩的云压测方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655532A (zh) * 2004-02-13 2005-08-17 三星电子株式会社 管理基于网际协议的语音(VoIP)系统的路由路径
CN104461731A (zh) * 2014-10-23 2015-03-25 杭州华三通信技术有限公司 一种动态资源扩展中虚拟机资源回收方法和装置
CN105721566A (zh) * 2016-01-29 2016-06-29 华为技术有限公司 一种端口重定向的方法、服务器和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655532A (zh) * 2004-02-13 2005-08-17 三星电子株式会社 管理基于网际协议的语音(VoIP)系统的路由路径
CN104461731A (zh) * 2014-10-23 2015-03-25 杭州华三通信技术有限公司 一种动态资源扩展中虚拟机资源回收方法和装置
CN105721566A (zh) * 2016-01-29 2016-06-29 华为技术有限公司 一种端口重定向的方法、服务器和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SANGHO SHIN,DANIEL PARK: "SONA Pipeline", 《百度网页,HTTPS://WIKI.ONOSPROJECT.ORG/DISPLAY/ONOS/SONA+PIPELINE》 *
胡西宁: "Netvirt之流表分析(五):", 《百度网页,HTTPS://WWW.SDNLAB.COM/17597.HTML》 *
近墨者也: "lesson1 ovs conntrack实现单向ip通讯", 《百度网页,HTTPS://WWW.JIANSHU.COM/P/A85132DCA290》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110677321A (zh) * 2019-09-25 2020-01-10 广州通导信息技术服务有限公司 一种弹性伸缩的云压测方法、装置、设备及存储介质
CN110677321B (zh) * 2019-09-25 2021-09-17 广州通导信息技术服务有限公司 一种弹性伸缩的云压测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN106656801B (zh) 业务流的转发路径的重定向方法、装置和业务流转发系统
US9699064B2 (en) Method and an apparatus for network state re-construction in software defined networking
US9674080B2 (en) Proxy for port to service instance mapping
US9432286B2 (en) Method and system for hitless upgrade of chassis in virtualized environment
CN108712459A (zh) 协议报文跨层通信方法、装置及电子设备
KR20130126730A (ko) 네트워크 시스템, 스위치 및 접속 단말기 검지 방법
CN103532867A (zh) 一种网络数据的加速传输方法及系统
CN106101011B (zh) 一种报文处理方法及装置
EP3720075B1 (en) Data transmission method and virtual switch
CN109714238A (zh) 一种用于实现虚拟机间通信的方法及设备
CN108650295A (zh) 协议报文跨层通信方法装置及电子设备
CN107819683B (zh) 安全资源池实现租户业务流量编排的方法、装置及电子设备
WO2015074397A1 (zh) 一种网络报文的传送方法和设备
CN104283780B (zh) 建立数据传输路径的方法和装置
CN104601394A (zh) 一种业务链连通性检测的方法、装置及系统
US10972392B2 (en) Path switching
CN111614505B (zh) 报文处理的方法和网关设备
CN105721235B (zh) 一种检测连通性的方法和装置
CN109756419B (zh) 路由信息分发方法、装置以及rr
CN110177010A (zh) 一种链路切换方法及装置
CN104954165A (zh) 一种链路分析的方法、设备及系统
CN113612778A (zh) 一种资源池化的防火墙集群系统及通信方法
CN113630301B (zh) 基于智能决策的数据传输方法、装置、设备及存储介质
CN108363611A (zh) 虚拟机的安全管理方法、装置及全方位虚拟化系统
CN109309635A (zh) 虚拟机弹性伸缩方法、装置、主机设备和计算机可读介质

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190205