网络配置方法及装置与流程

文档序号:16323064发布日期:2018-12-19 05:47阅读:277来源:国知局
网络配置方法及装置与流程

本申请涉及通信技术领域,具体而言,涉及一种网络配置方法及装置。

背景技术

虚拟网络设备的网络操作系统可以使用容器(docker)来实现。由于虚拟网络设备是虚拟的,在进行数据通信时,需要在容器中创建一定数量的容器接口,用于模拟虚拟网络设备的网络接口。

容器是一种虚拟化技术,通过容器技术,一台物理设备可以模拟出多台虚拟网络设备,每个虚拟网络设备的网络操作系统可以采用一个单独的容器实现,多个容器可以进行独立的配置管理。

在现有技术中,容器接口一般由docker引擎在该容器启动前就完成配置,由于容器接口配置是在容器启动前完成的,利用docker引擎能实现的容器接口配置方式存在配置接口数量有限、配置时机(某些容器接口需要容器启动后才能配置)固定的缺陷。

网络操作系统因其版本、功能要求等不同,需要实现网络操作系统的容器所具备的容器接口类型、数量及创建时机都会不同,现有的容器接口配置方式无法满足采用容器实现网络操作系统的情形。



技术实现要素:

本申请描述一种网络配置方法及装置,用于实现对网络操作系统的容器进行配置。

第一方面,本申请提供一种网络配置方法,所述方法包括:

接收第一容器发送的网络配置请求,所述第一容器用于实现虚拟网络设备的网络操作系统;

向第二容器发送所述网络配置请求,所述网络配置请求用于使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置,其中,所述第二容器对所述第一容器具有网络配置权限。上述方法中,由第一容器通过容器引擎将网络配置请求发送至第二容器,由第二容器根据网络配置请求中的网络配置信息对第一容器完成网络配置。实现了在容器内部对运行网络操作系统的容器进行网络配置。同时,在上述方法中,在第一容器有新的需要配置的网络需求时,通过容器引擎再次将网络配置请求发送至第二容器,实现对第一容器的动态网络配置,并且,由于配置过程中容器配置需求及配置时机等都由第一容器决定,从而确保第一容器中需要配置的网络需求都能被及时配置。

可选地,在本申请中,在接收第一容器发送的网络配置请求之前,所述方法包括:

启动所述第一容器及第二容器,并获取所述第一容器的容器地址和所述第二容器的容器地址;

将所述第二容器的容器地址发送给所述第一容器,以使所述第一容器生成所述网络配置请求,所述网络配置请求包括第一容器的容器地址、所述第二容器的容器地址及通过所述第一容器的接口管理进程获得的网络配置信息

可选地,在申请中,所述将所述网络配置请求发送给所述第二容器,以使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置,包括:

根据所述第二容器的容器地址,将所述网络配置请求发送给所述第二容器,以使所述第二容器根据所述网络配置请求中的网络配置信息对所述第一容器进行网络配置。

可选地,在本申请中,所述接收第一容器发送的网络配置请求,包括:

接收所述第一容器的接口管理进程发送的网络配置请求,其中,所述网络配置请求为所述接口管理进程通过docker命令方式发送。

可选地,在本申请中,所述网络配置请求还包括网络配置代理的地址,所述向第二容器发送所述网络配置请求,所述网络配置请求用于使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置,包括:

根据所述网络配置代理的地址,将所述网络配置请求发送给所述第二容器中的网络配置代理,由所述网络配置代理根据所述第一容器的容器地址及需要配置的网络配置信息,对所述第一容器进行网络配置。

第二方面,本申请还提供一种网络配置装置,所述装置包括:

接收模块,用于接收第一容器发送的网络配置请求,所述第一容器用于实现虚拟网络设备的网络操作系统;

发送模块,用于向第二容器发送所述网络配置请求,所述网络配置请求用于使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置,其中,所述第二容器对所述第一容器具有网络配置权限。

可选地,在本申请中,所述装置还包括:

启动模块,用于启动所述第一容器及第二容器,并获取所述第一容器的容器地址和所述第二容器的容器地址;

所述发送模块,还用于将所述第二容器的容器地址发送给所述第一容器,以使所述第一容器生成所述网络配置请求,所述网络配置请求包括第一容器的容器地址、所述第二容器的容器地址及通过所述第一容器的接口管理进程获得的网络配置信息。

可选地,在本申请中,所述发送模块用于:

根据所述第二容器的容器地址将所述网络配置请求发送给所述第二容器,以使所述第二容器根据所述网络配置请求中的网络配置信息对所述第一容器进行网络配置。

可选地,在本申请中,所述接收模块用于:

接收所述第一容器的接口管理进程发送的网络配置请求,其中,所述网络配置请求为所述接口管理进程通过docker命令方式发送。

可选地,在本申请中,所述网络配置请求还包括网络配置代理的地址,所述发送模块还用于:

根据所述网络配置代理的地址将所述网络配置请求发送给所述第二容器中的网络配置代理,由所述网络配置代理根据所述第一容器的容器地址及需要配置的网络配置信息,对所述第一容器进行网络配置。

第三方面,本申请还提供一种网络设备,所述网络设备包括处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述网络设备执行第一方面所述的网络配置方法。

第四方面,本申请还提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在网络设备执行第一方面所述的网络配置方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的网络配置方法及装置,在所述方法中,首先,接收第一容器发送的网络配置请求;接着,向第二容器发送所述网络配置请求,所述网络配置请求用于使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置。上述方法中,实现了在容器内部对运行网络操作系统的容器进行网络配置。同时,在上述方法中,在第一容器有新的需要配置的网络需求时,通过容器引擎再次将网络配置请求发送至第二容器,实现对第一容器的动态网络配置,并且,由于配置过程中容器配置需求及配置时机等都由第一容器决定,从而确保第一容器中需要配置的网络需求都能被及时配置。

附图说明

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

图1为本申请实施例提供的网络设备的结构框图;

图2为本申请实施例提供的容器框架图;

图3为本申请实施例提供的网络配置方法的一种流程示意图;

图4为本申请实施例提供的网络配置方法的另一种流程示意图;

图5为本申请实施例提供的网络配置装置的功能模块框图。

图标:100-网络设备;110-网络配置装置;1101-接收模块;1102-发送模块;1103-启动模块;111-存储器;112-处理器;113-通信单元;200-第一容器;300-第二容器;400-容器引擎。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请实施例的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请实施例的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请实施例中的具体含义。

请参照图1,图1为本申请实施例提供的一种网络设备100的结构示意图。所述网络设备100包括网络配置装置110、存储器111、处理器112及通信单元113。

所述存储器111、处理器112及通信单元113的各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,所述存储器111可以是,但不限于,随机存取存储器(英文:randomaccessmemory,简称:ram),只读存储器(英文:readonlymemory,简称:rom),可编程只读存储器(英文:programmableread-onlymemory,简称:prom),可擦除只读存储器(英文:erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(英文:electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器111用于存储程序,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于通过网络建立所述网络设备100与其它设备(比如用户终端)之间的通信连接,并用于通过网络进行数据的接收和发送。

网络配置装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述网络设备100的操作系统(英文:operatingsystem,简称:os)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如网络配置装置110所包括的软件功能模块及计算机程序等。

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

请参照图2,图2为本申请实施例提供的运行在网络设备100上的一种容器框架图,容器不模拟cpu、内存等物理器件,不存在自己的内核,一般只运行一组用户态程序,并和宿主机共享一个内核。容器的出现主要是为了满足虚拟机隔离和进程隔离之间的空白,其中,虚拟机隔离属于重量级隔离,具有硬件资源(比如,内存、硬盘及cpu)消耗大的缺点;进程隔离属于轻量级隔离,具有隔离效果不理想的缺点。

容器将应用所需的运行环境、缓存环境、数据库环境等封装起来,以最简洁的方式支持应用运行。一个容器可以相当于一个独立完整的软件系统(比如,comware软件系统)。在本申请实施例中,所述网络设备100上可以运行多个容器。

在容器框架图中,包括用于实现网络设备100上虚拟网络设备的网络操作系统的第一容器200、具有对第一容器200进行网络配置权限的第二容器300及容器引擎400。

在本申请实施例中,第一容器200中包括接口管理进程,该接口管理进程用于获取该第一容器200实现的网络操作系统所需的网络配置信息。

具体地,接口管理进程获取所需的接口配置信息的时机可以是第一容器200启动时,也可以在第一容器200运行过程中。接口管理进程可以在第一容器200启动时通过检测网络操作系统的版本获得需要配置的网络配置信息;接口管理进程也可以在第一容器200运行过程中通过检测第一容器200的业务需求(比如,是否需要新增接口)获取需要配置的网络配置信息。网络配置信息可以包括接口数量、接口类型及对应各个接口上需要配置的具体内容等。

第二容器300中包括网络配置代理,该网络配置代理用于根据第一容器200发送的网络配置信息完成对第一容器200的网络配置,在本申请实施中网络配置代理可以通过脚本的形式实现。

容器引擎400用于启动第一容器200及第二容器300,并与第一容器200及第二容器300进行通信管理。

具体地,在本申请实施例中,容器引擎400可以与所述第一容器200进行双向通信,容器引擎400可用于启动第一容器200,容器引擎400还用于接收第一容器200发送给第二容器300的网络配置请求。第二容器300可以与第一容器200实现单向通信,第二容器300根据网络配置请求中的网络配置信息对第一容器200进行网络配置。

请参照图3,图3为本申请实施例提供的应用于图1中的网络设备100的网络配置方法的流程图,结合图2,下面对所述方法包括的各个步骤进行详尽的阐述。

步骤s310,接收第一容器发送的网络配置请求。

容器引擎400接收第一容器200发送的网络配置请求,其中,网络配置请求包括第一容器200的容器地址、第二容器300的容器地址及第一容器200需要配置的网络配置信息。网络配置信息可以是第一容器200中的接口管理进程在第一容器200启动时根据网络操作系统的版本获取的网络配置信息,也可以是接口管理进程在第一容器200运行过程中因业务需要获取的网络配置信息。

在网络配置请求中,第一容器200的容器地址为源地址,第二容器300的容器地址为目的地址,网络配置信息为具体内容。在网络配置请求中记载容器地址,以便第一容器200通过容器引擎400将网络配置信息发送给第二容器300,并通过第二容器300实现对自身网络的配置。在本申请实施例中,第一容器200可以通过docker命令与容器引擎400之间进行通信交互。

具体地,第一容器200可以通过docker应用程序编程接口(英文:applicationprogramminginterface,简称:api)发送docker命令,所述docker命令中包括网络配置请求。

步骤s320,向第二容器发送网络配置请求,网络配置请求用于使第二容器根据接收到的网络配置请求中的网络配置信息对第一容器进行网络配置。

容器引擎400在接收到该网络配置请求后,根据该网络配置请求中的目的地址,将网络配置请求转发送到第二容器300。

第二容器300在接收到该网络配置请求后,根据网络配置请求中的网络配置信息及第一容器200的容器地址,对第一容器200进行网络配置。

在本申请实施例中,所述网络配置请求还可以包括网络配置代理的地址,网络配置代理被配置在第二容器300中。

则步骤s320还可以通过以下方式实现:

容器引擎400在接收到该网络配置请求后,根据网络配置请求中的目的地址及网络配置代理的地址,将网络配置请求发送到第二容器300的网络配置代理,由该网络配置代理根据第一容器200的容器地址及网络配置信息,对第一容器进行网络配置。

具体地,在本申请实施例中,网络配置代理可以以脚本的形式实现。上述方法中,通过容器引擎400建立第一容器200与第二容器300之间的桥梁,通过容器引擎400并借助第二容器300对第一容器200进行网络配置,使得网络操作系统具备在第一容器200内配置自身网络的功能。

请参照图4,在本申请实施例中,在步骤s310之前,所述方法还可以包括步骤s308和步骤s309。

步骤s308,启动第一容器及第二容器,并获取所述第一容器的容器地址和所述第二容器的容器地址。

步骤s309,将第二容器的容器地址发送给第一容器,以使所述第一容器生成所述网络配置请求,所述网络配置请求包括第一容器的容器地址、所述第二容器的容器地址及通过所述第一容器的接口管理进程获得的网络配置信息。

在上述过程中,容器引擎400首先启动第二容器300,获得第二容器300的容器地址。

在本申请实施例中,技术人员可在先对容器进行配置,使得该容器具有网络配置权限。进一步地,还可在该容器中配置网络配置代理,以使得网络配置代理具有网络配置权限。

容器引擎400在启动第二容器300之后,再启动第一容器200。在完成第一容器200的启动后,将第二容器300的容器地址发送给第一容器200。以使第一容器200根据自身的容器地址、第二容器300的容器地址及第一容器200需要配置的网络配置信息生成网络配置请求。

本申请实施例提供的网络配置方法,需要配置的网络配置信息均是由第一容器200中的接口管理进程获得,并发送给第二容器300,由第二容器300根据网络配置请求中的网络配置信息对第一容器200完成网络配置。实现了在容器内部对运行网络操作系统的容器进行网络配置。同时,在上述过程中,在第一容器200有新的需要配置的网络需求时,通过容器引擎再次将网络配置请求发送至第二容器300,实现对第一容器200的动态网络配置,并且,由于配置过程中容器配置需求及配置时机等都由第一容器200决定,从而确保第一容器200中需要配置的网络需求都能被及时配置。

上述方法可以解决现有技术中,采用容器引擎400在容器开启前进行配置时,因配置接口数量、类型及时机等因素而造成现有容器配置方法无法适用于对实现网络操作系统的容器进行网络配置的情形。

本申请实施例还提供一种网络配置装置110,与上面实施例不同的是,本网络配置装置110是从虚拟装置的角度描述本申请方案的。请参照图5,网络配置装置110可以包括以下模块。

接收模块1101,用于接收第一容器发送的网络配置请求,所述第一容器用于实现虚拟网络设备的网络操作系统。

接收模块1101接收第一容器200发送的网络配置请求,其中,网络配置请求包括第一容器200的容器地址、第二容器300的容器地址及第一容器200需要配置的网络配置信息。如上面所述,网络配置信息可以是第一容器200中的接口管理进程在第一容器200启动时根据网络操作系统的版本获取的网络配置信息,也可以是接口管理进程在第一容器200运行过程中因业务需要获取的新增网络配置信息。

在网络配置请求中,第一容器200的容器地址为源地址,第二容器300的容器地址为目的地址,第一容器200需要配置的网络配置信息为具体内容。

在本申请实施例中,第一容器200可以通过docker命令向容器引擎400发送信息。具体地,第一容器200可以通过docker应用程序编程接口发送docker命令,所述docker命令中包括网络配置请求。

发送模块1102,用于向第二容器发送所述网络配置请求,网络配置请求用于使第二容器根据接收到的网络配置请求中的网络配置信息对第一容器200进行网络配置。

发送模块1102在接收到该网络配置请求后,根据该网络配置请求中的目的地址,将网络配置请求转发送到第二容器300。

在本申请实施例中,所述网络配置请求还可以包括网络配置代理的地址。发送模块1102还用于,在接收到该网络配置请求后,根据网络配置请求中的目的地址及网络配置代理的地址,将网络配置请求发送到第二容器300的网络配置代理,由该网络配置代理根据第一容器200的容器地址及网络配置信息,对第一容器200进行网络配置。具体地,在本申请实施例中,网络配置代理可以以脚本的形式实现。

请再次参照图5,在本申请实施例中,所述网络配置装置110可以包括:

启动模块1103,用于启动第一容器及第二容器,并获取所述第一容器的容器地址和所述第二容器的容器地址;

所述发送模块1102,还用于将所述第二容器的容器地址发送给所述第一容器,以使所述第一容器生成所述网络配置请求,所述网络配置请求包括第一容器的容器地址、所述第二容器的容器地址及通过所述第一容器的接口管理进程获得的网络配置信息。

启动模块1103首先启动第二容器300,获得第二容器300的容器地址。在本申请实施例中,技术人员可在先对容器进行配置,使得该容器具有网络配置权限。进一步地,还可在该容器中配置网络配置代理,以使得网络配置代理具有网络配置权限。

启动模块1103在启动第二容器300之后,再启动第一容器200。在完成第一容器200的启动后,发送模块1102将第二容器300的容器地址发送给第一容器200。以使第一容器200根据自身的容器地址、第二容器300的容器地址及第一容器200需要配置的网络配置信息生成网络配置请求。

如果上述功能以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得网络设备100执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本申请实施例提供的网络配置方法及装置。首先,接收第一容器发送的网络配置请求;接着,向第二容器发送所述网络配置请求,所述网络配置请求用于使所述第二容器根据接收到的所述网络配置请求中的网络配置信息对所述第一容器进行网络配置。实现了在容器内部对运行网络操作系统的容器进行网络配置。同时,在上述过程中,在第一容器有新的需要配置的网络需求时,通过容器引擎再次将网络配置请求发送至第二容器,实现对第一容器的动态网络配置,并且,由于配置过程中容器配置需求及配置时机等都由第一容器决定,从而确保第一容器中需要配置的网络需求都能被及时配置。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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