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