基于容器的安全接入虚拟化

2022-09-24 02:42:44郑卫波
计算机与现代化 2022年9期
关键词:均衡器虚拟化容器

纪 元,郑卫波,王 梓

(1.南瑞集团有限公司(国网电力科学研究院有限公司),江苏 南京 210003;2.南京南瑞信息通信科技有限公司,江苏 南京 210003)

0 引 言

随着网络通信技术的发展,5G、电力物联网建设的推进,电力物联网终端设备呈现规模庞大、结构复杂、种类多样等发展趋势,电力信息网络边界安全接入面临诸多新问题。一是随着业务使用量的指数级增长,几十万乃至几百万级别的电力物联网感知层终端安全、可信实时接入电力信息网络,对于电力信息网络边界安全接入设备的接入能力要求越来越高,需要不断对安全接入设备的集群进行扩容和升级,运维成本逐日提升。二是随着业务终端类型不断增加,终端接入时采用的安全交互认证协议种类也随之增加,需要根据不同安全协议、算法定制多样化的硬件资源,原有不同款型的专用边界安全接入设备已无法适应电力物联网业务的动态变化,导致业务接入时资源分配不均匀、部分业务接入时资源紧缺或闲置、有限的物理资源缺少有效与合理的分配。

1 问题分析

现有电力系统中信息网络、互联网边界包含移动接入、视频接入、采集接入、配电接入、变电站接入等多类安全接入类设备,存在设备型号众多、硬件资源分配不均衡、业务接入灵活性差、运维工作复杂等问题,无法支撑电力物联网持续增长的海量异构物联网终端便捷接入的需求。

1.1 业务类型分析

电力物联网接入业务主要包括移动类、采集类、视频类、车联网、输电线路状态监测、配电自动化、变电站智能巡检等,每种业务分别采用不同的专用的边界安全设备接入信息内网,边界安全设备之间相互不兼容,造成用户选择困难、业务接入复杂等问题,不利于电力物联网终端的融合接入。同时,各类型边界安全设备通过持续扩展增加硬件数量以满足不断增加的终端访问量,使得业务接入的扩展性较差,各类业务的边界安全接入设备越积越多。

1.2 性能瓶颈分析

传统的边界安全设备多采用VPN实现,通常基于Linux多线程I/O模型,操作系统内核需要负责线程间频繁的上下文切换,依靠操作系统调度系统来服务网络包的调度,在网络负载很大的场景下只会造成CPU核满转且不断相互切换产生瓶颈,在高速网络环境下面临着丢包率高、延时长、系统负载重等问题,无法满足高速网络环境下的安全连接实时处理的需求。

2 基于容器的安全接入虚拟化模型提出

经过调研,目前国内外流行的虚拟化技术路线是利用Intel VT硬件辅助虚拟化、KVM、QEMU等技术。例如,文献[1-2]将设备硬件物理资源虚拟成多个VM虚拟机,不同VM虚拟机内运行各类不同的安全接入设备的原有内核和应用进程,该技术能够解决一定硬件资源分配不均问题。但与轻量化的容器相比较,虚拟机占用系统资源较重,硬件资源仅能被划分为有限数量的VM虚拟机。另外,VM虚拟机采用多级网桥与外部网络通讯,并没有解决操作系统和协议栈性能瓶颈问题。因此,本文提出一种更高效虚拟化模型。

本文提出一种基于容器的安全接入虚拟化模型,如图1所示。该模型总体采用基于可编排容器[3]化的安全接入服务集群,整合多种不同类型的边界安全接入设备,采用SR-IOV技术将PCIE密码单元、网卡等物理资源虚拟化,形成统一的一套硬件资源集群,即图1的最底层;将安全接入能力服务化,实现业务终端的统一安全接入认证,满足不同业务场景下的动态可扩展访问。在虚拟化平台层面采用成熟容器集群管理框架实现容器自动化部署、资源调度、扩容缩容、运行监控[4];在安全接入服务层面对边界安全接入设备的安全功能进行封装,实现不同安全功能的计算插件节点化,并通过服务方式提供外部调用。与传统虚拟化模型相比,该模型将数据平面与控制平面相互分开,实现对业务访问与集群管理在整个收发处理路径上完全的并行化。

图1 基于容器的安全接入虚拟化模型

该模型具备多种认证机制,支持多类异构泛终端的高并发、高可用接入,集群支持弹性伸缩、平滑升级、可扩展性强等特点,同时具备完善的安全监测预警处置功能,满足用户智能运维的实际需求。

3 关键技术与实现

本文主要研究基于DPDK高速数据包处理框架的虚拟交换机[5]、容器网络接口插件、负载均衡器,基于用户自定义资源的高性能容器网络、集群服务资源动态伸缩、服务计算节点灵活编排等关键技术,构建完整的数据虚拟化转发平面、容器网络和安全接入服务,实现高速、可靠、扩展性强、灵活智能的边界安全接入服务虚拟化技术。

3.1 集群网络虚拟化

本文基于软件定义网络的思想,将安全接入集群网络划分为数据平面和控制平面[6],提出业务与控制相分离的网络架构,数据平面统一负责处理业务访问数据的流量,控制平面则用来处理资源配置、状态监测等控制流量。控制平面主要是对集群整体的资源管理,主要分为接入服务管理和容器资源管理。接入服务管理包括对各类安全接入服务的配置管理、策略管理、远程调试管理、日志审计管理等,容器资源管理包括部署集群管理、资源调度管理、服务编排管理、运行监控管理等。

3.1.1 虚拟化转发平面

集群在数据平面上构建基于高速数据包处理框架的数据虚拟化转发平面,其中在每个工作节点上创建虚拟交换机、CNI插件[7]等组件,并在整个集群的流量入口处创建一个负载均衡器,容器集群管理框架依据服务资源配置在工作节点上创建容器。每个容器创建过程中,CNI插件分别创建容器中的虚拟网络接口与工作节点上虚拟交换机的虚拟网络接口[8],两者之间相互关联,如图2所示。业务数据流量从外部交换机进入负载均衡器,负载均衡器根据策略分配流量至工作节点的DPDK网络接口,经过虚拟交换机路由之后进入容器中服务程序处理,整个数据平面路径都在用户态协议栈中完成,不再额外需要用户态到内核态的报文拷贝操作,极大提升了数据包处理的效率。

图2 数据虚拟化转发平面逻辑图

虚拟交换机是基于对矢量包的批处理思想而设计的[9],数据包矢量处理结构是由多个节点构成的有向图,每个图节点代表该矢量包在处理过程中的一个环节。因此,在大量业务数据包到来的场景下,矢量化的批处理使得该系统的处理能力相比其他虚拟交换机更为强大,收取到的数据包组成为一个个数据包矢量集合,将集合内的数据包矢量一批批地通过数据包处理逻辑节点进行批量处理。

负载均衡器是基于DPDK设计的用户态负载均衡[10],通过对网卡的劫持,绕过内核协议栈,基于用户态自定义轻量级协议栈,对报文进行解析,支持CPU绑核,实现关键数据的无锁化处理,避免了上下文切换所需要的额外开销。负载均衡器在集群中作为中心调度节点,实时动态感知各个容器服务的运行状态及终端接入量,根据负载均衡策略分配业务流量到各个工作节点上的容器。负载均衡器根据不同类型终端的接入性能需求,给每一种类别的接入服务赋予一个权值,调度中心根据接入服务业务的承载量分配集群资源。

3.1.2 高性能容器网络

集群容器网络采用基于DPDK实现的自定义CNI插件,支持多个不同类别的网络接口,具备将多个接口添加到容器的功能。容器可以通过不同类型的接口连接到多个容器网络,并且每个接口都使用用户自定义的资源配置。容器网络功能可通过多个网络接口进行分离控制,实现容器网络控制平面和数据平面相互分开。

工作节点与容器之间网络接口采用基于共享内存实现的虚拟网络接口,业务数据流量从工作节点上的DPDK网络接口进入后,经过数据平面虚拟交换机虚拟路由转发到达容器的虚拟网络接口,容器内安全接入服务对业务流量处理,例如SSL认证握手、密钥交换、数据加密及数据解密[11]等。加解密处理完之后,再根据安全策略继续向后转发或返回错误,整个容器网络的数据平面路径完全不经过内核态协议栈。

数据虚拟化转发平面采用IPIP/GRE隧道模式来实现对容器网络的高性能负载[12-14],如图2所示。负载均衡器在请求报文的首部之前再封装1层隧道报文头,容器中服务程序收到源地址是负载均衡器地址的请求报文后,会首先拆开第1层封装,匹配原始报文中的目的地址是否是自己预设的IPIP/GRE虚拟地址,命中后继续进入下一层处理。如有返回业务数据不再经过负载均衡器,直接将数据返回至原始报文中的源地址,将业务数据流量转发性能损耗降到最低。

3.2 资源动态伸缩

硬件资源由集群管理框架统一管理,根据业务访问服务需求进行资源调度分配。对于安全接入服务而言,底层均是无差别的硬件资源,硬件资源池中各个工作节点的硬件配置本身可以各不相同,虚拟化技术将底层硬件的差别屏蔽[15-18]。集群管理框架为上层安全接入服务提供统一的计算、网络、存储、加解密服务等系统资源。当需要对某个服务进行扩容时,只需要加入新的硬件资源节点,部署虚拟化管理框架、加载相应的服务镜像,将新节点加入到集群中,创建数据平面和控制平面的网络接口,完成所需的网络配置,即可完成服务的扩容。

资源动态伸缩采用基于机器学习的周期性检测算法,通过对实例接入业务负载的访问数量的实时监测数据进行计算预测。在预测实例负载即将处于高峰前的一段时间,便提前对实例执行扩容操作,使实例能够平稳度过整个业务高峰期。安全接入服务会在实例每天的业务高峰期开始之前进行扩容,以使实例更好地应对周期性的业务峰值。

集群以服务为对象,从CPU/内存使用率、终端接入量等方面对集群提供的服务状态进行持续监控,结合服务设定的上下限进行综合评定,如图3所示。当预测服务整体负载较高时,添加服务副本进行扩容,负载均衡器优先向新添加的副本分配新的业务流量;当服务负载较低时,平滑退出部分副本,副本平滑退出过程中负载均衡器停止对其分配新的流量,副本处理完原有所有业务数据后自动退出。当集群检测到有节点故障时,自动将故障点节点的服务迁移到其他可用节点上;当故障节点恢复时,集群动态将一些负载迁移到恢复的节点上。

图3 资源动态伸缩逻辑图

除此之外,当程序有新版本需要升级时,采用平滑升级方式,旧版本程序逐步退出服务,新版本程序逐步接管服务,最终实现新版本程序的完全升级。

3.3 服务计算节点编排

容器中服务程序采用统一的高可扩展的网络高速处理框架[19-22],将网络数据流向量化,采用分层处理,支持基于网络协议的数据筛选,并通过植入计算插件节点,完成不同协议的业务处理逻辑,从而实现功能扩展。每个计算插件节点完成不同协议的业务处理逻辑,从而实现基于统一软件框架的国密SSL、SSAL、IPsec等协议处理功能,且可对计算插件节点进行灵活编排,根据不同业务系统的安全需求提供灵活性的安全接入服务。

如图4所示,负载均衡器分配业务流量进入容器中服务程序,首先进入DPDK虚拟物理接口层接收[23-25],收到后进入链路层的扩展功能计算节点处理。按照优先级顺序执行入侵检测、阻断响应、下一层处理,然后进入网络层的扩展功能计算节点处理。按照优先级顺序执行访问控制、SSL/IPsec认证、入侵检测、下一层处理,运行时可通过动态实时配置决定插件节点逻辑是否启用。这样的设计是为满足面向电力物联网业务动态变化的终端接入需求,实现面向集群业务的接入服务资源动态分配,提升安全防护能力灵活伸缩性,保证边界安全防护服务的高可用性。同时,增强电力物联网业务安全防护强度,针对监测到的仿冒终端或失陷主机进行联动封禁,保证恶意行为快速封堵。

图4 计算插件节点编排逻辑图

4 实验验证

实验以国密算法的SSLVPN应用场景为例,SSL握手协议采用国密SM2/SM3算法,记录协议采用国密SM4算法,使用SSL客户端批处理脚本模拟一定数量的移动终端进行高并发访问,对传统方法与本文方法进行对比分析。

实验采用相同配置的被测物理机器,分别部署传统SSLVPN应用程序和基于容器的安全接入虚拟化服务,通过VPN客户端批处理进行终端安全接入的并发量测试,对比传统方法与本文提出的方法之间的性能差异。其中,传统方法为部署基于通用Linux网络协议栈多线程I/O模型的应用程序的设备集群;本文方法为部署高可扩展的网络高速处理框架的服务计算节点,能将数据平面与控制平面完全分离,拥有高速数据包处理的数据虚拟化转发平面、高性能容器网络的容器化服务集群。

实验中,本文方法部署时将单个SSLVPN服务容器的CPU资源限制使用1个逻辑CPU核,内存资源限制在1 GB大页内存的场景下,传统方法则默认使用物理硬件的所有资源,然后进行以下2组对比实验。

4.1 单节点性能实验

第1组实验是单节点性能实验。本文方法在单一物理节点上部署其硬件资源所能支持的最多数量的容器,受内存容量限制总共16个,并将所有容器加入到负载均衡器进行流量分发,与传统方法在单台安全接入物理设备上部署SSLVPN应用程序的性能进行实验对比,实验结果如图5所示。

图5 单节点终端接入并发量性能实验

实验数据表明,传统方法单台设备在VPN客户端批处理模拟的SSL终端接入数量接近9万时开始出现连接失败的情况,达到性能瓶颈,无法再接收更多的SSL终端接入该服务。而本文方法在SSL终端量在达到16万左右时逐渐趋于平稳,受到物理内存限制达到极限。从两者的性能对比看,本文方法处理性能远强于传统方法单台设备的整体性能。

4.2 多节点性能实验

第2组实验是多节点性能实验。本文方法在3台物理节点上构建基于容器的安全接入服务集群,并将所有节点上的容器加入到负载均衡器进行流量分发,与传统方法在3台安全接入物理设备上部署SSLVPN应用程序组成的负载集群的性能进行实验对比,实验结果如图6所示。

图6 多节点终端接入并发量性能实验

由图6可以看出,当VPN客户端批处理模拟的SSL终端接入数量在26万以下时,2种方法均能全部正常处理。但当VPN客户端批处理输出的SSL终端接入数量继续增加时,传统的方法已经到了性能极限,无法处理更多的并发连接数,甚至在并发性能上呈现下降趋势,这主要是由于频繁的cache miss、线程切换、上下文切换等导致CPU负荷很高。而本文采用的方法在最高终端接入数上则比传统方法高出约100%,同时在VPN客户端批处理输出的SSL终端接入数量超过本文的方法所能处理的最高并发数时,能够维持最高并发性能,没有明显的性能下降,有效且合理地利用了有限的硬件资源。

由此可见,当集群中的物理资源数量不断增加时,整个基于容器的安全接入装置虚拟化集群所能提供服务的能力呈线性增长趋势。当访问量在某一时段下降时,空闲的VPN服务容器可以得到动态释放,物理资源得到释放,可以动态地对硬件资源进行分配,增强了整体的扩展性、伸缩性和高可用性。

5 结束语

基于容器的安全接入虚拟化技术包括了基于高速数据包处理框架的数据虚拟化转发平面、基于共享内存虚拟网络的高性能容器网络和高可扩展的网络高速处理框架的服务计算节点,具有传统基于通用网络协议栈多线程应用程序所未有的扩展能力与性能优势。同时,安全接入虚拟化技术还是基于成熟集群管理框架的容器集群,也为很多的复杂业务场景提供了新的解决方案。本文提出的基于容器的安全接入虚拟化模型,通过对硬件资源集群的容器化、统一调度管理,数据平面与控制平面的完全并行化,数据虚拟化转发平面的构建,服务计算插件节点的灵活编排,具有高并发、高可用接入、支持弹性伸缩、平滑升级、可扩展性强等优势。当然本文方法仍存在不足,例如如何通过安全隔离层保护容器中应用信息,将是本文提出的安全接入虚拟化技术下一步的研究重点。

猜你喜欢
均衡器虚拟化容器
Different Containers不同的容器
难以置信的事情
基于OpenStack虚拟化网络管理平台的设计与实现
电子制作(2019年10期)2019-06-17 11:45:10
对基于Docker的虚拟化技术的几点探讨
电子制作(2018年14期)2018-08-21 01:38:20
虚拟化技术在计算机技术创造中的应用
电子测试(2017年11期)2017-12-15 08:57:56
无线传感网OFDM系统中信道均衡器的电路实现
电子器件(2015年5期)2015-12-29 08:42:39
存储虚拟化还有优势吗?
取米
一种基于LC振荡电路的串联蓄电池均衡器
电源技术(2015年1期)2015-08-22 11:16:14
基于LMS 算法的自适应均衡器仿真研究