报文处理方法、装置、通信设备及计算机可读存储介质与流程

文档序号:16513192发布日期:2019-01-05 09:28阅读:146来源:国知局
报文处理方法、装置、通信设备及计算机可读存储介质与流程

本发明涉及通信技术领域,具体而言,涉及一种报文处理方法、装置、通信设备及计算机可读存储介质。



背景技术:

随着移动互联网的蓬勃发展,在线用户数量急剧增加,互联网企业会建立大量的虚拟服务器来应对海量的数据存储。例如,某互联网公司的服务器,其上包括多个虚拟服务器,每个虚拟服务器可与一路由设备建立gre(genericroutingencapsulation,通用路由封装)隧道,路由设备与外部终端设备之间可建立mpls(multi-protocollabelswitching,多协议标签交换)l3(layer3,三层)vpn(virtualprivatenetwork,虚拟专用网络)的网络,每个虚拟服务器上运行有应用容器引擎(docker),每个虚拟服务器及每个docker均对应有一个地址,当某个docker发送报文给外部终端设备时,该docker所在的虚拟服务器会把报文的源地址改为虚拟服务器的地址,使得外部终端设备只能知道虚拟服务器的地址,用于保护内网信息的安全;当路由设备接收到外部中断设备发送的应答报文时,应答报文的目的地址为虚拟服务器的地址,故将应答报文转发给虚拟服务器,但虚拟服务器无法确定这个应答报文对应的docker是哪一个。

现有的处理方法是在路由设备上人工配置静态隧道转发表,路由设备根据静态隧道转发表确定报文对应的目的docker的地址并转发报文,但人工配置静态隧道转发表太繁琐,且人工配置的静态隧道转发表使用量有限,不易变更,在一定程度上降低了报文转发效率。



技术实现要素:

本发明实施例的目的在于提供一种报文处理方法、装置、通信设备及计算机可读存储介质,以减少大量隧道路由的人工配置,解决外部终端设备发送的请求报文无法准确发送至对应的应用容器引擎的问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提出一种报文处理方法,应用于通信设备,所述通信设备与多个虚拟设备通信,每个所述虚拟设备上运行有应用容器引擎,所述方法包括:在所述虚拟设备与所述通信设备建立隧道后,接收所述虚拟设备上运行的应用容器引擎发送的报文,所述报文包括所述应用容器引擎的密文标识信息、所述虚拟设备的地址及目的地址;依据预先配置的私钥对所述应用容器引擎的密文标识信息进行解析,得到所述应用容器引擎的标识信息;依据所述应用容器引擎的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备接收的请求报文通过所述虚拟设备发送至所述应用容器引擎。

第二方面,本发明实施例还提出一种报文处理方法,应用于虚拟设备的应用容器引擎,所述虚拟设备与一通信设备通信,所述方法包括:在所述虚拟设备与所述通信设备建立隧道后,利用预先配置的私钥对所述应用容器引擎的标识信息进行加密得到所述应用容器引擎的密文标识信息;向所述通信设备发送报文,其中,所述报文包括所述应用容器引擎的密文标识信息、所述虚拟设备的地址及目的地址,以便所述通信设备依据通过所述私钥对所述应用容器引擎的密文标识信息进行解析得到所述应用容器引擎的标识信息,并依据所述应用容器引擎的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备接收的请求报文通过所述虚拟设备发送至所述应用容器引擎。

第三方面,本发明实施例还提出一种报文处理装置,应用于通信设备,所述通信设备与多个虚拟设备通信,每个所述虚拟设备上运行有应用容器引擎,所述装置包括:报文接收模块,用于在所述虚拟设备与所述通信设备建立隧道后,接收所述虚拟设备上运行的应用容器引擎发送的报文,所述报文包括所述应用容器引擎的密文标识信息、所述虚拟设备的地址及目的地址;密文解析模块,用于依据预先配置的私钥对所述应用容器引擎的密文标识信息进行解析,得到所述应用容器引擎的标识信息;报文处理模块,用于依据所述应用容器引擎的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备接收的请求报文通过所述虚拟设备发送至所述应用容器引擎。

第四方面,本发明实施例还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器读取并运行时实现上述第一方面所述的方法。

第五方面,本发明实施例还提出一种通信设备,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现上述第一方面所述的方法。

本发明实施例所提供的报文处理方法、装置、通信设备及计算机可读存储介质,在虚拟设备与通信设备建立隧道后,通信设备接收虚拟设备上运行的应用容器引擎发送的报文,所述报文包括所述应用容器引擎的密文标识信息、所述虚拟设备的地址及目的地址,依据预先配置的私钥对所述应用容器引擎的密文标识信息进行解析,得到所述应用容器引擎的标识信息,依据所述应用容器引擎的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备接收的请求报文通过所述虚拟设备发送至所述应用容器引擎。由于应用容器引擎在发送报文时,将应用容器引擎的标识信息以密文的形式发送给通信设备,有效保护了内网信息的安全;通信设备通过解析该密文标识信息得到应用容器引擎的标识信息,并根据应用容器引擎的标识信息、虚拟设备的地址以及报文的目的地址将所述外部终端设备发送的请求报文通过所述虚拟设备准确发送到对应的应用容器引擎,同时由于通信设备能够根据应用容器引擎发送的报文获得应用容器引擎的标识信息,故有效避免了现有技术中通过人工配置静态隧道转发表太繁琐的缺点。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例所提供的报文处理方法及装置的一种应用环境示意图。

图2示出了本发明实施例所提供的一种通信设备的结构框图。

图3示出了本发明实施例所提供的应用于通信设备的报文处理方法的一种流程示意图。

图4示出了本发明实施例所提供的应用于通信设备的报文处理方法的另一种流程示意图。

图5示出了本发明实施例所提供的隧道转发表的示意图。

图6示出了本发明实施例所提供的另一隧道转发表的示意图。

图7示出了本发明实施例所提供的通信设备处理请求报文的流程示意图。

图8示出了本发明实施例所提供的应用于通信设备的报文处理方法的另一种流程示意图。

图9示出了本发明实施例所提供的应用于应用容器引擎的报文处理方法的一种流程示意图。

图10示出了本发明实施例所提供的报文处理装置的功能模块示意图。

图标:100-通信设备;200-服务器;300-外部终端设备;400-网络;500-应用容器引擎;600-报文处理装置;110-存储器;120-处理器;130-通信接口;610-报文接收模块;620-密文解析模块;630-隧道转发表建立模块;640-报文处理模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参照图1,为本发明实施例所提供报文处理方法及装置的应用环境示意图。通信设备100与服务器200之间通过建立gre隧道进行通信,通信设备100和外部终端设备300之间建立网络400,相互之间通过网络400进行通信。在本实施例中,服务器200包括多个虚拟设备(virtualmachine,vm),例如,虚拟设备1、…、虚拟设备n,每个虚拟设备分别与通信设备100建立不同的gre隧道进行通信,例如,gre隧道t1、…、gre隧道tn;每个虚拟设备上运行有应用容器引擎500,该应用容器引擎500可通过虚拟设备与通信设备100之间的gre隧道向通信设备100发送报文,外部终端设备300也可通过网络400向通信设备100发送报文,通信设备100可以对来自应用容器引擎500的报文和来自外部终端设备300的报文进行转发。

在本实施例中,所述网络400可以是mplsl3vpn网络;所述通信设备100可以为路由器、网关等设备;所述服务器200可理解为企业的虚拟私有云(virtualprivatecloud,vpc)设备,也即企业内网的设备;所述外部终端设备300可理解为互联网数据中心(internetdatacenter,idc)存放的设备,也即外网设备,其可以是网络服务器、数据库服务器、云端服务器等。

如图2所示,为本发明实施例所提供的通信设备100的结构框图。通信设备100可以包括存储器110、处理器120和通信接口130,该存储器110、处理器120和通信接口130,各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。报文处理装置600包括至少一个可以软件或固件(firmware)的形式存储于存储器110或固化在通信设备100的操作系统(operatingsystem,os)中的软件功能模块。存储器110可用于存储软件程序及模块,如本发明实施例所提供的报文处理方法及装置对应的程序指令/模块,处理器120通过执行存储在存储器110内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口130可用于与其他节点设备进行信令或数据的通信。

其中,存储器110可以是但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,

rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

处理器120可能是一种集成电路芯片,具有信号处理能力。该处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp))、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以理解,图2所示的结构仅为示意,通信设备100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器120执行时实现本发明实施例揭示的报文处理方法。

请参照图3,为本发明实施例所提供的报文处理方法的流程示意图。需要说明的是,本发明实施例所述的报文处理方法并不以图3以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本发明实施例所述的报文处理方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该报文处理方法可应用于上述的通信设备100,下面将对图3所示的具体流程进行详细阐述。

步骤s101,在所述虚拟设备与所述通信设备100建立隧道后,接收所述虚拟设备上运行的应用容器引擎500发送的报文,所述报文包括所述应用容器引擎500的密文标识信息、所述虚拟设备的地址及目的地址。

在本实施例中,当服务器200上的虚拟设备与通信设备100建立gre隧道后,虚拟设备上运行的应用容器引擎500可以通过gre隧道向通信设备100发送报文,由通信设备100将报文转发到对应的外部终端设备300。其中,应用容器引擎500发送给通信设备100的报文是应用容器引擎500将原始报文进行gre封装后得到的gre报文,而gre封装指的是给原始报文添加一个gre报文头,即gre报文包含原始报文与gre报文头两部分。

在本实施例中,为了保护内网信息的安全,同时便于通信设备100在接收到外部终端设备300的请求报文时,能够准确确定请求报文对应的应用容器引擎500,应用容器引擎500发送给通信设备100的gre报文中,会将应用容器引擎500的标识信息进行加密得到的密文标识信息存放在gre报文头中,使应用容器引擎500的标识信息以密文的形式发送给通信设备100,并将应用容器引擎500当前所在的虚拟设备的地址作为报文的源地址。因此,通信设备100从gre隧道中接收的gre报文中,原始报文至少包括虚拟设备的地址(即源地址)、目的地址,gre报文头应包括应用容器引擎500的密文标识信息。其中,应用容器引擎500可以利用预先配置的私钥(例如,“text”)对应用容器引擎500的标识信息进行加密得到应用容器引擎500的密文标识信息,并将应用容器引擎500的密文标识信息存放在gre报文头的其中一个字段(例如,key字段)。

需要说明的是,在本实施例中,应用容器引擎500的标识信息可以是应用容器引擎500的地址、虚拟局域网标签(vlantag)、应用容器引擎500在虚拟设备上的id信息等,只要该标识信息能够唯一标识虚拟设备内的应用容器引擎500即可。

步骤s102,依据预先配置的私钥对所述应用容器引擎500的密文标识信息进行解析,得到所述应用容器引擎500的标识信息。

在本实施例中,通信设备100上的私钥可以由用户通过输入配置命令进行配置,并且配置的私钥应当与应用容器引擎500加密标识信息采用的私钥相同。例如,该配置命令可以是“grewith-ipaddresskeytext”,通信设备100依据该配置命令可提取出私钥“text”,在接收到应用容器引擎500发送的gre报文后,利用私钥“text”对gre报文头存放的应用容器引擎500的密文标识信息进行解析,从而获得应用容器引擎500的标识信息。

步骤s103,依据所述应用容器引擎500的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500。

如图4所示,在本实施例中,通信设备100通过解析应用容器引擎500发送的gre报文获得应用容器引擎500的标识信息后,所述处理方法还包括:

步骤s11,依据所述应用容器引擎500的标识信息、所述虚拟设备的地址以及所述目的地址在隧道转发表中增加一条路由索引。

在本实施例中,通信设备100在获得gre报文后,依据gre报文的原始报文可以获得对应的虚拟设备的地址和目的地址,利用私钥对gre报文头的key字段存放的应用容器引擎500的密文标识信息进行解析可以获得应用容器引擎500的标识信息,并依据应用容器引擎500的标识信息、虚拟设备的地址以及目的地址在隧道转发表中增加一条路由索引,从而实现了动态建立隧道转发表下面,将应用容器引擎500的私有ip地址作为应用容器引擎500的标识信息,给出一个实例,以对通信设备100动态建立隧道转发表的过程做进一步阐述。在图1所述的应用环境中,当通信设备100接收到虚拟设备1上的应用容器引擎500通过gre隧道t1发送的gre报文时,通信设备100解析gre报文中的原始报文获得虚拟设备1的地址“2.2.2.2”和目的地址“3.3.3.3”,利用预先配置的私钥“text”对gre报文头的key字段存放的应用容器引擎500的密文标识信息进行解析得到应用容器引擎500的标识信息“1.1.1.1”,依据该应用容器引擎500的标识信息“1.1.1.1”、虚拟设备1的地址“2.2.2.2”和目的地址“3.3.3.3”可以得到一条路由索引,建立如图5所示的隧道转发表,此时隧道转发表中只存在一条路由索引。当通信设备100接收到虚拟设备n上的应用容器引擎500通过gre隧道tn发送的gre报文时,通信设备100依据gre报文中的原始报文获得虚拟设备n的地址“n.n.n.n”和目的地址“4.4.4.4”,利用预先配置的私钥“text”对gre报文头的key字段存放的应用容器引擎500的密文标识信息进行解析得到应用容器引擎500的标识信息“1.1.1.2”,依据应用容器引擎500的标识信息“1.1.1.2”、虚拟设备n的地址“n.n.n.n”和目的地址“4.4.4.4”可在图5所示的隧道转发表中增加一条路由索引,建立如图6所示的隧道转发表,此时,该隧道转发表中包括两条路由索引。需要说明的是,图5及图6所示的隧道转发表中的隧道接口指的是通信设备100接收gre报文的接口,即通信设备100通过隧道接口tun1接收gre隧道t1传输的gre报文,通信设备100通过隧道接口tunn接收gre隧道tn传输的gre报文。

在本实施例中,通信设备100接收到应用容器引擎500发送的报文后,可以根据该报文的目的地址将该报文转发到对应的外部终端设备300;当通信设备100接收到该外部终端设备300发送的请求报文时,依据所述路由索引将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500。

如图7所示,在本实施例中,通信设备100对于任一外部终端设备300发送的请求报文,均需要先判断隧道转发表中是否存在请求报文对应的目标路由索引以便确定该请求报文的处理策略,具体流程如下:

步骤s201,当接收到外部终端设备300的请求报文时,获取请求报文的源地址和目的地址。

步骤s202,依据所述请求报文的源地址和目的地址判断所述隧道转发表中是否存在所述请求报文对应的目标路由索引。

在本实施例中,通信设备100在接收到外部终端设备300的请求报文后,解析出请求报文中的源地址和目的地址,并根据源地址和目的地址与隧道转发表中的路由索引进行匹配,以判断是否存在所述请求报文对应的目标路由索引。例如,当请求报文中的源地址为“3.3.3.3”,目的地址为“2.2.2.2”,则可以匹配到图6所示的隧道转发表中的第一条路由索引,从而将该第一条路由索引确定为请求报文对应的目标路由索引;当请求报文中的源地址为“5.5.5.5”,目的地址为“2.2.2.2”,依据该源地址和目的地址判断与图6所示的隧道转发表中的每一条路由索引都不匹配,则判断隧道转发表中不存在请求报文对应的目标路由索引。当判断隧道转发表中存在请求报文对应的目标路由索引时,执行步骤s203;当判断隧道转发表中不存在请求报文对应的目标路由索引时,执行步骤s204。

步骤s203,当所述隧道转发表中存在所述目标路由索引时,依据所述目标路由索引中的应用容器引擎500的标识信息以及所述目标路由索引中的虚拟设备的地址将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500。

在本实施例中,当所述隧道转发表中存在所述目标路由索引时,通信设备100可以采用两种处理方式对该请求报文进行处理:第一种,通信设备100需要将应用容器引擎500的标识信息加密后放到gre报文头的key字段;第二种,通信设备100直接将请求报文中的目的地址修改为应用容器引擎500的标识信息。

其中,当采用第一种处理方式时,该步骤s203具体包括:利用所述私钥对所述目标路由索引中的应用容器引擎500的标识信息进行加密,得到所述应用容器引擎500的密文标识信息,对所述请求报文进行封装以给所述请求报文添加新报文头,并将所述应用容器引擎500的密文标识信息加入所述新报文头,得到第一待发送报文,依据所述目标路由索引中的虚拟设备的地址将所述第一待发送报文发送至对应的虚拟设备,以便所述虚拟设备对所述第一待发送报文进行解析后得到所述应用容器引擎500的标识信息,并依据所述应用容器引擎500的标识信息将所述请求报文发送给所述应用容器引擎500。

例如,当在图6所示的隧道转发表中确定第一条路由索引为该请求报文对应的目标路由索引时,通信设备100利用私钥“text”对目标路由索引中的应用容器引擎500的标识信息“1.1.1.1”进行加密得到应用容器引擎500的密文标识信息,对请求报文进行gre封装以给请求报文添加一个新报文头(即gre报文头),并将应用容器引擎500的密文标识信息加入新报文头的key字段存放,得到第一待发送报文,此时该第一待发送报文包括新报文头和请求报文两部分;通信设备100根据目标路由索引中的虚拟设备的地址“2.2.2.2”将第一待发送报文发送至对应的虚拟设备(即虚拟设备1),虚拟设备1在接收到该第一待发送报文后,利用私钥“text”解析第一待发送报文中的新报文头的key字段,得到应用容器引擎500的标识信息“1.1.1.1”,并将第一待发送报文中的请求报文发送给标识信息为“1.1.1.1”的应用容器引擎500。

当采用第二种处理方式时,该步骤s203具体包括:将所述目标路由索引中的应用容器引擎500的标识信息作为所述请求报文的新目的地址,以得到新请求报文,对所述新请求报文进行封装,得到第二待发送报文,依据所述目标路由索引中的虚拟设备的地址将所述第二待发送报文发送至对应的虚拟设备,以便所述虚拟设备依据所述新目的地址将所述新请求报文发送给所述应用容器引擎500。

例如,当在图6所示的隧道转发表中确定第一条路由索引为请求报文对应的目标路由索引时,通信设备100将目标路由索引中的应用容器引擎500的标识信息“1.1.1.1”作为请求报文的新目的地址,得到新请求报文。也即是说,通信设备100直接将请求报文的目的地址由原本的“2.2.2.2”修改为应用容器引擎500的标识信息“1.1.1.1”,使“1.1.1.1”成为请求报文的新目的地址,故请求报文与新请求报文的区别仅在于目的地址的更改。通信设备100在完成目的地址的更改后,对得到的新请求报文进行gre封装,得到第二待发送报文,此时该第二待发送报文也包括gre报文头和新请求报文两部分,但是第二待发送报文的gre报文头中并没有存放应用容器引擎500的密文标识信息。通信设备100依据目标路由索引中的虚拟设备的地址“2.2.2.2”将第二待发送报文发送至对应的虚拟设备(即虚拟设备1),虚拟设备1在接收到第二待发送报文后,根据第二待发送报文中的新请求报文的新目的地址“1.1.1.1”将新请求报文发送给标识信息为“1.1.1.1”的应用容器引擎500。

可见,当采用第二种处理方式来处理请求报文时,通信设备100直接将应用容器引擎500的标识信息作为请求报文的新目的地址,使得虚拟设备在接收到第二待发送报文后,不需要利用私钥“text”解析第二待发送报文的gre报文头来获得应用容器引擎500的标识信息,故可以有效减轻虚拟设备上的压力。

步骤s204,当所述隧道转发表中不存在所述目标路由索引时,将所述请求报文丢弃或将所述请求报文发送至所述虚拟设备以使所述虚拟设备将所述请求报文广播给运行在所述虚拟设备上的所有应用容器引擎500。

在本实施例中,当所述隧道转发表中不存在所述目标路由索引时,表明该外部终端设备300是第一次主动发送请求报文,此时通信设备100上还没有记录关于该外部终端设备300的路由信息,通信设备100在解析出请求报文的目的地址“2.2.2.2”,源地址“5.5.5.5”后,无法在隧道转发表中匹配到目标路由索引,通信设备100在该情况下也可以采用两种处理方式对请求报文进行处理。

其中,当采用第一种处理方式时,该步骤s204具体包括:利用所述私钥对预先设置的广播地址进行加密,得到密文广播地址;对所述请求报文进行封装以给所述请求报文添加新报文头,并将所述密文广播地址加入所述新报文头,得到第三待发送报文;根据所述请求报文的目的地址将所述第三待发送报文发送至对应的虚拟设备,以通过所述第三待发送报文请求所述虚拟设备将所述请求报文广播给运行在所述虚拟设备上的所有应用容器引擎500。

例如,通信设备100利用私钥“text”对预先设置的广播地址“255.255.255.255”进行加密,得到密文广播地址,在对请求报文进行gre封装以给请求报文添加新报文头(即gre报文头)后,将密文广播地址放入该新报文头的key字段,得到第三待发送报文,此时该第三待发送报文包括新报文头和请求报文两部分,第三待发送报文的新报文头中存有密文广播地址;通信设备100根据请求报文中的目的地址“2.2.2.2”将第三待发送报文发送至对应的虚拟设备(即虚拟设备1),并通过第三待发送报文的新报文头中存放的密文广播地址请求虚拟设备1将第三待发送报文中的请求报文广播给运行在虚拟设备1上的所有应用容器引擎500。需要说明的是,虚拟设备1在接收到该第三待发送报文后并利用私钥“text”解析新报文头中的key字段得到广播地址“255.255.255.255”后,是否要将该请求报文广播给其上运行的所有应用容器引擎500,可以根据实际的应用需求来设置,本申请对此并不做限制。

当采用第二种处理方式时,该步骤s204具体包括:将所述请求报文丢弃。也即是说,通信设备100对于外网中的外部终端设备300第一次主动发送的请求报文一律丢弃,不予转发,从而有效保护内网信息不受攻击,为内网信息的安全提供保证。

需要说明的是,在本实施例中,上述的步骤s201~步骤s204可以在图3所示的任一个步骤之前或任一个步骤之后执行,也可以与图3所示的任一个步骤同时执行,本申请对此不做限制。

可见,在本申请中,通信设备100在接收到外部终端设备300的请求报文时,通过判断隧道转发表中是否存在请求报文对应的目标路由索引,来确定该请求报文对应的处理策略,从而实现与应用容器引擎500有策略地进行通信,有效保护了企业内网不受侵犯。进一步地,如图8所示,所述报文处理方法还包括:

步骤s104,当所述通信设备100在预设时间内没有依据所述隧道转发表中的路由索引转发报文时,删除所述路由索引。

在本实施例中,该预设时间为用户预先配置的该路由索引的老化时间,以图6所示的隧道转发表为例,当通信设备100在预设时间内没有依据该隧道转发表中的第一条路由索引转发报文时,则通信设备100需要对该隧道转发表中的第一条路由索引进行老化,即删除第一条路由索引;同理,当通信设备100在预设时间内没有依据隧道转发表中的第二条路由索引转发报文时,则通信设备100需要删除该隧道转发表中的第二条路由索引。需要说明的是,在本实施例中,隧道转发表中的所有路由索引对应的老化时间可以相同,也可以不同,本申请对此不做限制。

仍参照图8,所述报文处理方法还包括:

步骤s105,当所述应用容器引擎500因当前运行的虚拟设备故障而运行于所述服务器200的其他虚拟设备时,则将所述路由索引中的虚拟设备的地址更新为所述其他虚拟设备的地址。

在本实施例中,应用容器引擎500可以在不同的虚拟设备上启动和运行。例如,原本运行于虚拟设备1上的应用容器引擎500在虚拟设备1出现故障的情况下,为了保证该应用容器引擎500的业务不受影响,可以使该应用容器引擎500在服务器200上除虚拟设备1以外的其他虚拟设备(例如,虚拟设备2、虚拟设备3等)启动和运行;其中,当该应用容器引擎500从虚拟设备2启动和运行时,通信设备100需要在隧道转发表中对该应用容器引擎500对应的虚拟设备的地址进行更新,即将第一条路由索引中的虚拟设备的地址“2.2.2.2”(即虚拟设备1的地址)更新为虚拟设备2的地址(例如,“6.6.6.6”),从而动态地实现隧道转发表的更新。

可见,在本申请中,通信设备100依据应用容器引擎500发送的gre报文实现了隧道转发表的动态建立、更新以及动态老化,避免了人工配置静态隧道转发表太繁琐以及静态隧道转发表不易变更的缺点,相比人工配置的静态隧道转发表能有效提升报文转发效率。

请参照图9,为本发明实施例所提供的另一种报文处理方法的流程示意图。该报文处理方法应用于上述虚拟设备的应用容器引擎500,该报文处理方法包括:

步骤s301,在所述虚拟设备与所述通信设备100建立隧道后,利用预先配置的私钥对所述应用容器引擎500的标识信息进行加密得到所述应用容器引擎500的密文标识信息。

在本实施例中,当虚拟设备与通信设备100建立gre隧道后,若虚拟设备上运行的应用容器引擎500要发送报文,会利用预先配置的私钥(例如,“text”)对其标识信息进行加密,得到应用容器引擎500的密文标识信息。

步骤s302,向所述通信设备100发送报文,其中,所述报文包括所述应用容器引擎500的密文标识信息、所述虚拟设备的地址及目的地址,以便所述通信设备100依据通过所述私钥对所述应用容器引擎500的密文标识信息进行解析得到所述应用容器引擎500的标识信息,并依据所述应用容器引擎500的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500。

在本实施例中,应用容器引擎500在向通信设备100发送报文前,需将要发送的原始报文进行gre封装,得到gre报文,此时gre报文包括应用容器引擎500要发送的原始报文和gre报文头两部分。应用容器引擎500为了保护内网信息的安全,会将虚拟设备的地址作为报文的源地址,并将加密得到的密文标识信息放在gre报文头的某一个字段中(例如,gre报文头的key字段),使应用容器引擎500的标识信息以密文的形式与原始报文一起通过gre隧道发送至通信设备100。也即是说,应用容器引擎500在发送报文时,将自己的标识信息通过加密的方式告知通信设备100,从而有效保护内网信息的安全。

因此,应用容器引擎500发送给通信设备100的报文中至少包括应用容器引擎500的密文标识信息、虚拟设备的地址(即源地址)和目的地址(即外部终端设备300的地址),使得通信设备100能够依据虚拟设备的地址、目的地址以及对密文标识信息进行解析得到的标识信息在隧道转发表中增加一条路由索引,从而在接收到外部终端设备300的请求报文时,根据该路由索引将请求报文发送至对应的虚拟设备,同时将路由索引中的应用容器引擎500的标识信息以密文的形式与请求报文一起发送给虚拟设备,使得虚拟设备在解析出应用容器引擎500的标识信息后能够将请求报文发送至对应的应用容器引擎500。

请参照图10,为本发明实施例所提供的报文处理装置600的功能模块示意图。需要说明的是,本实施例所提供的报文处理装置600,其基本原理及产生的技术效果与前述方法实施例相同,为简要描述,本实施例中未提及部分,可参考前述方法实施例中的相应内容。所述报文处理装置600应用于上述的通信设备100,其包括报文接收模块610、密文解析模块620、隧道转发表建立模块630、报文处理模块640。

该报文接收模块610用于在所述虚拟设备与所述通信设备100建立隧道后,接收所述虚拟设备上运行的应用容器引擎500发送的报文,所述报文包括所述应用容器引擎500的密文标识信息、所述虚拟设备的地址及目的地址。

可以理解,该报文接收模块610可以执行上述步骤s101。

该密文解析模块620用于依据预先配置的私钥对所述应用容器引擎500的密文标识信息进行解析,得到所述应用容器引擎500的标识信息。

可以理解,该密文解析模块620可以执行上述步骤s102。

该隧道转发表建立模块630用于依据所述应用容器引擎500的标识信息、所述虚拟设备的地址以及所述目的地址在隧道转发表中增加一条路由索引。

在本实施例中,所述隧道转发表建立模块630还用于当所述通信设备100在预设时间内没有依据所述隧道转发表中的路由索引转发报文时,删除所述路由索引;当所述应用容器引擎500因当前运行的虚拟设备故障而运行于所述服务器200的其他虚拟设备时,则将所述路由索引中的虚拟设备的地址更新为所述其他虚拟设备的地址。

可以理解,该隧道转发表建立模块630可以执行上述步骤s11、步骤s104及步骤s105。

该报文处理模块640用于依据所述应用容器引擎500的标识信息、所述虚拟设备的地址以及所述目的地址将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500。

在本实施例中,该报文处理模块640用于当接收到外部终端设备300的请求报文时,获取请求报文的源地址和目的地址,依据所述请求报文的源地址和目的地址判断所述隧道转发表中是否存在所述请求报文对应的目标路由索引,当所述隧道转发表中存在所述目标路由索引时,依据所述目标路由索引中的应用容器引擎500的标识信息以及所述目标路由索引中的虚拟设备的地址将从外部终端设备300接收的请求报文通过所述虚拟设备发送至所述应用容器引擎500;当所述隧道转发表中不存在所述目标路由索引时,将所述请求报文丢弃或将所述请求报文发送至所述虚拟设备以使所述虚拟设备将所述请求报文广播给运行在所述虚拟设备上的所有应用容器引擎500。

其中,该报文处理模块640在隧道转发表中存在所述目标路由索引时,可以采用两种处理方式对该请求报文进行处理。第一种处理方式为:该报文处理模块640利用所述私钥对所述目标路由索引中的应用容器引擎500的标识信息进行加密,得到所述应用容器引擎500的密文标识信息,对所述请求报文进行封装以给所述请求报文添加新报文头,并将所述应用容器引擎500的密文标识信息加入所述新报文头,得到第一待发送报文,依据所述目标路由索引中的虚拟设备的地址将所述第一待发送报文发送至对应的虚拟设备,以便所述虚拟设备对所述第一待发送报文进行解析后得到所述应用容器引擎500的标识信息,并依据所述应用容器引擎500的标识信息将所述请求报文发送给所述应用容器引擎500;第二种处理方式为:该报文处理模块640将所述目标路由索引中的应用容器引擎500的标识信息作为所述请求报文的新目的地址,以得到新请求报文,对所述新请求报文进行封装,得到第二待发送报文,依据所述目标路由索引中的虚拟设备的地址将所述第二待发送报文发送至对应的虚拟设备,以便所述虚拟设备依据所述新目的地址将所述新请求报文发送给所述应用容器引擎500。

该报文处理模块640在隧道转发表中不存在所述目标路由索引时,也可以采用两种处理方式对该请求报文进行处理。第一种处理方式为:该报文处理模块640利用所述私钥对预先设置的广播地址进行加密,得到密文广播地址,对所述请求报文进行封装以给所述请求报文添加新报文头,并将所述密文广播地址加入所述新报文头,得到第三待发送报文,根据所述请求报文的目的地址将所述第三待发送报文发送至对应的虚拟设备,以通过所述第三待发送报文请求所述虚拟设备将所述请求报文广播给运行在所述虚拟设备上的所有应用容器引擎500;第二种处理方式为:该报文处理模块640将所述请求报文丢弃。

可以理解,该报文处理模块640可以执行上述步骤s103、步骤s201、步骤s202、步骤s203及步骤s204。

综上所述,本发明实施例所提供的报文处理方法、装置、通信设备及计算机可读存储介质,在虚拟设备与通信设备建立隧道后,接收虚拟设备上运行的应用容器引擎发送的报文,所述报文包括所述应用容器引擎的密文标识信息、所述虚拟设备的地址及目的地址,依据预先配置的私钥对所述应用容器引擎的密文标识信息进行解析,得到所述应用容器引擎的标识信息,依据所述应用容器引擎的标识信息、所述虚拟设备的地址以及所述目的地址在隧道转发表中增加一条路由索引,依据所述路由索引将从外部终端设备接收的请求报文通过所述虚拟设备发送至所述应用容器引擎。在本申请中,应用容器引擎在发送报文时,将应用容器引擎的标识信息以密文的形式发送给通信设备,有效保护了内网信息的安全;通信设备通过解析该密文标识信息得到应用容器引擎的标识信息,并根据应用容器引擎的标识信息、虚拟设备的地址以及报文的目的地址动态建立隧道转发表,且动态实现隧道转发表的更新和老化,从而在报文的转发过程中有效提升转发效率,避免了现有技术中通过人工配置静态隧道转发表太繁琐以及静态隧道转发表不易变更的缺点;此外,通信设备在接收到外部终端设备的请求报文时,通过判断隧道转发表中是否存在请求报文对应的目标路由索引,来确定该请求报文对应的处理策略,从而与应用容器引擎有策略地进行通信,有效保护了企业内网不受侵犯。

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

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

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

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

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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