基于OpenFlow協(xié)議的端口控制方法及裝置制造方法
【專利摘要】本申請(qǐng)公開基于OpenFlow協(xié)議的端口控制方法,包括:在虛擬機(jī)中央管理平臺(tái)上創(chuàng)建至少一個(gè)interface視圖,發(fā)送interface視圖信息至控制模塊;當(dāng)需要對(duì)任一已加入PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),在虛擬機(jī)中央管理平臺(tái)上將該端口與一interface視圖綁定,發(fā)送綁定信息給控制模塊;在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊,以使控制模塊接收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。本申請(qǐng)還公開基于OpenFlow協(xié)議的端口控制裝置。本申請(qǐng)可實(shí)現(xiàn)對(duì)單一端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量vDS端口。
【專利說明】基于OpenF1w協(xié)議的端口控制方法及裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及端口控制【技術(shù)領(lǐng)域】,尤其涉及基于OpenFlow協(xié)議的端口控制方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]OpenFlow是斯坦福大學(xué)發(fā)起的一種網(wǎng)絡(luò)技術(shù),它使傳統(tǒng)的二層和三層交換機(jī)具備了細(xì)粒度流轉(zhuǎn)發(fā)能力,即傳統(tǒng)的基于MAC的網(wǎng)包轉(zhuǎn)發(fā)和基于IP的路由轉(zhuǎn)發(fā),被拓展到了基于多域網(wǎng)包包頭描述的流轉(zhuǎn)發(fā)。同時(shí),傳統(tǒng)的控制層面從轉(zhuǎn)發(fā)設(shè)備中剝離出來,如圖1所示,所有轉(zhuǎn)發(fā)行為的決策從交換機(jī)自身“遷移”到了某個(gè)集中控制器上,每個(gè)OpenFlow交換機(jī)(Switch)都有一張流表,進(jìn)行包查找和轉(zhuǎn)發(fā)。交換機(jī)可以通過OpenFlow協(xié)議經(jīng)一個(gè)安全通道連接到外部控制器(Controller),對(duì)流表進(jìn)行查詢和管理。OpenFlow協(xié)議的誕生,給軟件定義網(wǎng)絡(luò)(SDN)帶來了新的技術(shù)支持,OpenFlow協(xié)議將控制平臺(tái)與轉(zhuǎn)發(fā)平臺(tái)進(jìn)行隔離部署的思想為SDN提供了一個(gè)很有前景的云計(jì)算網(wǎng)絡(luò)的實(shí)現(xiàn)方案,即基于OpenFlow協(xié)議的分布式虛擬交換機(jī)(vDS )。
[0003]如圖2所示,vDS包括虛擬機(jī)中央管理平臺(tái)VMware vCenter Server、控制模塊Control Plane和數(shù)據(jù)轉(zhuǎn)發(fā)模塊Data Plane三個(gè)模塊。圖中的箭頭表示寄宿關(guān)系,VMwareESXi是安裝于服務(wù)器主機(jī)上管理虛擬機(jī)和虛擬交換機(jī)的操作系統(tǒng),Data Plane是位于VMware ESXi之上的一個(gè)軟件功能,虛擬機(jī)寄宿在VMware ESXi之上,VMware vCenterServer位于一臺(tái)特殊的虛擬機(jī)上,有著很強(qiáng)大的云計(jì)算網(wǎng)絡(luò)管理的功能。由于VMware的虛擬化技術(shù),虛擬機(jī)可以通過VMware vCenter Server來進(jìn)行統(tǒng)一管理。虛擬機(jī)之間、以及虛擬機(jī)與VMware ESXi之間通過服務(wù)器內(nèi)部的虛擬網(wǎng)絡(luò)連接。
[0004]如圖2所不,vSwitch Plugin(即 Control Plane在 vCenter Server 中注冊的插件)模塊是寄宿在 VMware vCenter Server 之上的。通過 Control Plane 與 vCenter Server 之間的交互以實(shí)現(xiàn)對(duì)vSwitch Plugin進(jìn)行控制,為客戶提供分布式虛擬交換機(jī)的操作界面。服務(wù)器主機(jī)可以通過其物理網(wǎng)卡連接到網(wǎng)絡(luò)中,在網(wǎng)絡(luò)中可以連接其它的服務(wù)器主機(jī),所述其它的服務(wù)器主機(jī)也可以擁有它們各自的虛擬機(jī),而這些虛擬機(jī)之上也可以裝載VMwarevCenter Server 和 Control Plane 模塊。
[0005]也就是說,OpenFlow分布式虛擬交換機(jī)不需要VMware vCenter Server、ControlPlane和Data Plane這三個(gè)模塊位于同一臺(tái)服務(wù)器主機(jī)之上,只需要服務(wù)器通過物理網(wǎng)絡(luò)連通,虛擬網(wǎng)絡(luò)也連通,這樣就產(chǎn)生一臺(tái)分布式虛擬交換機(jī)的完整功能,如圖3所示,vCenter Server和Control Plane在兩臺(tái)不同虛擬機(jī)上,Data Plane在服務(wù)器主機(jī)的ESXi操作系統(tǒng)上。用戶在vCenter Server上部署相關(guān)端口的特性,同時(shí)控制端口的上、下線事件,來完成Control Plane對(duì)Data Plane的控制,從而可實(shí)現(xiàn)基于OpenFlow協(xié)議的分布式虛擬交換機(jī)。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本申請(qǐng)?zhí)岢鲆环N基于OpenFlow協(xié)議的端口控制方法,可以實(shí)現(xiàn)對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量的vDS端口。
[0007]本申請(qǐng)還提出一種基于OpenFlow協(xié)議的端口控制裝置,可以實(shí)現(xiàn)對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量的vDS端口。
[0008]為達(dá)到上述目的,本申請(qǐng)實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0009]一種基于OpenFlow協(xié)議的端口控制方法,包括以下步驟:
[0010]在虛擬機(jī)中央管理平臺(tái)VMware vCenter Server上創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊,以使控制模塊根據(jù)接收到的interface視圖的信息創(chuàng)建interface視圖;
[0011]當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),在虛擬機(jī)中央管理平臺(tái)上將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊,以使控制模塊在接收到所述綁定信息后,將該端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖;
[0012]在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊,以使控制模塊接在收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
[0013]一種基于OpenFlow協(xié)議的端口控制裝置,包括:虛擬機(jī)中央管理模塊VMwarevCenter Server 和控制模塊 Control Plane,其中:
[0014]虛擬機(jī)中央管理模塊,用于創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊;當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊;修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊;
[0015]控制模塊,用于根據(jù)接收到的interface視圖信息創(chuàng)建interface視圖;接收到所述綁定信息后,將所述端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖;接收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
[0016]本申請(qǐng)的有益效果為,預(yù)先創(chuàng)建interface視圖,當(dāng)需要對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置時(shí),將所述端口與一預(yù)先創(chuàng)建的interface視圖進(jìn)行綁定,此時(shí),所述interface視圖直接繼承了所述端口所在PortGroup視圖中基于該端口的數(shù)據(jù)鏈路層特性,為了便于個(gè)性化設(shè)置,將所述interface視圖與所述PortGroup視圖去綁定,從而可以按照實(shí)際需要對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。此時(shí),該端口將會(huì)按照所述interface視圖中已進(jìn)行個(gè)性化配置的數(shù)據(jù)鏈路層特性來生成和下發(fā)流表。如此,便可以實(shí)現(xiàn)對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量的分布式虛擬交換機(jī)vDS端口。
【專利附圖】
【附圖說明】
[0017]圖1為現(xiàn)有技術(shù)的OpenFlow協(xié)議原理示意圖;
[0018]圖2為現(xiàn)有技術(shù)的基于OpenFlow協(xié)議實(shí)現(xiàn)的分布式虛擬交換機(jī)模型示意圖;
[0019]圖3為現(xiàn)有技術(shù)的基于OpenFlow協(xié)議的分布式虛擬交換機(jī)組成模塊示意圖;
[0020]圖4為本申請(qǐng)實(shí)施例的方法流程圖;
[0021]圖5為本申請(qǐng)實(shí)施例的創(chuàng)建interface視圖的流程示意圖;
[0022]圖6為本申請(qǐng)實(shí)施例的裝置功能模塊結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]基于OpenFlow協(xié)議的分布式虛擬交換機(jī),可以通過OpenFlow協(xié)議來控制上線的端口,主要使用PortGroup視圖中對(duì)二層特性的配置來生成相應(yīng)的流表,以及按照PortGroup視圖下發(fā)流表,具體如下(參照?qǐng)D2),這里,二層特性是指基于端口的數(shù)據(jù)鏈路層特性,包括:端口的VLAN ID、VLAN類型、端口鏡像、訪問控制列表ACL和服務(wù)質(zhì)量QoS:
[0024]S1、用戶在 vCenter Server 上通過 vSwitch Plugin 插件創(chuàng)建 PortGroup 視圖,vCenter Server通過網(wǎng)絡(luò)向Control Plane傳遞PortGroup視圖的信息(包括端口的VLANID、VLAN類型、端口鏡像、ACL和QoS);然后,PortGroup視圖監(jiān)聽用戶的操作。
[0025]S2、Control Plane 保存 vCenter Server 傳遞的 PortGroup 視圖信息,通過OpenFlow協(xié)議與Data Plane交互,監(jiān)聽Data Plane上端口的行為。
[0026]S3、如果vCenter Server監(jiān)聽到用戶綁定虛擬網(wǎng)卡vNic或?qū)?yīng)服務(wù)器物理網(wǎng)卡vmnic 到 PortGroup 上,則通知 Data Plane 有端口上線,Control Plane 通過 Data Plane發(fā)送的OpenFlow端口上線報(bào)文來獲得端口上線信息,根據(jù)之前已保存的PortGroup視圖信息生成相應(yīng)的流表。
[0027]S4、當(dāng)來自網(wǎng)卡的數(shù)據(jù)報(bào)文進(jìn)入Data Plane,且被上送到Control Plane時(shí),如果該報(bào)文匹配了 Control Plane中已經(jīng)生成的流表,則Control Plane下發(fā)所述流表到DataPlane 上。
[0028]上述步驟中,Control Plane只能按照統(tǒng)一的PortGroup視圖下發(fā)流表,所有vNic或vmnic的網(wǎng)卡都要按照同一標(biāo)準(zhǔn)(即PortGroup視圖中對(duì)二層特性的配置信息)配置,這種情況下,如果用戶在vCenter Server中選擇了一個(gè)vNic,這個(gè)vNic對(duì)應(yīng)的虛擬機(jī)比較特殊,需要進(jìn)行特殊的控制,目前可以通過配置一個(gè)PortGroup視圖(擁有128個(gè)端口 )來滿足這一需求,這128個(gè)端口都將按照特殊需求進(jìn)行相同的配置,而實(shí)際只會(huì)用到一個(gè)端口,這樣將耗費(fèi)大量的vDS端口資源。
[0029]因此,目前在基于OpenFlow協(xié)議的分布式虛擬交換機(jī)應(yīng)用中,如何對(duì)基于OpenFlw協(xié)議的端口進(jìn)行控制,以實(shí)現(xiàn)可以對(duì)單一的端口進(jìn)行二層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量的vDS端口,成為當(dāng)前實(shí)際應(yīng)用中需要解決的問題。
[0030]為了使本申請(qǐng)的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下通過具體實(shí)施例并參見附圖,對(duì)本申請(qǐng)進(jìn)行詳細(xì)說明。
[0031]本申請(qǐng)?zhí)岢鲆环N基于OpenFlow協(xié)議的端口控制方法,在虛擬機(jī)中央管理平臺(tái)VMware vCenter Server上創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊,以使控制模塊根據(jù)接收到的interface視圖的信息創(chuàng)建interface視圖;
[0032]當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),在虛擬機(jī)中央管理平臺(tái)上將該端口與一 interface視圖綁定,發(fā)送所述綁定信息給控制模塊,以使控制模塊在接收到所述綁定信息后,將該端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖;
[0033]在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送所述修改信息給控制模塊,以使控制模塊接在收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置
[0034]本申請(qǐng)中,預(yù)先創(chuàng)建針對(duì)單一端口的interface視圖,即一個(gè)interface視圖只能對(duì)應(yīng)一個(gè)虛擬網(wǎng)卡vNic或?qū)?yīng)服務(wù)器物理網(wǎng)卡vmnic,當(dāng)需要對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置時(shí),首先,將所述端口與一 interface視圖進(jìn)行綁定,此時(shí),所述interface視圖會(huì)繼承該端口所在PortGroup視圖中該端口的數(shù)據(jù)鏈路層特性,然后,將該端口對(duì)應(yīng)的interface視圖與PortGroup視圖去關(guān)聯(lián),從而可以按照個(gè)性化配置需要對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。此時(shí),流表的設(shè)置將直接根據(jù)interface視圖下的配置產(chǎn)生。如此,便可以實(shí)現(xiàn)對(duì)單一的端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置而又不耗費(fèi)大量的分布式虛擬交換機(jī)vDS端口。
[0035]本申請(qǐng)實(shí)施例的方法流程如圖4所示,一種基于OpenFlow協(xié)議的端口控制方法,包括以下步驟:
[0036]步驟401:在虛擬機(jī)中央管理平臺(tái)VMware vCenter Server上創(chuàng)建至少一個(gè)接口interface視圖,發(fā)送所述interface視圖的信息至控制模塊,以使控制模塊根據(jù)接收到的interface視圖的信息創(chuàng)建interface視圖。
[0037]如圖5所示,用戶可隨時(shí)創(chuàng)建interface視圖,用戶在虛擬機(jī)中央管理平臺(tái)vCenter Server上創(chuàng)建interface視圖時(shí),可以根據(jù)實(shí)際需要,創(chuàng)建一個(gè)或一個(gè)以上interface視圖,對(duì)每個(gè)interface視圖進(jìn)行唯一的命名,通過命名可以區(qū)分不同的interface視圖。之所以使用interface視圖,是因?yàn)閕nterface視圖適用于單一端口,可以實(shí)現(xiàn)對(duì)單一端口的數(shù)據(jù)鏈路層特性的個(gè)性化配置,而PortGroup視圖適用于多個(gè)端口,不能實(shí)現(xiàn)對(duì)單一端口數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置。
[0038]創(chuàng)建interface視圖時(shí),interface視圖會(huì)在虛擬機(jī)中央管理平臺(tái)的Plugin中注冊,為用戶提供可視的操作界面。
[0039]創(chuàng)建interface視圖的方法屬于現(xiàn)有編程技術(shù),在此不再贅述。
[0040]如圖5所示,控制模塊Control Plane獲取到interface視圖的創(chuàng)建信息,倉ij建相應(yīng)的interface視圖,即在虛擬機(jī)中央管理平臺(tái)和控制模塊中保存interface視圖的信息,一般可知,在虛擬機(jī)中央管理平臺(tái)上創(chuàng)建的interface視圖為interface視圖的表象,而控制模塊中創(chuàng)建的interface視圖則為interface視圖的后臺(tái)。而且,當(dāng)用戶在虛擬機(jī)中央管理平臺(tái)上創(chuàng)建interface視圖后,所述interface視圖自然會(huì)監(jiān)聽用戶操作,包括用戶進(jìn)行端口綁定以及去綁定操作、修改端口的數(shù)據(jù)鏈路層特性的操作、刪除interface視圖的操作等。當(dāng)控制模塊創(chuàng)建interface視圖后,所述interface視圖也自然會(huì)監(jiān)聽端口狀態(tài)與屬性。
[0041]此時(shí)控制模塊中的interface視圖沒有與端口綁定,所以不會(huì)生成相關(guān)的流表。
[0042]步驟402:當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),在虛擬機(jī)中央管理平臺(tái)上將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊,以使控制模塊在接收到所述綁定信息后,將該端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖。
[0043]當(dāng)任一端口已加入端口組PortGroup視圖且該端口正被占用時(shí),對(duì)該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。所述端口正被占用,表示所述端口已綁定一個(gè)虛擬機(jī)網(wǎng)卡vNic或一個(gè)服務(wù)器物理網(wǎng)卡vmnic, interface視圖能夠?qū)σ呀?jīng)上線的vNic或vmnic進(jìn)行匹配。
[0044]步驟401中創(chuàng)建的interface視圖可能有多個(gè),可以與多個(gè)需要個(gè)性化配置的端口進(jìn)行綁定,其中一個(gè)interface視圖只能對(duì)應(yīng)一個(gè)端口,即一個(gè)interface只能對(duì)應(yīng)一個(gè)vNic或者一個(gè)vmnic。通過匹配vNic的端口號(hào)、MAC地址、所屬PortGroup視圖、所屬虛擬機(jī)名稱與通用唯一識(shí)別碼UUID來確定一個(gè)唯一對(duì)應(yīng)的vNic。vmnic直接對(duì)應(yīng)服務(wù)器的物理網(wǎng)卡。
[0045]用戶在虛擬機(jī)中央管理平臺(tái)上將所述端口與一個(gè)interface視圖綁定,虛擬機(jī)中央管理平臺(tái)接收到綁定vNic或vmnic與interface視圖的事件,此時(shí)原本屬于PortGroup視圖下的某一個(gè)vNic或vmnic與interface視圖關(guān)聯(lián)。然后,發(fā)送綁定信息給控制模塊。
[0046]控制模塊獲取到所述綁定信息后,將該端口對(duì)應(yīng)的PortGroup視圖信息,即該端口的數(shù)據(jù)鏈路層特性信息,加入到所述interface視圖。因?yàn)樽畛鮿?chuàng)建的interface視圖中是不包含數(shù)據(jù)鏈路層特性信息的。
[0047]本步驟實(shí)際說明了,當(dāng)需要對(duì)任一端口進(jìn)行數(shù)據(jù)鏈路層特性的個(gè)性化配置時(shí),就需要綁定該端口與interface視圖,而當(dāng)綁定任一端口與一 interface視圖時(shí),所述interface視圖就直接繼承了該端口的PortGroup視圖中基于端口的數(shù)據(jù)鏈路層特性。即所述interface視圖能夠直接繼承該端口對(duì)應(yīng)vNic或vmnic所在的PortGroup視圖中的數(shù)據(jù)鏈路層特性,
[0048]此時(shí),不需要修改流表和Data Plane中的端口信息,因?yàn)槎丝诘臄?shù)據(jù)鏈路層特性沒發(fā)生變化。而且,如果對(duì)PortGroup視圖進(jìn)行端口數(shù)據(jù)鏈路層特性的修改,關(guān)聯(lián)的interface視圖也同樣繼承了這種修改。
[0049]此時(shí),如果去綁定vNic或vmnic與interface視圖,僅僅需要控制模塊在接收到虛擬機(jī)中央管理平臺(tái)的去綁定事件信息后,修改控制模塊中的信息,即刪除interface視圖中已繼承的端口數(shù)據(jù)鏈路層特性。
[0050]步驟403:在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊,以使控制模塊接在收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
[0051]步驟402中提到,與所述端口綁定的interface視圖直接繼承了所述端口所在的PortGroup視圖中基于端口的數(shù)據(jù)鏈路層特性,相當(dāng)于interface視圖與PortGroup視圖是關(guān)聯(lián)的,所述端口默認(rèn)仍然是受控于PortGroup視圖的。因此,當(dāng)需要對(duì)該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之前,首先需要將interface視圖與PortGroup視圖去關(guān)聯(lián),以便于在interface視圖中對(duì)該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
[0052]因此,用戶在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,并通知控制模塊,控制模塊對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置,將所述interface視圖激活了。interface視圖對(duì)數(shù)據(jù)鏈路層特性的修改不會(huì)與PortGroup視圖中的配置沖突。
[0053]在進(jìn)行上述個(gè)性化配置后,如果所述端口對(duì)應(yīng)的vNic或者vmnic加入到所述interface視圖下,那么流表的設(shè)置將直接根據(jù)所述interface視圖下的配置產(chǎn)生。即與所述端口對(duì)應(yīng)的流表的生成及下發(fā),將完全按照已進(jìn)行個(gè)性化配置的interface視圖的規(guī)則進(jìn)行,不再受PortGroup視圖的控制。
[0054]同時(shí),已進(jìn)行個(gè)性化配置的interface視圖將不再繼承PortGroup視圖中所做的任何修改,以保證所述個(gè)性化配置的正常使用。
[0055]即當(dāng)需要修改所述PortGroup視圖中端口的數(shù)據(jù)鏈路層特性時(shí),控制模塊在PortGroup視圖中對(duì)與interface視圖綁定且數(shù)據(jù)鏈路層特性已進(jìn)行個(gè)性化配置的端口給出標(biāo)記,說明這個(gè)端口與相應(yīng)的interface視圖匹配,所述標(biāo)記可通過設(shè)置變量實(shí)現(xiàn);然后,僅修改所述PortGroup視圖中不帶上述標(biāo)記的端口的數(shù)據(jù)鏈路層特性,即可實(shí)現(xiàn)對(duì)所述PortGroup視圖中端口的數(shù)據(jù)鏈路層特性的修改。
[0056]所述端口之前受控于PortGroup視圖,因此,所述端口對(duì)應(yīng)的流表也是基于PortGroup視圖生成,進(jìn)行上述個(gè)性化配置后,需要根據(jù)所述個(gè)性化配置后的該端口數(shù)據(jù)鏈路層特性修改該端口對(duì)應(yīng)的流表。
[0057]然后,需要?jiǎng)h除數(shù)據(jù)轉(zhuǎn)發(fā)模塊上之前由PortGroup視圖生成的流表,即控制模塊向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文,數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收到所述OpenFlow協(xié)議報(bào)文后,刪除所述端口對(duì)應(yīng)的之前由PortGroup視圖生成的流表。
[0058]當(dāng)來自網(wǎng)卡的數(shù)據(jù)報(bào)文進(jìn)入數(shù)據(jù)轉(zhuǎn)發(fā)模塊,且被上送到控制模塊時(shí),控制模塊接收到數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送的報(bào)文,如果所述報(bào)文可以匹配所述修改后的流表,則下發(fā)該流表到數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0059]進(jìn)行上述個(gè)性化配置后,所述端口受控于interface視圖,但仍然與PortGroup視圖關(guān)聯(lián),因此,當(dāng)需要?jiǎng)h除PortGroup視圖時(shí),首先確認(rèn)沒有interface視圖與其中的端口綁定,然后再刪除。如果存在與PortGroup視圖中的端口綁定的interface視圖,則提示先刪除所述interface與所述端口的綁定關(guān)系。
[0060]當(dāng)需要去綁定所述端口與interface視圖時(shí),用戶在虛擬機(jī)中央管理平臺(tái)上將所述端口與interface去綁定,發(fā)送去綁定信息給控制模塊,控制模塊接收到所述去綁定信息后,刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性,恢復(fù)PortGroup視圖與所述端口的綁定,所述端口重新受控于PortGroup視圖,需要恢復(fù)原先PortGroup視圖的流表,即按照PortGroup視圖修改所述端口對(duì)應(yīng)的流表。此時(shí),所述端口再次按照原先PortGroup視圖中的規(guī)則來生成和下發(fā)流表。
[0061]此外,控制模塊也需要向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文,數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由interface視圖生成的流表。
[0062]當(dāng)需要?jiǎng)h除所述interface視圖時(shí),僅僅在閑置狀態(tài)才允許刪除視圖,閑置狀態(tài)指interface視圖沒有與任何vNic或vmnic完成綁定,處于空閑中。因此,在完成上述去綁定操作后,可以刪除所述interface視圖,即用戶在虛擬機(jī)中央管理平臺(tái)刪除所述interface,發(fā)送刪除信息給控制模塊,控制模塊接收到所述刪除信息后,刪除所述interface 視圖。
[0063]綜上可知,進(jìn)行所述個(gè)性化配置后,在控制模塊上,需要根據(jù)獲取的interface視圖變化的相關(guān)事件,對(duì)流表數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行相應(yīng)的處理,比如:添加、修改或者刪除。
[0064]目前,存在一套Port-Profile視圖和interface視圖的繼承控制機(jī)制,即對(duì)于每一個(gè)上線的vNic或者vmnic,都會(huì)自動(dòng)生成一個(gè)interface視圖。interface視圖下的數(shù)據(jù)鏈路層特性配置自動(dòng)繼承Port-profile中的配置,當(dāng)用戶在interface視圖下進(jìn)行配置時(shí),interface視圖下的數(shù)據(jù)鏈路層特性配置就會(huì)生效,這樣的實(shí)現(xiàn)方式顯得資源冗余。比如,用戶不需要進(jìn)行單一端口設(shè)置,僅僅需要進(jìn)行PortGroup視圖的配置,創(chuàng)建多余的interface視圖是對(duì)控制模塊資源的一種浪費(fèi)。
[0065]而本申請(qǐng)中,可以創(chuàng)建與需要對(duì)數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置的端口數(shù)量相同的interface視圖,來滿足對(duì)各個(gè)端口數(shù)據(jù)鏈路層特性的個(gè)性化設(shè)置。對(duì)于不需要對(duì)其數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化設(shè)置的端口,則不用創(chuàng)建對(duì)應(yīng)的interface視圖。這樣可以節(jié)省控制模塊的資源,極大程度地提高控制模塊對(duì)資源的利用效率,同時(shí)可以實(shí)現(xiàn)用戶對(duì)單一端口完成數(shù)據(jù)鏈路層特性的設(shè)置。
[0066]比如在虛擬機(jī)中央管理平臺(tái)中,用戶選擇了一個(gè)vNic加入到PortGroup視圖中。由于這個(gè)vNic對(duì)應(yīng)的虛擬機(jī)比較特殊,需要進(jìn)行特殊的控制。用戶可以單獨(dú)創(chuàng)建一個(gè)interface視圖來匹配這一個(gè)特定的vNic,這樣就能對(duì)這一單獨(dú)的vNic進(jìn)行數(shù)據(jù)鏈路層特性的控制,而對(duì)于那些不需要進(jìn)行單獨(dú)控制的vNic,就沒有必要?jiǎng)?chuàng)建interface視圖與之匹配。這樣,既能保證控制模塊的內(nèi)存資源能夠得到合理的運(yùn)用,又能滿足用戶對(duì)特殊虛擬機(jī)控制的需求。
[0067]本申請(qǐng)方案基于OpenFlow協(xié)議實(shí)現(xiàn),用于實(shí)現(xiàn)接口控制。通過使用interface視圖來滿足用戶對(duì)單一接口的控制,通過上述流程來確定interface與PortGroup視圖的關(guān)系,可實(shí)現(xiàn)讓OpenFlow交換機(jī)既能夠靈活地控制vNic的端口的數(shù)據(jù)鏈路層特性,同時(shí)又節(jié)省控制模塊中的內(nèi)存空間,提高控制模塊內(nèi)存資源的利用效率。
[0068]本申請(qǐng)實(shí)施例的裝置功能模塊結(jié)構(gòu)示意圖如圖6所示,一種基于OpenFlow協(xié)議的端口控制裝置,包括:虛擬機(jī)中央管理模塊VMware vCenter Server和控制模塊ControlPlane,其中:
[0069]虛擬機(jī)中央管理模塊,用于創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊;當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊;修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊;
[0070]控制模塊,用于根據(jù)接收到的interface視圖信息創(chuàng)建interface視圖;接收到所述綁定信息后,將所述端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖;接收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
[0071]較佳地,所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,根據(jù)所述個(gè)性化配置后的該端口數(shù)據(jù)鏈路層特性修改該端口對(duì)應(yīng)的流表;向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文;
[0072]所述裝置進(jìn)一步包括:
[0073]數(shù)據(jù)轉(zhuǎn)發(fā)模塊Data Plane,用于接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由PortGroup視圖生成的流表;
[0074]所述控制模塊還用于,接收到數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送的報(bào)文時(shí),如果所述報(bào)文可以匹配所述修改后的流表,則下發(fā)該流表到數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
[0075]較佳地,所述虛擬機(jī)中央管理模塊還用于,當(dāng)需要去綁定所述端口與interface視圖時(shí),將所述端口與interface去綁定,發(fā)送所述去綁定信息給控制模塊;
[0076]所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,如果接收到所述去綁定信息,則刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性,按照所述PortGroup視圖修改所述端口對(duì)應(yīng)的流表;向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文;
[0077]所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊還用于,接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由interface視圖生成的流表。
[0078]進(jìn)一步地,所述虛擬機(jī)中央管理模塊還用于,
[0079]當(dāng)需要?jiǎng)h除所述interface視圖時(shí),刪除所述interface,發(fā)送所述刪除信息給控制豐旲塊;
[0080]所述控制模塊還用于,在刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性之后,如果接收到所述刪除信息,則刪除所述interface視圖。
[0081]較佳地,所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,在PortGroup視圖中對(duì)與interface視圖綁定且數(shù)據(jù)鏈路層特性已進(jìn)行個(gè)性化配置的端口給出標(biāo)記;
[0082]當(dāng)需要修改所述PortGroup視圖中端口的數(shù)據(jù)鏈路層特性時(shí),僅修改所述PortGroup視圖中不帶上述標(biāo)記的端口的數(shù)據(jù)鏈路層特性。
[0083]本申請(qǐng)通過使用Interface視圖,能夠?yàn)橛脩籼峁╈`活的端口特性選擇,同時(shí)為后續(xù)特性的開發(fā)形成一個(gè)標(biāo)準(zhǔn)的模板。
[0084]以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種基于OpenFlow協(xié)議的端口控制方法,其特征在于,包括以下步驟: 在虛擬機(jī)中央管理平臺(tái)VMware vCenter Server上創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊,以使控制模塊根據(jù)接收到的interface視圖的信息創(chuàng)建interface視圖; 當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),在虛擬機(jī)中央管理平臺(tái)上將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊,以使控制模塊在接收到所述綁定信息后,將該端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖; 在虛擬機(jī)中央管理平臺(tái)上修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊,以使控制模塊接在收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制模塊對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,進(jìn)一步包括: 根據(jù)所述個(gè)性化配置后的該端口數(shù)據(jù)鏈路層特性修改該端口對(duì)應(yīng)的流表; 向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文,以使數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由PortGroup視圖生成的流表; 在所述控制模塊接收到數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送的報(bào)文時(shí),如果所述報(bào)文可以匹配所述修改后的流表,則通過所述控制模塊下發(fā)該流表到數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制模塊對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,進(jìn)一步包括: 當(dāng)需要去綁定所述端口與interface視圖時(shí),在虛擬機(jī)中央管理平臺(tái)上將所述端口與interface去綁定,發(fā)送所述去綁定信息給控制模塊,以使控制模塊接收到所述去綁定信息后,刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性,按照所述PortGroup視圖修改所述端口對(duì)應(yīng)的流表; 通過所述控制模塊向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文,以使數(shù)據(jù)轉(zhuǎn)發(fā)模塊接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由interface視圖生成的流表。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述控制模塊刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性之后,進(jìn)一步包括: 當(dāng)需要?jiǎng)h除所述interface視圖時(shí),在虛擬機(jī)中央管理平臺(tái)刪除所述interface視圖,發(fā)送所述刪除信息給控制模塊,以使控制模塊接收到所述刪除信息后,刪除所述interface視圖。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制模塊對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,進(jìn)一步包括: 控制模塊在PortGroup視圖中對(duì)與interface視圖綁定且數(shù)據(jù)鏈路層特性已進(jìn)行個(gè)性化配置的端口給出標(biāo)記; 當(dāng)需要修改所述PortGroup視圖中端口的數(shù)據(jù)鏈路層特性時(shí),僅修改所述PortGroup視圖中不帶上述標(biāo)記的端口的數(shù)據(jù)鏈路層特性。
6.一種基于OpenFlow協(xié)議的端口控制裝置,其特征在于,包括:虛擬機(jī)中央管理模塊VMware vCenter Server 和控制模塊 Control Plane,其中: 虛擬機(jī)中央管理模塊,用于創(chuàng)建至少一個(gè)接口 interface視圖,發(fā)送所述interface視圖的信息至控制模塊;當(dāng)需要對(duì)任一已加入端口組PortGroup視圖且被占用的端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置時(shí),將該端口與一 interface視圖綁定,發(fā)送綁定信息給控制模塊;修改所述interface視圖的關(guān)聯(lián)屬性為不關(guān)聯(lián)PortGroup視圖,發(fā)送修改信息給控制模塊; 控制模塊,用于根據(jù)接收到的interface視圖信息創(chuàng)建interface視圖;接收到所述綁定信息后,將所述端口對(duì)應(yīng)的PortGroup視圖信息加入到所述interface視圖;接收到所述修改信息后,對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,根據(jù)所述個(gè)性化配置后的該端口數(shù)據(jù)鏈路層特性修改該端口對(duì)應(yīng)的流表;向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文; 所述裝置進(jìn)一步包括: 數(shù)據(jù)轉(zhuǎn)發(fā)模塊Data Plane,用于接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由PortGroup視圖生成的流表; 所述控制模塊還用于,接收到數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送的報(bào)文時(shí),如果所述報(bào)文可以匹配所述修改后的流表,則下發(fā)該流表到數(shù)據(jù)轉(zhuǎn)發(fā)模塊。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述虛擬機(jī)中央管理模塊還用于,當(dāng)需要去綁定所述端口與interface視圖時(shí),將所述端口與interface去綁定,發(fā)送所述去綁定信息給控制1吳塊; 所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,如果接收到所述去綁定信息,則刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性,按照所述PortGroup視圖修改所述端口對(duì)應(yīng)的流表;向數(shù)據(jù)轉(zhuǎn)發(fā)模塊發(fā)送刪除流表的OpenFlow協(xié)議報(bào)文; 所述數(shù)據(jù)轉(zhuǎn)發(fā)模塊還用于,接收到所述OpenFlow協(xié)議報(bào)文后,刪除該端口對(duì)應(yīng)的之前由interface視圖生成的流表。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述虛擬機(jī)中央管理模塊還用于, 當(dāng)需要?jiǎng)h除所述interface視圖時(shí),刪除所述interface,發(fā)送所述刪除信息給控制模塊; 所述控制模塊還用于,在刪除所述interface視圖中所述端口的數(shù)據(jù)鏈路層特性之后,如果接收到所述刪除信息,則刪除所述interface視圖。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述控制模塊還用于,在對(duì)所述interface視圖中該端口的數(shù)據(jù)鏈路層特性進(jìn)行個(gè)性化配置之后,在PortGroup視圖中對(duì)與interface視圖綁定且數(shù)據(jù)鏈路層特性已進(jìn)行個(gè)性化配置的端口給出標(biāo)記; 當(dāng)需要修改所述PortGroup視圖中端口的數(shù)據(jù)鏈路層特性時(shí),僅修改所述PortGroup視圖中不帶上述標(biāo)記的端口的數(shù)據(jù)鏈路層特性。
【文檔編號(hào)】H04L12/24GK104135379SQ201310160691
【公開日】2014年11月5日 申請(qǐng)日期:2013年5月3日 優(yōu)先權(quán)日:2013年5月3日
【發(fā)明者】易仁杰 申請(qǐng)人:杭州華三通信技術(shù)有限公司