陳杰建
(江西方興科技股份有限公司 江西 上饒 334000)
在SDN的網絡結構中,北向接口協議混亂,南向接口協議較為成熟,最典型的南向接口協議是OpenFlow協議,OpenFlow交換機利用基于安全連接的OpenFlow協議與控制器通信。流表作為核心概念,是一種針對數據流的一些策略表項的集合,主要用于數據分組匹配頭域,用于統計流表匹配情況的計數器,與匹配完成后的動作集合共同組成OpenFlow的流表項。在OpenFlow交換機中,N張流表構成了流表流水線,每一個數據分組都需要通過流水線進行處理。
量子保密通信網絡系統架構設計如圖1所示,整體分為發送方、信道和接收方三大部分,其中,信道包括量子傳輸信道和經典信道,不管是發送方還是接收方,最核心的是量子密鑰分發單元,該單元由信號源、調制器和探測器組成,互為通信的兩方需要通過量子密鑰分發模塊對量子態進行分發、測量、基矢對比后,得到篩后密鑰[1],隨后對原始密鑰進行糾錯以及密性放大,最終得到無條件安全的密鑰后,將密鑰暫時存儲。通信雙方進行通信時就會利用次密鑰對經典信息進行一次一密的加密操作,然后通過經典信道將密文發送給接收方,接收方收到密文后利用密鑰進行解密,從而完成信息的安全傳輸。

圖1 量子保密通信網絡系統架構
樹形和環形網絡模型中的量子密鑰分配方案中,樹形網絡方案使用了一個可信控制中心,樹形的網絡結構如圖2所示。網絡中的任意合法用戶Ci(i=1,2,……,n)都可以與可信控制中心進行密鑰協商。可信控制中心會產生一個經過編碼的隨機量子比特序列,量子比特串生成后,可信控制中心將其發送到無源光纖網絡中[2],網絡任意用戶Ci收到信號后記錄調制結果,通過這樣的過程,讓可信控制中心與用戶Ci之間協商分配了一個密鑰qi。

圖2 樹形網絡結構
環形網絡架構同樣包含了一個可信控制中心,可信控制中心會首先產生一個經過編碼的量子隨機比特序列,量子比特序列經環形網傳輸,網上任意一個接受者Ci使用調制器對接收到的信號進行調制,比特序列通過最后一個接受者后返回到控制中心。可信控制中心采用與最初發送比特串時相同的測量基進行測量,并將測量結果在公開信道上與Ci討論,最終獲得密鑰qi。環形網絡結構如圖3所示。

圖3 環形網絡結構
在量子保密通信網絡的分層模型架構中,比較有影響力的量子保密通信網絡有DARPA量子保密通信網絡、歐洲的骨干通信網絡、東京的量子保密通信網絡和我國的天地一體化量子保密通信網絡,它們之間在設計上基本都包含了應用層、密鑰管理層和量子層,如圖4所示[3]。

圖4 量子保密通信網絡分層模型
量子層包括激光器、單光子探測器、中繼器等光學設備,它在經典信道的輔助下通過量子密鑰分發協商出密鑰,并上傳給密鑰管理層,密鑰管理層則需要通過可信中繼選擇路由,使任意兩個通信節點之間可建立密鑰;應用層主要負責各種通信業務的接入,如語音、視頻、文件傳輸等,通過密鑰管理層建立的密鑰進行保密通信。
目前的量子保密通信網絡的量子密鑰分發系統由基于光纖的量子密鑰分發方案、高速自由空間的量子密鑰分發方案和基于量子糾纏的量子密鑰分發方案組成,三種方案混合使用,每一種方案都有自身的硬件基礎,不同的廠商生產的設備存在一定差異,每一種方案都有自身的調制和配置方法,這些差異并不利于量子保密通信網絡的管理和拓展,SDN技術則可以解決此類問題,因為不管是哪一種方案,其目的都是在于通信雙方協商密鑰,因此可以使用SDN控制器來管理所有的量子密鑰分發設備[4]。
在量子通信網絡分層模型的基礎上,結合SDN架構模型的控制平面和轉發平面分離的特點,提出了基于SDN的量子保密通信網絡模型,如圖5所示。
控制器部分由大型服務器集群構成,它們承載著各個地域網絡的拓撲、路由、密鑰等信息的統計和計算,管控著各自領域的網絡,它們處于整個網絡的核心地位。考慮到顯示量子保密通信網絡可能是跨多城市的復雜矩形網絡,因此在控制器部分設計時分為多個控制器集群云,它們分布在不同的城市,每一個控制器的節點模型由鏈路及密鑰發現模塊、拓撲計算模塊、路由計算模塊等組成。
密鑰發現模塊主要負責發現和維護網絡中的網絡鏈接狀態,鏈路及密鑰發現模塊通過LLDP協議進行鏈路及密鑰的發現,模塊所在的控制器層會下發封裝了LLDP鏈路發現包的packetOut包給dpid為01的中繼節點[5];dpid為01的中繼節點接收到這個報文后,會通過自己所有的端口將這個報文廣播出去;dpid為02的中繼節點收到dpid01發送的包,會將報文封裝成packetIn包上傳給控制器;控制器收到報文后,解析報文,就會得到dpid01~dpid02有一條直連鏈路,并且同時獲悉了此條鏈路上的密鑰信息;同樣,控制器層也可以下發LLDP鏈路發現包到dpid02中繼節點,最終通過dpid01中繼節點上傳到控制器,由此來發現dpid02~dpid01之間的直連鏈路。
拓撲計算模塊主要負責創建或更新整個網絡的拓撲形態,其主要的工作流程為:發起線程、更新拓撲、計算拓撲路徑、將所有相連的鏈路置于同一個簇群眾、遍歷所有簇。
通過上述步驟,拓撲計算模塊完成了拓撲形態的更新,路由計算模塊將根據通信雙方需要選擇合適的路由完成通信。

圖5 基于SDN的量子保密通信網絡架構模型
中繼部分的節點模型由OpenFlow代理層、密鑰管理層、量子層組成。量子層主要由量子密鑰分發設備組成,通過量子密鑰分發協議協商產生量子密鑰,然后將產生的密鑰資源通過安全通道上傳給密鑰管理層,密鑰管理層中有一密鑰池,用于暫時存儲密鑰。密鑰管理層中的計算單元負責將密鑰池中存儲的密鑰數據信息上傳給OpenFlow代理層。OpenFlow代理層是中繼節點的核心組成,拓展了OpenFlow交換機,既有傳統OpenFlow交換機的功能,又可以起到控制器和密鑰管理層通信的功能。在現有的條件下,SDN控制器無法直接與量子密鑰分發設備進行通信,也無法直接獲取其產生存儲在密鑰管理層密鑰池中的密鑰信息,只可以通過OpenFlow代理層代為傳達。具體的通信過程如圖6所示[6]。

圖6 中繼節點工作流程
OpenFlow代理層獲悉密鑰信息后,會將密鑰信息作為鏈路信息的一部分封裝到packetIn包里上傳給控制器,控制器便獲悉了整個網絡的密鑰分布情況[7]。當終端節點第一次將報文發送到中繼節點時,由于OpenFlow代理層中并沒有能夠匹配的流表,中繼節點會將數據報文封裝成packetIn包上傳給控制器,控制器解析報文,根據源地址和目的地址,通過路由算法決策出最佳路由,下發流表到路由經過的每一個中繼節點。
終端節點的具體形式是多樣的,可以是固定終端,也可以是移動智能終端,還可以是無線熱點終端,不管是哪一種類型的終端,它們的節點模型都與傳統網絡中的節點模型大致相同,有負責業務接入的應用層,負責建立連接的傳輸層、負責網絡尋址的網絡層,負責傳輸數據幀的數據鏈路層。為了與中繼節點協商密鑰,在終端節點設計量子層,主要通過量子密鑰分發設備構成。
不同的地域之間網絡想要進行通信,需要借助Super控制器,Super控制器節點和控制器節點的模型相同,均具有鏈路發現模塊、拓撲計算模塊和路由計算模塊,不過這些模塊都針對各地區網絡的邊緣節點工作。
仿真采用的軟件是SDN控制器Floodlight、輕量級軟件定義網絡、測試平臺Mininet,并在Linux系統下部署。Floodlight是一款基于Java語言的開源SDN控制器,支持OpenFlow協議,其穩定性和易用性受到了SDN研究人員的廣泛好評;Mininet是一個可以在有限資源的普通電腦上建立大規模SDN原型網絡系統的仿真工具,該系統由虛擬終端節點、OpenFlow交換機組成,可以模擬仿真任何拓撲形態,具有一定的靈活性、可移植性、可擴展性與真實性 。
首先,利用Python語言編寫一個網絡拓撲,設計13個終端節點、30個中繼節點,設計各節點之間的鏈路,并為每一條鏈路的帶寬、延時、密鑰量都進行初始化設置,最后執行Mininet提供的接口命令[9]。
利用抓包工具wireshake,分析控制器和中繼節點之間的通信過程,在控制器端獲取全網的終端節點信息和中繼節點信息,在Mininet上模擬生成的密鑰信息會被控制器節點捕獲,設定的鏈路信息及鏈路上剩余密鑰的數量與控制器端搜集到的鏈路信息及鏈路上的密鑰信息,兩者一致[10]。
本文在提出了給予SDN量子保密通信網絡架構模型的基礎上,為網絡結構設計了四種節點模型,分別為控制器節點、中繼節點、終端節點和Super控制器節點,介紹了SDN的仿真軟件,利用仿真軟件可以實現對整個網絡中的終端節點、中繼節點、鏈路以及密鑰信息的監控。通過仿真結果可以看出,基于SDN的量子保密通信網絡具有一定的可行性。