一種sdn服務鏈應用有效性的檢測方法
【技術領域】
[0001]本發明涉及SDN網絡技術領域,尤其涉及一種SDN服務鏈應用有效性的檢測方法。
【背景技術】
[0002]隨著網絡技術的不斷發展,軟件定義網絡(SDN,Software Defined Networking)受到了極大的關注。SDN將傳統網絡設備的數據平面與物理平面相隔離,通過軟件編程的方式管理控制整個網絡。通過SDN控制器,用戶可以編寫自己的APP(AppliCat1n,應用程序)讓網絡完成指定的功能,以便實現網絡的創新。這些APP可以形成一個服務鏈(servicechaining)來對同一流量進行處理。
[0003]然而,這些APP中可能存在惡意的APP或者用戶將某個APP誤配置從而導致整個服務鏈不能正常工作。
[0004]所謂的惡意的或者誤配置的app主要是指,通過該app處理后的流量不在受服務鏈后續App的管理控制或者違反網絡的不變量。
[0005]如圖1所示,由防火墻(firewall)、監視器(monitor)和負載均衡器(loadbalance)構成的一個服務鏈為server提供一系列服務。但由于用戶誤配置監視器或者啟用了一個未經安全驗證的監視器,這導致了除去源IP為1.0.0.0/24的用戶外其余的用戶都無法正常訪問到服務器。
【發明內容】
[0006]本發明所要解決的技術問題是針對【背景技術】中的缺陷,提供一種SDN服務鏈應用有效性的檢測方法,通過多app規則合并方法來檢測服務鏈中的惡意或者誤配置app。
[0007]本發明為解決上述技術問題采用以下技術方案:
[0008]一種SDN服務鏈應用有效性的檢測方法,包含以下具體步驟:
[0009]步驟1),取SDN服務鏈中第一個和第二個應用,記為P和Q ;
[0010]步驟2),模擬執行P中每條規則的act1n,將其作用于規則的匹配域;
[0011]步驟3),取出Q中的一條規則,與P中的每條規則求交,求交結果不為空則作為新的一條規則;
[0012]步驟4),若步驟3)中所述Q中取出的規則與P的任何規則求交均不產生除默認規則外任何新的規則,則標記P應用使Q應用中該取出的規則失效,跳轉到步驟6),否則跳轉到步驟5);
[0013]步驟5),將所述Q中取出的規則從Q中刪除后判定Q中是否還存在規則,若Q中不存在規則,則標記P應用沒有覆蓋Q中的規則,跳轉到步驟6),否則轉到步驟3);
[0014]步驟6),若服務鏈在Q后還有其他應用,則記Q應用為新的P應用,Q的后續app記為為新的Q應用,并跳轉到步驟2),否則跳轉到步驟7);
[0015]步驟7),結束檢測。
[0016]本發明采用以上技術方案與現有技術相比,具有以下技術效果:
[0017]1.設計簡單,使用方便;
[0018]2.能夠有效檢測SDN服務鏈中惡意或者誤配置的apps,從而保證整個鏈功能的有效性。
【附圖說明】
[0019]圖1是SDN服務鏈中存在惡意或誤配置App的一個示例;
[0020]圖2是本發明中流表規則合并的示意圖;
[0021]圖3是本發明的檢測流程圖;
[0022]圖4是本發明的一個具體實施例。
【具體實施方式】
[0023]下面結合附圖對本發明的技術方案做進一步的詳細說明:
[0024]本發明公開了一種SDN服務鏈應用有效性的檢測方法,包含以下具體步驟:
[0025]步驟1),取SDN服務鏈中第一個和第二個應用,記為P和Q ;
[0026]步驟2),模擬執行P中每條規則的act1n,將其作用于規則的匹配域;
[0027]步驟3),取出Q中的一條規則,與P中的每條規則求交,求交結果不為空則作為新的一條規則;
[0028]步驟4),若步驟3)中所述Q中取出的規則與P的任何規則求交均不產生除默認規則外任何新的規則,則標記P應用使Q應用中該取出的規則失效,跳轉到步驟6),否則跳轉到步驟5);
[0029]步驟5),將所述Q中取出的規則從Q中刪除后判定Q中是否還存在規則,若Q中不存在規則,則標記P應用沒有覆蓋Q中的規則,跳轉到步驟6),否則轉到步驟3);
[0030]步驟6),若服務鏈在Q后還有其他應用,則記Q應用為新的P應用,Q的后續app記為為新的Q應用,并跳轉到步驟2),否則跳轉到步驟7);
[0031]步驟7),結束檢測。
[0032]如圖4所示,本發明的核心思想是合并apps的流表規則,對所形成的“大流表”進行規則的有效性檢查,從而分析出惡意的或者誤配置的apps。
[0033]而流表規則的合并主要采用了叉乘的方法,具體過程如下:
[0034]假設P、Q分別代表了 2個不同app的規則,其在service chaining的處理順序為P?Q,即流量需要先經過P處理之后再經過Q進行進一步處理。SPie ?且(! QP中的每條規則(Pl為例)以需要與Q中的每條規則(以q.,為例)進行如下操作:在Pl.配域上執行Pi的act1n,如圖2所示。
[0035]然后,將動作完成之后的?1與q ,的匹配域“求交”(默認規則除外)從而產生“大流表”的規則。“大流表”產生規則的方式如下:若pjPq#有相同類型的匹配域,且相同匹配域的值相同,則產生一條“大流表”規則,規則的匹配域由Pl匹配域加上q.,的除去與P ,相同類型之外的其他匹配域所組成(即:PlU (q]_Pl)),動作有pjPq]的動作組合而成。若pjP q 不具有相同類型的匹配域,則其會產生兩條規則,P JP q 各自形成一條規則。
[0036]最后,如果所形成的“大流表”不包含Q中的某些規則時,則說明P為惡意app。因為P中的規則使得Q中的某些規則失效,而無法構成“大流表”中對應的規則。
[0037]整個檢測過程的流程圖如圖3所示。
[0038]本技術領域技術人員可以理解的是,除非另外定義,這里使用的所有術語(包括技術術語和科學術語)具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語應該被理解為具有與現有技術的上下文中的意義一致的意義,并且除非像這里一樣定義,不會用理想化或過于正式的含義來解釋。
[0039]以上所述的【具體實施方式】,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的【具體實施方式】而已,并不用于限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【主權項】
1.一種SDN服務鏈應用有效性的檢測方法,其特征在于,包含以下具體步驟: 步驟1),取SDN服務鏈中第一個和第二個應用,記為P和Q ; 步驟2),模擬執行P中每條規則的act1n,將其作用于規則的匹配域; 步驟3),取出Q中的一條規則,與P中的每條規則求交,求交結果不為空則作為新的一條規則; 步驟4),若步驟3)中所述Q中取出的規則與P的任何規則求交均不產生除默認規則外任何新的規則,則標記P應用使Q應用中該取出的規則失效,跳轉到步驟6),否則跳轉到步驟5); 步驟5),將所述Q中取出的規則從Q中刪除后判定Q中是否還存在規則,若Q中不存在規則,則標記P應用沒有覆蓋Q中的規則,跳轉到步驟6),否則轉到步驟3); 步驟6),若服務鏈在Q后還有其他應用,則記Q應用為新的P應用,Q的后續app記為為新的Q應用,并跳轉到步驟2),否則跳轉到步驟7); 步驟7),結束檢測。
【專利摘要】本發明公開了一種SDN服務鏈應用有效性的檢測方法,首先取SDN服務鏈中第一個和第二個應用,記為P和Q;然后模擬執行P中每條規則的action,將其作用于規則的匹配域;接著,對于Q中的任意一條規則,將其與P中的每條規則求交,求交結果不為空則作為新的一條規則,若其與P的任何規則求交均不產生除默認規則外任何新的規則,則標記P應用使Q應用中該取出的規則失效,否則標記P應用沒有覆蓋Q中的規則。若服務鏈在Q后還有其他應用,則記Q應用為新的P應用,Q的后續app記為新的Q應用,重新執行檢測,直至服務鏈在Q后沒有應用為止。本發明能夠有效檢測SDN服務鏈中惡意或者誤配置的apps,保證整個鏈功能的有效性。
【IPC分類】H04L29/08, H04L12/26
【公開號】CN105245400
【申請號】CN201510590903
【發明人】溫曙光, 潘恒, 謝高崗, 關洪濤, 姜海洋, 賀鵬
【申請人】江蘇省未來網絡創新研究院
【公開日】2016年1月13日
【申請日】2015年9月16日