李凌書,鄔江興
(解放軍信息工程大學國家數字交換系統工程技術研究中心,鄭州 450002)
云計算是一種基于泛在網絡連接的服務提供形式,網絡連接的一端是具有強大計算能力的“云”,另一端是功能簡化為輸入輸出設備的用戶終端。“云”端利用虛擬化、分布式計算等技術匯聚碎片化的IT 資源形成共享資源池,再以動態、彈性、按量付費的方式為用戶提供可配置的大規模計算和存儲服務。云網融合是當前云計算的發展方向之一,功能部署和資源管理縱向下沉到網絡層進行統一調度和控制,橫向拓展實現包括公有云、私有云、混合云、企業IT 系統等多種資源的協同控制。“多云+多網”將是未來長期存在的需求。
軟件即服務(Software as a Service,SaaS)是云計算的一種交付模型,根據美國國家標準與技術研究院(National Institute of Standards and Technology,NIST)的定義,SaaS 使用戶可以通過各類客戶端接口,直接訪問和使用運行在云基礎設施上由服務提供商提供的應用程序,而無需管理云基礎設施和應用程序。SaaS 模式在面向多租戶時保持了快速、彈性、可配置且低成本的特點,而新冠肺炎疫情的出現,更加速了遠程辦公、在線教育等SaaS 服務落地。據Gartner 調查顯示,SaaS 是云計算中最大的細分市場。
SaaS 服務可擴展、可重用和模塊化的特性吸引了越來越多的政企業務向云端遷移,人們對SaaS 安全性的考量也與日俱增。數據泄露、數據丟失、認證憑據劫持、不安全的接口、惡意內部攻擊和濫用云服務等安全問題嚴重影響云應用的發展。中國信息通信研究院發布的云計算發展調查報告顯示,42.4%的企業在選擇公有云服務時會考慮服務安全性,由此可以看出,在高效部署SaaS 業務的同時兼顧安全具有重要的研究意義。
SaaS 業務部署可以抽象為虛擬網絡映射(Virtual Network Embedding,VNE),即將承載SaaS業務的容器(執行虛擬網絡功能)部署到物理服務器上。當前關于VNE 已出現大量研究。文獻[1]通過定義適應度來衡量映射策略的質量,提出一種適用于云環境的虛擬網絡映射算法。文獻[2]提出一種基于多層編碼的遺傳算法實現動態場景下業務的高效部署,提高了資源調度的智能性。文獻[3]提出一種高效可擴展的虛擬網絡服務功能鏈拓撲設計和映射方法,將拓撲設計和資源映射結合考慮。文獻[4]提出一種基于馬爾科夫決策過程的虛擬網絡功能調度模型,并設計基于Q-learning 的動態調度算法以優化虛擬機的部署和調度。文獻[5]針對大規模網絡場景下的虛擬網絡映射問題進行研究,提出一種基于分區映射的進化算法以提高資源利用率。文獻[6]為靈活地滿足虛擬網絡高帶寬、低時延、高時延等不同需求,提出一種基于軟件定義網絡的自適應VNE算法。文獻[7]提出一種基于強化學習的虛擬網絡映射算法DeepViNE,通過限制動作的數量加快學習和算法收斂速度。然而,當前研究主要針對資源開銷、能耗、負載均衡等方面,關注服務安全性和魯棒性的研究較少。
文獻[8]通過分析安全漏洞來對虛擬化環境中的底層資源安全性進行建模,進而抽象成安全需求作為虛擬網絡映射的約束條件。文獻[9]對不同的物理節點和虛擬節點均設置安全等級,規定虛擬節點只能部署到不低于其安全性要求的物理節點上。文獻[10]也采用類似的思路保證虛擬服務的安全性需求,并提出一種基于強化學習和安全感知的虛擬網絡映射算法。上述工作可以有效保護關鍵云服務的安全,但實質上均是通過選擇優質的物理資源來提高虛擬服務的可信性和安全性,并未直接緩解風險,缺少利用云環境冗余性、異構性來提升安全性的考量。
本文對SaaS 業務面臨的安全問題進行建模分析,基于冗余執行和交叉校驗的思想提出一種面向SaaS 安全的組合服務模式,進而建立擬態化虛擬網絡功能映射(Mimic Virtual Network Function Embedding,MVNE)模型和安全性優化機制。在此基礎上,提出基于近端策略優化(Proximal Policy Optimization,PPO)的虛擬網絡功能映射算法PJM,通過合理的虛擬網絡映射提高服務質量。
本節分析討論云網融合的研究意義,闡述目前實踐中云網融合的實現框架,并介紹SaaS 組合服務的交付模型。
隨著云計算從消費領域逐漸轉向實體領域,不斷擴張的網絡規模和業務類型對云架構設計提出了新的挑戰,定制化、精細化運營和多云互通成為研究熱點。
1)定制化是運營商向服務提供商轉型的關鍵需求。運營商需要以適當的方式開放部分網絡資源、網絡拓撲以及信道組織的控制權。
2)精細化運營有利于提高網絡利用率,幫助運營商實現從經營管道到經營網絡,進而實現“增速降費”。
3)多云互通有利于整合多類型資源。國內阿里、華為等云環境相對獨立,多云資源難以互通共享,阻礙了SaaS 業務的發展[11]。
云網融合可以有效實現以上需求。目前云網之間的關系日益緊密。一方面,云離不開網,井噴增長的SaaS 應用需要更便捷、安全的網絡連接,研究表明,網絡性能很多時候成為限制高性能SaaS 應用的瓶頸[12-13];另一方面,網離不開云,網絡的控制管理功能(如移動核心網的網元)逐步云化,網絡技術的進一步發展勢必需要借鑒云計算的理念。提供給云用戶的服務本質上是云服務和網絡服務的組合,打破傳統云和網之間彼此封閉和獨立的形態,構建一個云網高度融合的信息基礎設施勢在必行。
1.2.1 云資源編排管理
基礎設置即服務(Infrastructure as a Service,IaaS)使用虛擬化技術對各種資源進行抽象和管理,屏蔽資源的位置、管理和配置細節,在用戶端呈現為虛擬機(Virtual Machine,VM)或容器(Container)。云資源的編排管理目前存在2 種主流的模式:一種是VM+OpenStack,其中OpenStack 是美國國家航天局與Rackspace 合作的云平臺開源項目,旨在提供大規模可擴展、標準化的云計算管理服務;另一種是Container+Kubernetes,其中Kubernetes 是谷歌公司開源的一個容器編排引擎,實現了容器自動化部署、管理與配置。
1.2.2 網絡資源編排管理
網絡資源的編排管理基于通信鏈路質量的可測量和可定制特性。SRv6等面向連接的承載協議,依靠SDN控制器收集拓撲信息和下發隧道路徑,通過丟包檢測、時延檢測、路徑還原等機制實現端到端質量控制。據此,運營商可提供多條不同服務質量的路由供用戶選擇。網絡虛擬化平臺將物理網絡分成多個邏輯網絡,允許拓撲指定與尋址,其為管理員提供標準規則來管理網絡,而不是通過調度路由器和交流機。基于網絡虛擬化,運營商無需提供拓撲、容量、內部標簽棧等網絡參數,用戶也無需提供流量分類、轉向策略和業務邏輯,即可實現網絡資源的編排與交付[14]。資源發現與分配、任務調度與負載、故障發現與定位,則依賴于資源監測技術[15]。
1.2.3 云網融合編排管理
面向服務的體系結構(Service Oriented Architecture,SOA)是云網融合的橋梁[16]。基礎設施即服務、平臺即服務以及軟件即服務均基于SOA 設計,為云基礎設施提供商、網絡服務提供商以及應用開發者提供了一種高效靈活的溝通機制,也為異構系統集成提供了有效的體系結構原則。本質上,SOA 以服務的形式封裝系統資源和功能,并在這些服務之間提供松耦合的交互機制。
圖1 所示的云網融合分層框架是一種基于SOA 的邏輯結構。一方面,路由器、交換機、網絡鏈路等網絡基礎設施基于OpenVirteX、FlowVisor 等技術虛擬化為統一的網絡資源,進而由Floodlight、Beacon 等控制面管理工具對其進行編排和管理;另一方面,CPU 資源、內存資源等云基礎設施通過虛擬機監視器(Virtual Machine Monitor,VMM)、Linux Containers(LXC)等技術抽象為虛擬機、容器等可以統一管理的云資源,進而由Openstack、Kubernetes 等云編排管理工具對其進行編排和管理。網絡和計算資源作為單個虛擬化、動態供應的資源集合,實現了跨網絡和計算域的資源靈活協調管理,同時通過建立整體資源視圖,進一步釋放服務提供的靈活性,使得跨地域、異質的計算系統之間的協作成為可能。

圖1 云網融合框架Fig.1 Cloud-network integration framework
目前,云網資源對接主要有2 種形式:在VM+OpenStack 的云資源管理模式下,云網資源對接主要基于OpenStack 的Neutron 組件實現;在Docker+Kubernetes 的云資源管理模式下,云網資源對接主要基于Kubernetes 的Calico 組件實現[4]。然而這2 種形式目前功能較為有限,不能實現廣域網上常見的網絡配置和調整操作,也不能滿足云網融合對主機進行操作系統升級和應用更新的需求。
SaaS 云中的應用構建方式正向組合服務模式發展,即通過組合一系列松散耦合的可交互功能形成更高級別的應用系統。構成一個服務組合的組件可以是云服務、網絡服務、數據資源或者是零散的SaaS子服務,并且不同組件之間存在一定的依賴關系。云網融合下的組合服務構建模式如圖2 所示。當服務請求發生時,服務代理對編排管理層提供的各種云服務和網絡服務基于服務質量等約束進行選擇和組合,配置成終端用戶所需要的個性化SaaS 服務。

圖2 組合服務構建模式Fig.2 Construction pattern of composite service
組合服務模型類似于國際互聯網工程任務組(Internet Engineering Task Force,IETF)提出的服務功能鏈(Service Function Chain,SFC)技術[17]。一個云服務對應一條服務功能鏈,一條服務功能鏈中多個承載不同功能的容器按照一定的業務邏輯相互連接,共同為用戶提供特定的服務。由于容器相較于虛擬機更加輕量級、靈活和容易部署,因此本文主要以容器作為虛擬網絡功能的承載方式。
本節闡述SaaS 服務面臨的主要安全威脅,并對其進行抽象建立威脅模型,為后續虛擬網絡功能映射研究提供基礎。
SaaS 模式允許多個租戶通過虛擬化技術共享底層資源和網絡基礎組件,這為交叉租戶攻擊創造了便利條件。云上的用戶通常被授予超級用戶訪問權限,以便管理他們的容器。過高的訪問權限使惡意用戶能夠獲取系統IP 或MAC 地址,并惡意使用IaaS網絡接口。具有root 權限的惡意用戶可以對真實網絡組件發動攻擊,例如在真實網絡上嗅探和欺騙。SaaS 主要面臨以下安全問題:
1)容器安全問題。
容器鏡像是SaaS 云中軟件交付流轉的主要形態,但基礎鏡像來源復雜,源頭管控難,且官方鏡像倉庫和第三方鏡像倉庫均存在安全漏洞[18]。如果未正確清理鏡像,可能會泄露用戶隱私信息[19]。攻擊者可對鏡像進行代碼檢測和漏洞挖掘,尋找程序脆弱點。攻擊者也可以上傳包含惡意軟件、預置漏洞后門的鏡像。
容器間的邏輯隔離屬于進程級別的“軟”隔離,相較于物理服務器的“硬”隔離,逃逸風險更大,容易導致數據泄露[20]。攻擊者可能通過側信道繞過邏輯隔離來竊取敏感信息(如密碼口令或密鑰),實現容器跳躍攻擊[21]。
2)Hypervisor 安全問題。
Hypervisor 是提供虛擬化的關鍵組件,用于生成、管理容器以及實現容器的隔離,管理容器對硬件的訪問。容器逃逸是指攻擊者獲得其容器所在直接宿主機上某種權限下的命令執行能力。例如:Xen 中的漏洞可能被攻擊者濫用以獲得Hypervisor的root權限[22],一旦Hypervisor 被攻擊者占領,其管理的所有容器將在攻擊者的控制之下,高級攻擊者可進一步發起BIOS(Basic Input/Output System)等攻擊直接威脅物理服務器,影響IaaS 服務[23]
3)云基礎設施的安全問題。
虛擬化網絡是在物理網絡基礎上建立的邏輯網,由基于軟件的網絡組件(如網橋、虛擬交換機等)構成。傳統流量檢測機制無法有效監控虛擬網絡流量,這使得云中某些惡意活動無法被傳統安全工具檢測到[18]。此外,虛擬化網絡也為拒絕服務、網絡嗅探、流量竊聽等攻擊提供了便利。
在SaaS 云中,容器作為客戶業務的實際載體和執行者,是攻擊者的首要攻擊目標。本文考慮3 種攻擊模式,分別是針對容器系統的攻擊、針對Hypervisor 的攻擊和針對云基礎設施的攻擊,在這3 種模式下,攻擊者的攻擊能力不斷增強。
假設n個不同的云基礎設施(包括公有云和私有云)組成一個多云互聯場景,其中共有m臺服務器。同時假定一個服務器只構建一個虛擬化層Hypervisor,在Hypervisor上共實例化了l個容器。攻擊者已知其要攻擊的目標業務由這l個容器中k個容器進行承載,但無法確定是哪些容器。若對所有的云、服務器和主機進行編號,則一個容器c的歸屬信息可以由一個三元組(nc,mc,lc)表示。同理:針對容器系統的攻擊可表示為若則說明攻擊成功;針對Hypervisor的攻擊可表示為若則表示攻擊者以極高的概率攻擊成功;針對云基礎設施的攻擊可表示為則表示攻擊者以較高的概率攻擊成功。
本節介紹虛擬網絡功能映射問題的含義,提出一種基于網絡空間擬態防御(Cyber Mimic Defense,CMD)的組合服務模式,并提出一種擬態化虛擬網絡功能映射(MVNE)模型。
虛擬網絡功能映射指的是為租戶請求的虛擬網絡功能(Virtual Network Function,VNF)分配物理資源,在SaaS 云中指的是將提供SaaS 組合服務的容器部署到合適的服務器上。SaaS 組合服務的虛擬網絡功能映射示意圖如圖3 所示,其中,為用戶提供服務的虛擬網絡功能包括A、B、C 3 個容器,底層網絡包括a~e 5 個物理節點。VNE 的目標是得出一種映射關系,將容器通過虛擬化層映射到物理節點上,將虛擬鏈路映射到底層物理鏈路上。成功映射的前提是物理節點和鏈路上有充足的資源來承載虛擬網絡功能所需要的計算、存儲和網絡資源。如圖3 中虛擬網絡功能A 被映射到了節物理點a 上,虛擬鏈路A-B被映射到了物理鏈路a-b-f 上。

圖3 虛擬網絡功能映射示意圖Fig.3 Schematic diagram of virtual network function embedding
網絡空間擬態防御借鑒多樣性、隨機性、動態性、非相似余度以及生物啟發安全技術,解決目標對象的不確定威脅問題。擬態防御通過異構執行體運行功能相同程序、表決監控冗余執行的輸出結果,將擬態構造內的安全威脅轉化為廣義的不確定擾動影響,使得服務功能的可靠性、可用性與可信性得到質量控制[24]。
作為一種主動防御技術,CMD的核心思想是通過引入動態異構冗余(Dynamic Heterogeneous Redundancy,DHR)體系結構和負反饋機制來提高系統處理未知威脅的能力。DHR 系統架構如圖4 所示,其由異構執行體池、輸入輸出代理、擬態調度器、擬態裁決器組成。云資源池中包括m種功能等價的異構執行體集合E,按服務注冊與發現機制動態地從集合E中選出n個執行體作為一個執行體集(1,2,…,n)。輸入代理將用戶輸入轉發至對應執行體集合中的每個執行體(容器),擬態裁決器接收多個輸出,進行表決后發送給輸出代理進行語義標準化處理。在此基礎上,擬態裁決器對裁決結果統計分析,實時發現目標對象執行過程中的異常行為并反饋給擬態調度器,由擬態調度器對執行體集進行動態調度操作,如啟動恢復清洗機制。

圖4 DHR 架構Fig.4 DHR architecture
為有效應對2.1節中的3種攻擊模式,可以基于CMD思想對SaaS 組合服務進行改進以提高云服務的安全性。首先基于CMD 對關鍵節點進行安全加固,即對于重點任務,基于擬態思想對其進行保護,主要表現在構建特殊的SFC 模型,使用多個容器執行該VNF,并對輸出進行交叉校驗;然后增大承載服務的容器之間的歸屬信息差異,即對于冗余執行的容器,盡可能使其部署在不同的服務器或云環境中。為方便表述,將這種引入冗余執行和交叉校驗的虛擬網絡功能映射問題稱為擬態化虛擬網絡功能映射(MVNE)問題。
本文利用多層有向無環圖(Directed Acyclic Graph,DAG)對MVNE 問題進行建模,如圖5 所示。工作任務由G=(V,E,T)表示。其中:V={v1,v2,…,vn},表示執行工作任務的一條服務功能鏈,vi表示一個需要在容器中被執行的VNF,vi=1 表示是一個需要重點保護的VNF,vi=0 表示是一個普通VNF;E表示傳輸帶寬需求;T表示該業務在服務等級協定中的完成時間約束。

圖5 擬態化虛擬網絡功能映射示意圖Fig.5 Schematic diagram of mimic virtual network function embedding
目前對網絡資源的定義普遍較為簡單[14-15]。為細粒度刻畫網絡鏈路質量,本文將容器之間的網絡連接分為3 種情況:1)容器部署在同一個主機上,通過總線交互,時延最低;2)容器在同一個云的不同主機上,信息通過大二層網絡傳輸;3)容器在不同的混合云的主機上,跨云交互延遲較大。令傳輸時延矩陣為Dw×w,矩陣中元素dij表示服務器i與服務器j之間的傳輸時延。
此外,容器部署還應滿足資源約束。令Ow×x為服務器資源容量矩陣,矩陣中元素qij表示服務器i上第j種資源的容量。假定所有SaaS 業務發起的SFC總數為u,一條SFC 中VNF 的數量為v,混合云中所有可部署容器的服務器個數為w,則對于VNE 問題的優化目標是在滿足資源等約束的條件下,最小化整體傳輸時延,如式(1)所示:

整體傳輸時延包括處理時延和傳輸時延,其中,Ev×w×Tv×w表示Ev×w和Tv×w的哈達瑪積(Hadamard Product),表 示A中所有元素的和,即
對于MVNE 問題中的安全SFC 而言,其包含一個或多個基于擬態加固的VNF。加固后的整體傳輸時延取決于性能最差的分支。本文所使用的主要數學符號如表1 所示。

表1 數學符號定義Table 1 Definition of mathematical symbols
為實現3.2 節定義的基于CMD 的組合服務模式,MVNE 模型使用以下3 種機制:
1)容器同駐懲罰機制。當同一個業務的容器部署在同一個主機上時,在優化目標函數中加入一個懲罰項。
2)多云部署獎勵機制。若承載擬態化VNF 的容器部署在多個云上,則在優化目標函數中加入一個獎勵項。
3)延時裁決機制。經典擬態構造中需要收集所有分支執行體的結果,進行交叉校驗后再進行下一步操作。為縮短業務處理時延,引入一種稱為擬態化VNF延時裁決的任務預處理機制,流程如圖6 所示。

圖6 擬態化VNF 延遲處理機制流程Fig.6 Procedure of mimic VNF delay processing mechanism
假定MVNE 有一個冗余執行的子任務X,當裁決模塊收到子任務X 中第1 個分支結果后,直接將其用于下個子任務Y 的執行,將之后到達的分支結果用于校驗和糾錯。然后裁決模塊會等待一段時間,獲得從冗余執行體發來的輸出結果進行校驗。如果存在差異,則重新執行子任務X,并根據差異類型和圖6 中的流程,選擇重新執行Y 或終止Y。
采用延時裁決機制后,MVNE 中SFC 的整體傳輸時延不再取決于性能最差的分支,雖然冗余執行依然會帶來較高的資源開銷,但可以顯著減少對端到端時延等服務性能的影響。
當前研究中一般將VNE 問題建模為混合整數線性規劃問題(Mixed Integer Linear Programming,MILP)。而MILP 被證明是NP-hard 問題,相關算法在真實云網場景中的應用效率有待提升,且MVNE問題較VNE 問題更為復雜。為提升應用效率,本節提出一種基于近端策略優化的MVNE 算法PJM,首先介紹智能體交互環境和算法框架,然后闡述其中神經網絡的構造方法。
環境是現實問題轉換到數學模型的橋梁,其將底層網絡和虛擬網絡請求都抽象為圖的形式,包括節點資源容量、節點處理時延、網絡帶寬容量、傳輸時延等數據。如第3.3 節所述,假定底層網絡包括w個節點,虛擬網絡請求包含v個節點,虛擬網絡映射需要同時滿足節點約束和鏈路約束。為簡化智能體的處理問題維度,PJM 算法將節點約束在環境中進行預處理轉換。首先遍歷當前處理的虛擬網絡請求的每個節點,找到滿足資源約束的底層網絡節點,并將計算結果存儲到一個v×w維數組Mv×w中,數組中的項mij∈M代表虛擬網絡請求中的節點i能夠映射到底層網絡的節點j上,如果可以則為1,否則為0。M輸入RL 模型后,在最后一步與模式生成的映射策略(同樣為一個v×w維數組)相乘,得到最終的輸出策略。
環境中會對模型的最終輸出進行判斷,由于M會使得不符合節點約束的輸出中出現0,因此對其進行篩選并給予較大的負收益。此外,如果模型輸出的映射策略中有底層網絡中不存在的邊,或是存在不滿足邊約束等不合理的情況,也會給予一個負收益。只有當映射同時滿足節點約束和鏈路約束時,才會反饋一個正收益。收益值同時受到容器同駐懲罰機制和多云部署獎勵機制的影響。
強化學習(Reinforcement Learning,RL)是一種無模型的動態規劃問題。強化學習的基本思路是通過智能體不斷與環境交互,定義獎勵值,引導智能體在不斷試錯中優化策略,使其適合解決序列決策問題[25]。MVNE 問題可以建模為一個馬爾科夫決策過程,對于每個到達的服務分配資源,更新可用資源視圖[26]。因此,資源映射問題可以方便地提取出強化學習的三要素(狀態、動作和獎勵),采樣成本低,適合建模為強化學習問題。
本文所提出的PJM 算法是一種深度強化學習算法(Deep Reinforcement Learning,DRL),其算法框架部分與近端策略優化(Proximal Policy Optimization,PPO)算法[27]相同,但PPO 算法不能直接求解MVNE 問題,需要編寫環境實現現實問題到數學模型的轉變。PPO是一種策略梯度(Policy Gradient,PG)算法,通常定義策略的擬合函數,通過優化擬合函數的參數θ來優化策略[28]。常用的梯度估計量為:


PPO 不使用誤差反向傳播,而是直接選擇一個行為進行反向傳播,根據獎級對每種行為進行打分,然后調整各種行為被選擇的概率。標準策略梯度算法執行對每個樣本數據執行一次梯度更新,而PPO 允許更靈活的小批量更新,相較于信任區域策略優化(Trust Region Policy Optimization,TPRO)算法更簡單通用,并具有較低的樣本復雜度。本文引入CPI 方法中的概率比率將優化目標表示為:

通過對比新舊策略的差異,不允許新策略出現過于劇烈的改變,從而限制學習率。如式(5)所示:

其中:ε是一個超參數;clip()函數通過限制概率比率來限制變化幅度。
PJM 屬于一種演員評論家(Actor Critic,AC)算法,因此,需要構造2 個結構相同的神經網絡。將資源映射問題建模成一個序列形式的輸入,基于當前剩余資源(局部解)使網絡輸出新加入的節點來拓展當前的局部解,迭代若干次從而得到所有SFC 的映射策略(完整解)。算法的狀態、動作和獎勵值定義如下:
狀態s:網絡狀態信息由云網融合框架中編排管理層的網絡操作系統和云編排管理系統聯合提供。狀態信息包括當前主機上的業務分布和鏈路上的流量分布,然后轉化為向量格式的剩余資源視圖S=[s1,s2,…,sn,l1,l2,…,lm],其中,n為主機數,m為鏈路數。該視圖作為DRL 神經網絡的輸入。
動作a:由DRL 中的神經網絡計算得到,表示SFC 的部署策略,相較于Q-learning 算法,其避免了使用表格存儲狀態和Q 值而導致消耗大量存儲和搜索緩慢的問題。動作作用于網絡狀態后,將改變網絡剩余資源視圖。
獎勵值r:即策略的回報,本文主要基于業務端到端平均時延計算獎勵值。部署策略的質量通過價值函數來判定,則時刻t時的策略質量可表示為:

其中:γ是未來收益折現因子,由于策略價值函數也是由神經網絡實現,因此可表示為Q(st,at|θ)。
使用PJM 算法求解MVNE 問題的核心難點在于映射動作存在貫序性。由于每個動作a包含多個點的映射,而這些映射之間相互依賴和影響,導致神經網絡無法求解。該問題可以通過專家經驗添加預置條件和匹配規則解決,但實現上較為繁瑣。本文在PJM 算法中設計了一種輸出嵌套結構,使模型每次執行部分節點匹配,然后將得到的匹配結果和上一層(layer)的結果共同作為計算下一個節點的輸入參數,從而解決節點之間依賴的問題。
為實現云網資源協同最優調度,PJM 算法的獎勵值函數同時考慮了節點(容器)處理時延和鏈路傳輸時延的影響,擴大了解空間的范圍,解決了使用傳統Q-learning 算法可能存在擴展性不足、無法適應大規模場景的問題。
鑒于冗余設計和交叉校驗機制能夠直接帶來安全性的提升,本節主要關注所提PJM 算法與同類算法在端到端時延等方面的性能提升,并分析不同安全機制對服務質量的影響。
仿真網絡使用Intel Core i5 3.20 GHz CPU,4 GB RAM 的主機,系統配置為Ubuntu 12.04。網絡環境拓撲來自公開數據集SNDlib[29]。PPO算法基于Tensorflow 和OpenAI的開源項目aseline 實現。DRL 環境基于python3 編寫。
本文以基于關鍵映射閉環反饋算法(CCMF)[3]、聯合編碼的遺傳算法(JEGA)[2]和基于Q-learing 的VNE 算法(QVNE)[4]作為對比算法。CCMF 是早期經典的拓撲設計和映射聯合優化算法,支持虛擬功能到物理實體的多對一映射。JEGA 是生物啟發式近似算法一種性能較好的實現算法,能夠在可接受的時間內找到一個可行解。QVNE 是近年來提出的一種流行的基于強化學習的映射算法,其將資源映射建模為一個馬爾科夫決策過程,在與環境的交互中尋找最優解。服務鏈的VNF 個數取值范圍為[3,9],其中擬態化VNF 的個數為1。處理時延矩陣和傳輸時延矩陣的元素在[2 ms,10 ms]范圍內隨機生成。
所使用的對比算法設計之初是為了解決VNE問題,使其能夠求解MVNE 問題進而與所提方法進行對比。因此,首先對其進行修改和參數調整,使對比算法支持重要VNF 的冗余執行。
不同算法的平均服務完成時間如圖7 所示,可以看出,隨著服務功能鏈長度的增加,每種算法中平均服務完成時間均大致呈線性增長趨勢。一般而言,服務功能鏈長度與服務的復雜度正相關,是影響端到端時延的主導因素。當服務功能鏈長度相同時,CCMF 算法的端到端時延性能最差,其采用一種點和邊交替映射的啟發式搜索機制,分析生成的映射策略可以發現,輸出策略受算法初始點選擇影響較大,容易陷入局部最優。JEGA 算法的端到端時延性能表現僅優于CCMF,其雖然是一種全局搜索算法,但容易出現早熟收斂問題。本文基于深度強化學習的PJM 算法具有最短的服務完成時間,相較于當前次優的方案(QVNE 算法)平均降低了12.2%的端到端服務完成時間,這主要是因為PJM 使用策略梯度直接對策略的總期望獎勵進行優化,能更有效地更新策略空間中參數。

圖7 不同算法的平均服務完成時間Fig.7 Average service completion time of different algorithms
不同算法部署80 條服務功能鏈數量的執行時間如表2 所示。JEGA 算法基于聯合編碼方式的遺傳算法尋優,具有最快的收斂速度,這主要得益于JEGA 算法簡單的邏輯,但JEGA 算法收斂速度和最終解質量與迭代參數有關,收斂性能一般以降低解質量為代價,由上文可知JEGA 算法輸出結果的端到端時延較差。PJM 算法的運行效率次之,其直接選擇一個行為進行梯度更新和小批量更新的方法,具有較高的學習效率,雖然線下的時間開銷大于JEGA,但得出的映射策略可以獲得更優的部署效果,降低服務的端到端時延。基于Q-learing 的QVNE 算法由于使用Q 表進行狀態存儲,空間復雜度較高,狀態搜索困難導致運行速度較慢。CCMF算法由于容易出現進化停滯,算法收斂最慢,而且MVNE 問題中存在一個VNF 連接多個VNF 的情況,而對節點和邊交替映射的CCMF 算法不適合處理這種復雜的結構。

表2 不同算法執行時間Table 2 Execution time of different algorithms s
強化學習類算法(PJM 和QVNE)的訓練過程如圖8 所示,可以看出,隨著算法不斷迭代,平均回報值均呈上升趨勢。PJM 算法的訓練成績優于QVNE且更快達到收斂,這是因為梯度更新使其具有更快的訓練效率。

圖8 強化學習類算法的訓練過程Fig.8 Training process of reinforcement learning class algorithm
對不同的VNE 部署模式性能進行分析,評估引入3.3 節中3 類安全機制后對時延性能的影響。根據附加安全機制,可以分為5 種VNE 模式:一般模式(VNE),擬態模式(MVNE),禁止容器同駐的擬態模式(MVNE-V1),采用延時裁決的擬態模式(MVNE-V2),禁止容器同駐和采用延時裁決的擬態模式(MVNE-V3)。不同VNE 模式下SFC 總傳輸時延如圖9 所示。可以看出,不進行擬態化改造的普通映射方式具有最短的傳輸時延,擬態化安全增益均以一定的性能開銷為代價。

圖9 不同VNE 模式下SFC 的總傳輸時延Fig.9 Total transmission delay of SFC in different VNE modes
禁止容器同駐的擬態模式(MVNE-V1)的傳輸時延最大,因為難以保證多個執行分支都具有良好的傳輸時延性能,而業務需要等待多個分支的結果進行交叉校驗,帶來了較大的時延開銷。MVNE-V2相較于MVNE,MVNE-V3 相較于MVNE-V1 都有一定的傳輸時延下降,驗證了延遲裁決機制的有效性,可以規避擬態化容器中性能最差執行分支對性能的影響,但提供SaaS 組合服務的容器中的惡意容器越多,頻繁的重復計算將導致延遲裁決機制的作用越小。此外,由于延遲裁決機制在嚴格執行交叉校驗和大數表決之前就預執行了后面的功能,降低了一定的安全性,因此不適合數據敏感型的SaaS 業務。
傳統網絡安全防護措施多在本地部署入侵檢測、防火墻等硬件設備,而SaaS 云的基礎設施部署在云端,攻防對抗也發生在云端,因此可以利用SaaS 云中異構資源豐富和服務部署靈活的特點,通過交叉校驗來提高安全性。本文結合當前基于云網融合SaaS 交付模式的特點,提出一種面向SaaS 安全的虛擬網絡映射方法,將基于CMD 的組合服務模式建模為一個整數線性規劃問題。在此基礎上,提出基于深度強化學習的PJM算法,對狀態、動作、獎勵等概念進行定義,并設計一種輸出嵌套結構規避MVNE 的映射貫序問題。實驗結果表明,PJM 算法可有效縮短端到端時延,有助于運營商提供高可用、高可信、高安全的SaaS 服務,為電子簽約、線上金融等高安全需求的SaaS 業務部署提供借鑒。但該算法面臨一定的維度災難問題,且作為一種演員評論家算法,其涉及的參數較多,參數調整較為繁瑣。下一步將對PJM 算法的擴展性進行優化,并對SaaS 服務抽象出服務功能鏈進行劃分,通過分區分段映射降低復雜度。