本發(fā)明涉及網(wǎng)絡通信領域,具體而言,一種基于SDN的網(wǎng)絡域隔離裝置及方法。
背景技術:
網(wǎng)絡域隔離指的是將兩個或兩個以上的計算機或網(wǎng)絡劃分為獨立區(qū)域,并可以將有害的、不同安全級別、不同類型、不同用途的網(wǎng)絡域隔離開,以保障數(shù)據(jù)信息在可信網(wǎng)絡內進行安全交互和資源共享,以及控制廣播報文的廣播范圍。目前網(wǎng)絡域的隔離方法主要包括:訪問控制技術,訪問控制技術一般是應用在路由器或三層交換機接口的訪問控制指令,這些指令用來告訴路由器哪些數(shù)據(jù)包可以收、哪些數(shù)據(jù)包需要拒絕。至于數(shù)據(jù)包是被接收還是拒絕,可以由類似于源地址、目的地址、端口號等的特定指示條件來決定;虛擬局域網(wǎng)(Virtual Local Area Network,VLAN)技術,虛擬局域網(wǎng)(VLAN)是一組邏輯上的設備和用戶,這些設備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應用等因素將它們組織起來,相互之間的通信就好像它們在同一個網(wǎng)段中一樣,由此得名虛擬局域網(wǎng)。然目前的網(wǎng)絡域隔離方法存在配置復雜、不夠靈活的缺點,即上面兩種技術如果實現(xiàn)一般的網(wǎng)絡隔離功能,要配合使用,要在接入設備和匯聚設備(一般是三層交換機)上分別進行配置,配置復雜、易錯,或者遇到特殊的場景,比如相同VLAN的網(wǎng)絡之間也需要隔離的情況、相同的網(wǎng)段之間進行隔離的情況等等,用上述方法難以實現(xiàn)。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種基于SDN(Software Defined Network,軟件定義網(wǎng)絡)的網(wǎng)絡域隔離裝置及方法,使得網(wǎng)絡隔離更靈活、高效、安全。
本發(fā)明實施方式中提供的一種基于SDN的網(wǎng)絡域隔離裝置,應用于SDN控制器,所述SDN控制器連接SDN交換機,且包括MAC地址與端口關系表,包括隔離域管理單元、報文接收單元、數(shù)據(jù)處理單元,隔離域管理單元根據(jù)用戶需求建立網(wǎng)絡域列表,所述網(wǎng)絡域列表包括網(wǎng)絡中所述SDN交換機的端口,并將所述SDN交換機的端口劃分為若干個網(wǎng)絡域;報文接收單元接收所述SDN交換機接收并轉發(fā)的數(shù)據(jù)報文,并記錄所述數(shù)據(jù)報文中的目的MAC地址以及所述SDN交換機接收所述數(shù)據(jù)報文的端口;數(shù)據(jù)處理單元查找所述MAC地址與端口關系表是否存在匹配所述目的MAC地址的端口;若存在,則判斷所述匹配所述目的MAC地址的端口與所述SDN交換機接收所述數(shù)據(jù)報文的端口是否存在于所述網(wǎng)絡域列表中的同一個所述網(wǎng)絡域內;若是,則依據(jù)所述匹配所述目的MAC地址的端口生成并下發(fā)轉發(fā)流表。
優(yōu)選地,所述數(shù)據(jù)處理單元還用于在所述MAC地址與端口關系表不存在所述匹配所述目的MAC地址的端口時,依據(jù)所述接收所述數(shù)據(jù)報文的端口確定所述網(wǎng)絡域,進而針對確定的所述網(wǎng)絡域中除所述接收所述數(shù)據(jù)報文的端口之外的其他端口進行廣播。
優(yōu)選地,所述數(shù)據(jù)處理單元還用于判斷所述匹配所述目的MAC地址的端口與所述接收所述數(shù)據(jù)報文的端口是否位于同一SDN交換機;若是,則生成并下發(fā)所述轉發(fā)流表;若不是,則進一步判斷所述匹配所述目的MAC地址的端口與所述接收所述數(shù)據(jù)報文的端口之間是否具有可達路徑;若具有可達路徑,則依生成并下發(fā)所述轉發(fā)流表;若不具有可達路徑,則控制接收數(shù)據(jù)報文的SDN交換機丟棄該數(shù)據(jù)報文。
優(yōu)選地,所述網(wǎng)絡域列表中還可以包括關聯(lián)主機的MAC地址。
優(yōu)選地,所述網(wǎng)絡域列表還可以根據(jù)用戶需求進行查看、更新、刪除。
本發(fā)明又一實施方式中提供的一種基于SDN的網(wǎng)絡域隔離方法,應用于SDN控制器,所述SDN控制器連接SDN交換機,且包括MAC地址與端口關系表,包括:根據(jù)用戶需求建立網(wǎng)絡域列表,所述網(wǎng)絡域列表包括網(wǎng)絡中所述SDN交換機的端口,并將所述SDN交換機的端口劃分為若干個網(wǎng)絡域;接收所述SDN交換機接收并轉發(fā)的數(shù)據(jù)報文,并記錄所述數(shù)據(jù)報文中的目的MAC地址以及所述SDN交換機接收所述數(shù)據(jù)報文的端口;查找所述MAC地址與端口關系表是否存在匹配所述目的MAC地址的端口;若存在,則判斷所述匹配所述目的MAC地址的端口與所述SDN交換機接收所述數(shù)據(jù)報文的端口是否存在于所述網(wǎng)絡域列表中的同一個所述網(wǎng)絡域內;若是,則依據(jù)所述匹配所述目的MAC地址的端口生成并下發(fā)轉發(fā)流表。
優(yōu)選地,若所述MAC地址與端口關系表不存在所述匹配所述目的MAC地址的端口,則依據(jù)所述接收所述數(shù)據(jù)報文的端口確定所述網(wǎng)絡域,進而針對確定的所述網(wǎng)絡域中除所述接收所述數(shù)據(jù)報文的端口之外的其他端口進行廣播。
優(yōu)選地,所述依據(jù)所述匹配所述目的MAC地址的端口生成并下發(fā)轉發(fā)流表的步驟還包括:判斷所述匹配所述目的MAC地址的端口與所述接收所述數(shù)據(jù)報文的端口是否位于同一SDN交換機;若是,則生成并下發(fā)所述轉發(fā)流表;若不是,則進一步判斷所述匹配所述目的MAC地址的端口與所述接收所述數(shù)據(jù)報文的端口之間是否具有可達路徑;若具有可達路徑,則依生成并下發(fā)所述轉發(fā)流表;若不具有可達路徑,則控制接收數(shù)據(jù)報文的SDN交換機丟棄該數(shù)據(jù)報文。
優(yōu)選地,所述網(wǎng)絡域列表中還可以包括關聯(lián)主機的MAC地址。
優(yōu)選地,所述網(wǎng)絡域列表還可以根據(jù)用戶需求進行查看、更新、刪除。
上述基于SDN的網(wǎng)絡域隔離方法,自由靈活的實現(xiàn)網(wǎng)絡的隔離,進而在不依賴傳統(tǒng)的VLAN和訪問控制的功能的情況下有效控制了網(wǎng)絡報文廣播的范圍,同時一定程度的提高了網(wǎng)絡的安全性。
以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
附圖說明
圖1為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10一實施方式的應用環(huán)境圖。
圖2為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10一實施方式的功能模塊圖。
圖3為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10又一實施方式的功能模塊圖。
圖4為本發(fā)明基于SDN的網(wǎng)絡域隔離方法一實施方式的流程圖。主要元件符號說明
基于SDN的網(wǎng)絡域隔離裝置 10
SDN控制器 1
SDN交換機 2
隔離域管理單元 100
報文接收單元 102
數(shù)據(jù)處理單元 104
存儲器 106
處理器 108
如下具體實施方式將結合上述附圖進一步說明本發(fā)明。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10一實施方式的應用環(huán)境圖。在圖1中,SDN控制器1連接若干SDN交換機2,SDN交換機2連接若干主機或者子網(wǎng)。在本實施方式中,若干主機或子網(wǎng)可以根據(jù)人為需要劃分為多個域,進而實現(xiàn)網(wǎng)絡域隔離并分別管理各個網(wǎng)絡域。
圖2為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10一實施方式的功能模塊圖。在圖2中,基于SDN的網(wǎng)絡域隔離裝置10應用于SDN控制器1,其中包括隔離域管理單元100、報文接收單元102、數(shù)據(jù)處理單元104。
隔離域管理單元100用于根據(jù)用戶需求建立網(wǎng)絡域列表。所謂網(wǎng)絡域指的是針對若干主機或子網(wǎng)進行人為劃分的區(qū)域,在本實施方式中,若干主機或者子網(wǎng)可以利用SDN交換機2上的端口進行表示,進而通過網(wǎng)絡中SDN交換機2上的端口進行人為的劃分為若干個網(wǎng)絡域,具體示例如下表-1:
表-1
其中將SDN交換機2(SW1、SW2、SW3)的端口g0/1,g0/2,g0/3劃分為域A,將SDN交換機2(SW1、SW2)的端口g0/4,g0/5,g0/6劃分為域B,將SDN交換機2(SW1)的端口g0/7,g0/8,g0/9劃分為域C。另外,在本實施方式中,SDN控制器1存儲有MAC地址與端口關系表(MAC-PORT表),該關系表存儲SDN控制器學習到的主機的MAC地址與其對應SDN交換機2的端口之間的對應關系,這個表格中的信息可以根據(jù)報文的接收進行更新,表格中的條目也可以根據(jù)用戶的設置周期進行老化,老化后的條目立即刪除。
當然,在其他實施方式中,對隔離域的描述不僅可以如上所述通過交換機端口描述,還可以在此基礎上,增加主機MAC的表征量。表-2為針對表1中域A增加主機MAC的表征量的實例,其中針對表-1中域B、域C增加主機MAC的說明也如同表-2中域A所示,在此便不再舉例說明。
表-2
在上述表-2的示例說明中,針對域A的表征不僅可以用表-1中的“交換機+端口”來表示,還可以通過“交換機+MAC”、“MAC”、“交換機+端口+MAC”的方式進行表示。如此,便可以在與傳統(tǒng)的隔離手段互不干擾的情況下實現(xiàn)隔離,也就是在本隔離方案中還可以配置VLAN和訪問控制等功能,同時也可以方法還可以實現(xiàn)更復雜的隔離場景需求,具體如下:1.實現(xiàn)更加細粒度的隔離——基于“交換機+端口+MAC”的隔離;2.在虛擬化的情況下實現(xiàn)特殊場景的隔離,即基于“MAC”的隔離就可以在虛擬機漂移到另外一個物理位置的時候自動的實現(xiàn)其隔離配置的跟隨。
另外,在其他實施方式中,上述隔離域管理單元100也可以作為一個獨立的模塊,使用在SDN控制器1之上的應用層面,只需要其滿足與基于SDN的網(wǎng)絡域隔離裝置10的其他功能模塊的信息溝通的功能和性能需求亦可達到上述實施方式中的技術效果。
報文接收單元102接收所述SDN交換機2轉發(fā)的數(shù)據(jù)報文,并記錄數(shù)據(jù)報文中的目的MAC地址以及所述SDN交換機2接收所述數(shù)據(jù)報文的端口(下文稱之為輸入端口)。在本實施方式中,當某一SDN交換機2接收到某一主機發(fā)送的數(shù)據(jù)報文且該SDN交換機2上無相應的轉發(fā)流表時,將其轉發(fā)至SDN控制器1由報文接收單元102進行接收,并記錄數(shù)據(jù)報文中的目的MAC地址以及SDN交換機2的輸入端口。
數(shù)據(jù)處理單元104查找MAC地址與端口關系表是否存在匹配目的MAC地址的端口(下文稱之為輸出端口);若存在,則判斷輸出端口與輸入端口是否存在于網(wǎng)絡域列表中的同一個網(wǎng)絡域內;若是,則判斷輸出端口與輸入端口是否位于同一SDN交換機;若是,則依據(jù)輸出端口生成并下發(fā)轉發(fā)流表。
在本實施方式中,若在MAC地址與端口關系表中存在匹配目的MAC地址的端口,且根據(jù)網(wǎng)絡域列表判斷出該輸出端口與接收數(shù)據(jù)報文的輸入端口位于同一個網(wǎng)絡域,但該輸出端口與輸出端口并不位于同一交換機的情況時,數(shù)據(jù)處理單元104需要判斷輸入端口與輸出端口的路徑是否可達,若可達,則依據(jù)確定的輸出端口生成并下發(fā)轉發(fā)流表給相關的SDN交換機2;若不可達,則控制接收數(shù)據(jù)報文的SDN交換機2丟棄該數(shù)據(jù)報文。
在本實施方式中,若在MAC地址與端口關系表中存在匹配目的MAC地址的端口,且根據(jù)網(wǎng)絡域列表判斷出該輸出端口與接收數(shù)據(jù)報文的輸入端口并不位于同一個網(wǎng)絡域,數(shù)據(jù)處理單元104則控制接收數(shù)據(jù)報文的SDN交換機2丟棄該數(shù)據(jù)報文。
在其他實施方式中,若在MAC地址與端口關系表中不存在匹配目的MAC地址的端口,數(shù)據(jù)處理模塊104則依據(jù)記錄的輸入端口查詢網(wǎng)絡域列表,判斷該輸入端口處于哪個網(wǎng)絡域,若確定網(wǎng)絡域后,數(shù)據(jù)處理單元104控制數(shù)據(jù)報文在確定的網(wǎng)絡域中除輸入端口之外的端口進行廣播,實現(xiàn)數(shù)據(jù)報文的轉發(fā);若無法判斷輸入端口處于哪個網(wǎng)絡域,則控制接收數(shù)據(jù)報文的SDN交換機2丟棄該數(shù)據(jù)報文。在該實施方式中,若進行廣播后收到了目標主機的響應報文時,此時數(shù)據(jù)處理模塊104還可以根據(jù)接收的響應報文自動更新上述MAC地址與端口關系表(MAC-PORT表)。
在上述實施方式中,數(shù)據(jù)處理單元104還控制接收轉發(fā)流表的SDN交換機2存儲和更新所接收的轉發(fā)流表,進而再次收到數(shù)據(jù)報文的時候,判斷是否存在匹配接收的數(shù)據(jù)報文的轉發(fā)流表,若存在,則直接進行數(shù)據(jù)報文的轉發(fā),進而提高數(shù)據(jù)報文的轉發(fā)效率。
在上述實施方式中,隔離域管理單元100還可以根據(jù)用戶需求對隔離域進行查看、更新、刪除,進而實現(xiàn)隔離域的靈活管理。
圖3為本發(fā)明基于SDN的網(wǎng)絡域隔離裝置10又一實施方式的功能模塊圖。在圖3中,基于SDN的網(wǎng)絡域隔離裝置10包括隔離域管理單元100、報文接收單元102、數(shù)據(jù)處理單元104、存儲器106和處理器108,其中隔離域管理單元100、報文接收單元102、數(shù)據(jù)處理單元104以功能模塊的形式存儲于存儲器106中,進而由處理器108執(zhí)行以實現(xiàn)上述功能模塊的功能。
圖4為本發(fā)明基于SDN的網(wǎng)絡域隔離方法一實施方式的流程圖,該方法應用于圖2或圖3中的基于SDN的網(wǎng)絡域隔離裝置10?;赟DN的網(wǎng)路域隔離裝置10可存在于SDN控制器1中。
在步驟S400,隔離域管理單元100用于根據(jù)用戶需求建立網(wǎng)絡域列表。所謂網(wǎng)絡域指的是針對若干主機或子網(wǎng)進行人為劃分的區(qū)域,在本實施方式中,若干主機或者子網(wǎng)可以利用SDN交換機2上的端口進行表征,進而通過網(wǎng)絡中SDN交換機2上的端口進行人為的劃分,而網(wǎng)絡域列表的具體劃分如上表-1所述。另外,在本實施方式中,SDN控制器1存儲有MAC地址與端口關系表(MAC-PORT表),該關系表存儲有SDN控制器學習到的MAC地址與其對應SDN交換機2的端口之間的對應關系,這個表格中的信息可以根據(jù)報文的接收進行更新,表格中的條目也可以根據(jù)可設置周期進行老化,老化后的條目立即刪除。
當然,在其他實施方式中,對隔離域的描述不僅可以如上所述通過SDN交換機2的端口表征,還可以在此基礎上,增加主機MAC地址的表征量,具體參見上文針對表-2的敘述。
另外,在其他實施方式中,上述隔離域管理單元100也作為一個獨立的模塊,集成在SDN控制器1之上的應用層面,只需要其滿足與基于SDN的網(wǎng)絡域隔離裝置10的其他功能模塊的信息溝通的功能和性能需求亦可達到上述實施方式中的技術效果。
在步驟S402,報文接收單元102接收所述SDN交換機2轉發(fā)的數(shù)據(jù)報文,并記錄數(shù)據(jù)報文中的目的MAC地址以及SDN交換機2接收數(shù)據(jù)報文的端口(下文稱之為輸入端口)。在本實施方式中,當某一SDN交換機2接收到某一主機發(fā)送的數(shù)據(jù)報文,將其轉發(fā)至SDN控制器1由報文接收單元102進行接收,并記錄數(shù)據(jù)報文中的目的MAC地址以及接收該數(shù)據(jù)報文的SDN交換機2的輸入端口。
在步驟S404,數(shù)據(jù)處理單元104查找MAC地址與端口關系表是否存在匹配目的MAC地址的端口(下文稱之為輸出端口)。
在步驟S406,數(shù)據(jù)處理單元104在MAC地址與端口關系表存在匹配目的MAC地址的端口時,判斷輸出端口與SDN交換機2接收數(shù)據(jù)報文的輸入端口是否位于網(wǎng)絡域列表中的同一個網(wǎng)絡域中。
在步驟S408,數(shù)據(jù)處理單元104在輸出端口與SDN交換機2接收數(shù)據(jù)報文的輸入端口位于網(wǎng)絡域列表中的同一個網(wǎng)絡域時,判斷輸出端口與交換機接收數(shù)據(jù)報文的輸入端口是否位于同一SDN交換機。
在步驟S410,數(shù)據(jù)處理單元104在輸出端口與交換機接收數(shù)據(jù)報文的輸入端口位于同一SDN交換機時,依據(jù)輸出端口生成并下發(fā)轉發(fā)流表。
在步驟S412,數(shù)據(jù)處理單元104在輸出端口與交換機接收數(shù)據(jù)報文的輸入端口不是位于同一SDN交換機,進一步判斷接收數(shù)據(jù)報文的輸入端口與確定的輸出端口之間是否有可達路徑。
在步驟S414,數(shù)據(jù)處理單元104在判斷接收數(shù)據(jù)報文的輸入端口與確定的輸出端口之間沒有路徑可達時,則控制SDN交換機2丟棄上述數(shù)據(jù)報文。若數(shù)據(jù)處理單元104判斷接收數(shù)據(jù)報文的輸入端口與確定的輸出端口之間有路徑可達,則回到步驟S410,依據(jù)輸出端口生成并下發(fā)轉發(fā)流表。
另外,在S406中數(shù)據(jù)處理單元104判斷出輸出端口與SDN交換機2接收數(shù)據(jù)報文的輸入端口不位于網(wǎng)絡域列表中的同一個網(wǎng)絡域中,也按照步驟S414,控制接收數(shù)據(jù)報文的SDN交換機2丟棄該數(shù)據(jù)報文。
在步驟S416,若數(shù)據(jù)處理單元104查找MAC地址與端口關系表不存在匹配目的MAC地址的端口,數(shù)據(jù)處理模塊104則依據(jù)記錄的輸入端口查詢網(wǎng)絡域列表,判斷該輸入端口處于哪個網(wǎng)絡域,確定網(wǎng)絡域后,數(shù)據(jù)處理單元104控制數(shù)據(jù)報文在確定的網(wǎng)絡域中除輸入端口之外的端口中進行廣播,實現(xiàn)數(shù)據(jù)報文的轉發(fā)。
當然,在本實施方式中,數(shù)據(jù)處理模塊104若無法依據(jù)網(wǎng)絡域列表判斷輸入端口處于哪個網(wǎng)絡域,則會根據(jù)設置控制接收數(shù)據(jù)報文的SDN交換機2丟棄該數(shù)據(jù)報文或在公共的網(wǎng)絡域內進行廣播。
在上述實施方式的所述方法中,數(shù)據(jù)處理單元104還控制接收轉發(fā)流表的SDN交換機2存儲和更新所接收的轉發(fā)流表,進而再次收到數(shù)據(jù)報文的時候,判斷是否存在匹配接收的數(shù)據(jù)報文的轉發(fā)流表,進而提高數(shù)據(jù)報文的轉發(fā)效率。
在上述實施方式的所述方法中,隔離域管理單元100還可以根據(jù)用戶需求對隔離域進行查看、更新、刪除,進而實現(xiàn)隔離域的靈活管理。
在上述事實方式的所述方法中,隔離與管理單端100還可以根據(jù)用戶的需求規(guī)定MAC地址的合法性和端口歸屬,依據(jù)此合法性規(guī)則,確定MAC-PORT表以及網(wǎng)絡域列表如表-1、表-2中對應關系的合法性,以使得自學習功能和用戶輸入的對應關系具有一定的安全的保障。
通過執(zhí)行上述基于SDN的網(wǎng)絡域隔離方法,自由靈活的實現(xiàn)網(wǎng)絡的隔離,進而在不依賴傳統(tǒng)的VLAN和訪問控制的功能的情況下有效控制了網(wǎng)絡報文廣播的范圍,一定程度的提高了網(wǎng)絡的安全性。同時,本方法可以實現(xiàn)更復雜的隔離場景需求,例如實現(xiàn)更加細粒度的隔離——基于某個端口+MAC的隔離;再例如需要虛擬化的情況下實現(xiàn)特殊場景的隔離,即基于主機MAC的隔離就可以在虛擬機遷移到另外一個物理位置的時候自動的實現(xiàn)其隔離配置的跟隨。
需要說明的是,上文所述實施方式,并不構成對發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則內所作的修改,等同替換和改進等,均應包含在本發(fā)明的保護范圍內。