一种报文处理系统及网络设备的制作方法

文档序号:16815356发布日期:2019-02-10 14:22阅读:159来源:国知局
一种报文处理系统及网络设备的制作方法

本发明涉及通信技术领域,尤其是涉及一种报文处理系统及网络设备。



背景技术:

随着容器技术的流行,可以在网络设备(如交换机、路由器等)部署容器,并将nos(networkoperationsystem,网络操作系统)部署在容器中,在容器中运行nos。nos是对网络资源进行管理和控制的操作系统,是用户与网络资源之间的接口,nos是建立在linux内核之上,为用户提供网络资源的桥梁。

目前,网络设备的物理接口或者网卡在接收到报文后,直接将该报文发送给nos,由nos利用该报文进行处理,该报文对于linux内核不可见,即linux内核无法感知到该报文。在这种情况下,若在网络设备的容器中部署第三方应用,则由于linux内核无法感知到该报文,也就无法将该报文发送给第三方应用,导致第三方应用无法正常接收该报文,继而导致第三方应用无法正常运行。



技术实现要素:

本申请提供一种报文处理系统及网络设备,nos可以将报文发送给第三方应用,使得第三方应用能够正常接收该报文,并使得第三方应用能够正常运行。

第一方面,本申请提供一种报文处理系统,所述系统包括第一容器、第二容器和操作系统内核;所述第一容器用于部署网络操作系统nos,所述第二容器用于部署第三方应用;

所述nos在获取到报文后,将所述报文发送给所述操作系统内核;

所述操作系统内核在接收到所述报文后,通过虚拟链路将所述报文发送给所述第三方应用;其中,所述虚拟链路是在所述操作系统内核中创建的;

所述第三方应用获取所述报文,并利用所述报文进行业务处理。

结合第一方面,在第一种可能的实现方式中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;

所述nos将所述报文发送给所述操作系统内核,包括:

所述nos将所述报文和所述第一虚拟接口的接口标识封装到内核通信消息,并将所述内核通信消息发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用,包括:

所述操作系统内核从所述内核通信消息中获取所述报文和所述接口标识,并通过所述接口标识对应的所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

结合第一方面,在第二种可能的实现方式中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;所述第一容器还包括镜像虚拟口,且所述镜像虚拟口与所述第一虚拟接口加入到同一个桥;

所述nos将所述报文发送给所述操作系统内核,包括:

所述nos通过所述镜像虚拟口将所述报文发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用,包括:

所述操作系统内核通过所述镜像虚拟口接收到所述报文后,确定与所述镜像虚拟口位于同一个桥的所述第一虚拟接口,并通过所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

结合第一方面,在第三种可能的实现方式中,在所述操作系统内核中创建所述虚拟链路的过程,包括:

所述nos向所述操作系统内核发送第一命令,所述操作系统内核根据所述第一命令创建虚拟链路,所述虚拟链路包括第一虚拟接口以及第二虚拟接口;

所述nos向所述操作系统内核发送第二命令,所述操作系统内核根据所述第二命令将所述第一虚拟接口加入到所述第一容器的网络命名空间;

所述nos向所述操作系统内核发送第三命令,所述操作系统内核根据所述第三命令将所述第二虚拟接口加入到所述第二容器的网络命名空间。

结合第一方面和第三种可能的实现方式,在第四种可能的实现方式中,若第二容器的数量为多个,则所述第一容器与每个第二容器之间均存在虚拟链路;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用,包括:

基于所述第一容器与每个第二容器之间的虚拟链路,则所述操作系统内核将所述报文发送给每个第二容器内部署的第三方应用。

第二方面,本申请提供一种网络设备,包括第一容器、第二容器和操作系统内核;所述第一容器用于部署网络操作系统nos,所述第二容器用于部署第三方应用;

所述第一容器部署的所述nos,用于在获取到报文后,将所述报文发送给所述操作系统内核;

所述操作系统内核,用于在接收到所述报文后,通过虚拟链路将所述报文发送给所述第三方应用;其中,所述虚拟链路是在所述操作系统内核中创建的;

所述第二容器部署的所述第三方应用,用于获取所述报文,并利用所述报文进行业务处理。

结合第二方面,在第一种可能的实现方式中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;

所述nos将所述报文发送给所述操作系统内核时具体用于:将所述报文和所述第一虚拟接口的接口标识封装到内核通信消息,并将所述内核通信消息发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:从所述内核通信消息中获取所述报文和所述接口标识,并通过所述接口标识对应的所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

结合第二方面,在第二种可能的实现方式中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;所述第一容器还包括镜像虚拟口,所述镜像虚拟口与所述第一虚拟接口加入到同一个桥;

所述nos将所述报文发送给所述操作系统内核时具体用于:通过所述镜像虚拟口将所述报文发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:通过所述镜像虚拟口接收到所述报文后,确定与所述镜像虚拟口位于同一个桥的所述第一虚拟接口,并通过所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

结合第二方面,在第三种可能的实现方式中,所述nos还用于:向所述操作系统内核发送第一命令,向所述操作系统内核发送第二命令,向所述操作系统内核发送第三命令;

所述操作系统内核还用于:根据所述第一命令创建虚拟链路,所述虚拟链路包括第一虚拟接口以及第二虚拟接口;根据所述第二命令将所述第一虚拟接口加入到所述第一容器的网络命名空间;根据所述第三命令将所述第二虚拟接口加入到所述第二容器的网络命名空间。

结合第二方面和第三种可能的实现方式,在第四种可能的实现方式中,若第二容器的数量为多个,则所述第一容器与每个第二容器之间均存在虚拟链路;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:基于所述第一容器与每个第二容器之间的虚拟链路,则将所述报文发送给每个第二容器内部署的第三方应用。

基于上述技术方案,本申请实施例中,部署在第一容器的nos在获取到报文后,可以将该报文发送给操作系统内核,操作系统内核在接收到报文后,可以通过虚拟链路将该报文发送给部署在第二容器的第三方应用,且第三方应用可以利用该报文进行业务处理。基于此,nos可以将报文发送给第三方应用,使得第三方应用能够正常接收该报文,并使得第三方应用能够正常运行,而且,在保证安全性的基础上,第三方应用可以实现对nos的报文的监控与分析。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1a是本申请一种实施方式中的报文处理系统的结构示意图;

图1b是本申请一种实施方式中的创建虚拟链路的示意图;

图2是本申请一种实施方式中的创建虚拟链路的方法流程图;

图3是本申请一种实施方式中的报文处理方法的流程图;

图4a和图4b是本申请一种实施方式中的报文传输示意图;

图5是本申请一种实施方式中的存在多个第二容器的示意图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息可以被称为第二信息,类似地,第二信息可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或“当……时”,或“响应于确定”。

本申请实施例中提出一种报文处理系统,应用于网络设备,该系统可以包括第一容器、第二容器和操作系统内核(如linux内核)。该第一容器用于部署nos,即在该第一容器中运行nos,该第二容器用于部署第三方应用,即在该第二容器中运行第三方应用。参见图1a所示,为报文处理系统的结构示意图,在第一容器内部署有nos,在第二容器内部署有第三方应用,nos建立在操作系统内核之上,且第三方应用也建立在操作系统内核之上,也就是说,可以由操作系统内核支持nos的运行,可以由操作系统内核支持第三方应用的运行。

在一个例子中,在第二容器内部署第三方应用时,可以选择是否与nos共享网络空间,若第三方应用与nos共享网络空间,则第三方应用与nos使用相同的转发表、协议栈、接口等信息;若第三方应用与nos未共享网络空间,则第三方应用与nos不使用相同的转发表、协议栈、接口等信息,也就是说,第三方应用与nos完全隔离,第三方应用与nos相当于部署在两个独立设备。本申请实施例中,以若第三方应用与nos未共享网络空间为例进行说明。

本申请实施例中,可以在第一容器与第二容器之间创建虚拟链路(即vethpair,虚拟链路也可以称为以太链路对),且该虚拟链路是在操作系统内核中创建的。参见图1b所示,为在操作系统内核中创建虚拟链路的示意图,该虚拟链路可以包括第一虚拟接口和第二虚拟接口。具体的,可以将第一容器和第二容器等价为两个物理设备,并在该第一容器与该第二容器之间创建虚拟链路,基于此,针对nos获取到的报文,就可以通过该虚拟链路镜像给第三方应用。

以下结合图2所示的流程图,对创建虚拟链路的过程进行说明。

步骤201,nos向操作系统内核发送第一命令,操作系统内核根据该第一命令创建虚拟链路,该虚拟链路可以包括第一虚拟接口和第二虚拟接口。

在一个例子中,当需要将nos的报文镜像到第三方应用(例如,当用户获知第三方应用需要使用nos的报文进行处理时,则确定需要将nos的报文镜像到第三方应用)时,则用户可以向nos输入命令行,该命令行可以携带第三方应用所在第二容器的容器名称。nos在接收到该命令行后,确定需要在第一容器与第二容器之间创建虚拟链路,并向操作系统内核发送第一命令,该第一命令表示需要在操作系统内核创建虚拟链路。

进一步的,操作系统内核在接收到该第一命令后,可以根据该第一命令获知nos需要在操作系统内核创建虚拟链路,因此,操作系统内核可以创建一个虚拟链路,该虚拟链路可以包括第一虚拟接口和第二虚拟接口,对此虚拟链路的创建方式不做限制,只要能够在操作系统内核中创建虚拟链路即可。

基于虚拟链路的第一虚拟接口和第二虚拟接口,对于从第一虚拟接口进入的报文,通过该虚拟链路传输至第二虚拟接口,并从第二虚拟接口离开;对于从第二虚拟接口进入的报文,通过该虚拟链路传输至第一虚拟接口,并从第一虚拟接口离开;也就是说,报文在第一虚拟接口与第二虚拟接口之间传输。

步骤202,nos向操作系统内核发送第二命令,操作系统内核根据该第二命令将该第一虚拟接口加入到该第一容器的网络命名空间(netnamespace)。

在一个例子中,nos还可以获取本nos所在的第一容器的容器名称,并确定与该容器名称对应的网络命名空间,该网络命名空间就是第一容器的网络命名空间,对此确定方式不做限制。

例如,在创建第一容器时,可以记录第一容器的容器名称与第一容器的网络命名空间的对应关系;基于所述对应关系,nos得到第一容器的容器名称后,可以确定与该容器名称对应的网络命名空间。

然后,nos可以向操作系统内核发送第二命令,该第二命令携带第一容器的网络命名空间。操作系统内核在接收到第二命令后,从第二命令中解析出第一容器的网络命名空间,并将第一虚拟接口加入到第一容器的网络命名空间。

在将第一虚拟接口加入到第一容器的网络命名空间后,相当于第一虚拟接口是第一容器的接口,部署在第一容器的nos可以从第一容器的网络命名空间中发现第一虚拟接口,而其它容器无法发现该网络命名空间中的第一虚拟接口。

步骤203,nos向操作系统内核发送第三命令,操作系统内核根据该第三命令将该第二虚拟接口加入到该第二容器的网络命名空间(netnamespace)。

在一个例子中,由于命令行携带第三方应用所在第二容器的容器名称,因此,nos在接收到该命令行后,还可以从该命令行中解析出第二容器的容器名称,并确定与该容器名称对应的网络命名空间,该网络命名空间就是第二容器的网络命名空间,对此确定方式不做限制。

例如,在创建第二容器时,可以记录第二容器的容器名称与第二容器的网络命名空间的对应关系;基于所述对应关系,nos得到第二容器的容器名称后,可以确定与该容器名称对应的网络命名空间。其中,第二容器的网络命名空间与第一容器的网络命名空间可以不同。

然后,nos可以向操作系统内核发送第三命令,该第三命令携带第二容器的网络命名空间。操作系统内核在接收到第三命令后,从第三命令中解析出第二容器的网络命名空间,并将第二虚拟接口加入到第二容器的网络命名空间。

在将第二虚拟接口加入到第二容器的网络命名空间后,相当于第二虚拟接口是第二容器的接口,部署在第二容器的第三方应用可以从该网络命名空间中发现第二虚拟接口,而其它容器无法发现该网络命名空间中的第二虚拟接口。

经过上述处理,操作系统内核在第一容器与第二容器之间创建虚拟链路,该虚拟链路可以包括第一虚拟接口和第二虚拟接口。同时,操作系统内核还将该第一虚拟接口加入到该第一容器的网络命名空间,将该第二虚拟接口加入到该第二容器的网络命名空间。

进一步的,基于前文描述的操作系统内核所创建的虚拟链路,参见图3所示,为本申请实施例中提出的报文处理方法的流程图,该方法包括以下步骤:

步骤301,nos在获取到报文后,将该报文发送给操作系统内核。

其中,nos可以将获取到的所有报文发送给操作系统内核,或者,nos也可以将符合匹配条件的报文发送给操作系统内核,以下对此进行说明。

例如,若用户向nos输入命令行(参见上述步骤201)时,该命令行中未携带匹配条件,则nos可以将获取到的所有报文发送给操作系统内核。

又例如,若该命令行中携带匹配条件,且匹配条件可以包括但不限于报文方向和/或源信息,则nos可以将符合匹配条件的报文发送给操作系统内核。

情况一、若该匹配条件包括报文方向,当该报文方向为入方向时,则nos可以将接收到的报文发送给操作系统内核;例如,物理接口或者网卡在接收到报文后,将该报文发送给nos,nos在接收到该报文后,将该报文发送给操作系统内核。或者,当该报文方向为出方向时,则nos向物理接口或者网卡发送报文后,还可以将该报文发送给操作系统内核。或者,当该报文方向为入方向和出方向时,则nos可以将来自于物理接口或者网卡的报文,发送给操作系统内核,nos也可以将发送给物理接口或者网卡的报文,发送给操作系统内核。

情况二、若该匹配条件包括源信息,则该源信息可以是物理接口或者网卡。例如,网络设备存在3个物理接口,分别为物理接口1、物理接口2和物理接口3,若源信息为物理接口1,则nos可以将针对物理接口1的报文发送给操作系统内核,不将针对物理接口2和物理接口3的报文发送给操作系统内核。例如,网络设备存在3个网卡,分别为网卡1、网卡2和网卡3,若源信息为网卡1和网卡2,则nos可以将针对网卡1的报文发送给操作系统内核,将针对网卡2的报文发送给操作系统内核,不将针对网卡3的报文发送给操作系统内核。

情况三、若该匹配条件包括报文方向和源信息,当报文方向为入方向,源信息为物理接口1时,则nos可以将从物理接口1接收到的报文发送给操作系统内核;或者,当报文方向为出方向,源信息为物理接口1时,则nos可以将发送给物理接口1的报文发送给操作系统内核;或者,当报文方向为入方向和出方向,源信息为物理接口1时,则nos可以将从物理接口1接收到的报文发送给操作系统内核,并将发送给物理接口1的报文发送给操作系统内核。

步骤302,操作系统内核在接收到该报文后,通过上述虚拟链路(即第一容器与第二容器之间的虚拟链路)将该报文发送给第三方应用。

其中,该虚拟链路可以包括属于第一容器的第一虚拟接口和属于第二容器的第二虚拟接口,而且,所述虚拟链路是在操作系统内核中创建的。

本申请实施例中,nos可以将报文发送给操作系统内核,且操作系统内核可以通过虚拟链路将该报文发送给第三方应用,对此实现方式不做限制,只要能够将报文发送给第三方应用即可,以下结合两个具体方式对此进行说明。

方式一、nos将该报文和第一虚拟接口的接口标识封装到内核通信消息,并将该内核通信消息发送给操作系统内核;操作系统内核在接收到内核通信消息后,从该内核通信消息中获取该报文和该接口标识,通过该接口标识对应的第一虚拟接口发送该报文,以将该报文通过所述虚拟链路发送至第二虚拟接口。进一步的,在将该报文发送至第二虚拟接口后,第三方应用可以从第二虚拟接口获取该报文。

以下结合具体应用场景,对方式一中步骤301和步骤302的实现进行说明。

nos在获取到报文后,为了将报文发送给操作系统内核,则nos可以生成内核通信消息(如netlink消息),并将该报文封装到内核通信消息。

此外,nos还可以将第一虚拟接口的接口标识封装到该内核通信消息,具体的,参见图1b所示,在将第一虚拟接口加入到第一容器的网络命名空间后,部署在第一容器的nos可以从第一容器的网络命名空间中发现第一虚拟接口,因此,nos可以将第一虚拟接口的接口标识封装到该内核通信消息。

参见图4a所示,可以在操作系统内核中配置镜像内核模块,nos在生成该内核通信消息后,可以将该内核通信消息发送给镜像内核模块。进一步的,镜像内核模块在接收到该内核通信消息后,可以从该内核通信消息中获取该报文和第一虚拟接口的接口标识。基于该接口标识,镜像内核模块可以确定出与该接口标识对应的第一虚拟接口,并通过该第一虚拟接口发送该报文。

由于第一虚拟接口与第二虚拟接口组成虚拟链路,且第一虚拟接口唯一对应第二虚拟接口,因此,镜像内核模块可以通过第一虚拟接口所在的虚拟链路将报文发送至第二虚拟接口。进一步的,在将第二虚拟接口加入到第二容器的网络命名空间后,部署在第二容器的第三方应用可以从第二容器的网络命名空间中发现第二虚拟接口,因此,第三方应用可以从第二虚拟接口获取该报文。

方式二、参见图4b所示,可以在第一容器中创建镜像虚拟口(如mirrortap口),并将镜像虚拟口与第一虚拟接口加入到同一个桥(如镜像桥)。基于此,nos可以通过镜像虚拟口将报文发送给操作系统内核;操作系统内核通过镜像虚拟口接收到该报文后,确定与镜像虚拟口位于同一个桥的第一虚拟接口,并通过第一虚拟接口发送该报文,以将该报文通过所述虚拟链路发送至第二虚拟接口。进一步的,在将该报文发送至第二虚拟接口后,第三方应用可以从第二虚拟接口获取该报文。

具体的,由于镜像虚拟口与第一虚拟接口加入到同一个桥,且报文是nos通过所述桥中的镜像虚拟口发送的,因此,操作系统内核可以通过所述桥中的第一虚拟接口发送该报文,即可以通过该第一虚拟接口所在的虚拟链路将该报文发送至第二虚拟接口,而第三方应用可以从第二虚拟接口获取该报文。

由于第一虚拟接口与第二虚拟接口组成虚拟链路,且第一虚拟接口唯一对应第二虚拟接口,因此,操作系统内核可以通过第一虚拟接口所在的虚拟链路将报文发送至第二虚拟接口。进一步的,在将第二虚拟接口加入到第二容器的网络命名空间后,部署在第二容器的第三方应用可以从第二容器的网络命名空间中发现第二虚拟接口,因此,第三方应用可以从第二虚拟接口获取该报文。

步骤303,第三方应用获取该报文,并利用该报文进行业务处理。

具体的,操作系统内核通过第一虚拟接口所在的虚拟链路将报文发送至第二虚拟接口后,由于第二虚拟接口已经加入到第二容器的网络命名空间,即第二虚拟接口是第二容器的接口,因此,部署在第二容器的第三方应用可以从该网络命名空间中发现第二虚拟接口,也就是说,第三方应用可以获取第二虚拟接口接收到的报文,即第三方应用可以获取该报文,并利用该报文进行业务处理,这个业务处理过程与第三方应用的功能有关,对此不做限制。

在一个例子中,第三方应用可以包括但不限于:tcpdump(transmissioncontrolprotocoldump,传输控制协议备份)应用。当然,tcpdump应用只是一个示例,对此第三方应用不做限制。其中,tcpdump应用可以是一种报文分析工具,tcpdump应用在获取到报文后,可以根据该报文进行分析,如分析nos的报文的来源,分析nos的报文的传输速率等,对此不做限制。基于此,tcpdump应用利用该报文进行业务处理,可以包括:tcpdump应用利用该报文分析nos的报文的来源,分析nos的报文的传输速率等。

在一个例子中,第二容器的数量可以为一个或者多个,若第二容器的数量为一个,则采用上述流程进行处理,若第二容器的数量为多个,则第一容器与每个第二容器之间均存在虚拟链路;参见图5所示,为存在多个第二容器的示意图,以3个第二容器为例,在实际应用中,还可以为其它数量的第二容器。

基于图2所示的流程,可以在第一容器与第二容器a之间创建虚拟链路a,虚拟链路a包括第一虚拟接口a1和第二虚拟接口a2,对此虚拟链路a的创建过程不再赘述。此外,可以在第一容器与第二容器b之间创建虚拟链路b,虚拟链路b包括第一虚拟接口b1和第二虚拟接口b2,在第一容器与第二容器c之间创建虚拟链路c,虚拟链路c包括第一虚拟接口c1和第二虚拟接口c2。

基于图3所示的流程,基于第一容器与每个第二容器之间的虚拟链路,则操作系统内核还可以将该报文发送给每个第二容器内部署的第三方应用。

具体的,nos可以将针对第二容器a的报文发送给操作系统内核,而操作系统内核在接收到该报文后,可以基于第一容器与第二容器a之间的虚拟链路a,将该报文发送给第二容器a内部署的第三方应用。此外,nos可以将针对第二容器b的报文发送给操作系统内核,而操作系统内核在接收到该报文后,可以基于第一容器与第二容器b之间的虚拟链路b,将该报文发送给第二容器b内部署的第三方应用。此外,nos可以将针对第二容器c的报文发送给操作系统内核,而操作系统内核在接收到该报文后,可以基于第一容器与第二容器c之间的虚拟链路c,将该报文发送给第二容器c内部署的第三方应用。

基于上述技术方案,本申请实施例中,部署在第一容器的nos在接收到报文后,可以将该报文发送给操作系统内核,操作系统内核在接收到报文后,可以通过虚拟链路将该报文发送给部署在第二容器的第三方应用,且第三方应用可以利用该报文进行业务处理。基于此,nos可以将报文发送给第三方应用,使得第三方应用能够正常接收该报文,并使得第三方应用能够正常运行,而且,在保证安全性的基础上,第三方应用可以实现对nos的报文的监控与分析。

基于与上述方法同样的构思,本申请实施例还提供一种网络设备(如交换机、路由器等),该网络设备可以包括第一容器、第二容器和操作系统内核;所述第一容器用于部署网络操作系统nos,所述第二容器用于部署第三方应用;

所述第一容器部署的所述nos,用于在获取到报文后,将所述报文发送给所述操作系统内核;

所述操作系统内核,用于在接收到所述报文后,通过虚拟链路将所述报文发送给所述第三方应用;其中,所述虚拟链路是在所述操作系统内核中创建的;

所述第二容器部署的所述第三方应用,用于获取所述报文,并利用所述报文进行业务处理。

在一个例子中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;

所述nos将所述报文发送给所述操作系统内核时具体用于:将所述报文和所述第一虚拟接口的接口标识封装到内核通信消息,并将所述内核通信消息发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:从所述内核通信消息中获取所述报文和所述接口标识,并通过所述接口标识对应的所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

在一个例子中,所述虚拟链路包括属于所述第一容器的第一虚拟接口和属于所述第二容器的第二虚拟接口;所述第一容器还包括镜像虚拟口,所述镜像虚拟口与所述第一虚拟接口加入到同一个桥;

所述nos将所述报文发送给所述操作系统内核时具体用于:通过所述镜像虚拟口将所述报文发送给所述操作系统内核;

所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:通过所述镜像虚拟口接收到所述报文后,确定与所述镜像虚拟口位于同一个桥的所述第一虚拟接口,并通过所述第一虚拟接口发送所述报文,以将所述报文通过所述虚拟链路发送至所述第二虚拟接口。

在一个例子中,所述nos还用于:向所述操作系统内核发送第一命令,向所述操作系统内核发送第二命令,向所述操作系统内核发送第三命令;

所述操作系统内核还用于:根据所述第一命令创建虚拟链路,所述虚拟链路包括第一虚拟接口以及第二虚拟接口;根据所述第二命令将所述第一虚拟接口加入到所述第一容器的网络命名空间;根据所述第三命令将所述第二虚拟接口加入到所述第二容器的网络命名空间。

在一个例子中,若第二容器的数量为多个,则所述第一容器与每个第二容器之间均存在虚拟链路;所述操作系统内核通过虚拟链路将所述报文发送给所述第三方应用时具体用于:基于所述第一容器与每个第二容器之间的虚拟链路,则将所述报文发送给每个第二容器内部署的第三方应用。

基于上述技术方案,本申请实施例中,部署在第一容器的nos在接收到报文后,可以将该报文发送给操作系统内核,操作系统内核在接收到报文后,可以通过虚拟链路将该报文发送给部署在第二容器的第三方应用,且第三方应用可以利用该报文进行业务处理。基于此,nos可以将报文发送给第三方应用,使得第三方应用能够正常接收该报文,并使得第三方应用能够正常运行,而且,在保证安全性的基础上,第三方应用可以实现对nos的报文的监控与分析。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

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

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