紀 元,鄭衛(wèi)波,王 梓
(1.南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司),江蘇 南京 210003;2.南京南瑞信息通信科技有限公司,江蘇 南京 210003)
隨著網(wǎng)絡通信技術的發(fā)展,5G、電力物聯(lián)網(wǎng)建設的推進,電力物聯(lián)網(wǎng)終端設備呈現(xiàn)規(guī)模龐大、結構復雜、種類多樣等發(fā)展趨勢,電力信息網(wǎng)絡邊界安全接入面臨諸多新問題。一是隨著業(yè)務使用量的指數(shù)級增長,幾十萬乃至幾百萬級別的電力物聯(lián)網(wǎng)感知層終端安全、可信實時接入電力信息網(wǎng)絡,對于電力信息網(wǎng)絡邊界安全接入設備的接入能力要求越來越高,需要不斷對安全接入設備的集群進行擴容和升級,運維成本逐日提升。二是隨著業(yè)務終端類型不斷增加,終端接入時采用的安全交互認證協(xié)議種類也隨之增加,需要根據(jù)不同安全協(xié)議、算法定制多樣化的硬件資源,原有不同款型的專用邊界安全接入設備已無法適應電力物聯(lián)網(wǎng)業(yè)務的動態(tài)變化,導致業(yè)務接入時資源分配不均勻、部分業(yè)務接入時資源緊缺或閑置、有限的物理資源缺少有效與合理的分配。
現(xiàn)有電力系統(tǒng)中信息網(wǎng)絡、互聯(lián)網(wǎng)邊界包含移動接入、視頻接入、采集接入、配電接入、變電站接入等多類安全接入類設備,存在設備型號眾多、硬件資源分配不均衡、業(yè)務接入靈活性差、運維工作復雜等問題,無法支撐電力物聯(lián)網(wǎng)持續(xù)增長的海量異構物聯(lián)網(wǎng)終端便捷接入的需求。
電力物聯(lián)網(wǎng)接入業(yè)務主要包括移動類、采集類、視頻類、車聯(lián)網(wǎng)、輸電線路狀態(tài)監(jiān)測、配電自動化、變電站智能巡檢等,每種業(yè)務分別采用不同的專用的邊界安全設備接入信息內(nèi)網(wǎng),邊界安全設備之間相互不兼容,造成用戶選擇困難、業(yè)務接入復雜等問題,不利于電力物聯(lián)網(wǎng)終端的融合接入。同時,各類型邊界安全設備通過持續(xù)擴展增加硬件數(shù)量以滿足不斷增加的終端訪問量,使得業(yè)務接入的擴展性較差,各類業(yè)務的邊界安全接入設備越積越多。
傳統(tǒng)的邊界安全設備多采用VPN實現(xiàn),通?;贚inux多線程I/O模型,操作系統(tǒng)內(nèi)核需要負責線程間頻繁的上下文切換,依靠操作系統(tǒng)調(diào)度系統(tǒng)來服務網(wǎng)絡包的調(diào)度,在網(wǎng)絡負載很大的場景下只會造成CPU核滿轉(zhuǎn)且不斷相互切換產(chǎn)生瓶頸,在高速網(wǎng)絡環(huán)境下面臨著丟包率高、延時長、系統(tǒng)負載重等問題,無法滿足高速網(wǎng)絡環(huán)境下的安全連接實時處理的需求。
經(jīng)過調(diào)研,目前國內(nèi)外流行的虛擬化技術路線是利用Intel VT硬件輔助虛擬化、KVM、QEMU等技術。例如,文獻[1-2]將設備硬件物理資源虛擬成多個VM虛擬機,不同VM虛擬機內(nèi)運行各類不同的安全接入設備的原有內(nèi)核和應用進程,該技術能夠解決一定硬件資源分配不均問題。但與輕量化的容器相比較,虛擬機占用系統(tǒng)資源較重,硬件資源僅能被劃分為有限數(shù)量的VM虛擬機。另外,VM虛擬機采用多級網(wǎng)橋與外部網(wǎng)絡通訊,并沒有解決操作系統(tǒng)和協(xié)議棧性能瓶頸問題。因此,本文提出一種更高效虛擬化模型。
本文提出一種基于容器的安全接入虛擬化模型,如圖1所示。該模型總體采用基于可編排容器[3]化的安全接入服務集群,整合多種不同類型的邊界安全接入設備,采用SR-IOV技術將PCIE密碼單元、網(wǎng)卡等物理資源虛擬化,形成統(tǒng)一的一套硬件資源集群,即圖1的最底層;將安全接入能力服務化,實現(xiàn)業(yè)務終端的統(tǒng)一安全接入認證,滿足不同業(yè)務場景下的動態(tài)可擴展訪問。在虛擬化平臺層面采用成熟容器集群管理框架實現(xiàn)容器自動化部署、資源調(diào)度、擴容縮容、運行監(jiān)控[4];在安全接入服務層面對邊界安全接入設備的安全功能進行封裝,實現(xiàn)不同安全功能的計算插件節(jié)點化,并通過服務方式提供外部調(diào)用。與傳統(tǒng)虛擬化模型相比,該模型將數(shù)據(jù)平面與控制平面相互分開,實現(xiàn)對業(yè)務訪問與集群管理在整個收發(fā)處理路徑上完全的并行化。
圖1 基于容器的安全接入虛擬化模型
該模型具備多種認證機制,支持多類異構泛終端的高并發(fā)、高可用接入,集群支持彈性伸縮、平滑升級、可擴展性強等特點,同時具備完善的安全監(jiān)測預警處置功能,滿足用戶智能運維的實際需求。
本文主要研究基于DPDK高速數(shù)據(jù)包處理框架的虛擬交換機[5]、容器網(wǎng)絡接口插件、負載均衡器,基于用戶自定義資源的高性能容器網(wǎng)絡、集群服務資源動態(tài)伸縮、服務計算節(jié)點靈活編排等關鍵技術,構建完整的數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面、容器網(wǎng)絡和安全接入服務,實現(xiàn)高速、可靠、擴展性強、靈活智能的邊界安全接入服務虛擬化技術。
本文基于軟件定義網(wǎng)絡的思想,將安全接入集群網(wǎng)絡劃分為數(shù)據(jù)平面和控制平面[6],提出業(yè)務與控制相分離的網(wǎng)絡架構,數(shù)據(jù)平面統(tǒng)一負責處理業(yè)務訪問數(shù)據(jù)的流量,控制平面則用來處理資源配置、狀態(tài)監(jiān)測等控制流量??刂破矫嬷饕菍赫w的資源管理,主要分為接入服務管理和容器資源管理。接入服務管理包括對各類安全接入服務的配置管理、策略管理、遠程調(diào)試管理、日志審計管理等,容器資源管理包括部署集群管理、資源調(diào)度管理、服務編排管理、運行監(jiān)控管理等。
3.1.1 虛擬化轉(zhuǎn)發(fā)平面
集群在數(shù)據(jù)平面上構建基于高速數(shù)據(jù)包處理框架的數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面,其中在每個工作節(jié)點上創(chuàng)建虛擬交換機、CNI插件[7]等組件,并在整個集群的流量入口處創(chuàng)建一個負載均衡器,容器集群管理框架依據(jù)服務資源配置在工作節(jié)點上創(chuàng)建容器。每個容器創(chuàng)建過程中,CNI插件分別創(chuàng)建容器中的虛擬網(wǎng)絡接口與工作節(jié)點上虛擬交換機的虛擬網(wǎng)絡接口[8],兩者之間相互關聯(lián),如圖2所示。業(yè)務數(shù)據(jù)流量從外部交換機進入負載均衡器,負載均衡器根據(jù)策略分配流量至工作節(jié)點的DPDK網(wǎng)絡接口,經(jīng)過虛擬交換機路由之后進入容器中服務程序處理,整個數(shù)據(jù)平面路徑都在用戶態(tài)協(xié)議棧中完成,不再額外需要用戶態(tài)到內(nèi)核態(tài)的報文拷貝操作,極大提升了數(shù)據(jù)包處理的效率。
圖2 數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面邏輯圖
虛擬交換機是基于對矢量包的批處理思想而設計的[9],數(shù)據(jù)包矢量處理結構是由多個節(jié)點構成的有向圖,每個圖節(jié)點代表該矢量包在處理過程中的一個環(huán)節(jié)。因此,在大量業(yè)務數(shù)據(jù)包到來的場景下,矢量化的批處理使得該系統(tǒng)的處理能力相比其他虛擬交換機更為強大,收取到的數(shù)據(jù)包組成為一個個數(shù)據(jù)包矢量集合,將集合內(nèi)的數(shù)據(jù)包矢量一批批地通過數(shù)據(jù)包處理邏輯節(jié)點進行批量處理。
負載均衡器是基于DPDK設計的用戶態(tài)負載均衡[10],通過對網(wǎng)卡的劫持,繞過內(nèi)核協(xié)議棧,基于用戶態(tài)自定義輕量級協(xié)議棧,對報文進行解析,支持CPU綁核,實現(xiàn)關鍵數(shù)據(jù)的無鎖化處理,避免了上下文切換所需要的額外開銷。負載均衡器在集群中作為中心調(diào)度節(jié)點,實時動態(tài)感知各個容器服務的運行狀態(tài)及終端接入量,根據(jù)負載均衡策略分配業(yè)務流量到各個工作節(jié)點上的容器。負載均衡器根據(jù)不同類型終端的接入性能需求,給每一種類別的接入服務賦予一個權值,調(diào)度中心根據(jù)接入服務業(yè)務的承載量分配集群資源。
3.1.2 高性能容器網(wǎng)絡
集群容器網(wǎng)絡采用基于DPDK實現(xiàn)的自定義CNI插件,支持多個不同類別的網(wǎng)絡接口,具備將多個接口添加到容器的功能。容器可以通過不同類型的接口連接到多個容器網(wǎng)絡,并且每個接口都使用用戶自定義的資源配置。容器網(wǎng)絡功能可通過多個網(wǎng)絡接口進行分離控制,實現(xiàn)容器網(wǎng)絡控制平面和數(shù)據(jù)平面相互分開。
工作節(jié)點與容器之間網(wǎng)絡接口采用基于共享內(nèi)存實現(xiàn)的虛擬網(wǎng)絡接口,業(yè)務數(shù)據(jù)流量從工作節(jié)點上的DPDK網(wǎng)絡接口進入后,經(jīng)過數(shù)據(jù)平面虛擬交換機虛擬路由轉(zhuǎn)發(fā)到達容器的虛擬網(wǎng)絡接口,容器內(nèi)安全接入服務對業(yè)務流量處理,例如SSL認證握手、密鑰交換、數(shù)據(jù)加密及數(shù)據(jù)解密[11]等。加解密處理完之后,再根據(jù)安全策略繼續(xù)向后轉(zhuǎn)發(fā)或返回錯誤,整個容器網(wǎng)絡的數(shù)據(jù)平面路徑完全不經(jīng)過內(nèi)核態(tài)協(xié)議棧。
數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面采用IPIP/GRE隧道模式來實現(xiàn)對容器網(wǎng)絡的高性能負載[12-14],如圖2所示。負載均衡器在請求報文的首部之前再封裝1層隧道報文頭,容器中服務程序收到源地址是負載均衡器地址的請求報文后,會首先拆開第1層封裝,匹配原始報文中的目的地址是否是自己預設的IPIP/GRE虛擬地址,命中后繼續(xù)進入下一層處理。如有返回業(yè)務數(shù)據(jù)不再經(jīng)過負載均衡器,直接將數(shù)據(jù)返回至原始報文中的源地址,將業(yè)務數(shù)據(jù)流量轉(zhuǎn)發(fā)性能損耗降到最低。
硬件資源由集群管理框架統(tǒng)一管理,根據(jù)業(yè)務訪問服務需求進行資源調(diào)度分配。對于安全接入服務而言,底層均是無差別的硬件資源,硬件資源池中各個工作節(jié)點的硬件配置本身可以各不相同,虛擬化技術將底層硬件的差別屏蔽[15-18]。集群管理框架為上層安全接入服務提供統(tǒng)一的計算、網(wǎng)絡、存儲、加解密服務等系統(tǒng)資源。當需要對某個服務進行擴容時,只需要加入新的硬件資源節(jié)點,部署虛擬化管理框架、加載相應的服務鏡像,將新節(jié)點加入到集群中,創(chuàng)建數(shù)據(jù)平面和控制平面的網(wǎng)絡接口,完成所需的網(wǎng)絡配置,即可完成服務的擴容。
資源動態(tài)伸縮采用基于機器學習的周期性檢測算法,通過對實例接入業(yè)務負載的訪問數(shù)量的實時監(jiān)測數(shù)據(jù)進行計算預測。在預測實例負載即將處于高峰前的一段時間,便提前對實例執(zhí)行擴容操作,使實例能夠平穩(wěn)度過整個業(yè)務高峰期。安全接入服務會在實例每天的業(yè)務高峰期開始之前進行擴容,以使實例更好地應對周期性的業(yè)務峰值。
集群以服務為對象,從CPU/內(nèi)存使用率、終端接入量等方面對集群提供的服務狀態(tài)進行持續(xù)監(jiān)控,結合服務設定的上下限進行綜合評定,如圖3所示。當預測服務整體負載較高時,添加服務副本進行擴容,負載均衡器優(yōu)先向新添加的副本分配新的業(yè)務流量;當服務負載較低時,平滑退出部分副本,副本平滑退出過程中負載均衡器停止對其分配新的流量,副本處理完原有所有業(yè)務數(shù)據(jù)后自動退出。當集群檢測到有節(jié)點故障時,自動將故障點節(jié)點的服務遷移到其他可用節(jié)點上;當故障節(jié)點恢復時,集群動態(tài)將一些負載遷移到恢復的節(jié)點上。
圖3 資源動態(tài)伸縮邏輯圖
除此之外,當程序有新版本需要升級時,采用平滑升級方式,舊版本程序逐步退出服務,新版本程序逐步接管服務,最終實現(xiàn)新版本程序的完全升級。
容器中服務程序采用統(tǒng)一的高可擴展的網(wǎng)絡高速處理框架[19-22],將網(wǎng)絡數(shù)據(jù)流向量化,采用分層處理,支持基于網(wǎng)絡協(xié)議的數(shù)據(jù)篩選,并通過植入計算插件節(jié)點,完成不同協(xié)議的業(yè)務處理邏輯,從而實現(xiàn)功能擴展。每個計算插件節(jié)點完成不同協(xié)議的業(yè)務處理邏輯,從而實現(xiàn)基于統(tǒng)一軟件框架的國密SSL、SSAL、IPsec等協(xié)議處理功能,且可對計算插件節(jié)點進行靈活編排,根據(jù)不同業(yè)務系統(tǒng)的安全需求提供靈活性的安全接入服務。
如圖4所示,負載均衡器分配業(yè)務流量進入容器中服務程序,首先進入DPDK虛擬物理接口層接收[23-25],收到后進入鏈路層的擴展功能計算節(jié)點處理。按照優(yōu)先級順序執(zhí)行入侵檢測、阻斷響應、下一層處理,然后進入網(wǎng)絡層的擴展功能計算節(jié)點處理。按照優(yōu)先級順序執(zhí)行訪問控制、SSL/IPsec認證、入侵檢測、下一層處理,運行時可通過動態(tài)實時配置決定插件節(jié)點邏輯是否啟用。這樣的設計是為滿足面向電力物聯(lián)網(wǎng)業(yè)務動態(tài)變化的終端接入需求,實現(xiàn)面向集群業(yè)務的接入服務資源動態(tài)分配,提升安全防護能力靈活伸縮性,保證邊界安全防護服務的高可用性。同時,增強電力物聯(lián)網(wǎng)業(yè)務安全防護強度,針對監(jiān)測到的仿冒終端或失陷主機進行聯(lián)動封禁,保證惡意行為快速封堵。
圖4 計算插件節(jié)點編排邏輯圖
實驗以國密算法的SSLVPN應用場景為例,SSL握手協(xié)議采用國密SM2/SM3算法,記錄協(xié)議采用國密SM4算法,使用SSL客戶端批處理腳本模擬一定數(shù)量的移動終端進行高并發(fā)訪問,對傳統(tǒng)方法與本文方法進行對比分析。
實驗采用相同配置的被測物理機器,分別部署傳統(tǒng)SSLVPN應用程序和基于容器的安全接入虛擬化服務,通過VPN客戶端批處理進行終端安全接入的并發(fā)量測試,對比傳統(tǒng)方法與本文提出的方法之間的性能差異。其中,傳統(tǒng)方法為部署基于通用Linux網(wǎng)絡協(xié)議棧多線程I/O模型的應用程序的設備集群;本文方法為部署高可擴展的網(wǎng)絡高速處理框架的服務計算節(jié)點,能將數(shù)據(jù)平面與控制平面完全分離,擁有高速數(shù)據(jù)包處理的數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面、高性能容器網(wǎng)絡的容器化服務集群。
實驗中,本文方法部署時將單個SSLVPN服務容器的CPU資源限制使用1個邏輯CPU核,內(nèi)存資源限制在1 GB大頁內(nèi)存的場景下,傳統(tǒng)方法則默認使用物理硬件的所有資源,然后進行以下2組對比實驗。
第1組實驗是單節(jié)點性能實驗。本文方法在單一物理節(jié)點上部署其硬件資源所能支持的最多數(shù)量的容器,受內(nèi)存容量限制總共16個,并將所有容器加入到負載均衡器進行流量分發(fā),與傳統(tǒng)方法在單臺安全接入物理設備上部署SSLVPN應用程序的性能進行實驗對比,實驗結果如圖5所示。
圖5 單節(jié)點終端接入并發(fā)量性能實驗
實驗數(shù)據(jù)表明,傳統(tǒng)方法單臺設備在VPN客戶端批處理模擬的SSL終端接入數(shù)量接近9萬時開始出現(xiàn)連接失敗的情況,達到性能瓶頸,無法再接收更多的SSL終端接入該服務。而本文方法在SSL終端量在達到16萬左右時逐漸趨于平穩(wěn),受到物理內(nèi)存限制達到極限。從兩者的性能對比看,本文方法處理性能遠強于傳統(tǒng)方法單臺設備的整體性能。
第2組實驗是多節(jié)點性能實驗。本文方法在3臺物理節(jié)點上構建基于容器的安全接入服務集群,并將所有節(jié)點上的容器加入到負載均衡器進行流量分發(fā),與傳統(tǒng)方法在3臺安全接入物理設備上部署SSLVPN應用程序組成的負載集群的性能進行實驗對比,實驗結果如圖6所示。
圖6 多節(jié)點終端接入并發(fā)量性能實驗
由圖6可以看出,當VPN客戶端批處理模擬的SSL終端接入數(shù)量在26萬以下時,2種方法均能全部正常處理。但當VPN客戶端批處理輸出的SSL終端接入數(shù)量繼續(xù)增加時,傳統(tǒng)的方法已經(jīng)到了性能極限,無法處理更多的并發(fā)連接數(shù),甚至在并發(fā)性能上呈現(xiàn)下降趨勢,這主要是由于頻繁的cache miss、線程切換、上下文切換等導致CPU負荷很高。而本文采用的方法在最高終端接入數(shù)上則比傳統(tǒng)方法高出約100%,同時在VPN客戶端批處理輸出的SSL終端接入數(shù)量超過本文的方法所能處理的最高并發(fā)數(shù)時,能夠維持最高并發(fā)性能,沒有明顯的性能下降,有效且合理地利用了有限的硬件資源。
由此可見,當集群中的物理資源數(shù)量不斷增加時,整個基于容器的安全接入裝置虛擬化集群所能提供服務的能力呈線性增長趨勢。當訪問量在某一時段下降時,空閑的VPN服務容器可以得到動態(tài)釋放,物理資源得到釋放,可以動態(tài)地對硬件資源進行分配,增強了整體的擴展性、伸縮性和高可用性。
基于容器的安全接入虛擬化技術包括了基于高速數(shù)據(jù)包處理框架的數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面、基于共享內(nèi)存虛擬網(wǎng)絡的高性能容器網(wǎng)絡和高可擴展的網(wǎng)絡高速處理框架的服務計算節(jié)點,具有傳統(tǒng)基于通用網(wǎng)絡協(xié)議棧多線程應用程序所未有的擴展能力與性能優(yōu)勢。同時,安全接入虛擬化技術還是基于成熟集群管理框架的容器集群,也為很多的復雜業(yè)務場景提供了新的解決方案。本文提出的基于容器的安全接入虛擬化模型,通過對硬件資源集群的容器化、統(tǒng)一調(diào)度管理,數(shù)據(jù)平面與控制平面的完全并行化,數(shù)據(jù)虛擬化轉(zhuǎn)發(fā)平面的構建,服務計算插件節(jié)點的靈活編排,具有高并發(fā)、高可用接入、支持彈性伸縮、平滑升級、可擴展性強等優(yōu)勢。當然本文方法仍存在不足,例如如何通過安全隔離層保護容器中應用信息,將是本文提出的安全接入虛擬化技術下一步的研究重點。