CN109561108B - 一种基于策略的容器网络资源隔离控制方法 - Google Patents

一种基于策略的容器网络资源隔离控制方法 Download PDF

Info

Publication number
CN109561108B
CN109561108B CN201910013274.7A CN201910013274A CN109561108B CN 109561108 B CN109561108 B CN 109561108B CN 201910013274 A CN201910013274 A CN 201910013274A CN 109561108 B CN109561108 B CN 109561108B
Authority
CN
China
Prior art keywords
isolation
configuration
strategy
container
vpn
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.)
Active
Application number
CN201910013274.7A
Other languages
English (en)
Other versions
CN109561108A (zh
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201910013274.7A priority Critical patent/CN109561108B/zh
Publication of CN109561108A publication Critical patent/CN109561108A/zh
Application granted granted Critical
Publication of CN109561108B publication Critical patent/CN109561108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Abstract

针对现有技术在解决容器网络资源隔离无法灵活地根据任务定制网络访问策略的问题,本发明提供一种基于策略的容器网络资源隔离控制方法,包括以下步骤:S1:用户根据业务场景通过可视化策略配置接口主动配置容器网络隔离策略方案;S2:根据用户从可视化策略配置接口配置的隔离策略方案,SDN控制生成隔离策略配置,并下发至设备;S3:基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制。本发明针对容器网络资源隔离控制需求,实现了分层分级的容器网络隔离,根据业务访问场景灵活地定制容器网络相互访问的条件,从而实现不同应用场景下对容器网络资源访问关系的差异,确保网络资源的有效隔离。

Description

一种基于策略的容器网络资源隔离控制方法
技术领域
本发明涉及虚拟网络领域资源隔离控制技术,尤其涉及一种面向容器网络的资源隔离控制方法。
背景技术
随着硬件成本的下降、性能的提高和虚拟化技术的成熟,云计算服务的产业规模高速扩张。基于云计算平台强大的计算能力、海量的存储能力以及低廉的应用成本,越来越多的行业投身到云计算浪潮中,2016年至2020年全球云计算市场规模的预计复合年增长率达22%。虚拟化技术是云计算服务的一个关键技术基础,正是基于虚拟化技术,云计算服务才能够将物理资源抽象成可供用户使用的虚拟资源,并且通过对物理资源的复用,来实现资源利用率的提高,从而实现IT建设成本的降低。虚拟化技术的另一优势在于,能满足用户根据需要来获取资源的要求,同时能保证这些资源的隔离性及可用性。
作为云计算的核心技术之一,虚拟化将计算、存储、应用和服务变成可以动态配置的资源池,为用户虚拟出一个独立的、随需配置的资源空间,在满足用户需求的情况下,可以根据应用的实际负载情况及时进行资源调度,实现系统资源的利用最大化。
目前虚拟化隔离技术分为传统的虚拟化隔离技术与轻量级的虚拟化隔离技术,传统虚拟化也称为重量级的虚拟化。传统虚拟化技术中,隔离技术是利用虚拟环境为操作系统提供虚拟硬件平台的一种技术,它允许不同的虚拟机分享底层的物理资源,而每一个虚拟机中运行的是虚拟出来属于它自己的操作系统。所有虚拟机由虚拟机管理器(VirtualMachine Monitor,VMM)统一调度、分配和管理。轻量级虚拟化技术中,隔离技术则是指不同容器之间的分离,以及容器和宿主机之间的分离。
传统虚拟化技术比较典型的几种隔离技术有VPN(Virtual Private Network,虚拟私有网络)隔离技术、VLAN(Virtual Local Area Network,虚拟局域网)隔离技术及IPTABLES访问控制策略等,IPTABLES是Linux防火墙netfilter的用户态工具。VPN隔离比物理隔离节约资源。它的重要特点是可以实现多级隔离,且隔离的安全性等价于密码的安全性。但它的缺点是:在网络的边界点隔离设备容易受到来自公共网络的攻击,特别是拒绝服务式攻击基于VLAN隔离技术的访问控制方法在现今的虚拟网络中得到广泛的应用。VLAN是对连接到的第二层交换机端口的网络用户的逻辑分段,不受网络用户的物理位置限制,根据用户需求进行网络分段。一个VLAN可以在一个交换机或者跨交换机实现。VLAN可以根据网络用户的位置、作用、部门或者根据网络用户所使用的应用程序和协议来进行分组。VLAN用户可以方便地在网络中移动和快捷组件宽带网络,而无需改变任何硬件和通信线路。使用VLAN隔离技术也有一个明显的缺点,那就是要求网络管理员必须明确交换设备的每个物理端口上所连接的设备MAC地址或IP地址,根据所需求划分不同的工作组并对交换设备进行配置。当某一网络终端的网卡、IP地址或者物理地址发生变化时,需要对整个网络系统中多个相关的网络设备进行重新配置,这加重了网络管理员的维护工作量,所以也只适用于小型的网络。
传统的虚拟化技术在启动时需消耗额外的系统资源,存在系统资源利用率低且应用性能低等缺点。跟重量级的虚拟化方式相比,轻量级虚拟化方式拥有众多的优势。首先,容器可以实现在数秒级单位上的启动,性能相比重量级的虚拟机方式有较大的提升。其次,多个容器运行在一个共享的操作系统内核之上,它们共享底层的操作系统接口,因此在对系统资源的利用上效率更高。此外,除了运行在其中的应用程序,容器基本上不占用其他多余的系统资源,使得内存、CPU和网络等开销更少,这不仅对于企业、云服务提供商(CloudService Provider,简称CSP)、高性能计算(High Performance Computing,简称HPC),如密集的云配置,而且对于资源受约束的环境,如移动和嵌入式等设备来说都是一种更经济的虚拟化方式。
容器的一个很大的特性就是可以对各种资源做隔离及限制,这些资源包括CPU、内存、磁盘等。目前容器做资源隔离主要有两种方案,一种是仅仅使用Linux的原始功能来实现安全与隔离,比如命名空间(namespaces)、cgroups(control groups的缩写,Linux提供的一种可以限制、记录、隔离进程组所使用的物理资源)、存储空间(capabilities)等。另一种则是采用通用的集群管理工具做资源隔离,常用的有Kubernetes,Kubernetes是一个用于容器集群的自动化部署、扩容以及运维的开源平台。相关研究研究主要集中在CPU、内存、磁盘和输入/输出设备接口(I/O)等资源的隔离,对容器网络的资源隔离研究较少;同时,Kubernetes基于策略的网络资源隔离仅能够通过简单的防火墙规则进行实施,不能根据任务进行灵活的策略制定以提升系统的网络资源隔离能力。
容器技术作为最近被热捧的轻量级虚拟化技术,除了性能上的优势外,对用户(CSP和个体使用者)来说是一种更经济的虚拟化方式,云计算低成本和易用性这两大好处都拥有。但云计算用户另外还有两个关心的问题:信任和安全性。用户会担心容器技术的隔离强度能不能保障用户在容器中应用和数据的安全,尤其是容器提供的隔离强度并没有虚拟机提供的隔离强度大。因此作为云计算的基础关键技术,轻量级虚拟化技术想要得到推广、吸引更多用户,就必须向用户证明其隔离技术的有效性,使用户能够对其提供的服务建立足够的信心。
发明内容
针对现有技术在解决容器网络资源隔离无法灵活地根据任务定制网络访问策略的问题,提供一种基于策略的容器网络资源隔离控制方法,实现容器网络资源的按需隔离,确保容器集群之间网络资源的有效隔离。
一种基于策略的容器网络资源隔离控制方法,基于策略的容器网络资源隔离控制方法包含三层架构:视图层、控制层和基础层;视图层进行可视化策略配置接口配置;控制层基于SDN控制生成隔离策略配置;基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制,隔离技术为基于OVS虚拟网桥技术搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制;具体包括以下步骤:
S1:视图层中用户通过可视化策略配置接口配置,生成隔离策略方案。用户根据业务场景通过可视化策略配置接口主动配置容器网络隔离策略方案,通过HTTP(HyperTextTransfer Protocol,超文本传输协议)的协议接口将策略方案通过北向接口与SDN(Software Defined Network,软件定义网络)控制层进行交互;
S2:控制层中SDN控制器生成隔离策略配置。根据用户从可视化策略配置接口配置的隔离策略方案,SDN控制器通过北向接口/REST API(Application ProgrammingInterface,应用程序编程接口)接收到隔离策略方案。经由SDN控制器的基础模块根据隔离策略方案,指定策略,生成相应的容器网络隔离策略配置,并经由SDN控制器的南向接口NETCONF(Network Configuration Protocol,网络配置协议或NETCONF的事件通知机制)协议下发至设备;
S3:隔离与控制机制的实施。基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制,基础层基于OVS(OpenvSwitch,开放虚拟交换标准)虚拟网桥技术用以搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制。
作为本发明技术方案的进一步改进:所述步骤S1中可视化策略配置接口配置的实施流程为:
S101:用户在web页面上配置用户配置项。用户配置项包括:隔离属性、容器网络、主机、描述、环境变量等;其中隔离属性可以选择物理隔离、三层隔离或策略控制等;
S102:将用户配置项形成XML(Extensible Markup Language,可扩展置标语言)格式的配置文件;
S103:将配置文件封装成HTTP报文;
S104:通过HTTP协议将配置方案经API接口与控制层交互。
作为本发明技术方案的进一步改进:所述步骤S2中SDN控制器生成隔离策略配置的实施流程为:
S201:北向接口/REST API接收到来自视图层发送的HTTP报文,并由数据分发模块对该数据包进行解析;
S202:数据分发模块将报文剥掉HTTP报文头,判断其内容为控制信息,则发送至策略制定模块进行分析和处理;
S203:策略制定模块根据数据分发模块发送的信息对隔离属性、描述、容器网络等字段进行综合分析,根据分析选择VPN、VLAN或IPTABLES等隔离方法中的一种生成隔离配置文件。例如隔离属性选择物理隔离、容器网络选择VLAN,则综合分析选择生成基于OVS的VLAN的隔离配置文件,并发送至下发管理模块;
S204:在下发管理模块中对生成的策略通过南向接口的NETCONF协议将网络隔离控制配置下发至基础层设备。其中NETCONF协议采用Client/Service(客户/服务器模式)结构,SDN控制器作为NETCONF的Client(客户端),基础层执行操作的容器或其他设备作为NETCONF的Server(服务端)。
作为本发明技术方案的进一步改进:所述步骤S204中,NETCONF协议工作流程如下:
S204.1:Client端将内容层的隔离配置传至传输协议层对数据对象进行加密封装;
S204.2:封装加密并建立连接。传输协议层在Client端生成一对密钥,将公共密钥传给Server相关目录进行备份,借助libssh2函数库的相关函数完成安全认证;然后借助SSHV2本地端口转发功能分别在Client端和Server端建立一个SSH隧道,通过Client端和Server端的数据经过SSH(Struts、Spring、Hibernate,MVC软件开发模式)传输;
S204.3:提取RPC(Remote Procedure Call,远程过程调用)报文。Server端在recv()收到请求之后,判断报文是否为NETCONF报文格式,若为NETCONF报文格式则解析文档中的RPC部分,交由RPC处理,进入步骤S204.4;若报文格式不符合则进入步骤S204.5。
S204.4:进入RPC模块处理。将操作层元素取出传给操作层模块,如果操作层模块处理成功则返回正确的报文,RPC模块再将返回的响应报文进行RPC层的封装,再发给对应的客户端,如果在途中某个环节检查错误或操作层模块错误,则统一封装成错误处理报文,发送至客户端。
S204.5:关闭子线程。
作为本发明技术方案的进一步改进:所述步骤S3中隔离与控制机制的实施流程为:
S301:根据SDN控制器下发的隔离配置策略,剥掉NETCONF协议报文头;
S302:根据下发的隔离配置策略执行所选择的某一种隔离策略,若选择VPN隔离技术则进入S302.1;若选择VLAN隔离技术则进入S302.2;若选择IPTABLES访问控制机制则进入S302.3,具体实施流程如下:
S302.1:如果隔离配置策略是基于标地分离架构下的VPN隔离技术,则隔离策略如下:主机内通过OVS网桥进行容器连接,根据入口/出口目标路由器属性(Route Targetattribute,RT)实现信息的导入检查,满足导入条件的就在同一个VPN中;从其他容器过来的数据,会根据接口所属VRF(Virtual Routing Forwarding Instance,虚拟路由转发实例)查询且只能查询此标地映射信息,从而实现了信息的隔离。
S302.2:如果隔离配置策略是在OVS网桥基础上使用VLAN隔离技术,则隔离策略如下:VLAN根据容器的作用、服务、结构以及所使用的应用程序及协议来进行分组。
S302.3:如果隔离配置策略是使用IPTABLES访问控制机制,则隔离策略如下:根据业务场景不同,下发的隔离配置策略中携带了IPTABLES的配置机制,IPTABLES根据定义的策略规则完成封包过滤、封包重定向和网络地址转换(Network Address Translation,缩写为NAT)等功能。
作为本发明技术方案的进一步改进:所述步骤S302.1中,选择的基于标地分离架构下的VPN隔离技术具体的实施步骤如下:
S302.1.1:将主机的接口绑定VRF,配置VRF的入口/出口RT属性;
S302.1.2:从VRF接口上学习到信息,保存至相应的VRF表中;
S302.1.3:标地协议发布标地映射信息时,加上路由区分符(RouteDistinguisher,RD)形成VPN信息,并携带上VRF的出口RT信息;
S302.1.4:网络中其他容器接收到VPN标地映射信息后,根据所携带的出口RT信息与本地VRF的入口RT属性进行匹配,若成功的进行匹配,则会将满足条件的VPN标地映射信息导入到相应的VRF中;
S302.1.5:在进行VPN标地映射信息发布时,不需要为容器分配VPN私网标签,以VRF的标识作为VPN ID,携带在VPN标地映射信息的属性中进行消息同步;
S302.1.6:在接收到消息后,判断是否满足RT导入要求,若满足则将信息导入至本地VRF,并保存信息中携带的VPN ID,进入步骤S302.1.7,若不满足RT导入要求的,则将消息丢弃;
S302.1.7:中间容器根据目的区域名和目的设备名对消息进行转发;
S302.1.8:当到达标识发送端主机后,它在剥掉位置头同时记录VPN ID,如果VPNID有值,那么它会根据VPN ID找到相应的VRF标地映射信息表,然后在VRF标地映射信息表中继续查找标识信息,根据查找结果继续在标识地址簇中进行转发,进入步骤S302.1.9;如果VPN ID没有值,则将包丢弃;
S302.1.9:根据入口/出口RT实现信息的导入检查,满足导入条件的就在同一个VPN中,不满足导入条件的表示不在同一个VPN中,消息传送过来会被丢弃;从其他容器过来的数据,会根据接口所属VRF查询且只能查询此VRF的标地映射信息,从而实现了信息的隔离。
作为本发明技术方案的进一步改进:所述步骤S302.2中,选择的在OVS网桥基础上使用VLAN隔离技术具体的实施步骤如下:
S302.2.1:VLAN模式下,用户创建VLAN;
S302.2.2:由用户创建不同VLAN的子网,并分配不同的VLAN ID;
S302.2.3:根据用户传入的子网IP范围构建IP地址管理、分配机构;
S302.2.4:保存VLAN信息,配置VLAN网关;
S302.2.5:在VLAN网络中创建容器并分配IP,若容器已创建则在可视化界面上配置隔离控制方法时,将容器的网络修改为应加入的VLAN中,在启动时会自动分配此VLAN中的IP地址;
S302.2.6:创建OVS网桥,用作物理映射,通过端口之间的虚拟设备对(veth)完成网桥之间的连接;
S302.2.7:通过将物理网卡加入到OVS网桥上完成与外界的通信。
作为本发明技术方案的进一步改进:所述步骤S302.3中,选择使用IPTABLES访问控制机制进行隔离控制,具体实施步骤如下:
S302.3.1:当一个数据包进入网卡时,首先进入路由前(PREROUTING)链,内核根据数据包目的IP判断是否需要转送出去,若数据包是进入本机的,则进入S302.3.2;若数据包是要转发出去的,则进入S302.3.3;
S302.3.2:如果数据包是进入本机的,就会到达输入(INPUT)链,此次任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过输出(OUTPUT)链,然后到达路由后(POSTROUTING)链输出,结束;
S302.3.3:如果数据包是要转发出去的,且内核允许转发,数据包就会经过转发(FORWARD)链,然后到达POSTROUTING链输出,结束。
采用本发明可以达到以下技术效果:
本发明针对容器网络资源隔离控制需求,提出了分层分级的容器网络隔离方法。以容器网络跨域模型为基础,采用基于策略的控制模式,利用任务编排确定容器网络相互访问控制描述,将其转化为访问控制策略,根据业务访问场景灵活地定制容器网络相互访问的条件,从而实现不同应用场景下对容器网络资源访问关系的差异,确保网络资源的有效隔离。
附图说明
图1是本发明一种基于策略的容器网络资源隔离控制方法的架构图;
图2是本发明一种基于策略的容器网络资源隔离控制方法的总体流程图;
图3是本发明隔离控制模块中IPTABLES访问控制模块流程图。
具体实施方式
以下将结合说明书附图对本发明做进一步详细说明。
图1是本发明一种基于策略的容器网络资源隔离控制方法的架构图,本发明基于策略的容器网络资源隔离控制方法包含三层架构:视图层、控制层和基础层。视图层进行可视化策略配置接口配置;控制层基于SDN控制生成隔离策略配置;基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制,隔离技术为基于OVS虚拟网桥技术搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制。
如图2所示,本发明基于策略的容器网络资源隔离控制方法,包括以下步骤:
S1:用户通过可视化策略配置接口配置。用户根据业务场景通过可视化策略配置接口主动配置容器网络隔离策略方案,通过HTTP(HyperText Transfer Protocol,超文本传输协议)的协议接口将策略方案通过北向接口与SDN(Software Defined Network,软件定义网络)控制层进行交互;可视化策略配置接口交互流程如下:
S101:用户在web页面上配置用户配置项。用户配置项包括:隔离属性、容器网络、主机、描述、环境变量等;其中隔离属性可以选择物理隔离、三层隔离或策略控制等;
S102:将用户配置项形成XML(Extensible Markup Language,可扩展置标语言)格式的配置文件;
S103:将配置文件封装成HTTP报文;
S104:通过HTTP协议将配置方案经API接口与控制层交互。
S2:SDN控制生成隔离策略配置。根据用户从可视化策略配置接口配置的隔离策略方案,SDN控制器通过北向接口/REST API(Application Programming Interface,应用程序编程接口)接收到隔离策略方案。经由SDN控制器的基础模块根据隔离策略方案,指定策略,生成相应的容器网络隔离策略配置,并经由控制器的南向接口NETCONF(NetworkConfiguration Protocol,网络配置协议或NETCONF的事件通知机制)协议下发至设备;SDN控制实施流程如下:
S201:北向接口/REST API接收到来自视图层发送的HTTP报文,并由数据分发模块对该数据包进行解析;
S202:数据分发模块将报文剥掉HTTP报文头,判断其内容为控制信息,则发送至策略制定模块进行分析和处理;
S203:策略制定模块根据数据分发模块发送的信息对隔离属性、描述、容器网络等字段进行综合分析,根据分析选择VPN、VLAN或IPTABLES等隔离方法中的一种生成隔离配置文件。例如隔离属性选择物理隔离、容器网络选择VLAN,则综合分析选择生成基于OVS的VLAN的隔离配置文件,并发送至下发管理模块;
S204:在下发管理模块中对生成的策略通过南向接口的NETCONF协议将网络隔离控制配置下发至基础层设备。其中NETCONF协议采用Client/Service(客户/服务器模式)结构,SDN控制器作为NETCONF的Client(客户端),基础层执行操作的容器或其他设备作为NETCONF的Server(服务端)。NETCONF协议工作流程如下:
S204.1:Client端将内容层的隔离配置传至传输协议层对数据对象进行加密封装;
S204.2:封装加密并建立连接。传输协议层在Client端生成一对密钥,将公共密钥传给Server相关目录进行备份,借助libssh2函数库的相关函数完成安全认证;然后借助SSHV2本地端口转发功能分别在Client端和Server端建立一个SSH隧道,通过Client端和Server端的数据经过SSH(Struts、Spring、Hibernate,MVC软件开发模式)传输;
S204.3:提取RPC(Remote Procedure Call,远程过程调用)报文。Server端在recv()收到请求之后,判断报文是否为NETCONF报文格式,若为NETCONF报文格式则解析文档中的RPC部分,进入步骤S204.4;若报文格式不符合则进入步骤S204.5。
S204.4:进入RPC模块处理。将操作层元素取出传给操作层模块,如果操作层模块处理成功则返回正确的报文,RPC模块再将返回的响应报文进行RPC层的封装,再发给对应的客户端,如果在途中某个环节检查错误或操作层模块错误,则统一封装成错误处理报文,发送至客户端。
S3:隔离与控制机制的实施。基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制,基础层基于OVS(OpenvSwitch,开放虚拟交换标准)虚拟网桥技术用以搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制。具体流程如下:
S301:根据SDN控制器下发的隔离配置策略,剥掉NETCONF协议报文头;
S302:根据下发的隔离配置策略执行所选择的某一种隔离策略,若选择VPN隔离技术则进入S302.1;若选择VLAN隔离技术则进入S302.2;若选择IPTABLES访问控制机制则进入S302.3,具体实施流程如下:
S302.1:如果隔离配置策略是基于标地分离架构下的VPN隔离技术,则隔离策略如下:主机内通过OVS网桥进行容器连接,根据入口/出口目标路由器属性(Route Targetattribute,RT)实现信息的导入检查,满足导入条件的就在同一个VPN中;从其他容器过来的数据,会根据接口所属VRF(Virtual Routing Forwarding Instance,虚拟路由转发实例)查询且只能查询此标地映射信息,从而实现了信息的隔离。VPN隔离技术具体的实施步骤如下:
S302.1.1:将主机的接口绑定VRF,配置VRF的入口/出口RT属性;
S302.1.2:从VRF接口上学习到信息,保存至相应的VRF表中;
S302.1.3:标地协议发布标地映射信息时,加上路由区分符(RouteDistinguisher,RD)形成VPN信息,并携带上VRF的出口RT信息;
S302.1.4:网络中其他容器接收到VPN标地映射信息后,根据所携带的出口RT信息与本地VRF的入口RT属性进行匹配,若成功的进行匹配,则会将满足条件的VPN标地映射信息导入到相应的VRF中;
S302.1.5:在进行VPN标地映射信息发布时,不需要为容器分配VPN私网标签,以VRF的标识作为VPN ID,携带在VPN标地映射信息的属性中进行消息同步;
S302.1.6:在接收到消息后,判断是否满足RT导入要求,若满足则将信息导入至本地VRF,并保存信息中携带的VPN ID,进入步骤S302.1.7,若不满足RT导入要求的,则将消息丢弃;
S302.1.7:中间容器根据目的区域名和目的设备名对消息进行转发;
S302.1.8:当到达标识发送端主机后,它在剥掉位置头同时记录VPN ID,如果VPNID有值,那么它会根据VPN ID找到相应的VRF标地映射信息表,然后在VRF标地映射信息表中继续查找标识信息,根据查找结果继续在标识地址簇中进行转发,进入步骤S302.1.9;如果VPN ID没有值,则将包丢弃;
S302.1.9:根据入口/出口RT实现信息的导入检查,满足导入条件的就在同一个VPN中,不满足导入条件的表示不在同一个VPN中,消息传送过来会被丢弃;从其他容器过来的数据,会根据接口所属VRF查询且只能查询此VRF的标地映射信息,从而实现了信息的隔离。
S302.2:如果隔离配置策略是在OVS网桥基础上使用VLAN隔离技术,则隔离策略如下:VLAN根据容器的作用、服务、结构以及所使用的应用程序及协议来进行分组。VLAN隔离技术具体实施步骤如下:
S302.2.1:VLAN模式下,用户创建VLAN;
S302.2.2:由用户创建不同VLAN的子网,并分配不同的VLAN ID;
S302.2.3:根据用户传入的子网IP范围构建IP地址管理、分配机构;
S302.2.4:保存VLAN信息,配置VLAN网关;
S302.2.5:在VLAN网络中创建容器并分配IP,若容器已创建则在可视化界面上配置隔离控制方法时,将容器的网络修改为应加入的VLAN中,在启动时会自动分配此VLAN中的IP地址;
S302.2.6:创建OVS网桥,用作物理映射,通过端口之间的虚拟设备对(veth)完成网桥之间的连接;
S302.2.7:通过将物理网卡加入到OVS网桥上完成与外界的通信。
S302.3:如果隔离配置策略是使用IPTABLES访问控制机制,则隔离策略如下:根据业务场景不同,下发的隔离配置策略中携带了IPTABLES的配置机制,IPTABLES根据定义的策略规则完成封包过滤、封包重定向和网络地址转换(Network Address Translation,缩写为NAT)等功能。如图3所示,使用IPTABLES访问控制机制进行隔离控制,具体的实施步骤如下:
S302.3.1:当一个数据包进入网卡时,首先进入路由前(PREROUTING)链,内核根据数据包目的IP判断是否需要转送出去,若数据包是进入本机的,则进入S302.3.2;若数据包是要转发出去的,则进入S302.3.3;
S302.3.2:如果数据包是进入本机的,就会到达输入(INPUT)链,此次任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过输出(OUTPUT)链,然后到达路由后(POSTROUTING)链输出,结束;
S302.3.3:如果数据包是要转发出去的,且内核允许转发,数据包就会经过转发(FORWARD)链,然后到达POSTROUTING链输出,结束。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (5)

1.一种基于策略的容器网络资源隔离控制方法,其特征在于,基于策略的容器网络资源隔离控制方法包含三层架构:视图层、控制层和基础层;视图层进行可视化策略配置接口配置;控制层基于SDN控制生成隔离策略配置;基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制,隔离技术为基于OVS虚拟网桥技术搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制;具体包括以下步骤:
S1:视图层中用户通过可视化策略配置接口,生成隔离策略方案:用户根据业务场景通过可视化策略配置接口主动配置容器网络隔离策略方案,通过HTTP协议将策略方案通过接口与SDN控制层进行交互;其中,HTTP即超文本传输协议,SDN即软件定义网络;可视化策略配置接口配置实施流程为:
S101:用户在web页面上配置用户配置项;
S102:将用户配置项形成XML格式的配置文件;其中,XML即可扩展置标语言;
S103:将配置文件封装成HTTP报文;
S104:通过HTTP协议将隔离策略方案经API接口与控制层交互;
S2:控制层中SDN控制器生成隔离策略配置:SDN控制器通过北向接口接收到用户从可视化策略配置接口配置的隔离策略方案,根据隔离策略方案,生成相应的容器网络隔离策略配置,并经由SDN控制器的南向接口即NETCONF协议下发至设备;其中NETCONF即网络配置协议;SDN控制器生成隔离策略配置的实施流程为:
S201:北向接口接收到来自视图层发送的HTTP报文,并由数据分发模块对该数据包进行解析;
S202:数据分发模块将报文剥掉HTTP报文头,判断其内容为控制信息,发送至策略制定模块进行分析和处理;
S203:策略制定模块根据数据分发模块发送的信息对隔离属性、描述、容器网络字段进行综合分析,根据分析选择VPN、VLAN或IPTABLES隔离方法中的一种生成隔离配置文件;
S204:在下发管理模块中对生成的策略通过南向接口的NETCONF协议将网络隔离控制配置下发至基础层设备;
S3:基础层根据控制层下发的隔离策略配置,执行相应的隔离及访问控制机制;基础层基于OVS虚拟网桥技术用以搭建容器通信虚拟网桥,基于标地分离架构下的VPN隔离技术,在OVS网桥基础上使用VLAN隔离技术,并基于不同策略使用IPTABLES对容器服务进行访问控制机制;其中,OVS即开放虚拟交换标准,VPN即虚拟私有网络,VLAN即虚拟局域网,IPTABLES是Linux防火墙netfilter的用户态工具;隔离与控制机制的实施流程为:
S301:根据SDN控制器下发的隔离配置策略,剥掉NETCONF协议报文头;
S302:根据下发的隔离配置策略执行所选择的某一种隔离策略,若选择VPN隔离技术则进入S302.1;若选择VLAN隔离技术则进入S302.2;若选择IPTABLES访问控制机制则进入S302.3,具体实施流程如下:
S302.1:如果隔离配置策略是基于标地分离架构下的VPN隔离技术,则隔离策略如下:主机内通过OVS网桥进行容器连接,根据入口/出口目标路由器属性实现信息的导入检查,满足导入条件的就在同一个VPN中;从其他容器过来的数据,根据接口所属VRF查询且只能查询此标地映射信息;其中,VRF即虚拟路由转发实例;
S302.2:如果隔离配置策略是在OVS网桥基础上使用VLAN隔离技术,则隔离策略如下:VLAN根据容器的作用、服务、结构以及所使用的应用程序及协议进行分组;
S302.3:如果隔离配置策略是使用IPTABLES访问控制机制,则隔离策略如下:根据业务场景不同,下发的隔离配置策略中携带了IPTABLES的配置机制,IPTABLES根据定义的策略规则完成封包过滤、封包重定向和网络地址转换功能。
2.如权利要求1所述的基于策略的容器网络资源隔离控制方法,其特征在于,所述步骤S204中,NETCONF协议采用Client/Service结构,SDN控制器作为NETCONF的Client端,基础层执行操作的容器或其他设备作为NETCONF的Server端,NETCONF协议工作流程如下:
S204.1:Client端将内容层的隔离配置传至传输协议层对数据对象进行加密封装;
S204.2:封装加密并建立连接:传输协议层在Client端生成一对密钥,将公共密钥传给Server相关目录进行备份,借助libssh2函数库的相关函数完成安全认证;然后借助SSHV2本地端口转发功能分别在Client端和Server端建立一个SSH隧道,通过Client端和Server端的数据经过SSH传输;SSH即Struts、Spring、Hibernate,是一种MVC软件开发模式;
S204.3:提取RPC报文,RPC为Remote Procedure Call,远程过程调用的简称:Server端在recv()收到请求之后,判断报文是否为NETCONF报文格式,若为NETCONF报文格式则解析文档中的RPC部分,进入步骤S204.4;若报文格式不符合则进入步骤S204.5;
S204.4:进入RPC模块处理:将操作层元素取出传给操作层模块,如果操作层模块处理成功则返回正确的报文,RPC模块再将返回的响应报文进行RPC层的封装,再发给对应的客户端,如果在途中某个环节检查错误或操作层模块错误,则统一封装成错误处理报文,发送至客户端。
3.如权利要求1所述的基于策略的容器网络资源隔离控制方法,其特征在于,所述步骤S302.1中,选择的基于标地分离架构下的VPN隔离技术具体的实施步骤如下:
S302.1.1:将主机的接口绑定VRF,配置VRF的入口/出口路由器属性;
S302.1.2:从VRF接口上学习到信息,保存至相应的VRF表中;
S302.1.3:标地协议发布标地映射信息时,加上路由区分符形成VPN信息,并携带上VRF的出口路由器属性;
S302.1.4:网络中其他容器接收到VPN标地映射信息后,根据所携带的出口路由器属性与本地VRF的入口路由器属性进行匹配,若成功的进行匹配,则会将满足条件的VPN标地映射信息导入到相应的VRF中;
S302.1.5:在进行VPN标地映射信息发布时,不需要为容器分配VPN私网标签,以VRF的标识作为VPN ID,携带在VPN标地映射信息的属性中进行消息同步;
S302.1.6:在接收到消息后,判断是否满足路由器属性导入要求,若满足则将信息导入至本地VRF,并保存信息中携带的VPN ID,进入步骤S302.1.7,若不满足路由器属性导入要求的,则将消息丢弃;
S302.1.7:中间容器根据目的区域名和目的设备名对消息进行转发;
S302.1.8:当到达标识发送端主机后,它在剥掉位置头同时记录VPN ID,如果VPN ID有值,那么它会根据VPN ID找到相应的VRF标地映射信息表,然后在VRF标地映射信息表中继续查找标识信息,根据查找结果继续在标识地址簇中进行转发,进入步骤S302.1.9;如果VPN ID没有值,则将包丢弃;
S302.1.9:根据入口/出口路由器属性实现信息的导入检查,满足导入条件的就在同一个VPN中,不满足导入条件的表示不在同一个VPN中,消息传送过来会被丢弃;从其他容器过来的数据,会根据接口所属VRF查询且只能查询此VRF的标地映射信息。
4.如权利要求1所述的基于策略的容器网络资源隔离控制方法,其特征在于,所述步骤S302.2中,在OVS网桥基础上使用VLAN隔离技术,具体实施步骤如下:
S302.2.1:VLAN模式下,用户创建VLAN;
S302.2.2:由用户创建不同VLAN的子网,并分配不同的VLAN ID;
S302.2.3:根据用户传入的子网IP范围构建IP地址管理、分配机构;
S302.2.4:保存VLAN信息,配置VLAN网关;
S302.2.5:在VLAN网络中创建容器并分配IP,若容器已创建则在可视化界面上配置隔离控制方法时,将容器的网络修改为应加入的VLAN中,在启动时自动分配此VLAN中的IP地址;
S302.2.6:创建OVS网桥,用作物理映射,通过端口之间的虚拟设备对完成网桥之间的连接;
S302.2.7:通过将物理网卡加入到OVS网桥上完成与外界的通信。
5.如权利要求1所述的基于策略的容器网络资源隔离控制方法,其特征在于,所述步骤S302.3中,选择使用IPTABLES访问控制机制进行隔离控制,具体实施步骤如下:
S302.3.1:当一个数据包进入网卡时,首先进入路由前链,内核根据数据包目的IP判断是否需要转送出去,若数据包是进入本机的,则进入S302.3.2;若数据包是要转发出去的,则进入S302.3.3;
S302.3.2:如果数据包是进入本机的,就会到达输入链,经过输出链,然后到达路由后链输出,结束;
S302.3.3:如果数据包是要转发出去的,且内核允许转发,数据包就会经过转发链,然后到达路由后链输出,结束。
CN201910013274.7A 2019-01-07 2019-01-07 一种基于策略的容器网络资源隔离控制方法 Active CN109561108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910013274.7A CN109561108B (zh) 2019-01-07 2019-01-07 一种基于策略的容器网络资源隔离控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910013274.7A CN109561108B (zh) 2019-01-07 2019-01-07 一种基于策略的容器网络资源隔离控制方法

Publications (2)

Publication Number Publication Date
CN109561108A CN109561108A (zh) 2019-04-02
CN109561108B true CN109561108B (zh) 2020-09-01

Family

ID=65872567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910013274.7A Active CN109561108B (zh) 2019-01-07 2019-01-07 一种基于策略的容器网络资源隔离控制方法

Country Status (1)

Country Link
CN (1) CN109561108B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110120919B (zh) * 2019-04-04 2021-01-12 华中科技大学 一种用于容器网络的网络资源隔离方法和系统
CN110557368B (zh) * 2019-07-22 2021-09-21 南京财经大学 一种属性基信息流控制方法及系统
US20210029055A1 (en) * 2019-07-22 2021-01-28 International Business Machines Corporation Internet activity compartmentalization
CN111049796B (zh) * 2019-10-25 2022-01-07 中国通信服务股份有限公司 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法
CN110932907B (zh) * 2019-12-03 2020-10-16 北京大学 一种Linux容器网络配置方法及网络系统
CN111147450B (zh) * 2019-12-09 2022-07-08 江苏艾佳家居用品有限公司 一种基于macvlan模式的容器网络隔离方法
CN111049851B (zh) * 2019-12-24 2021-10-01 中国电子科技集团公司第五十四研究所 一种跨域传输业务多级多维联动管控系统
CN111709014B (zh) * 2020-05-27 2022-06-07 浪潮电子信息产业股份有限公司 一种应用隔离方法、系统、设备及计算机可读存储介质
CN111614689B (zh) * 2020-05-27 2021-02-19 北京天融信网络安全技术有限公司 一种用于状态防火墙的报文转发方法和装置
CN112019545B (zh) * 2020-08-28 2022-08-12 杭州安恒信息安全技术有限公司 一种蜜罐网络部署方法、装置、设备及介质
US11456987B1 (en) 2021-05-07 2022-09-27 State Farm Mutual Automobile Insurance Company Systems and methods for automatic internet protocol address management
CN113791865A (zh) * 2021-09-08 2021-12-14 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器
CN113888182A (zh) * 2021-10-25 2022-01-04 支付宝(杭州)信息技术有限公司 风险检测策略体系的构建方法、装置及设备
CN114650184B (zh) * 2022-04-15 2023-05-26 四川中电启明星信息技术有限公司 一种基于信任度的Docker进程安全访问控制方法
CN115189948B (zh) * 2022-07-11 2023-05-12 北京志凌海纳科技有限公司 一种CaaS平台中容器网络插件的实现方法和系统
CN115037800B (zh) * 2022-08-10 2022-10-25 广州明领基因科技有限公司 基于微隔离的生物信息学容器的构建系统及构建方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152256A (zh) * 2013-02-22 2013-06-12 浪潮电子信息产业股份有限公司 一种基于云计算数据中心的路由虚拟网络设计方法
CN105978781A (zh) * 2016-06-28 2016-09-28 浪潮电子信息产业股份有限公司 建立Docker容器的网络连接的方法、系统以及客户端
CN108111383A (zh) * 2017-12-26 2018-06-01 北京航空航天大学 一种基于sdn的跨域容器虚拟网络组建方法
CN108521403A (zh) * 2018-03-09 2018-09-11 山东超越数控电子股份有限公司 一种对Docker容器平台上多租户网络进行隔离的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259735B (zh) * 2013-05-15 2016-05-11 重庆邮电大学 一种基于NetFPGA的可编程虚拟化路由器的通信方法
WO2016188560A1 (en) * 2015-05-26 2016-12-01 Telefonaktiebolaget Lm Ericsson (Publ) Data protection control
CN108111470B (zh) * 2016-11-25 2020-06-16 华为技术有限公司 容器的部署方法、服务间的通信方法及相关装置
US10530747B2 (en) * 2017-01-13 2020-01-07 Citrix Systems, Inc. Systems and methods to run user space network stack inside docker container while bypassing container Linux network stack

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152256A (zh) * 2013-02-22 2013-06-12 浪潮电子信息产业股份有限公司 一种基于云计算数据中心的路由虚拟网络设计方法
CN105978781A (zh) * 2016-06-28 2016-09-28 浪潮电子信息产业股份有限公司 建立Docker容器的网络连接的方法、系统以及客户端
CN108111383A (zh) * 2017-12-26 2018-06-01 北京航空航天大学 一种基于sdn的跨域容器虚拟网络组建方法
CN108521403A (zh) * 2018-03-09 2018-09-11 山东超越数控电子股份有限公司 一种对Docker容器平台上多租户网络进行隔离的方法

Also Published As

Publication number Publication date
CN109561108A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109561108B (zh) 一种基于策略的容器网络资源隔离控制方法
Huang et al. A survey of deployment solutions and optimization strategies for hybrid SDN networks
EP3072263B1 (en) Multi-tenant isolation in a cloud environment using software defined networking
US10389542B2 (en) Multicast helper to link virtual extensible LANs
US9178828B2 (en) Architecture for agentless service insertion
US9628328B2 (en) Network controller with integrated resource management capability
US9491002B1 (en) Managing communications involving external nodes of provided computer networks
AU2014236926B2 (en) Software-defined multinetwork bridge
WO2017173952A1 (zh) 一种实现虚拟机统一管理及互通的方法、装置和系统
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
CN102884763A (zh) 跨数据中心的虚拟机迁移方法、服务控制网关及系统
EP3821589B1 (en) Session management in a forwarding plane
CN105391635A (zh) 一种基于sdn的网络虚拟化方法
US9716688B1 (en) VPN for containers and virtual machines in local area networks
CN112822037B (zh) 一种安全资源池的流量编排方法及系统
KR101527377B1 (ko) Sdn 기반의 서비스 체이닝 시스템
KR101746105B1 (ko) 서비스 체이닝이 가능한 오픈플로우 스위치
Chaudhary et al. A comprehensive survey on software‐defined networking for smart communities
Hantouti et al. A novel SDN-based architecture and traffic steering method for service function chaining
CN115277532B (zh) 基于服务链的数据报文转发方法及电子设备
US20230058336A1 (en) Kubernetes-based dynamic network service chaining configuration method and device
KR20180085592A (ko) 프리즘 가상 라우터 오픈스택 오케스트레이션 연동을 위한 가상 라우터 시스템 및 그 방법
Gupta et al. Sdn And Nfv: A New Dimension To Virtualization
CN116346536A (zh) 虚拟机访问云平台管理网的方法、装置、设备及介质
KR20180085475A (ko) 프리즘 가상 라우터 오픈스택 오케스트레이션 연동을 위한 가상 라우터 api 인터페이스

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
GR01 Patent grant
GR01 Patent grant