軟件定義網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))技術(shù)領(lǐng)域,尤其涉及SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法及裝置。
【背景技術(shù)】
[0002]SDN是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心思想是將網(wǎng)絡(luò)設(shè)備的控制層面與轉(zhuǎn)發(fā)層面分離,以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的靈活控制,為核心網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供良好的平臺(tái)。在SDN網(wǎng)絡(luò)中,目前標(biāo)準(zhǔn)的協(xié)議為Openflow協(xié)議。
[0003]圖1為典型的SDN組網(wǎng)示意圖,其中,SDN網(wǎng)絡(luò)主要由通過(guò)SDN協(xié)議通道連接的SDN網(wǎng)絡(luò)設(shè)備(如:交換機(jī))和SDN控制器組成。
[0004]SDN控制器是控制中心,根據(jù)用戶(hù)的配置或者動(dòng)態(tài)運(yùn)行的協(xié)議生成流表發(fā)送到SDN網(wǎng)絡(luò)設(shè)備。SDN網(wǎng)絡(luò)設(shè)備接收SDN控制器設(shè)置的流表,并根據(jù)流表進(jìn)行報(bào)文處理。在SDN網(wǎng)絡(luò)設(shè)備和SDN控制器之間通過(guò)SDN協(xié)議通道(如:0penf low通道)進(jìn)行通信。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)?zhí)峁㏒DN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法及裝置。
[0006]本申請(qǐng)的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0007]—種SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法,該方法包括:
[0008]SDN控制器在SDN網(wǎng)絡(luò)內(nèi)的一臺(tái)混合網(wǎng)絡(luò)設(shè)備上配置各網(wǎng)段的三層網(wǎng)關(guān),并針對(duì)每個(gè)網(wǎng)關(guān)在本控制器上生成一個(gè)虛擬主機(jī),該虛擬主機(jī)的IP、MAC地址為對(duì)應(yīng)網(wǎng)關(guān)的IP、MAC地址,該虛擬主機(jī)的端口為Normal端口 ;
[0009]接收SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的封裝了數(shù)據(jù)報(bào)文的Packet-1n消息,根據(jù)學(xué)習(xí)到的SDN網(wǎng)絡(luò)拓?fù)浼吧傻奶摂M主機(jī),計(jì)算出從數(shù)據(jù)報(bào)文的源MAC地址到目的MAC地址的最優(yōu)路徑,向該最優(yōu)路徑上的各網(wǎng)絡(luò)設(shè)備下發(fā)流表項(xiàng),以使得:各網(wǎng)絡(luò)設(shè)備根據(jù)該流表項(xiàng)轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)文。
[0010]一種SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法,該方法包括:
[0011]SDN網(wǎng)絡(luò)中的混合網(wǎng)絡(luò)設(shè)備接收SDN控制器配置的SDN網(wǎng)絡(luò)內(nèi)各網(wǎng)段的三層網(wǎng)關(guān)的VLAN虛接口和IP地址,為各VLAN虛接口分別生成網(wǎng)關(guān)MAC地址,將各網(wǎng)關(guān)MAC地址提供給SDN控制器,同時(shí)保存各網(wǎng)關(guān)的IP地址和MAC地址;接收SDN控制器下發(fā)的流表項(xiàng),流表項(xiàng)中的目的MAC地址為自身配置的三層網(wǎng)關(guān)MAC地址,流表項(xiàng)中的動(dòng)作為Output,流表項(xiàng)中的出端口為Normal端口 ;
[0012]接收SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的數(shù)據(jù)報(bào)文,該數(shù)據(jù)報(bào)文的源IP、MAC地址為第一網(wǎng)段內(nèi)的第一主機(jī)的IP、MAC地址,目的IP地址為第二網(wǎng)段內(nèi)第二主機(jī)的IP地址,目的MAC地址為第一或第二網(wǎng)段的網(wǎng)關(guān)MAC地址,將該報(bào)文與所述流表項(xiàng)匹配上,發(fā)現(xiàn)流表項(xiàng)中的出端口為Normal端口,則對(duì)報(bào)文進(jìn)行傳統(tǒng)二 /三層轉(zhuǎn)發(fā)處理。
[0013]一種SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)裝置,位于SDN控制器上,該裝置包括:
[0014]網(wǎng)關(guān)配置模塊:在SDN網(wǎng)絡(luò)內(nèi)的一臺(tái)混合網(wǎng)絡(luò)設(shè)備上配置各網(wǎng)段的三層網(wǎng)關(guān),并針對(duì)每個(gè)網(wǎng)關(guān)在本控制器上生成一個(gè)虛擬主機(jī),該虛擬主機(jī)的IP、MAC地址為對(duì)應(yīng)網(wǎng)關(guān)的IP、MAC地址,該虛擬主機(jī)的端口為Normal端口 ;
[0015]流表項(xiàng)下發(fā)模塊:接收SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的封裝了三層數(shù)據(jù)報(bào)文的Packet-1n消息,根據(jù)學(xué)習(xí)到的SDN網(wǎng)絡(luò)拓?fù)浼吧傻奶摂M主機(jī),計(jì)算出從數(shù)據(jù)報(bào)文的源MAC地址到目的MAC地址的最優(yōu)路徑,向該最優(yōu)路徑上的各網(wǎng)絡(luò)設(shè)備下發(fā)流表項(xiàng),以使得:各網(wǎng)絡(luò)設(shè)備根據(jù)該流表項(xiàng)轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)文。
[0016]一種SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)裝置,位于SDN網(wǎng)絡(luò)中的混合網(wǎng)絡(luò)設(shè)備上,該裝置包括:
[0017]網(wǎng)關(guān)配置保存模塊:接收SDN控制器配置的SDN網(wǎng)絡(luò)內(nèi)各網(wǎng)段的三層網(wǎng)關(guān)的VLAN虛接口和IP地址,為各VLAN虛接口分別生成網(wǎng)關(guān)MAC地址,將各網(wǎng)關(guān)MAC地址提供給SDN控制器,同時(shí)保存各網(wǎng)關(guān)的IP地址和MAC地址;
[0018]流表項(xiàng)接收模塊:接收并保存SDN控制器下發(fā)的流表項(xiàng),流表項(xiàng)中的目的MAC地址為自身配置的三層網(wǎng)關(guān)MAC地址,流表項(xiàng)中的動(dòng)作為Output,流表項(xiàng)中的出端口為Normal端口 ;
[0019]數(shù)據(jù)轉(zhuǎn)發(fā)模塊:接收SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的數(shù)據(jù)報(bào)文,該數(shù)據(jù)報(bào)文的源IP、MAC地址為第一網(wǎng)段內(nèi)的第一主機(jī)的IP、MAC地址,目的IP地址為第一或第二網(wǎng)段內(nèi)第二主機(jī)的IP地址,目的MAC地址為第一網(wǎng)段的網(wǎng)關(guān)MAC地址,將該報(bào)文與所述流表項(xiàng)匹配上,發(fā)現(xiàn)流表項(xiàng)中的出端口為Normal端口,則對(duì)報(bào)文進(jìn)行傳統(tǒng)二 /三層轉(zhuǎn)發(fā)處理。
[0020]可見(jiàn),本申請(qǐng)中,通過(guò)在SDN網(wǎng)絡(luò)中的混合網(wǎng)絡(luò)設(shè)備上配置三層網(wǎng)關(guān),實(shí)現(xiàn)了 SDN網(wǎng)絡(luò)內(nèi)以及SDN網(wǎng)絡(luò)與外部網(wǎng)絡(luò)的三層通信。
【附圖說(shuō)明】
[0021]圖1為典型的SDN組網(wǎng)示意圖;
[0022]圖2為本申請(qǐng)一實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法流程圖;
[0023]圖3為本申請(qǐng)又一實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法流程圖;
[0024]圖4為本申請(qǐng)實(shí)施例提供的在SDN網(wǎng)絡(luò)中配置及學(xué)習(xí)三層網(wǎng)關(guān)的方法流程圖;
[0025]圖5為本申請(qǐng)實(shí)施例提供的SDN網(wǎng)絡(luò)內(nèi)的三層轉(zhuǎn)發(fā)方法流程圖;
[0026]圖6為本申請(qǐng)實(shí)施例提供的SDN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)之間的三層轉(zhuǎn)發(fā)方法流程圖;
[0027]圖7為本申請(qǐng)應(yīng)用示例中的SDN組網(wǎng)示意圖;
[0028]圖8為本申請(qǐng)實(shí)施例提供的在圖7所示組網(wǎng)中進(jìn)行網(wǎng)關(guān)配置及學(xué)習(xí)的方法流程圖;
[0029]圖9為本申請(qǐng)實(shí)施例提供的在圖7所示組網(wǎng)中進(jìn)行SDN網(wǎng)絡(luò)內(nèi)的三層轉(zhuǎn)發(fā)方法流程圖;
[0030]圖10為本申請(qǐng)實(shí)施例提供的在圖7所示組網(wǎng)中進(jìn)行SDN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)之間的三層轉(zhuǎn)發(fā)方法流程圖;
[0031]圖11為本申請(qǐng)實(shí)施例提供的SDN控制器的硬件結(jié)構(gòu)示意圖;
[0032]圖12為本申請(qǐng)實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)裝置的組成示意圖;
[0033]圖13為本申請(qǐng)實(shí)施例提供的混合SDN網(wǎng)絡(luò)設(shè)備的硬件結(jié)構(gòu)示意圖;
[0034]圖14為本申請(qǐng)又一實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)裝置的組成示意圖。
【具體實(shí)施方式】
[0035]目前,SDN網(wǎng)絡(luò)內(nèi)無(wú)法進(jìn)行三層通信,SDN網(wǎng)絡(luò)也無(wú)法與外部網(wǎng)絡(luò)互通。為了解決該技術(shù)問(wèn)題,本申請(qǐng)給出如下解決方案:
[0036]為了方便理解本申請(qǐng),首先給出如下說(shuō)明:
[0037]I) SDN網(wǎng)絡(luò)是指使能了 SDN協(xié)議(如:0penflow協(xié)議)的網(wǎng)絡(luò),包括:SDN網(wǎng)絡(luò)內(nèi)的SDN控制器、SDN網(wǎng)絡(luò)設(shè)備以及SDN網(wǎng)絡(luò)設(shè)備下掛的主機(jī);
[0038]2)傳統(tǒng)網(wǎng)絡(luò)是指沒(méi)有使能SDN協(xié)議的網(wǎng)絡(luò),包括:傳統(tǒng)網(wǎng)絡(luò)中的交換機(jī)、主機(jī)等;
[0039]3)混合網(wǎng)絡(luò)設(shè)備是指同時(shí)支持傳統(tǒng)網(wǎng)絡(luò)二、三層轉(zhuǎn)發(fā)以及SDN協(xié)議功能的網(wǎng)絡(luò)設(shè)備;
[0040]4)在混合網(wǎng)絡(luò)設(shè)備上,使能了 SDN協(xié)議的端口屬于SDN網(wǎng)絡(luò),未使能SDN協(xié)議的端口屬于傳統(tǒng)網(wǎng)絡(luò)。
[0041]圖2為本申請(qǐng)一實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法流程圖,其具體步驟如下:
[0042]步驟201 =SDN控制器在SDN網(wǎng)絡(luò)內(nèi)的一臺(tái)混合網(wǎng)絡(luò)設(shè)備上配置各網(wǎng)段的三層網(wǎng)關(guān),并針對(duì)每個(gè)網(wǎng)關(guān)在本控制器上生成一個(gè)虛擬主機(jī),該虛擬主機(jī)的IP、MAC地址為對(duì)應(yīng)網(wǎng)關(guān)的IP、MAC地址,該虛擬主機(jī)的端口為Normal端口。
[0043]優(yōu)選地,虛擬主機(jī)為靜態(tài)虛擬主機(jī),“靜態(tài)”的意義是該虛擬主機(jī)永遠(yuǎn)不會(huì)老化。
[0044]Normal端口為SDN協(xié)議中定義的一類(lèi)端口,端口號(hào)為Oxfffffffa,Normal端口的特性為:當(dāng)報(bào)文的出端口為Normal端口時(shí),報(bào)文的轉(zhuǎn)發(fā)行為改為傳統(tǒng)二 /三層轉(zhuǎn)發(fā)。
[0045]優(yōu)選地,當(dāng)SDN控制器接收到SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的封裝了 ARP請(qǐng)求報(bào)文的Packet-1n消息,該ARP請(qǐng)求報(bào)文為該SDN網(wǎng)絡(luò)設(shè)備下掛的主機(jī)發(fā)出的、且目的IP地址為網(wǎng)關(guān)IP地址,則SDN控制器根據(jù)該網(wǎng)關(guān)IP地址查找到對(duì)應(yīng)的虛擬主機(jī),將該虛擬主機(jī)的MAC地址作為網(wǎng)關(guān)MAC地址填入到ARP應(yīng)答報(bào)文中,將該ARP應(yīng)答報(bào)文封裝到Packet-out消息中通過(guò)該SDN網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)給發(fā)出該ARP請(qǐng)求報(bào)文的主機(jī);同時(shí),SDN控制器在該網(wǎng)關(guān)IP地址對(duì)應(yīng)網(wǎng)關(guān)上配置ARP表項(xiàng),表項(xiàng)中的IP、MAC地址為ARP請(qǐng)求報(bào)文的源IP、MAC地址,表項(xiàng)中的出端口為該網(wǎng)關(guān)到發(fā)出該ARP請(qǐng)求報(bào)文的主機(jī)的最優(yōu)路徑出端口。
[0046]步驟202 =SDN控制器接收SDN網(wǎng)絡(luò)設(shè)備發(fā)來(lái)的封裝了三層數(shù)據(jù)報(bào)文的Packet-1n消息,根據(jù)自身學(xué)習(xí)到的SDN網(wǎng)絡(luò)拓?fù)浼吧傻奶摂M主機(jī),計(jì)算出從數(shù)據(jù)報(bào)文的源MAC地址到目的MAC地址的最優(yōu)路徑,向該最優(yōu)路徑上的各網(wǎng)絡(luò)設(shè)備下發(fā)流表項(xiàng),以使得:各網(wǎng)絡(luò)設(shè)備根據(jù)該流表項(xiàng)轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)文。
[0047]其中,當(dāng)數(shù)據(jù)報(bào)文的源IP、MAC地址為第一網(wǎng)段內(nèi)的第一主機(jī)的IP、MAC地址,目的IP地址為第一或第二網(wǎng)段內(nèi)第二主機(jī)的IP地址,目的MAC地址為第一網(wǎng)段的網(wǎng)關(guān)MAC地址時(shí),步驟202中,根據(jù)學(xué)習(xí)到的SDN網(wǎng)絡(luò)拓?fù)浼吧傻奶摂M主機(jī),計(jì)算出從數(shù)據(jù)報(bào)文的源MAC地址到目的MAC地址的最優(yōu)路徑為:
[0048]根據(jù)學(xué)習(xí)到的SDN網(wǎng)絡(luò)拓?fù)浼吧傻奶摂M主機(jī),計(jì)算出從數(shù)據(jù)報(bào)文的源MAC地址到目的MAC地址的最優(yōu)路徑為:從數(shù)據(jù)報(bào)文在所述SDN網(wǎng)絡(luò)設(shè)備上的入端口到第一網(wǎng)段的網(wǎng)關(guān)MAC地址(即數(shù)據(jù)報(bào)文的目的MAC地址)對(duì)應(yīng)的虛擬主機(jī)的Normal端口之間的最優(yōu)路徑;
[0049]步驟202中,向該最優(yōu)路徑上的各網(wǎng)絡(luò)設(shè)備下發(fā)流表項(xiàng)包括:
[0050]根據(jù)該數(shù)據(jù)報(bào)文及所述最優(yōu)路徑,生成下發(fā)給第一網(wǎng)段的網(wǎng)關(guān)的流表項(xiàng),該流表項(xiàng)的內(nèi)容為:匹配“目的MAC地址為第一網(wǎng)段的網(wǎng)關(guān)的MAC地址”的數(shù)據(jù)報(bào)文,動(dòng)作為:Output,出端口為:Normal 端口。
[0051]步驟202中,向該最優(yōu)路徑上的各網(wǎng)絡(luò)設(shè)備下發(fā)流表項(xiàng)進(jìn)一步包括:
[0052]SDN控制器將該數(shù)據(jù)報(bào)文封裝到Packet-out消息中,消息中攜帶的出端口為:發(fā)來(lái)Packet-1n消息的SDN網(wǎng)絡(luò)設(shè)備到第一網(wǎng)段的網(wǎng)關(guān)的最優(yōu)路徑的出端口,將該消息發(fā)送給發(fā)來(lái)Packet-1n消息的SDN網(wǎng)絡(luò)設(shè)備,以使得:發(fā)來(lái)Packet-1n消息的SDN網(wǎng)絡(luò)設(shè)備接收到該P(yáng)acket-out消息后,將該數(shù)據(jù)報(bào)文從該出端口轉(zhuǎn)發(fā)出去。
[0053]圖3為本申請(qǐng)又一實(shí)施例提供的SDN網(wǎng)絡(luò)中的三層轉(zhuǎn)發(fā)方法流程圖,其具體步驟如下:
[0054]步驟301 =SDN網(wǎng)絡(luò)中的混合網(wǎng)絡(luò)設(shè)備接收SDN控制器配置的SDN網(wǎng)絡(luò)內(nèi)各網(wǎng)段的三層網(wǎng)關(guān)的VLAN虛接口和IP地址,為各VLAN虛接口分別生成網(wǎng)關(guān)MAC地址,將各網(wǎng)關(guān)MAC地址提供給SDN控制器,同時(shí)保存