一種sdn應用的策略沖突檢測方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種SDN應用的策略沖突檢測方法及系統(tǒng),對欲接入網(wǎng)絡的應用進行認證和授權,賦予優(yōu)先級,進行沖突檢測與調解,并實時將網(wǎng)絡狀態(tài)反饋給網(wǎng)絡管理人員,建立起一個全面的針對SDN應用的策略沖突檢測框架,以解決SDN帶來的網(wǎng)絡安全威脅。本發(fā)明采用的基于集合相交的流規(guī)則策略沖突分析算法,簡易穩(wěn)定,易于擴展,實現(xiàn)了流規(guī)則中存在Set等中間行為的策略沖突檢測和不同應用的流規(guī)則組合之后的策略沖突檢測。本發(fā)明采用的基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法簡單有效,易于實現(xiàn)。
【專利說明】一種SDN應用的策略沖突檢測方法及系統(tǒng)
【技術領域】
[0001]本申請涉及網(wǎng)絡信息安全領域,尤其涉及一種SDN應用的策略沖突檢測方法及系統(tǒng)。
【背景技術】
[0002]SDN(Software Defined Network,軟件定義網(wǎng)絡)是一種開放的網(wǎng)絡架構,主要特點為集中控制性和網(wǎng)絡可編程性,允許網(wǎng)絡管理人員以軟件編程的方式對整個網(wǎng)絡進行管理與操作。SDN將邏輯控制功能和數(shù)據(jù)轉發(fā)功能分離,由基于軟件的網(wǎng)絡控制器來實現(xiàn)對網(wǎng)絡的邏輯控制功能,而底層的網(wǎng)絡設備只需負責實現(xiàn)簡單的數(shù)據(jù)轉發(fā)功能,通過OpenFlow協(xié)議與網(wǎng)絡控制器進行交互。
[0003]SDN網(wǎng)絡架構如圖1所示,從上至下主要分為應用層、控制層和數(shù)據(jù)轉發(fā)層。架構的核心集中在基于網(wǎng)絡操作系統(tǒng)的控制層上,主要設備為SDN控制器,它具有整個網(wǎng)絡的全局視野。數(shù)據(jù)轉發(fā)層主要是底層的數(shù)據(jù)轉發(fā)設備,比如OpenFlow交換機等。數(shù)據(jù)轉發(fā)設備被剝離了控制功能,只需要按照流表進行匹配和轉發(fā)數(shù)據(jù)流。數(shù)據(jù)轉發(fā)設備通過南向接口(目前主要使用OpenFlow協(xié)議)與控制層進行信息交互,完成控制器數(shù)據(jù)流表的下發(fā)和底層設備數(shù)據(jù)信息的反饋。控制層向上提供北向接口,與應用層進行信息傳遞,SDN應用與服務通過調用提供的北向接口對網(wǎng)絡進行相應操作,實現(xiàn)相應功能。目前北向接口還未實現(xiàn)標準化。
[0004]作為一種全新的網(wǎng)絡架構,SDN為網(wǎng)絡安全改善帶來了巨大的機遇,但同時也給網(wǎng)絡帶來了新的安全威脅。以應用層的安全威脅為例,攻擊者可以向網(wǎng)絡中接入惡意應用進行攻擊,制造應用策略沖突導致網(wǎng)絡混亂,或與網(wǎng)絡中的安全策略沖突破壞網(wǎng)絡的安全防御機制等??梢姡瑧貌呗詻_突對網(wǎng)絡的安全威脅程度越來越大。目前已經(jīng)有一些應用策略沖突檢測方法,比如 FLOVER、FlowChecker、VeriFlow、NICE 等。
[0005]FLOVER對SDN網(wǎng)絡中運行的動態(tài)流規(guī)則進行檢測,驗證其是否滿足網(wǎng)絡中既定的安全性要求。FLOVER主要由流表編碼器和SMT (Satisfiability Modulo Theories,可滿足性模理論)解決器Yices組成。在進行流規(guī)則驗證時,流表編碼器將所有的流規(guī)則和網(wǎng)絡安全策略進行編碼,轉化為斷言集,再由SMT解決器Yices進行處理和安全性驗證。FLOVER主要包括兩種模式,在線模式和批量模式。在線模式中,只要交換機上的流規(guī)則集出現(xiàn)更新(控制器下發(fā)新的流規(guī)則或交換機主動請求新的流規(guī)則),則對更新后的所有流規(guī)則集進行既定的安全性檢測,判斷新的流規(guī)則集是否與網(wǎng)絡安全策略相一致。批量模式則是對流規(guī)則集進行周期性的安全性驗證。
[0006]FlowChecker是對SDN網(wǎng)絡中的交換機和控制器的配置一致性進行檢測。FlowChecker將流表重新編碼為二進制決策表(Binary Decis1n Diagrams, BDD),采用模型檢測的方式驗證網(wǎng)絡的安全性。
[0007]VeriFlow對網(wǎng)絡不變性進行檢測。VeriFlow位于控制器與網(wǎng)絡設備之間,根據(jù)新舊規(guī)則將網(wǎng)絡分片為獨立的相同類,并為每個類建立轉發(fā)圖,通過在轉發(fā)圖上模擬新規(guī)則實現(xiàn)情況來驗證是否違反網(wǎng)絡不變性。
[0008]NICE采用模型檢測和符號化執(zhí)行相結合的策略檢測SDN應用的一致性,這種策略基于代碼路徑的發(fā)現(xiàn)。
[0009]但是,上述方法均存在一定的缺陷。FLOVER主要是檢測應用的流規(guī)則與網(wǎng)絡安全策略是否存在策略沖突,而并未涉及一般應用之間的策略沖突檢測;Fl0WChecker和VeriFlow都沒有解決當流規(guī)則中包含Set等中間行為時的情況;NICE采用的基于代碼路徑發(fā)現(xiàn)的策略擴展性不佳,無法在大型應用上采用。并且,上述方法均未考慮當不同應用的流規(guī)則進行組合后所產(chǎn)生的策略沖突檢測,因此,并不能夠完全解決網(wǎng)絡帶來的安全威脅。
【發(fā)明內容】
[0010]本發(fā)明了提供了一種SDN應用的策略沖突檢測方法及系統(tǒng),以解決SDN帶來的網(wǎng)絡安全威脅。
[0011]為解決上述技術問題,本發(fā)明提供了一種SDN應用的策略沖突檢測系統(tǒng),包括:
[0012]應用接入層,包括管理已接入網(wǎng)絡的應用和欲接入網(wǎng)絡的應用;
[0013]控制檢測層,用于接收所述欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則;
[0014]監(jiān)管可視化層,用于實時顯示網(wǎng)絡中的流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息給網(wǎng)絡管理員。
[0015]優(yōu)選的,所述應用接入層中的應用包括:
[0016]網(wǎng)管應用,所述網(wǎng)管應用具體是由所述網(wǎng)絡管理人員接入的應用,所述網(wǎng)管應用用于進行網(wǎng)絡的管理和監(jiān)控;
[0017]安全應用,所述安全應用主要是網(wǎng)絡中接入的安全服務應用,用于建立網(wǎng)絡的安全防御機制;
[0018]第三方應用,所述第三方應用是指由第三方接入的常規(guī)應用,用于通過調用控制器的開源API (應用程序編程接口)實現(xiàn)自定義的功能。
[0019]優(yōu)選的,所述控制檢測層包括:
[0020]應用認證授權模塊,用于接收各個欲接入網(wǎng)絡的應用的訪問授權請求,并根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書給各個欲接入網(wǎng)絡的應用,并對各個欲接入的網(wǎng)絡應用進行訪問認證授權;
[0021]流規(guī)則沖突檢測與決策模塊,用于根據(jù)所述沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,判斷是否與流表集合中已有的流規(guī)則存在沖突,若存在沖突,則根據(jù)所述沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則,并將沖突分析與決策的結果發(fā)送給狀態(tài)表管理模塊;
[0022]所述狀態(tài)表管理模塊,用于管理獲取認證授權的應用下發(fā)的流規(guī)則插入請求,根據(jù)所述沖突分析與決策的結果對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行接受或拒絕操作,并實時更新所述流表集合和底層交換機流表,對所述流表集合進行更新維護;
[0023]信息反饋模塊,用于將所述流規(guī)則信息、所述沖突信息、所述網(wǎng)絡拓撲信息實時反饋給所述監(jiān)管可視化層,通過所述用戶界面報告給所述網(wǎng)絡管理人員,并將所述網(wǎng)絡管理人員的操作指令發(fā)送給對應的模塊;
[0024]所述流表集合,用于保存網(wǎng)絡中正在運行的所有流表信息;
[0025]數(shù)據(jù)庫,用于存儲策略沖突檢測日志信息,向所述流規(guī)則沖突檢測與決策模塊提供數(shù)據(jù)支持。
[0026]優(yōu)選的,所述監(jiān)管可視化層包括:
[0027]所述用戶界面,用于從消息處理模塊獲得網(wǎng)絡狀態(tài)信息,以圖表化的形式實時顯示網(wǎng)絡狀態(tài)信息,以使所述網(wǎng)絡管理人員通過所述用戶界面下發(fā)操作指令至所述消息處理模塊;
[0028]所述消息處理模塊,用于接收所述信息反饋模塊發(fā)送的網(wǎng)絡消息,按照消息類型進行緩存,當有來自所述用戶界面的HTTP (超文本傳輸協(xié)議)信息請求時,將所述HTTP信息請求通過HTTP資源響應發(fā)送給所述用戶界面,當接收到來自所述用戶界面的操作指令時,緩存所述操作指令,并轉化為所述信息反饋模塊能夠識別的操作指令形式,然后下發(fā)給所述信息反饋模塊,其中,所述網(wǎng)絡消息包括所述網(wǎng)絡拓撲信息、所述流表信息以及所述沖突信息。
[0029]優(yōu)選的,所述沖突分析算法具體是:
[0030]將所述流表集合中已有的流規(guī)則和新插入的流規(guī)則全部轉化為集合化的流規(guī)則,得到集合化流表集合和集合化待檢測流規(guī)則;
[0031]對所述集合化流表集合和所述集合化待檢測流規(guī)則中的所有集合化流規(guī)則進行成對比較,根據(jù)沖突匹配原則判斷是否沖突。
[0032]優(yōu)選的,所述沖突決策算法具體是:當沖突分析算法檢測出規(guī)則沖突時,比較兩條沖突的流規(guī)則對應的應用的優(yōu)先級大小,若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級高,則將新的流規(guī)則覆蓋已有流規(guī)則;若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級低,則拒絕新的流規(guī)則插入請求;若兩條沖突的流規(guī)則對應的應用的優(yōu)先級相同,則上報所述網(wǎng)絡管理員進行抉擇。
[0033]優(yōu)選的,所述集合化的流規(guī)則的轉化條件是:當?shù)谝涣饕?guī)則的行為域為Set-Field時,將Set前后的值合并為一個集合,用集合域值代替代替原來的匹配項域值的單個域值,若所述第一流規(guī)則是除Set-Field之外的其余行為,則將所述第一流規(guī)則的各匹配域值單獨作為一個集合,用集合域值代替代替所述第一流規(guī)則原來的流規(guī)則匹配域值。
[0034]優(yōu)選的,所述沖突匹配原則是:若兩個集合化流規(guī)則匹配域各項并非均相交,則無沖突;若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為相同,則無沖突;若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為不同,則沖突。
[0035]優(yōu)選的,所述應用的優(yōu)先級是將所有的應用按照重要與安全程度分為七個不同的等級。
[0036]本發(fā)明提供了一種SDN應用的策略沖突檢測方法,應用于SDN應用的策略沖突檢測系統(tǒng),所述方法包括:
[0037]控制檢測層從應用接入層接收所述欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則;
[0038]所述監(jiān)管可視化層將獲取認證授權的應用的流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息實時反饋給網(wǎng)絡管理員。
[0039]通過本發(fā)明的一個或者多個技術方案,本發(fā)明具有以下有益效果或者優(yōu)點:
[0040]本發(fā)明提出一種SDN應用的策略沖突檢測方法及系統(tǒng),對欲接入網(wǎng)絡的應用進行認證和授權,賦予優(yōu)先級,進行沖突檢測與調解,并實時將網(wǎng)絡狀態(tài)反饋給網(wǎng)絡管理人員,建立起一個全面的針對SDN應用的策略沖突檢測框架,以解決SDN帶來的網(wǎng)絡安全威脅。本發(fā)明采用的基于集合相交的流規(guī)則策略沖突分析算法,簡易穩(wěn)定,易于擴展,實現(xiàn)了流規(guī)則中存在Set等中間行為的策略沖突檢測和不同應用的流規(guī)則組合之后的策略沖突檢測。本發(fā)明采用的基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法簡單有效,易于實現(xiàn)。
【專利附圖】
【附圖說明】
[0041]圖1為現(xiàn)有技術中的SDN網(wǎng)絡架構;
[0042]圖2為本發(fā)明實施例中的策略沖突檢測系統(tǒng)架構;
[0043]圖3為本發(fā)明實施例中基于集合相交的流規(guī)則策略沖突分析算法流程圖;
[0044]圖4為本發(fā)明實施例中基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法流程;
[0045]圖5為本發(fā)明實施例中舉例說明的策略沖突檢測方法的流程圖。
【具體實施方式】
[0046]為了使本申請所屬【技術領域】中的技術人員更清楚地理解本申請,下面結合附圖,通過具體實施例對本申請技術方案作詳細描述。
[0047]實施例一:
[0048]在本發(fā)明實施例中,提出了一種SDN應用的策略沖突檢測系統(tǒng),主要針對SDN應用,對欲接入網(wǎng)絡的應用進行認證和授權,賦予優(yōu)先級,根據(jù)沖突分析算法對其下發(fā)的流規(guī)則請求進行沖突檢測,若存在沖突,則根據(jù)沖突決策算法進行調解,并實時將網(wǎng)絡狀態(tài)反饋給網(wǎng)絡管理人員。特別地,沖突檢測算法能夠實現(xiàn)流規(guī)則中存在Set等中間行為的策略沖突檢測和不同應用的流規(guī)則組合之后的策略沖突檢測。另外,策略沖突檢測系統(tǒng)在基于Java的SDN控制器(OpenDaylight)的基礎上進行擴展,按照設計需求實現(xiàn)相應模塊,并在控制器的配置文件中添加功能模塊,從而在控制器啟動時實現(xiàn)自動加載,并采用模塊加載器(ModuleLoader)對各模塊進行管理。
[0049]在具體的實施過程中,策略沖突檢測系統(tǒng)的總體框架如圖2所示,共分為三層:應用接入層1、控制檢測層2和監(jiān)管可視化層3。
[0050]應用接入層I類似于現(xiàn)有SDN網(wǎng)絡架構中的應用層,包括已接入網(wǎng)絡的應用和欲接入網(wǎng)絡的應用。
[0051 ] 控制檢測層2類似于現(xiàn)有SDN網(wǎng)絡架構中的控制層,是整個框架的核心部分,用于通過沖突分析算法和沖突決策算法來完成策略沖突的檢測和調解。具體用于接收欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則。其中,沖突分析算法具體指基于集合相交的流規(guī)則策略沖突分析算法,沖突決策算法具體指基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法。
[0052]監(jiān)管可視化層3,主要用于顯示控制檢測層2進行沖突分析之后獲得的沖突信息、相互沖突的流表信息、網(wǎng)絡拓撲信息。當然,監(jiān)管可視化層3還可以顯示網(wǎng)絡中獲取認證授權的應用的流規(guī)則信息等。另外,監(jiān)管可視化層3還用于進行網(wǎng)絡安全策略的管理,并允許網(wǎng)絡管理人員通過用戶界面13 (即:UI圖形界面)進行相應的操作。
[0053]應用接入層I的應用根據(jù)來源和功能可以分為三種類型:網(wǎng)管應用4,安全應用5和第三方應用6。
[0054]網(wǎng)管應用4是指由網(wǎng)絡管理人員接入的應用,主要進行網(wǎng)絡的管理、監(jiān)控以及其他相關任務,方便管理人員更好的對網(wǎng)絡進行監(jiān)管。
[0055]安全應用5是指網(wǎng)絡中接入的安全服務應用,用來建立網(wǎng)絡的安全防御機制,例如防火墻、接入控制等。
[0056]第三方應用6是指由第三方接入的常規(guī)應用,通過調用控制器的開源API (Applicat1n Programming Interface,應用程序編程接口 )實現(xiàn)自定義的功能。
[0057]控制檢測層2包括六個模塊:應用認證授權模塊7、流規(guī)則沖突檢測與決策模塊8、狀態(tài)表管理模塊9、信息反饋模塊10、流表集合11和數(shù)據(jù)庫12。
[0058]應用認證授權模塊7,用于接收欲接入網(wǎng)絡的應用的訪問授權請求,并根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書給各個欲接入網(wǎng)絡的應用,并對各個欲接入網(wǎng)絡的應用進行訪問認證授權,使各個欲接入網(wǎng)絡的應用能夠正常訪問控制器的系統(tǒng)資源,下發(fā)應用策略。一般情況下網(wǎng)管應用4的優(yōu)先級最高,安全應用5的優(yōu)先級次之,第三方應用6的優(yōu)先級最低。
[0059]流規(guī)則沖突檢測與決策模塊8,用于根據(jù)沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,判斷是否與流表集合11中已有的流規(guī)則存在沖突,若存在沖突,則根據(jù)沖突決策算法進行沖突決策,緩解沖突,防止網(wǎng)絡中存在相互沖突的策略規(guī)則,并將沖突分析與決策的結果發(fā)送給狀態(tài)表管理模塊9。
[0060]狀態(tài)表管理模塊9,獲取認證授權的應用下發(fā)的流規(guī)則插入請求,根據(jù)沖突分析與決策的結果對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行接受或拒絕操作,并實時更新流表集合11和底層交換機流表,對流表集合11進行更新維護。
[0061]信息反饋模塊10,用于將流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息實時反饋給監(jiān)管可視化層3,通過用戶界面13報告網(wǎng)絡管理人員,并將網(wǎng)絡管理人員的操作指令發(fā)送給對應的模塊。
[0062]流表集合11,用于保存網(wǎng)絡中正在運行的所有流表彳目息。這些流表?目息是策略沖突檢測的基礎,由狀態(tài)表管理模塊9負責維護和更新。
[0063]數(shù)據(jù)庫12,用于存儲策略沖突檢測日志信息,向流規(guī)則沖突檢測與決策模塊8提供數(shù)據(jù)支持。
[0064]監(jiān)管可視化層3包括兩個模塊:用戶界面13、消息處理模塊14,兩個模塊之間通過HTTP協(xié)議進行通信。
[0065]用戶界面13為一個Web Π界面。當信息反饋模塊10將網(wǎng)絡消息發(fā)送給消息處理模塊14后,消息處理模塊14按照消息類型進行緩存,當有來自用戶界面13的HTTP (Hypertext transfer protocol,超文本傳輸協(xié)議)信息請求時將請求的信息通過HTTP資源響應發(fā)送給用戶界面13。當網(wǎng)絡管理人員通過用戶界面13下發(fā)操作指令,指令通過HTTP消息的形式發(fā)送給消息處理模塊14,消息處理模塊14緩存指令消息,并轉化為信息反饋模塊10能夠識別的操作指令形式下發(fā)給信息反饋模塊10。
[0066]在本發(fā)明提出的SDN應用策略沖突檢測系統(tǒng)中,沖突檢測和沖突調解是核心功能,通過控制檢測層2的流規(guī)則沖突檢測與決策模塊8實現(xiàn)。流規(guī)則沖突檢測與決策模塊8使用基于集合相交的流規(guī)則策略沖突分析算法來檢測規(guī)則沖突,使用基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法來調解沖突。
[0067]在具體的實施過程中,沖突分析算法具體是:
[0068]將流表集合中已有的流規(guī)則和新插入的流規(guī)則全部轉化為集合化的流規(guī)則,得到集合化流表集合和集合化待檢測流規(guī)則。
[0069]對集合化流表集合和集合化待檢測流規(guī)則中的所有集合化流規(guī)則進行成對比較,根據(jù)沖突匹配原則判斷是否沖突。
[0070]進一步的,主要的沖突匹配原則是:
[0071]若兩個集合化流規(guī)則匹配域各項并非均相交,則無沖突;
[0072]若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為相同,則無沖突;
[0073]若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為不同,則沖突。
[0074]基于集合相交的流規(guī)則策略沖突分析算法流程如圖3所示。
[0075]S301,將流表集合11中已有的流規(guī)則(S)和新插入的流規(guī)則(F)全部轉化為集合化的流規(guī)則,得到集合化流表集合(S_Set)和集合化待檢測流規(guī)則(F_Set)。
[0076]具體的轉發(fā)方式是:第一流規(guī)則(第一流規(guī)則可以是流表集合11中已有的流規(guī)則
(S)或者新插入的流規(guī)則(F))的行為域為Set-Field時,將Set前后的值合并為一個集合,用集合域值代替代替原來的匹配項域值的單個域值;若第一流規(guī)則是除Set-Field之外的其余行為,則將第一流規(guī)則的各匹配域值單獨作為一個集合,用集合域值代替代替第一流規(guī)則原來的流規(guī)則匹配域值。
[0077]具體來說,“Set-Field”是一種修改或設置數(shù)據(jù)包某個值的行為。
[0078]S302,對集合化流表集合(S_Set)和集合化待檢測流規(guī)則(F_Set)中的所有集合化流規(guī)則進行成對比較,根據(jù)沖突匹配原則判斷是否沖突。
[0079]進一步的,在根據(jù)沖突匹配原則判斷是否沖突時,主要是執(zhí)行下面的步驟:
[0080]S303,集合化流表集合(S_Set)和集合化待檢測流規(guī)則(F_Set)的匹配域各項是否均相交。
[0081]若匹配域各項均相交,轉入S304,集合化流表集合(S_Set)和集合化待檢測流規(guī)則(F_Set)的行為域各項是否相同。
[0082]若匹配域各項不相交,轉入S305,無沖突。
[0083]其中,在S304中,若行為域各項相同,轉入S305。若行為域各項不相同,轉入S306,沖突。
[0084]上面的判斷方式,主要是根據(jù)以下三條沖突匹配原則按順序逐個判斷是否沖突:
[0085](I)若S_Set和F_Set的匹配域各項并非均相交,即無關聯(lián),則無沖突;
[0086](2)若S_Set和F_Set的匹配域各項均有交集,但行為域的行為相同,則無沖突;
[0087](3)若S_Set和F_Set匹配域各項均有交集,但行為域的行為不同,則沖突。
[0088]在確定沖突之后,則會根據(jù)沖突決策算法進行決策,沖突決策算法具體是:
[0089]當沖突分析算法檢測出規(guī)則沖突時,比較兩條沖突的流規(guī)則對應的應用的優(yōu)先級大小,若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級高,則將新的流規(guī)則覆蓋已有流規(guī)則。
[0090]若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級低,則拒絕新的流規(guī)則插入請求。
[0091]若兩條沖突的流規(guī)則對應的應用的優(yōu)先級相同,則上報網(wǎng)絡管理員進行抉擇。
[0092]將所有的應用按照重要與安全程度分為七個不同的等級。為了便于說明和解釋本發(fā)明,可將這七個等級使用特別高、非常高、較高、一般、較低、非常低、特別低進行劃分,并對應為優(yōu)先級I?7,優(yōu)先級越小等級越高。網(wǎng)管應用4優(yōu)先級最高,安全應用5次之,第三方應用6最低。
[0093]基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法流程如圖4所示。
[0094]當沖突分析算法檢測出已有的流規(guī)則⑶和新插入的流規(guī)則(F)沖突時,具體的步驟如下:
[0095]S401,比較兩條流規(guī)則對應的應用的優(yōu)先級S_>AppPr1rity (S_>應用優(yōu)先級)和F->AppPr1rity (F_>應用優(yōu)先級)的大小。該優(yōu)先級可以從流規(guī)則附加的應用優(yōu)先級中獲得。
[0096]具體的比較方式如下:
[0097]S402,比較新插入的流規(guī)則(F)的優(yōu)先級(F_>AppPr1rity)是否高于已有的流規(guī)則(S)的優(yōu)先級(S->AppPr1rity)。
[0098]若是,轉入S403,使用新插入的流規(guī)則(F)覆蓋已有的流規(guī)則⑶。即將新插入的流規(guī)則(F)插入流表集合11和底層交換機流表中,刪除已有的流規(guī)則(S)。
[0099]反之,轉入S404,比較新插入的流規(guī)則(F)的優(yōu)先級(F_>AppPr1rity)是否低于已有的流規(guī)則(S)的優(yōu)先級(S->AppPr1rity)。
[0100]若是,則轉入S405,拒絕新插入的流規(guī)則(F)的插入請求。
[0101]反之,表明S_>AppPr1rity和F_>AppPr1rity相同,此時則轉入S406,交由網(wǎng)絡管理員抉擇。一般情況下新的流規(guī)則將代替舊的流規(guī)則。
[0102]本發(fā)明提出一種SDN應用的策略沖突檢測系統(tǒng),對欲接入網(wǎng)絡的應用進行認證和授權,賦予優(yōu)先級,進行沖突檢測與調解,并實時將網(wǎng)絡狀態(tài)反饋給網(wǎng)絡管理人員,建立起一個全面的針對SDN應用的策略沖突檢測框架。該系統(tǒng)采用的基于集合相交的流規(guī)則策略沖突分析算法,簡易穩(wěn)定,易于擴展,解決了流規(guī)則中存在Set等中間行為的策略沖突檢測和不同應用的流規(guī)則組合之后的策略沖突檢測。該系統(tǒng)采用的基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法簡單有效,易于實現(xiàn)。
[0103]上面的實施例描述了策略沖突檢測系統(tǒng)的架構,基于同一發(fā)明構思,下面的實施例中描述一種SDN應用的策略沖突檢測方法。
[0104]實施例二:
[0105]本發(fā)明提出的SDN應用的策略沖突檢測方法,應用在SDN應用的策略沖突檢測系統(tǒng)中。主要針對SDN應用。該方法在基于Java的控制器(OpenDaylight)的基礎上進行擴展,對應的系統(tǒng)按照設計需求實現(xiàn)相應模塊,并在控制器的配置文件中添加功能模塊,從而在控制器啟動時實現(xiàn)自動加載。本方法對應的系統(tǒng)米用模塊加載器(ModuleLoader)對各模塊進行管理。
[0106]而在策略沖突檢測系統(tǒng)架構中,主要的實施流程是:
[0107]控制檢測層2從應用接入層I中接收欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,防止網(wǎng)絡中存在相互沖突的策略規(guī)則;監(jiān)管可視化層3將獲取認證授權的應用的流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息實時反饋給網(wǎng)絡管理員。
[0108]下面使用具體的應用對該方法進行說明。
[0109]本發(fā)明涉及的策略沖突檢測方法的實施流程如圖5所示:
[0110]SI,欲接入網(wǎng)絡的第一應用向應用認證授權模塊7請求訪問授權。
[0111]S2,應用認證授權模塊7對第一應用進行類型鑒別,根據(jù)應用類型分配應用優(yōu)先級,生成私有證書并發(fā)放給第一應用。
[0112]S3,第一應用向應用認證授權模塊7發(fā)送私有證書和從控制器獲得的授權碼,請求訪問令牌和刷新令牌。
[0113]S4,應用認證授權模塊7對第一應用的訪問授權請求進行處理,接收第一應用的私有證書和授權碼,若驗證無誤且有效則向第一應用發(fā)放訪問令牌和刷新令牌。
[0114]S5,當訪問令牌過期后,第一應用向應用認證授權模塊7發(fā)送私有證書和刷新令牌,請求刷新訪問令牌。
[0115]S6,應用認證授權模塊7接收第一應用發(fā)來的私有證書和刷新令牌,若驗證無誤且有效則向第一應用發(fā)放新的訪問令牌。
[0116]S7,流規(guī)則沖突檢測與決策模塊8根據(jù)策略沖突分析算法對第一應用下發(fā)的流規(guī)則插入請求進行沖突分析,判斷是否與流表集合11中已有的流規(guī)則存在沖突。
[0117]S8,若S7中的判斷結果為不存在沖突,則流規(guī)則沖突檢測與決策模塊8將流規(guī)則插入請求發(fā)送給狀態(tài)表管理模塊9。
[0118]S9,若S7中的判斷結果為存在沖突,則流規(guī)則沖突檢測與決策模塊8根據(jù)策略沖突決策算法進行沖突決策,緩解沖突,防止網(wǎng)絡中存在相互沖突的策略規(guī)則。
[0119]S10,流規(guī)則沖突檢測與決策模塊8將沖突分析與決策的結果發(fā)送給狀態(tài)表管理模塊9。
[0120]SI I,數(shù)據(jù)庫12存儲流規(guī)則沖突檢測與決策模塊8的策略沖突檢測日志信息,并向流規(guī)則沖突檢測與決策模塊8提供數(shù)據(jù)支持。
[0121]S12,狀態(tài)表管理模塊9檢測流規(guī)則的完整性,若不完整,則流規(guī)則在中途遭到了破壞,拒絕插入請求;若完整,接受插入請求,然后進行插入流規(guī)則到流表集合11、從流表集合11刪除流規(guī)則、將流規(guī)則下發(fā)到底層交換機等操作。
[0122]S13,信息反饋模塊10接收來自各功能模塊發(fā)來的消息,按照消息類型將消息分別添加到相應的消息隊列中。
[0123]S14,信息反饋模塊10將消息隊列中的消息發(fā)送給消息處理模塊14。消息處理模塊14獲得來自信息反饋模塊10的消息,按照消息類型進行緩存。
[0124]S15,當有來自用戶界面13的HTTP信息請求時,消息處理模塊14將請求的信息通過HTTP資源響應發(fā)送給用戶界面13。
[0125]S16,當網(wǎng)絡管理人員通過用戶界面13下發(fā)操作指令,操作指令被打包為指令消息發(fā)送給消息處理模塊14。
[0126]S17,消息處理模塊14緩存指令消息,并轉化為信息反饋模塊10能夠識別的操作指令形式下發(fā)給信息反饋模塊10。信息反饋模塊10接收來自消息處理模塊14發(fā)來的操作指令,將收到的操作指令按照目的模塊添加到對應模塊的指令隊列中。
[0127]S18,信息反饋模塊10將模塊指令隊列中的操作指令發(fā)送給對應的功能模塊。
[0128]通過本發(fā)明的一個或者多個實施例,本發(fā)明具有以下有益效果或者優(yōu)點:
[0129]本發(fā)明提出一種SDN應用的策略沖突檢測方法及系統(tǒng),對欲接入網(wǎng)絡的應用進行認證和授權,賦予優(yōu)先級,進行沖突檢測與調解,并實時將網(wǎng)絡狀態(tài)反饋給網(wǎng)絡管理人員,建立起一個全面的針對SDN應用的策略沖突檢測框架,以解決SDN帶來的網(wǎng)絡安全威脅。本發(fā)明采用的基于集合相交的流規(guī)則策略沖突分析算法,簡易穩(wěn)定,易于擴展,實現(xiàn)了流規(guī)則中存在Set等中間行為的策略沖突檢測和不同應用的流規(guī)則組合之后的策略沖突檢測。本發(fā)明采用的基于應用優(yōu)先級比較的流規(guī)則策略沖突決策算法簡單有效,易于實現(xiàn)。
[0130]盡管已描述了本申請的優(yōu)選實施例,但本領域內的普通技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
[0131]顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。
【權利要求】
1.一種SDN應用的策略沖突檢測系統(tǒng),其特征在于,包括: 應用接入層,包括已接入網(wǎng)絡的應用和欲接入網(wǎng)絡的應用; 控制檢測層,用于接收所述欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則; 監(jiān)管可視化層,用于實時顯示網(wǎng)絡中的流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息給網(wǎng)絡管理員。
2.如權利要求1所述的系統(tǒng),其特征在于,所述應用接入層中的應用包括: 網(wǎng)管應用,所述網(wǎng)管應用具體是由所述網(wǎng)絡管理人員接入的應用,所述網(wǎng)管應用用于進行網(wǎng)絡的管理和監(jiān)控; 安全應用,所述安全應用主要是網(wǎng)絡中接入的安全服務應用,用于建立網(wǎng)絡的安全防御機制; 第三方應用,所述第三方應用是指由第三方接入的常規(guī)應用,用于通過調用控制器的開源API (應用程序編程接口)實現(xiàn)自定義的功能。
3.如權利要求1所述的系統(tǒng),其特征在于,所述控制檢測層包括: 應用認證授權模塊,用于接收各個欲接入網(wǎng)絡的應用的訪問授權請求,并根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書給各個欲接入網(wǎng)絡的應用,并對各個欲接入網(wǎng)絡的應用進行訪問認證授權; 流規(guī)則沖突檢測與決策模塊,用于根據(jù)所述沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,判斷是否與流表集合中已有的流規(guī)則存在沖突,若存在沖突,則根據(jù)所述沖突決策算法進行沖突決策以緩解沖突,以防止網(wǎng)絡中存在相互沖突的策略規(guī)則,并將沖突分析與決策的結果發(fā)送給狀態(tài)表管理模塊; 所述狀態(tài)表管理模塊,用于管理獲取認證授權的應用下發(fā)的流規(guī)則插入請求,根據(jù)所述沖突分析與決策的結果對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行接受或拒絕操作,并實時更新所述流表集合和底層交換機流表,對所述流表集合進行更新維護; 信息反饋模塊,用于將所述流規(guī)則信息、所述沖突信息、所述網(wǎng)絡拓撲信息實時反饋給所述監(jiān)管可視化層,通過所述用戶界面報告給所述網(wǎng)絡管理人員,并將所述網(wǎng)絡管理人員的操作指令發(fā)送給對應的模塊; 所述流表集合,用于保存網(wǎng)絡中正在運行的所有流表信息; 數(shù)據(jù)庫,用于存儲策略沖突檢測日志信息,向所述流規(guī)則沖突檢測與決策模塊提供數(shù)據(jù)支持。
4.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述監(jiān)管可視化層包括: 所述用戶界面,用于從消息處理模塊獲得網(wǎng)絡狀態(tài)信息,以圖表化的形式實時顯示網(wǎng)絡狀態(tài)信息,以使所述網(wǎng)絡管理人員通過所述用戶界面下發(fā)操作指令至所述消息處理模塊; 所述消息處理模塊,用于接收所述信息反饋模塊發(fā)送的網(wǎng)絡消息,按照消息類型進行緩存,當有來自所述用戶界面的HTTP (超文本傳輸協(xié)議)信息請求時,將所述HTTP信息請求通過HTTP資源響應發(fā)送給所述用戶界面,當接收到來自所述用戶界面的操作指令時,緩存所述操作指令,并轉化為所述信息反饋模塊能夠識別的操作指令形式,然后下發(fā)給所述信息反饋模塊,其中,所述網(wǎng)絡消息包括所述網(wǎng)絡拓撲信息、所述流表信息以及所述沖突信肩、O
5.根據(jù)權利要求1或3所述的系統(tǒng),其特征在于,所述沖突分析算法具體是: 將所述流表集合中已有的流規(guī)則和新插入的流規(guī)則全部轉化為集合化的流規(guī)則,得到集合化流表集合和集合化待檢測流規(guī)則; 對所述集合化流表集合和所述集合化待檢測流規(guī)則中的所有集合化流規(guī)則進行成對比較,根據(jù)沖突匹配原則判斷是否沖突。
6.根據(jù)權利要求1或3所述的系統(tǒng),其特征在于,所述沖突決策算法具體是: 當沖突分析算法檢測出規(guī)則沖突時,比較兩條沖突的流規(guī)則對應的應用的優(yōu)先級大小,若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級高,則將新的流規(guī)則覆蓋已有流規(guī)則;若發(fā)送流規(guī)則插入請求的應用的優(yōu)先級低,則拒絕新的流規(guī)則插入請求;若兩條沖突的流規(guī)則對應的應用的優(yōu)先級相同,則上報所述網(wǎng)絡管理員進行抉擇。
7.根據(jù)權利要求5所述的系統(tǒng),其特征在于,所述集合化的流規(guī)則的轉化條件是:當?shù)谝涣饕?guī)則的行為域為Set-Field時,將Set前后的值合并為一個集合,用集合域值代替代替原來的匹配項域值的單個域值,若所述第一流規(guī)則是除Set-Field之外的其余行為,則將所述第一流規(guī)則的各匹配域值單獨作為一個集合,用集合域值代替代替所述第一流規(guī)則原來的流規(guī)則匹配域值。
8.根據(jù)權利要求5所述的系統(tǒng),其特征在于,所述沖突匹配原則是: 若兩個集合化流規(guī)則匹配域各項并非均相交,則無沖突; 若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為相同,則無沖突; 若兩個集合化流規(guī)則匹配域各項均有交集,但行為域的行為不同,則沖突。
9.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述應用的優(yōu)先級是將所有的應用按照重要與安全程度分為七個不同的等級。
10.一種SDN應用的策略沖突檢測方法,其特征在于,所述方法包括: 控制檢測層從應用接入層接收欲接入網(wǎng)絡的應用的訪問授權請求,根據(jù)應用類型賦予各個欲接入網(wǎng)絡的應用相應的優(yōu)先級,發(fā)放私有證書,進行訪問認證授權,并通過沖突分析算法對獲取認證授權的應用下發(fā)的流規(guī)則插入請求進行沖突分析,若存在沖突則通過沖突決策算法進行沖突決策以緩解沖突,防止網(wǎng)絡中存在相互沖突的策略規(guī)則; 所述監(jiān)管可視化層將獲取認證授權的應用的流規(guī)則信息、沖突信息、網(wǎng)絡拓撲信息實時反饋給網(wǎng)絡管理員。
【文檔編號】H04L12/24GK104202303SQ201410391710
【公開日】2014年12月10日 申請日期:2014年8月11日 優(yōu)先權日:2014年8月11日
【發(fā)明者】戴彬, 胡煒燁, 王航遠 申請人:華中科技大學