本發(fā)明涉及數(shù)據(jù)報(bào)文網(wǎng)絡(luò)功能實(shí)現(xiàn)技術(shù)領(lǐng)域,特別是涉及一種基于SDN的數(shù)據(jù)處理方法及裝置。
背景技術(shù):
傳統(tǒng)網(wǎng)絡(luò)環(huán)境中,交換機(jī)等網(wǎng)絡(luò)設(shè)備所能實(shí)現(xiàn)的功能由生產(chǎn)廠商在出廠前設(shè)置完成,用戶無法為這些網(wǎng)絡(luò)設(shè)備增加自定義的網(wǎng)絡(luò)功能,這導(dǎo)致特定的網(wǎng)絡(luò)設(shè)備只能實(shí)現(xiàn)特定的網(wǎng)絡(luò)功能。若要向該網(wǎng)絡(luò)設(shè)備添加新的網(wǎng)絡(luò)功能,必須由生產(chǎn)廠商生產(chǎn)新版硬件并安裝才能實(shí)現(xiàn)。
在基于Open vSwitch軟件(簡稱OvS軟件)的軟件自定義(Software Defined Network,SDN)網(wǎng)絡(luò)環(huán)境中,交換機(jī)等網(wǎng)絡(luò)設(shè)備所能實(shí)現(xiàn)的功能也由生產(chǎn)廠商在出廠前設(shè)置完成,如果想要添加新的網(wǎng)絡(luò)功能,除了設(shè)置新的網(wǎng)絡(luò)功能對應(yīng)的功能模塊外,還需要對OvS軟件進(jìn)行一些自定義設(shè)置,例如,添加新的接口,定義新參數(shù),引入新的調(diào)用過程等,以使OvS軟件能夠調(diào)用新增的網(wǎng)絡(luò)功能。
自定義設(shè)置OvS軟件雖然不需要更換硬件,但是這些自定義必須由生產(chǎn)廠商的專業(yè)人員進(jìn)行,不能由用戶自行完成,這不僅增加了添加網(wǎng)絡(luò)功能的成本,而且延長了添加網(wǎng)絡(luò)功能的時(shí)間。應(yīng)用這些網(wǎng)絡(luò)設(shè)備進(jìn)行數(shù)據(jù)報(bào)文處理時(shí),無法快速、便捷地調(diào)用相應(yīng)的網(wǎng)絡(luò)功能處理用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文,不能滿足用戶的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種基于SDN的數(shù)據(jù)處理方法及裝置,以實(shí)現(xiàn)不對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能。
為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種基于SDN的數(shù)據(jù)處理方法,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述方法包括:
接收第一數(shù)據(jù)報(bào)文;
根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的;
若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
可選地,在所述根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址的步驟前,所述方法還包括:
判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,獲得第一判斷結(jié)果;
若所述第一判斷結(jié)果為是,再執(zhí)行所述根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址的步驟;
若所述第一判斷結(jié)果為否,將所述第一數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,然后執(zhí)行所述根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址的步驟。
可選地,在所述根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址的步驟前,所述方法還包括:
判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,獲得第二判斷結(jié)果;
若所述第二判斷結(jié)果為是,再執(zhí)行所述根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址的步驟;
若所述第二判斷結(jié)果為否,將所述第二數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,然后執(zhí)行所述根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址的步驟。
可選地,所述所述根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā)的步驟包括:
根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址;
若所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二虛擬網(wǎng)卡的地址,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二虛擬網(wǎng)卡;
若所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二物理網(wǎng)卡的地址,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二物理網(wǎng)卡。
可選地,對設(shè)置在所述SDN網(wǎng)絡(luò)設(shè)備中的每一虛擬網(wǎng)卡與一種網(wǎng)絡(luò)功能進(jìn)行預(yù)先綁定的過程包括:
利用一種網(wǎng)絡(luò)功能對應(yīng)監(jiān)聽一個(gè)虛擬網(wǎng)卡;
或者,建立包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系的路由表或網(wǎng)絡(luò)驅(qū)動(dòng)。
可選地,所述第一網(wǎng)絡(luò)功能包括:網(wǎng)絡(luò)地址轉(zhuǎn)換、數(shù)據(jù)報(bào)文封裝、數(shù)據(jù)報(bào)文解封裝、數(shù)據(jù)報(bào)文加密、數(shù)據(jù)報(bào)文解密、數(shù)據(jù)報(bào)文壓縮、數(shù)據(jù)報(bào)文解壓縮、網(wǎng)絡(luò)層協(xié)議轉(zhuǎn)換、傳輸層端口轉(zhuǎn)換和應(yīng)用層協(xié)議修改。
可選地,所述SDN網(wǎng)絡(luò)設(shè)備為Open vSwitch軟件宿主機(jī)。
為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供了一種基于SDN的數(shù)據(jù)處理裝置,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述裝置包括:
數(shù)據(jù)報(bào)文接收模塊,用于接收第一數(shù)據(jù)報(bào)文;
第一地址修改模塊,用于根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的;
第一處理模塊,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
第二處理模塊,用于根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
第一轉(zhuǎn)發(fā)模塊,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址的情況下,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
可選地,所述裝置還包括:
第一判斷模塊,用于判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,獲得第一判斷結(jié)果;
第一觸發(fā)模塊,用于在所述第一判斷結(jié)果為是的情況下,觸發(fā)所述第一地址修改模塊;
第二觸發(fā)模塊,用于在所述第一判斷結(jié)果為否的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,然后觸發(fā)所述第一地址修改模塊。
可選地,所述裝置還包括:
第二判斷模塊,用于判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,獲得第二判斷結(jié)果;
第三觸發(fā)模塊,用于在所述第二判斷結(jié)果為是的情況下,觸發(fā)所述第二處理模塊;
第四觸發(fā)模塊,用于在所述第二判斷結(jié)果為否的情況下,將所述第二數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,然后觸發(fā)所述第二處理模塊。
本發(fā)明實(shí)施例提供的方法及裝置,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的方法及裝置,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該方法及裝置處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為SDN網(wǎng)絡(luò)架構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理方法的一種流程圖;
圖3為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理方法的另一種流程圖;
圖4為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理方法的另一種流程圖;
圖5為本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法的實(shí)際應(yīng)用場景示意圖;
圖6為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理裝置的一種結(jié)構(gòu)框圖;
圖7為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理裝置的另一種結(jié)構(gòu)框圖;
圖8為本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理裝置的另一種結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種基于SDN的數(shù)據(jù)處理方法及裝置,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定。
首先需要說明的是,本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法及裝置,主要應(yīng)用于支持OpenFlow協(xié)議的SDN網(wǎng)絡(luò)中,在該網(wǎng)絡(luò)中通過SDN控制器來對其他SDN網(wǎng)絡(luò)設(shè)備(例如SDN交換機(jī))進(jìn)行控制,由于該SDN網(wǎng)絡(luò)設(shè)備中安裝有Open vSwitch軟件(簡稱OvS軟件),因此,該SDN網(wǎng)絡(luò)設(shè)備也被稱為Open vSwitch軟件宿主機(jī),簡稱OvS宿主機(jī)。具體的,所述SDN網(wǎng)絡(luò)設(shè)備可以為安裝有OvS軟件的SDN交換機(jī)。
OvS軟件主要用于執(zhí)行數(shù)據(jù)報(bào)文與流表匹配及數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā)。OvS宿主機(jī)運(yùn)行的操作系統(tǒng)是任何可以支持OvS軟件的操作系統(tǒng)。在本發(fā)明實(shí)施例中,所有新增的網(wǎng)絡(luò)功能也是在運(yùn)行在OvS宿主機(jī)中的操作系統(tǒng)上開發(fā)的應(yīng)用軟件。
請參考圖1,圖1示出了SDN網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)示意圖。如圖1所示,SDN網(wǎng)絡(luò)中包括控制器、OvS宿主機(jī)和至少一個(gè)用戶主機(jī),其中,用戶主機(jī)與OvS宿主機(jī)相連,OvS宿主機(jī)又與控制器相連,同時(shí)SDN網(wǎng)絡(luò)還通過OvS宿主機(jī)連接至其他網(wǎng)絡(luò)。
再有,由于本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法及裝置,主要是應(yīng)用于支持OpenFlow協(xié)議的SDN網(wǎng)絡(luò)設(shè)備中,因此,有必要對實(shí)施本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法及裝置的SDN網(wǎng)絡(luò)設(shè)備的預(yù)先配置過程進(jìn)行說明,具體如下:
1)確定用戶新增至SDN網(wǎng)絡(luò)設(shè)備中的網(wǎng)絡(luò)功能,為每一種新增的網(wǎng)絡(luò)功能添加一個(gè)虛擬網(wǎng)卡,并為每一虛擬網(wǎng)卡配置網(wǎng)絡(luò)地址(MAC及IP地址);
其中,用戶新增至SDN網(wǎng)絡(luò)設(shè)備中的網(wǎng)絡(luò)功能為用戶設(shè)置在SDN網(wǎng)絡(luò)設(shè)備中的功能模塊,具體的,可以為用戶安裝在SDN網(wǎng)絡(luò)設(shè)備中的應(yīng)用軟件,也可以是用戶設(shè)置的一些內(nèi)核模塊。
虛擬網(wǎng)卡是由SDN網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)創(chuàng)建,可以在網(wǎng)絡(luò)設(shè)備間建立網(wǎng)絡(luò)連接的軟件驅(qū)動(dòng),它沒有物理組件,但可以像物理網(wǎng)卡一樣擁有自己的網(wǎng)絡(luò)地址(MAC及IP地址)。對于SDN網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)而言,虛擬網(wǎng)卡與物理網(wǎng)卡的功能相同,同時(shí)虛擬網(wǎng)卡還具有配置靈活,不受物理設(shè)備限制的優(yōu)點(diǎn)。
2)啟動(dòng)新增至SDN網(wǎng)絡(luò)設(shè)備中的網(wǎng)絡(luò)功能,將設(shè)置在所述SDN網(wǎng)絡(luò)設(shè)備中的每一虛擬網(wǎng)卡與一種網(wǎng)絡(luò)功能進(jìn)行綁定,建立虛擬網(wǎng)卡與新增網(wǎng)絡(luò)功能的一一對應(yīng)關(guān)系。
具體綁定過程為:利用一種網(wǎng)絡(luò)功能對應(yīng)監(jiān)聽一個(gè)虛擬網(wǎng)卡;或者,建立包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系的路由表或網(wǎng)絡(luò)驅(qū)動(dòng)。
3)建立每一虛擬網(wǎng)卡與SDN網(wǎng)絡(luò)設(shè)備中安裝的OvS軟件中的虛擬端口的映射關(guān)系。
4)在SDN網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)(Operating System,OS)協(xié)議棧中添加包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系的路由表,使經(jīng)過相應(yīng)網(wǎng)絡(luò)功能處理后的數(shù)據(jù)報(bào)文,通過OS協(xié)議棧中的路由轉(zhuǎn)發(fā),能夠返回該網(wǎng)絡(luò)功能對應(yīng)的虛擬網(wǎng)卡,進(jìn)而返回至OvS軟件中。
5)啟動(dòng)SDN網(wǎng)絡(luò)設(shè)備上已配置完成的虛擬網(wǎng)卡,并為SDN網(wǎng)絡(luò)設(shè)備中的物理網(wǎng)卡配置網(wǎng)絡(luò)地址(MAC及IP地址),然后建立每一物理網(wǎng)卡與OvS軟件中的虛擬端口的映射關(guān)系。
6)指定SDN網(wǎng)絡(luò)設(shè)備中一個(gè)物理網(wǎng)卡作為SDN網(wǎng)絡(luò)設(shè)備與SDN控制器通信的專用網(wǎng)卡,使得SDN網(wǎng)絡(luò)設(shè)備與SDN控制器進(jìn)行連接。
另外,由于在SDN網(wǎng)絡(luò)中,SDN網(wǎng)絡(luò)設(shè)備中的所有流表均由SDN控制器下發(fā),SDN網(wǎng)絡(luò)設(shè)備本身并不具備生成流表的能力。因此,當(dāng)SDN網(wǎng)絡(luò)設(shè)備中新增了網(wǎng)絡(luò)功能及網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系,并且需要對接收到的數(shù)據(jù)報(bào)文進(jìn)行相應(yīng)的網(wǎng)絡(luò)功能處理時(shí),需要對SDN控制器的控制邏輯也進(jìn)行更新,使得SDN控制器能夠向SDN網(wǎng)絡(luò)設(shè)備下發(fā)可以對數(shù)據(jù)報(bào)文進(jìn)行相應(yīng)網(wǎng)絡(luò)功能處理的新的流表。
也就是說,在實(shí)施本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理方法及裝置前,還需要對與SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器的控制邏輯進(jìn)行更新。具體更新方式可以有以下兩種:
方式一:由SDN控制器管理人員將包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系的控制邏輯添加至SDN控制器中。
方式二:由SDN網(wǎng)絡(luò)設(shè)備將包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系的控制邏輯上報(bào)至SDN控制器中,以使SDN控制器進(jìn)行更新。
下面對本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法進(jìn)行說明。
如圖2所示,本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述方法包括步驟S201至S205。
S201、接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
S202、根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),第一流表中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;
根據(jù)前文所述的內(nèi)容可知,其中,第一虛擬網(wǎng)卡的地址是由SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的。
S203、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
由于預(yù)先對設(shè)置在SDN網(wǎng)絡(luò)設(shè)備中的每一虛擬網(wǎng)卡與一種網(wǎng)絡(luò)功能進(jìn)行了綁定,因此,當(dāng)?shù)谝粩?shù)據(jù)報(bào)文修改后的目的地址為第一虛擬網(wǎng)卡的地址時(shí),可以直接調(diào)用與第一虛擬網(wǎng)卡對應(yīng)的第一網(wǎng)絡(luò)功能對第一數(shù)據(jù)報(bào)文進(jìn)行處理,獲得第二數(shù)據(jù)報(bào)文。
其中,第一網(wǎng)絡(luò)功能包括:網(wǎng)絡(luò)地址轉(zhuǎn)換、數(shù)據(jù)報(bào)文封裝、數(shù)據(jù)報(bào)文解封裝、數(shù)據(jù)報(bào)文加密、數(shù)據(jù)報(bào)文解密、數(shù)據(jù)報(bào)文壓縮、數(shù)據(jù)報(bào)文解壓縮、網(wǎng)絡(luò)層協(xié)議轉(zhuǎn)換、傳輸層端口轉(zhuǎn)換和應(yīng)用層協(xié)議修改等。
可以理解的是,第一網(wǎng)絡(luò)功能并不局限于上文中所列舉的網(wǎng)絡(luò)功能,現(xiàn)有技術(shù)中存在的其他網(wǎng)絡(luò)功能均適用于本發(fā)明。
在實(shí)際應(yīng)用中,獲得第二數(shù)據(jù)報(bào)文后,第一網(wǎng)絡(luò)功能會(huì)根據(jù)OS協(xié)議棧中的路由表將第二數(shù)據(jù)報(bào)文仍轉(zhuǎn)發(fā)至第一虛擬網(wǎng)卡,進(jìn)而根據(jù)OvS軟件中與第一虛擬網(wǎng)卡對應(yīng)的虛擬端口返回至OvS軟件中,由OvS軟件對第二數(shù)據(jù)報(bào)文進(jìn)行下一步的轉(zhuǎn)發(fā)。
S204、根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
S205、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的方法,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該方法處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
如圖3所示,本發(fā)明實(shí)施例提供了一種基于SDN的數(shù)據(jù)處理方法,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,該方法包括步驟S301至S307。
S301、接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
S302、判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,獲得第一判斷結(jié)果;若所述第一判斷結(jié)果為是,執(zhí)行步驟S303;若所述第一判斷結(jié)果為否,在執(zhí)行完步驟S304后,再執(zhí)行步驟S303;
可以理解的是,當(dāng)?shù)谝粩?shù)據(jù)報(bào)文是報(bào)文流中的首個(gè)報(bào)文時(shí),SDN網(wǎng)絡(luò)設(shè)備中并不存在與該報(bào)文匹配的流表,因此,可選地,在根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址前,有必要判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表。
S303、根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的。
S304、將所述第一數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第一數(shù)據(jù)報(bào)文匹配的第一流表;
S305、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
S306、根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
S307、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
需要說明的是,本實(shí)施例中的步驟S301、S303、S305~S307,可以與圖2所示的實(shí)施例中的步驟S201~S205對應(yīng)相同。
不難看出,本發(fā)明圖3所示的實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的方法,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該方法處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
如圖4所示,本發(fā)明實(shí)施例提供了一種基于SDN的數(shù)據(jù)處理方法,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,該方法包括步驟S401至S407。
S401、接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
S402、根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的;
S403、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
S404、判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,獲得第二判斷結(jié)果;若所述第二判斷結(jié)果為是,執(zhí)行步驟S405;若所述第二判斷結(jié)果為否,在執(zhí)行完步驟S406后,再執(zhí)行步驟S405;
可以理解的是,當(dāng)?shù)诙?shù)據(jù)報(bào)文是報(bào)文流中的首個(gè)報(bào)文時(shí),SDN網(wǎng)絡(luò)設(shè)備中并不存在與該報(bào)文匹配的流表,因此,可選地,在根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址前,有必要判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表。
S405、根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
S406、將所述第二數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第二數(shù)據(jù)報(bào)文匹配的第二流表;
S407、若所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
需要說明的是,本實(shí)施例中的步驟S401至S403、S405和S407,可以與圖2所示的實(shí)施例中的步驟S201至S205對應(yīng)相同。
不難看出,本發(fā)明圖4所示的實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的方法,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該方法處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
需要說明的是,圖3和圖4所示的實(shí)施例重點(diǎn)在于說明各自的不同之處,在實(shí)際應(yīng)中,這兩個(gè)實(shí)施例提供的技術(shù)方案可組合應(yīng)用。
可選地,在本發(fā)明實(shí)施例提供的一種具體實(shí)施方式中,在圖2至圖4所示的任一實(shí)施例中,步驟S204、S306或S405,也即所述根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā)的步驟可以包括:
步驟1、根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址;
步驟2、若所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二虛擬網(wǎng)卡的地址,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二虛擬網(wǎng)卡;
步驟3、若所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二物理網(wǎng)卡的地址,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二物理網(wǎng)卡。
可以理解的是,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二虛擬網(wǎng)卡后,第二虛擬網(wǎng)卡會(huì)調(diào)用與其綁定的第二網(wǎng)絡(luò)功能,對所述第二數(shù)據(jù)報(bào)文進(jìn)行第二網(wǎng)絡(luò)功能處理,獲得第三數(shù)據(jù)報(bào)文;
之后,SDN網(wǎng)絡(luò)設(shè)備會(huì)根據(jù)與第三數(shù)據(jù)報(bào)文匹配的第三流表,修改所述第三數(shù)據(jù)報(bào)文的目的地址,并判斷第三數(shù)據(jù)報(bào)文的目的地址是虛擬網(wǎng)卡對應(yīng)的地址還是物理網(wǎng)卡對應(yīng)的地址;如果是虛擬網(wǎng)卡對應(yīng)的地址,繼續(xù)調(diào)用相應(yīng)的網(wǎng)絡(luò)功能對第三數(shù)據(jù)報(bào)文進(jìn)行處理,如此往復(fù)循環(huán),直至數(shù)據(jù)報(bào)文的目的地址為物理網(wǎng)卡對應(yīng)的地址時(shí),終止循環(huán),并將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至相應(yīng)的物理網(wǎng)卡。
可以看出,本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理方法,可以調(diào)用不同的網(wǎng)絡(luò)功能對接收到數(shù)據(jù)報(bào)文進(jìn)行多次處理,更符合用戶的需求。
請參考圖5,圖5示出了本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理方法的實(shí)際應(yīng)用場景示意圖,在該實(shí)際應(yīng)用場景中,實(shí)施此方法的SDN網(wǎng)絡(luò)設(shè)備為OvS宿主機(jī)。如圖5所示,該實(shí)際應(yīng)用場景的數(shù)據(jù)處理過程如下:
步驟1、用戶主機(jī)將第一數(shù)據(jù)報(bào)文發(fā)送至OvS宿主機(jī)的物理網(wǎng)卡1,并通過與物理網(wǎng)卡1對應(yīng)映射端口vport1進(jìn)入OvS軟件;
步驟2、假設(shè)該數(shù)據(jù)報(bào)文是需要進(jìn)行新增網(wǎng)絡(luò)功能A處理的首個(gè)數(shù)據(jù)報(bào)文,所以O(shè)vS中不存在該報(bào)文流的流表,OvS宿主機(jī)將該第一數(shù)據(jù)報(bào)文報(bào)文封裝至Packet-in報(bào)文中;OvS宿主機(jī)將此Packet-in報(bào)文通過Socket接口產(chǎn)生用戶數(shù)據(jù)協(xié)議(User Datagram Protocol,UDP)包轉(zhuǎn)發(fā)到OS協(xié)議棧,OS協(xié)議棧再將Packet-in報(bào)文轉(zhuǎn)發(fā)到物理網(wǎng)卡3;
步驟3、OvS宿主機(jī)通過物理網(wǎng)卡3將Packet-in報(bào)文上送到SDN控制器;
步驟4、SDN控制器收到Packet-in報(bào)文后,根據(jù)第一數(shù)據(jù)報(bào)文的源和目的IP地址判斷用戶身份,然后根據(jù)預(yù)設(shè)的用戶身份與網(wǎng)絡(luò)功能的對應(yīng)關(guān)系,確定第一數(shù)據(jù)報(bào)文需要通過新增網(wǎng)絡(luò)功能A處理,再根據(jù)預(yù)先保存的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系,確定與新增網(wǎng)絡(luò)功能A對應(yīng)的虛擬網(wǎng)卡是虛擬網(wǎng)卡1,根據(jù)虛擬網(wǎng)卡1的地址生成第一流表下發(fā)給OvS宿主機(jī)。其中,第一流表中包括虛擬網(wǎng)卡1的MAC及IP地址。
步驟5、第一流表經(jīng)過物理網(wǎng)卡3進(jìn)入OvS宿主機(jī)的OS協(xié)議棧,然后由OS協(xié)議棧轉(zhuǎn)發(fā)到OvS軟件;
步驟6、OvS軟件收到第一流表后,根據(jù)第一流表對第一數(shù)據(jù)報(bào)文進(jìn)行修改,將其目的MAC及IP地址修改為虛擬網(wǎng)卡1的MAC及IP地址,然后將第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬網(wǎng)卡1在OvS軟件中的映射端口vport3;
步驟7、第一數(shù)據(jù)報(bào)文經(jīng)過vport3到達(dá)虛擬網(wǎng)卡1后,調(diào)用新增網(wǎng)絡(luò)功能A;
步驟8、新增網(wǎng)絡(luò)功能A對第一數(shù)據(jù)報(bào)文進(jìn)行處理,獲得第二數(shù)據(jù)報(bào)文,并將第二數(shù)據(jù)報(bào)文發(fā)送至OvS宿主機(jī)的OS協(xié)議棧;
步驟9、OS協(xié)議棧將根據(jù)事先添加好的包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系的路由表將第二數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬網(wǎng)卡1;
步驟10、虛擬網(wǎng)卡1接收到第二數(shù)據(jù)報(bào)文,通過vport3發(fā)送至OvS軟件,OvS軟件判斷是否已存在能夠處理第二數(shù)據(jù)報(bào)文的第二流表。由于第二數(shù)據(jù)報(bào)文也是第一次進(jìn)入OvS軟件的數(shù)據(jù)報(bào)文,因此OvS軟件不存在第二流表;此時(shí),OvS宿主機(jī)再次將第二數(shù)據(jù)報(bào)文封裝至Packet-in報(bào)文中,通過Socket接口產(chǎn)生UDP包轉(zhuǎn)發(fā)到OS協(xié)議棧,OS協(xié)議棧再將Packet-in報(bào)文轉(zhuǎn)發(fā)到物理網(wǎng)卡3;
步驟11、物理網(wǎng)卡3接收到Packet-in報(bào)文后按照與步驟3相同的流程對此報(bào)文進(jìn)行處理;
步驟12、SDN控制器收到Packet-in報(bào)文后,根據(jù)第二數(shù)據(jù)報(bào)文的源和目的IP地址判斷用戶身份,然后根據(jù)預(yù)設(shè)的用戶身份與網(wǎng)絡(luò)功能的對應(yīng)關(guān)系,確定第二數(shù)據(jù)報(bào)文需要通過新增網(wǎng)絡(luò)功能B處理,再根據(jù)預(yù)先保存的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系,確定與新增網(wǎng)絡(luò)功能B對應(yīng)的虛擬網(wǎng)卡是虛擬網(wǎng)卡2,根據(jù)虛擬網(wǎng)卡2的地址生成第二流表下發(fā)給OvS宿主機(jī)。其中,第二流表中包括虛擬網(wǎng)卡2的MAC及IP地址。
步驟13、第二流表經(jīng)過物理網(wǎng)卡3進(jìn)入OvS宿主機(jī)的OS協(xié)議棧,然后由OS協(xié)議棧轉(zhuǎn)發(fā)到OvS軟件;
步驟14、OvS軟件收到第二流表后,根據(jù)第二流表對第二數(shù)據(jù)報(bào)文進(jìn)行修改,將其目的MAC及IP地址修改為虛擬網(wǎng)卡2的MAC及IP地址,然后將第二數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬網(wǎng)卡2在OvS軟件中的映射端口vport4;
步驟15、第二數(shù)據(jù)報(bào)文經(jīng)過vport4到達(dá)虛擬網(wǎng)卡2后,調(diào)用新增網(wǎng)絡(luò)功能B;
步驟16、新增網(wǎng)絡(luò)功能B對第二數(shù)據(jù)報(bào)文進(jìn)行處理,獲得第三數(shù)據(jù)報(bào)文,并將第三數(shù)據(jù)報(bào)文發(fā)送至OvS宿主機(jī)的OS協(xié)議棧;
步驟17、OS協(xié)議棧將根據(jù)事先添加好的包含網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址的對應(yīng)關(guān)系的路由表將第三數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到虛擬網(wǎng)卡2;
步驟18、虛擬網(wǎng)卡2接收到第三數(shù)據(jù)報(bào)文,通過vport4發(fā)送至OvS軟件,OvS軟件判斷是否已存在能夠處理第三數(shù)據(jù)報(bào)文的第三流表。由于第三數(shù)據(jù)報(bào)文也是第一次進(jìn)入OvS軟件的數(shù)據(jù)報(bào)文,因此OvS軟件不存在第三流表;此時(shí),OvS宿主機(jī)再次將第三數(shù)據(jù)報(bào)文封裝至Packet-in報(bào)文中,通過Socket接口產(chǎn)生UDP包轉(zhuǎn)發(fā)到OS協(xié)議棧,OS協(xié)議棧再將Packet-in報(bào)文轉(zhuǎn)發(fā)到物理網(wǎng)卡3;
步驟19、物理網(wǎng)卡3接收到Packet-in報(bào)文后,按照與步驟3相同的流程對此報(bào)文進(jìn)行處理;
步驟20、SDN控制器收到Packet-in報(bào)文后,根據(jù)第三數(shù)據(jù)報(bào)文的源和目的IP地址判斷用戶身份,確定第三數(shù)據(jù)報(bào)文目前需要轉(zhuǎn)發(fā)到其他網(wǎng)絡(luò),向OvS宿主機(jī)下發(fā)可以繼續(xù)轉(zhuǎn)發(fā)第三數(shù)據(jù)報(bào)文到其他網(wǎng)絡(luò)的第三流表;
步驟21、第三流表經(jīng)過物理網(wǎng)卡3進(jìn)入OvS宿主機(jī)的OS協(xié)議棧,由OS協(xié)議棧轉(zhuǎn)發(fā)到OvS軟件;
步驟22、OvS軟件根據(jù)第三流表修改第三數(shù)據(jù)報(bào)文的目的MAC及IP地址,將第三數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到OvS軟件的映射端口vport2;
步驟23、第三數(shù)據(jù)報(bào)文經(jīng)過映射端口vport2到達(dá)物理網(wǎng)卡2后,OvS宿主機(jī)通過物理網(wǎng)卡2將第三數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到其他網(wǎng)絡(luò)。
可以看出,在圖5所示的具體實(shí)施例中,將數(shù)據(jù)報(bào)文經(jīng)過兩次網(wǎng)絡(luò)功能處理后,最終通過物理網(wǎng)卡2轉(zhuǎn)發(fā)至其他網(wǎng)絡(luò)。
下面對本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置進(jìn)行說明。
如圖6所示,本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述裝置包括:數(shù)據(jù)報(bào)文接收模塊601、第一地址修改模塊602、第一處理模塊603、第二處理模塊604和第一轉(zhuǎn)發(fā)模塊605。
其中,所述SDN網(wǎng)絡(luò)設(shè)備為安裝有OvS軟件的SDN網(wǎng)絡(luò)設(shè)備(簡稱OvS宿主機(jī)),具體的,所述SDN網(wǎng)絡(luò)設(shè)備可以為安裝有OvS軟件的SDN交換機(jī)。
數(shù)據(jù)報(bào)文接收模塊601,用于接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
第一地址修改模塊602,用于根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的。
第一處理模塊603,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
由于預(yù)先對設(shè)置在SDN網(wǎng)絡(luò)設(shè)備中每一虛擬網(wǎng)卡與一種網(wǎng)絡(luò)功能進(jìn)行了綁定,因此,當(dāng)?shù)谝粩?shù)據(jù)報(bào)文修改后的目的地址為第一虛擬網(wǎng)卡的地址時(shí),可以直接調(diào)用與第一虛擬網(wǎng)卡對應(yīng)的第一網(wǎng)絡(luò)功能對第一數(shù)據(jù)報(bào)文進(jìn)行處理,獲得第二數(shù)據(jù)報(bào)文。
其中,第一網(wǎng)絡(luò)功能包括:網(wǎng)絡(luò)地址轉(zhuǎn)換、數(shù)據(jù)報(bào)文封裝、數(shù)據(jù)報(bào)文解封裝、數(shù)據(jù)報(bào)文加密、數(shù)據(jù)報(bào)文解密、數(shù)據(jù)報(bào)文壓縮、數(shù)據(jù)報(bào)文解壓縮、網(wǎng)絡(luò)層協(xié)議轉(zhuǎn)換、傳輸層端口轉(zhuǎn)換和應(yīng)用層協(xié)議修改等。
可以理解的是,第一網(wǎng)絡(luò)功能并不局限于上文中所列舉的網(wǎng)絡(luò)功能,現(xiàn)有技術(shù)中存在的其他網(wǎng)絡(luò)功能均適用于本發(fā)明。
在實(shí)際應(yīng)用中,獲得第二數(shù)據(jù)報(bào)文后,第一網(wǎng)絡(luò)功能會(huì)根據(jù)OS協(xié)議棧中的路由將第二數(shù)據(jù)報(bào)文仍轉(zhuǎn)發(fā)至第一虛擬網(wǎng)卡,進(jìn)而根據(jù)OvS軟件中與第一虛擬網(wǎng)卡對應(yīng)的虛擬端口返回至OvS軟件中,由OvS軟件對第二數(shù)據(jù)報(bào)文進(jìn)行下一步的轉(zhuǎn)發(fā)。
第二處理模塊604,用于根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
第一轉(zhuǎn)發(fā)模塊605,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址的情況下,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的裝置,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該裝置處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
如圖7所示,本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述裝置包括:數(shù)據(jù)報(bào)文接收模塊701、第一判斷模塊702、第一觸發(fā)模塊703、、第二觸發(fā)模塊704、第一地址修改模塊705、第一處理模塊706和第一轉(zhuǎn)發(fā)模塊708。
數(shù)據(jù)報(bào)文接收模塊701,用于接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
第一判斷模塊702,用于判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,獲得第一判斷結(jié)果;
可以理解的是,當(dāng)?shù)谝粩?shù)據(jù)報(bào)文是報(bào)文流中的首個(gè)報(bào)文時(shí),SDN網(wǎng)絡(luò)設(shè)備中并不存在與該報(bào)文匹配的流表,因此,可選地,在根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址前,有必要判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第一數(shù)據(jù)報(bào)文匹配的第一流表。
第一觸發(fā)模塊703,用于在所述第一判斷結(jié)果為是的情況下,觸發(fā)所述第一地址修改模塊;
第二觸發(fā)模塊704,用于在所述第一判斷結(jié)果為否的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,然后觸發(fā)第一地址修改模塊;
第一地址修改模塊705,用于根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的;
第一處理模塊706,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
第二處理模塊707,用于根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
第一轉(zhuǎn)發(fā)模塊708,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址的情況下,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
需要說明的是,在本實(shí)施例中模塊701、705至708,可以與圖6所示的實(shí)施例中的模塊601至605對應(yīng)相同。
不難看出,本發(fā)明圖7所示的實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的裝置,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該裝置處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
如圖8所示,本發(fā)明實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,應(yīng)用于SDN網(wǎng)絡(luò)設(shè)備,所述SDN網(wǎng)絡(luò)設(shè)備中設(shè)置有至少一個(gè)虛擬網(wǎng)卡,每一虛擬網(wǎng)卡預(yù)先與一種網(wǎng)絡(luò)功能綁定,所述裝置包括:
數(shù)據(jù)報(bào)文接收模塊801,用于接收第一數(shù)據(jù)報(bào)文;
其中,第一數(shù)據(jù)報(bào)文可以是與SDN網(wǎng)絡(luò)設(shè)備連接的任一用戶主機(jī)發(fā)送的數(shù)據(jù)報(bào)文。
第一地址修改模塊802,用于根據(jù)與所述第一數(shù)據(jù)報(bào)文匹配的第一流表,修改所述第一數(shù)據(jù)報(bào)文的目的地址;
其中,所述第一流表由與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器下發(fā),其中包含:與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一虛擬網(wǎng)卡的地址,或與所述第一數(shù)據(jù)報(bào)文對應(yīng)的第一物理網(wǎng)卡的地址;其中,所述第一虛擬網(wǎng)卡的地址是由所述SDN控制器,根據(jù)預(yù)先存儲(chǔ)的網(wǎng)絡(luò)功能與虛擬網(wǎng)卡的地址之間的對應(yīng)關(guān)系確定的;
第一處理模塊803,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一虛擬網(wǎng)卡的地址的情況下,將所述第一數(shù)據(jù)報(bào)文發(fā)送至所述第一虛擬網(wǎng)卡,調(diào)用與所述第一虛擬網(wǎng)卡綁定的第一網(wǎng)絡(luò)功能,對所述第一數(shù)據(jù)報(bào)文進(jìn)行所述第一網(wǎng)絡(luò)功能處理,獲得第二數(shù)據(jù)報(bào)文;
第二判斷模塊804,用于判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,獲得第二判斷結(jié)果;
可以理解的是,當(dāng)?shù)诙?shù)據(jù)報(bào)文是報(bào)文流中的首個(gè)報(bào)文時(shí),SDN網(wǎng)絡(luò)設(shè)備中并不存在與該報(bào)文匹配的流表,因此,可選地,在根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址前,有必要判斷所述SDN網(wǎng)絡(luò)設(shè)備中是否存在與所述第二數(shù)據(jù)報(bào)文匹配的第二流表。
第三觸發(fā)模塊805,用于在所述第二判斷結(jié)果為是的情況下,觸發(fā)所述第二處理模塊;
第四觸發(fā)模塊806,用于在所述第二判斷結(jié)果為否的情況下,將所述第二數(shù)據(jù)報(bào)文發(fā)送給與所述SDN網(wǎng)絡(luò)設(shè)備連接的SDN控制器,并接收所述SDN控制器下發(fā)的與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,然后觸發(fā)所述第二處理模塊;
第二處理模塊807,用于根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址,按照修改后的目的地址進(jìn)行轉(zhuǎn)發(fā);
第一轉(zhuǎn)發(fā)模塊808,用于在所述第一數(shù)據(jù)報(bào)文修改后的目的地址為所述第一物理網(wǎng)卡的地址的情況下,則將所述第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至所述第一物理網(wǎng)卡。
需要說明的是,在本實(shí)施例中模塊801至803、807和808,可以與圖6所示的實(shí)施例中的模塊601至605對應(yīng)相同。
不難看出,本發(fā)明圖8所示的實(shí)施例提供的一種基于SDN的數(shù)據(jù)處理裝置,當(dāng)要對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理時(shí),可以根據(jù)SDN控制器下發(fā)的第一流表將第一數(shù)據(jù)報(bào)文的目的地址修改為第一虛擬網(wǎng)卡的地址,OvS軟件只需要將該數(shù)據(jù)報(bào)文發(fā)送至第一虛擬網(wǎng)卡,通過第一虛擬網(wǎng)卡調(diào)用與之綁定的第一網(wǎng)絡(luò)功能,就能實(shí)現(xiàn)對第一數(shù)據(jù)報(bào)文進(jìn)行第一網(wǎng)絡(luò)功能處理,OvS軟件所執(zhí)行的功能仍是根據(jù)控制器下發(fā)的流表進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),OvS軟件本身的功能并未發(fā)生改變。因此,本發(fā)明實(shí)施例提供的裝置,不需要對OvS軟件本身進(jìn)行任何額外的設(shè)置,就能添加并調(diào)用新增的網(wǎng)絡(luò)功能,簡化了新增網(wǎng)絡(luò)功能的添加及調(diào)用過程,進(jìn)而降低了添加網(wǎng)絡(luò)功能的成本,縮短了添加網(wǎng)絡(luò)功能的時(shí)間。
另外,由于每種網(wǎng)絡(luò)功能都具有與其對應(yīng)的特定虛擬網(wǎng)卡,因此,應(yīng)用該裝置處理數(shù)據(jù)報(bào)文時(shí),對于同時(shí)接收的不同種類的數(shù)據(jù)報(bào)文,可以同時(shí)選擇不同的網(wǎng)絡(luò)功能進(jìn)行處理;對于需要不同網(wǎng)絡(luò)功能處理的同一數(shù)據(jù)報(bào)文,可以隨時(shí)切換不同的網(wǎng)絡(luò)功能進(jìn)行處理,這均提高了數(shù)據(jù)報(bào)文的處理效率,更符合用戶的需求。
需要說明的是,圖7和圖8所示的實(shí)施例重點(diǎn)在于說明各自的不同之處,在實(shí)際應(yīng)中,這兩個(gè)實(shí)施例提供的技術(shù)方案可組合應(yīng)用。
可選地,在本發(fā)明實(shí)施例提供的一種具體實(shí)施方式中,在圖6至圖8所示的任一實(shí)施例中,第二處理模塊607、第二處理模塊707或第二處理模塊807,可以包括:
第二地址修改子模塊,用于根據(jù)與所述第二數(shù)據(jù)報(bào)文匹配的第二流表,修改所述第二數(shù)據(jù)報(bào)文的目的地址;
第一轉(zhuǎn)發(fā)子模塊,用于在所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二虛擬網(wǎng)卡的地址的情況下,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二虛擬網(wǎng)卡;
第二轉(zhuǎn)發(fā)子模塊,用于在所述第二數(shù)據(jù)報(bào)文修改后的目的地址為第二物理網(wǎng)卡的地址的情況下,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二物理網(wǎng)卡。
可以理解的是,將所述第二數(shù)據(jù)報(bào)文發(fā)送至所述第二虛擬網(wǎng)卡后,第二虛擬網(wǎng)卡會(huì)調(diào)用與其綁定的第二網(wǎng)絡(luò)功能,對所述第二數(shù)據(jù)報(bào)文進(jìn)行第二網(wǎng)絡(luò)功能處理,獲得第三數(shù)據(jù)報(bào)文;
之后,SDN網(wǎng)絡(luò)設(shè)備會(huì)根據(jù)與第三數(shù)據(jù)報(bào)文匹配的第三流表,修改所述第三數(shù)據(jù)報(bào)文的目的地址,并判斷第三數(shù)據(jù)報(bào)文的目的地址是虛擬網(wǎng)卡對應(yīng)的地址還是物理網(wǎng)卡對應(yīng)的地址;如果是虛擬網(wǎng)卡對應(yīng)的地址,繼續(xù)調(diào)用相應(yīng)的網(wǎng)絡(luò)功能對第三數(shù)據(jù)報(bào)文進(jìn)行處理,如此往復(fù)循環(huán),直至數(shù)據(jù)報(bào)文的目的地址為物理網(wǎng)卡對應(yīng)的地址時(shí),終止循環(huán),并將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至相應(yīng)的物理網(wǎng)卡。
可以看出,本發(fā)明實(shí)施例提供的基于SDN的數(shù)據(jù)處理裝置,可以調(diào)用不同的網(wǎng)絡(luò)功能對接收到數(shù)據(jù)報(bào)文進(jìn)行多次處理,更符合用戶的需求。
對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。