一種用戶驅動的sdn網絡集中式訪問控制方法
【技術領域】
[0001] 設及一種用戶驅動的SDN網絡集中式訪問控制方法,屬于計算機應用技術領域。
【背景技術】
[0002] 由于不斷出現的網絡服務W及迅速擴張的網絡規模,傳統網絡架構暴露出嚴重的 問題,根本原因在于控制邏輯W及轉發邏輯的緊禪合W及分布式的網絡設備控制方式。SDN 網絡是一種新興的網絡架構,通過分離控制邏輯與轉發邏輯克服了傳統網絡的不足,目前 獲得了學術界W及工業界的廣泛認可。
[0003]訪問控制作為一種網絡安全機制,通過對進出網絡的數據包應用一系列訪問控制 規則提供對數據包的過濾功能。在傳統網絡中,采取配置網絡設備中的訪問控制列表的方 式實現訪問控制,該方式的缺點為;一方面需要網絡設備擁有具備相應處理能力的特定硬 件,開銷較大,另一方面需要網絡管理員在網絡設備中設計、配置與維護分布式的訪問控制 列表,繁瑣且易出錯。上述缺點的根本原因在于傳統網絡缺少一個全局視圖W及一個集中 的接口來配置與管理訪問控制列表。相比于傳統網絡,SDN網絡提供了一個更加合適的架 構來實現訪問控制。SDN中的控制器收集并維護全網視圖并提供一個開放的編程接口,使得 網絡管理員可在控制器中W-種集中式的方式配置與管理網絡。
[0004]現有的針對SDN網絡訪問控制的相關工作大都采用了被動方式實現。在被動方 式中,SDN控制器通過監聽轉發平面發送來的化cket-in消息,進行相關處理,最后向轉 發平面下發相應流表項來實現訪問控制,然而該方式由于需要進行一定處理操作增加了 數據包轉發時延,在網絡流量激增的時候會降低網絡效率。SDN網絡中著名的開源控制器 Floodli曲t中包含了一個防火墻應用,該應用通過被動方式監聽化cket-in消息實現訪問 控制,一方面增加了轉發時延,另一方面該應用無法根據訪問控制規則的更新及時管理轉 發平面中的流表,可能會造成不可預測的網絡錯誤。
【發明內容】
[0005] 為了克服SDN網絡中現有的訪問控制方法增加轉發時延與無法及時管理轉發平 面中流表的不足,提供了一種用戶驅動的SDN網絡集中式訪問控制方法,實現對SDN網絡中 數據包的過濾功能。該方法向用戶提供一個友好的、集中式的管理接口,將全局網絡視圖簡 化為抽象網絡視圖,根據用戶請求通過主動方式基于抽象網絡視圖實現訪問控制,對新增 訪問控制規則進行匹配檢測,動態響應網絡視圖更新事件及時更新流表。
[0006]解決其技術問題所采用的技術方案是:
[0007]一種用戶驅動的SDN網絡集中式訪問控制方法,通過RESTAPI、抽象網絡視圖管 理、訪問控制規則管理=大模塊來實現。
[000引RESTAPI為用戶提供一個友好的、集中式的管理接口供用戶添加、刪除與查詢訪 問控制規則。在SDN控制器中維護一個全局訪問控制列表,用戶可通過向控制器發送包含 有請求內容JS0N字符串的HTTP請求來更新全局訪問控制列表。
[0009] 將全局網絡視圖簡化為抽象網絡視圖。該視圖隱藏了內部的網絡拓撲細節只記錄 外部主機與邊緣交換機的接口信息,通過調用控制器提供的相應接口監聽網絡中的主機更 新事件,當新事件發生時根據更新類型及時更新抽象網絡視圖。同時為抽象網絡視圖提供 一個全局接口方法供其他功能模塊調用進行接口信息查詢。
[0010] 對用戶請求新增的訪問控制列表規則進行匹配檢測。匹配定義為;新增的訪問控 制規則的作用域被已有的訪問控制規則作用域覆蓋,即該新增訪問控制規則無效。如發現 匹配,向用戶返回出錯信息并拒絕用戶的添加操作。
[0011] 根據用戶請求通過主動方式基于抽象網絡視圖實現訪問控制。當用戶請求增加訪 問控制規則時,對通過匹配檢測的新增規則生成一個全局唯一序號并在全局訪問控制列表 中添加新的表項,然后檢測新增訪問控制規則中的源網絡地址字段是否為通配符字段,若 不為通配符,通過向抽象網絡視圖的查詢方法傳入該訪問控制規則的源網絡地址獲取入口 交換機集合;若為通配符,傳入該訪問控制規則的目的網絡地址,獲取出口交換機集合。對 于交換機集合中的每一臺交換機,根據新增訪問控制規則生成一條訪問控制流表項并進行 下發,并在規則映射表中記錄訪問控制規則的序號到對應流表項序號的映射關系。通過在 入口或出口交換機中下發準確反映高層決策的流表項,對SDN網絡實現訪問控制。當用戶 請求刪除某個已存的訪問控制規則時,從全局訪問控制列表中刪除該規則,同時跟據規則 映射表獲取對應流表項序號,利用該序號刪除對應流表項,最后從規則映射表中刪除指定 表項。
[0012] 動態響應網絡視圖更新事件及時更新流表。當網絡中新增主機時,判斷新增主機 與現有訪問控制規則的關聯性,即判斷該主機的IP地址是否包含在全局訪問控制列表中 規則的網絡地址字段中。如果關聯,根據關聯規則生成一條新的訪問控制流表項并下發至 指定的交換機中,之后更新抽象網絡視圖;如果不關聯,直接更新抽象網絡視圖。維持一 個抽象網絡視圖中接口信息到對應訪問控制流表項序號的映射表,當網絡中某臺主機被刪 除,通過查閱該映射表獲取待刪除的流表項序號并進行刪除,之后更新抽象網絡視圖。
[0013] 通過向用戶提供一個友好的、集中式的管理接口,簡化了網絡管理;通過將全局網 絡視圖簡化為抽象網絡視圖,降低了處理過程的復雜度;通過分析用戶請求并基于抽象網 絡視圖W主動方式實現訪問控制,降低了轉發時延,提高了轉發效率;通過對新增訪問控制 規則進行匹配檢測,減少無效的訪問控制規則,節約了轉發平面中的流表空間;通過動態響 應網絡視圖更新事件及時更新流表,確保了高層決策的正確性。
【附圖說明】
[0014] 圖1是的系統架構圖。
[0015] 圖2是中使用到的抽象網絡視圖示例。
[0016] 圖3是更新訪問控制列表的流程圖。
[0017] 圖4是實施訪問控制更新的流程圖。
[001引圖5是動態響應網絡視圖更新的流程圖。
【具體實施方式】
[0019] 下面結合附圖和實施例對進一步說明。
[0020] 如圖1所示,一種用戶驅動的SDN網絡集中式訪問控制方法可實現為SDN控制器 中的一個系統模塊,該系統模塊由RESTAPI、抽象網絡視圖管理、訪問控制規則管理S大功 能模塊組成。其中,RESTAPI為用戶提供一個友好的、集中式的管理接口供用戶添加、刪除 與查詢訪問控制規則;抽象網絡視圖管理模塊共分為抽象網絡視圖更新與抽象網絡視圖查 詢兩個子模塊,前者負責將全局網絡視圖簡化為抽象網絡視圖,并通過監聽網絡中的主機 更新事件對該抽象網絡視圖進行及時更新,后者負責提供全局接口供其他功能模塊對抽象 網絡視圖進行查詢;訪問控制規則管理模塊由訪問控制列表更新、訪問控制列表實現、抽象 網絡視圖更新處理=個功能子模塊組成,其中訪問控制列表更新模塊負責添加與刪除訪問 控制規則同時在添加規則時進行匹配檢測,訪問控制列表實現負責管理交換機中的流表W 實現新增規則與已刪除規則,抽象網絡視圖更新處理負責對網絡中新增W及已刪除的主機 進行處理。
[0021] 下表2描述了對訪問控制規則的定義
[0022]
[0023]為每個訪問控制規則生成一個全局唯一的序號,其中網絡層協議、源網絡地址、目 的網絡地址、目的端口號被稱為匹配字段,該字段既可被指定為一個特定值也可被指定為 通配符W匹配所有可能的屬性值。源網絡地址與目的網絡地址被表示為CIDRIP地址,既 可表示一個特定的IP地址,也可表示為一個IP地址范圍。允許用戶通過HTTP請求發送包 含有相應請求信息的JSON字符串hi現添加、刪除與查詢訪問控制規則。
[0024]圖2是所管理的抽象網絡視圖實例。通過隱藏內部網絡拓撲只記錄外部主機與邊 緣交換機的接口信息將全局網絡視圖映射為抽象網絡視圖,并將接口信息表示為=元組: {接口序號,交換機DPID,主機IP}。通過監聽主機更新事件維護一個抽象網絡視圖并提供 一個全局接口方法getDpidSet,該方法對于給定的CIDRIP地址,通過捜索抽象網絡視圖, 返回一個交換機DPID集合,該集合包含所有與該IP地址表示的主機相連的交換機DPID。
[0025]圖3是更新訪問控制列表的流程圖。維護一個全局訪問控制列表,工作流程為:首 先監聽用戶對訪問控制列表的更新請求,并對接收的新請求進行有效性檢測,若該請求無 效則向用戶返回出錯信息并繼續進行監聽,否則判斷用戶請求類型。當用戶請求添加新規 則時,首先將該請求轉換為一個對應的訪問控制列表規則并在訪