报文处理方法、系统及存储介质与流程

文档序号:16899915发布日期:2019-02-19 17:52阅读:183来源:国知局
报文处理方法、系统及存储介质与流程

本发明涉及计算机技术领域,具体地涉及一种报文处理方法、系统及存储介质。



背景技术:

目前,在云环境下处于同一物理服务器的不同网段的虚拟机需要通过网关相互通信,而这个网关一般都配置在物理服务器外部的硬件三层交换机上。那么,在这种场景下就出现了明明是物理服务器内部两台虚拟机相互通信,但是所有的访问流量都需要到物理服务器外部经过多级网络设备,这样在比较大型的数据中心就很容易出现网络瓶颈的问题,同时也会导致相同的流量重复的经过物理服务器内部的安全设备而导致不必要的业务开销。



技术实现要素:

本发明的目的是为了克服现有技术存在的同一物理服务器的不同网段的虚拟机相互通信时,访问流量都需要经过网关转发,导致网络瓶颈的问题,提供一种报文处理方法、系统及存储介质,本发明在不改变原有云环境的网络结构的基础上,实现了物理服务器内的虚拟机三层通信,避免访问流量重复处理,提高业务的处理效率。

为了实现上述目的,本发明一方面提供一种报文处理方法,所述方法应用于报文处理系统,所述方法包括:获取报文,提取所述报文中的五元组信息,所述五元组信息中包括的源ip地址与目的ip地址属于不同网段;判断会话表中是否存在包含所述五元组信息的会话信息;当所述会话表中存在包含所述五元组信息的会话信息时,判断该会话信息中是否存在会话建立标识,所述会话建立标识用于表示所述源ip地址与目的ip地址对应的虚拟机之间的会话链接已经建立的标识;当该会话信息中存在所述会话建立标识时,通过所述会话信息对应的会话发送接口发送所述报文,所述会话发送接口为所述报文处理系统的对内接口。

进一步地,所述方法还包括:当所述会话表中不存在包含所述五元组信息的会话信息时,根据所述报文的五元组信息在所述会话表中建立对应的会话信息,并判断转发表中是否存在所述报文的目的mac地址;当所述转发表中存在所述目的mac地址时,根据所述目的mac地址发送所述报文,并将发送所述报文的接口标记为与所述报文的五元组信息对应的会话信息的会话发送接口。

进一步地,所述方法还包括:当所述转发表中不存在所述目的mac地址时,丢弃所述报文。

进一步地,所述判断该会话信息中是否存在会话建立标识包括:根据所述五元组信息判断所述报文是否为正向报文;当所述报文为正向报文时,判断该会话信息中是否存在会话建立标识。

进一步地,所述根据所述五元组信息判断所述报文是否为正向报文包括:判断所述五元组信息中的源ip地址与目的ip地址是否与所述会话信息中包含的所述五元组信息中的源ip地址与目的ip地址分别匹配;所述当所述报文为正向报文时,判断该会话信息中是否存在会话建立标识包括:当所述五元组信息中的源ip地址与目的ip地址与所述会话信息中包含的所述五元组信息中的源ip地址与目的ip地址分别匹配时,判断该会话信息中是否存在会话建立标识。

进一步地,所述方法还包括:当该会话信息中不存在所述会话建立标识时,获取所述会话信息对应的会话发送接口;判断所述会话发送接口与接收所述报文的接口是否相同;当所述会话发送接口与接收所述报文的接口相同时,将所述会话发送接口修改为所述报文处理系统的对内接口,并在所述会话信息中标记会话建立标识,通过所述对内接口发送所述报文。

进一步地,所述方法还包括:当所述报文不为正向报文时,通过所述会话信息对应的会话发送接口发送所述报文。

本发明第二方面提供一种报文处理系统,所述系统用于执行上述所述的报文处理方法。

进一步地,所述报文处理系统的对内接口通过虚拟交换机连接处于同一物理服务器上的虚拟机,对外接口连接二层虚拟交换机。

本发明第三方面提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上所述的报文处理方法。

通过上述技术方案,在获取到报文之后,提取所述报文中的五元组信息,并判断会话表中是否存在包含所述五元组信息的会话信息,当所述会话表中存在包含所述五元组信息的会话信息时,判断该会话信息中是否存在会话建立标识,当该会话信息中存在所述会话建立标识时,则通过所述报文处理系统的对内接口发送所述报文。本发明实施例解决了现有技术中存在的同一物理服务器的不同网段的虚拟机相互通信时,访问流量都需要经过网关转发,导致网络瓶颈的问题,实现了物理服务器内的虚拟机三层通信,避免访问流量重复处理,提高业务的处理效率。

附图说明

图1是现有技术中处于同一物理服务器的不同网段的虚拟机通信的路径示例;

图2是本发明实施例提供的处于同一物理服务器的不同网段的虚拟机通信的路径示例;

图3是本发明实施例提供的一种报文处理方法的流程示意图;

图4是本发明实施例提供的另一种报文处理方法的流程示意图;

图5是本发明实施例提供的虚拟机架构示例图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

在云环境下,对于处于同一物理服务器的不同网段的虚拟机需要通过网关相互通信,其所有的访问流量都需要经过多级网络设备,导致相同的访问流量重复的经过物理服务器,造成不必要的业务开销。本发明实施例正是针对该场景而提出。如图1所示,在现有技术中处于同一物理服务器的不同网段的虚拟机1跨网段访问虚拟机3的报文转发路径,即现有技术中虚拟机1与虚拟机3通信的所有报文都需要经过这6条路径的处理。在本发明实施例中,如图2所示,只需要将虚拟机1与虚拟机3的第一次通信的报文经过上述6条路径转发,而后续所有报文经过路径1和路径6的处理即可,具体实施方式如下所述。

图3是本发明实施例提供的一种报文处理方法的流程示意图。所述方法应用于报文处理系统,如图3所示,所述方法包括如下步骤:

步骤301,获取报文,提取所述报文中的五元组信息,所述五元组信息中包括的源ip地址与目的ip地址属于不同网段;

步骤302,判断会话表中是否存在包含所述五元组信息的会话信息;

步骤303,当所述会话表中存在包含所述五元组信息的会话信息时,判断该会话信息中是否存在会话建立标识,所述会话建立标识用于表示所述源ip地址与目的ip地址对应的虚拟机之间的会话链接已经建立的标识;

步骤304,当该会话信息中存在所述会话建立标识时,通过所述会话信息对应的会话发送接口发送所述报文,所述会话发送接口为所述报文处理系统的对内接口。

其中,由于五元组信息包括源ip地址、源端口、目的ip地址、目的端口和传输层协议,可以唯一确定一个会话信息,因此,当获取到报文之后,提取该报文中的五元组信息,并在会话表中查看是否存在包含所述报文的五元组信息的会话信息。由于本发明实施例是针对于同一物理服务器内的不同网段的虚拟机之间的通信,因此,所述五元组信息中包括的源ip地址与目的ip地址属于不同网段。

以图2所示的虚拟机架构为例,本发明实施例在处理虚拟机1与虚拟机3之间的报文时,存在以下几种情况:第一种情况,是虚拟机1向虚拟机3第一次发送报文,该报文需要经过如图2所示的6条路径,因此报文处理系统通过路径2接收该报文并进行处理;第二种情况,是虚拟机1向虚拟机3第一次发送报文,该报文需要经过如图2所示的6条路径,所述报文由三层交换机回来后,所述报文处理系统通过路径5接收该报文并进行处理;第三种情况,是虚拟机1向虚拟机3非第一次发送报文,该报文只需要经过如图2所示的路径1和路径6处理即可;第四种情况,是虚拟机3向虚拟机1发送报文,由于虚拟机1向虚拟机3已经发送过报文,因此该报文同样只需要经过如图2所示的路径1和路径6处理,只不过方向是相反的。本发明实施例针对于上述四种情况,进行详细描述。

当所述会话表中存在包含所述五元组信息的会话信息时,表明该会话已经建立。对应于上述示例情况中的第二种、第三种或第四种情况,例如,报文处理系统已经接收过虚拟机1向虚拟机3发送的报文,然后判断该会话信息中是否存在会话建立标识。所述会话建立标识用于表示所述源ip地址与目的ip地址对应的虚拟机之间的会话链接已经建立的标识。当所述会话信息中存在所述会话建立标识,则表明虚拟机1与虚拟机3之间的通信已经建立,即对应于上述示例情况中的第三种或第四种情况,直接将该报文通过对内接口发送给对应虚拟机即可。

如果所述会话表中不存在包含所述五元组信息的会话信息时,表明该会话没有建立,即对应于上述示例情况中的第一种情况,报文处理系统第一次通过路径1接收虚拟机1向虚拟机3发送的报文,并根据所述报文的五元组信息在所述会话表中建立对应的会话信息,将虚拟机1向虚拟机3发送的报文定义为正向报文。然后,判断转发表中是否存在所述报文的目的mac地址。由于虚拟机1向虚拟机3第一次发送报文,所以该报文应该发送至网关,对应的报文的目的mac地址即为网关mac地址,判断转发表中是否存在该网关mac地址,若存在则发送所述报文,并将发送所述报文的接口标记为与所述报文的五元组信息对应的会话信息的会话发送接口,对应于图2中的将所述报文通过路径2发送至网关,并将对外接口标记为该会话信息的会话发送接口,以便下次再接收到该会话信息后直接通过对外接口发出。若是所述转发表中不存在所述目的mac地址时,则丢弃所述报文。

另外,当所述会话表中存在包含所述五元组信息的会话信息时,根据所述五元组信息判断所述报文是否为正向报文,即判断所述五元组信息中的源ip地址与目的ip地址是否与所述会话信息中包含的所述五元组信息中的源ip地址与目的ip地址分别匹配,例如,所述会话信息中包含的五元组信息表明该报文是虚拟机1向虚拟机3发送的,那么在接收到该报文之后,判断该报文是否仍是虚拟机1向虚拟机3发送的,如果是,则对应于上述示例情况中的第二种情况或者第三种情况,即该报文是由网关返回后报文处理系统接收的,或者该报文是虚拟机1向虚拟机3非第一次发送的报文。然后通过判断该会话信息中是否存在会话建立标识,进一步判断出该报文对应于上述示例情况中的第二种情况还是第三种情况。若该会话信息中不存在所述会话建立标识,则获取所述会话信息对应的会话发送接口,并判断所述会话发送接口与接收所述报文的接口是否相同。当所述会话发送接口与接收所述报文的接口相同时,表明该报文是由网关返回后报文处理系统接收的,对应于上述第二种情况,该报文需要发送给虚拟机3,则需要修改所述会话信息对应的会话发送接口,将所述会话发送接口由建立所述会话信息时标记的对外接口修改为对内接口。即获取所述会话信息对应的会话发送接口,将所述会话信息的会话发送接口修改为对内接口,并在所述会话信息中标记会话建立标识,通过所述报文处理系统的对内接口发送所述报文。若该会话信息中存在所述会话建立标识时,则直接按照所述会话信息对应的会话发送接口,即对内接口,将所述报文通过所述对内接口发送所述报文。

而如果所述报文不为正向报文时,则直接通过所述会话信息的会话发送接口发送所述报文。对应于上述示例情况中的第四种情况,虚拟机3向虚拟机1发送报文,直接通过对内接口将报文发送至虚拟机1。

为了便于理解本发明实施例,下面以图5所示的虚拟机架构图为例,描述本发明实施例。如图4所示,所述方法包括如下步骤:

步骤401,获取报文,提取所述报文中的五元组信息;

步骤402,判断会话表中是否存在包含所述五元组信息的会话信息,是则执行步骤406,否则执行步骤403;

步骤403,根据所述报文的五元组信息在所述会话表中建立对应的会话信息,并判断转发表中是否存在所述报文的目的mac地址,是则执行步骤404,否则执行步骤405;

步骤404,根据所述目的mac地址发送所述报文,并将发送所述报文的接口标记为与所述报文的五元组信息对应的会话信息的会话发送接口;

步骤405,丢弃所述报文;

步骤406,根据所述五元组信息判断所述报文是否为正向报文,是则执行步骤408,否则执行步骤407;

步骤407,通过所述会话信息对应的会话发送接口发送所述报文;

步骤408,判断该会话信息中是否存在会话建立标识,是则执行步骤407,否则执行步骤409;

步骤409,获取所述会话信息对应的会话发送接口,判断所述会话发送接口与接收所述报文的接口是否相同,是则执行步骤410,否则执行步骤407;

步骤410,将所述会话发送接口修改为所述报文处理系统的对内接口,并在所述会话信息中标记会话建立标识,然后执行步骤407。

其中,上述步骤401至步骤404可对应于虚拟机1向虚拟机3第一次发送报文,该报文需要通过报文处理系统发送至网关,则所述会话信息对应的会话发送接口为对外接口。还可对应于虚拟机1向虚拟机4第一次发送报文,对于不同节点内跨网段的通信,都需要经过网关,因此,对于虚拟机1向虚拟机4发送的报文,该会话信息对应的会话发送接口也为对外接口。

上述步骤401-步骤402-步骤406-步骤408-步骤409-步骤410-步骤407可对应于虚拟机1向虚拟机3第一次发送报文,该报文由网关处理返回后,报文处理系统再次接收到该报文,并需要将该报文发送至虚拟机3。此时,由于所述会话信息对应的会话发送接口为对外接口,则需要将发送接口修改为对内接口,从而虚拟机3才能收到报文,也便于后续虚拟机1与虚拟机3之间交互报文时,报文处理系统不再将该报文发送至网关,而是直接通过对内接口发送至虚拟机1或者虚拟机3。

上述步骤401-步骤402-步骤406-步骤408-步骤407可对应于虚拟机1再次向虚拟机3发送报文,报文处理系统直接将该报文通过所述会话信息对应的会话发送接口发送所述报文,即通过对内接口将报文发送至虚拟机3。

上述步骤401-步骤402-步骤406-步骤407可对应于虚拟机3向虚拟机1发送报文,虽然所述报文是反向报文,需要将所述会话信息对应的正向报文时的会话接收接口作为发送接口发送所述报文,但是虚拟机1向虚拟机3发送正向报文的时候接收接口就是对内接口,所以在虚拟机3向虚拟机1发送报文的发送接口仍然是对内接口,所述报文处理系统直接将该报文通过对内接口发送至虚拟机1。还可对应于虚拟机4向虚拟机1发送报文。其中,虚拟机1向虚拟机4发送正向报文时已经建立会话,会话信息对应的会话发送接口为对外接口,会话接收接口为对内接口。当虚拟机4向虚拟机1发送反向报文时,将所述会话信息的会话接收接口作为会话发送接口,即将对内接口作为会话发送接口,从而将报文发送至虚拟机1。

上述步骤401-步骤402-步骤406-步骤408-步骤409-步骤407可对应于特殊情况,如图5所示,当虚拟机1向虚拟机4非第一次发送报文时,由于虚拟机1向虚拟机4在第一次发送报文时,对应的会话信息中的会话发送接口为对外接口,则当虚拟机1再次向虚拟机4发送报文时,按照所述会话信息对应的会话发送接口,即对外接口发送所述报文。

通过本发明实施例,实现了同一物理服务器内的虚拟机跨网段通信时,直接在节点内处理报文,而无需同三层通信上传至网关,大大减少转发路径,避免出现网络瓶颈,避免对业务流量的重复处理,提高了报文的处理速度。而且,本发明实施例还可兼容节点内虚拟机与节点外虚拟机跨网段的正常通信,既实现了节点内跨网段虚拟机之间报文的快速送达,又满足现有节点内与节点外跨网段虚拟机之间的报文正常传送。

相应的,本发明实施例还提供一种报文处理系统,用于执行上述实施例所述的报文处理方法。如图2所示,所述报文处理系统的对内接口通过虚拟交换机连接处于同一物理服务器上的虚拟机,对外接口连接二层虚拟交换机。

该报文处理系统的具体实施方式,可参加上述实施例中的报文处理方法的实现方式,且本发明实施例中的报文处理系统可应用于虚拟ips(intrusionpreventionsystem,入侵防御系统),虚拟waf(webapplicationfirewall,防火墙)等nfv(networkfunctionvirtualization,网络功能虚拟化)产品中。

相应的,本发明实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例所述的报文处理方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1