两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種主機(jī)學(xué)習(xí)方法以及裝置制造方法

文檔序號(hào):7815398閱讀:317來(lái)源:國(guó)知局
一種主機(jī)學(xué)習(xí)方法以及裝置制造方法
【專利摘要】本發(fā)明提供一種主機(jī)學(xué)習(xí)方法以及裝置,所述方法包括:接收交換機(jī)上送的端口狀態(tài)報(bào)文;通過(guò)端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口;在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。本發(fā)明可保證控制設(shè)備根據(jù)允許學(xué)習(xí)主機(jī)的端口學(xué)習(xí)到正確的主機(jī)信息。
【專利說(shuō)明】—種主機(jī)學(xué)習(xí)方法以及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種主機(jī)學(xué)習(xí)方法以及裝置。

【背景技術(shù)】
[0002]SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))是一種新型的網(wǎng)絡(luò)架構(gòu),其可以將網(wǎng)絡(luò)設(shè)備的控制面與數(shù)據(jù)面進(jìn)行分離,由控制器(Controller)實(shí)現(xiàn)控制面功能,以及由若干交換機(jī)(Switch)實(shí)現(xiàn)數(shù)據(jù)面功能。
[0003]在SDN網(wǎng)絡(luò)中,由控制設(shè)備維護(hù)網(wǎng)絡(luò)拓?fù)洌G闆r下,控制設(shè)備與每個(gè)交換機(jī)之間建立鏈路連接,交換機(jī)之間也建立鏈路連接,控制設(shè)備接收到連接交換機(jī)的主機(jī)發(fā)出的ARP (Address Resolut1n Protocol,地址解析協(xié)議)報(bào)文時(shí),其能夠識(shí)別發(fā)送該ARP報(bào)文的源交換機(jī)端口,從而根據(jù)該源交換機(jī)端口以及ARP報(bào)文中攜帶的信息進(jìn)行主機(jī)學(xué)習(xí)。
[0004]但是,在控制設(shè)備與交換機(jī)的鏈路中斷,而交換機(jī)之間的鏈路依然正常連接時(shí),該鏈路中斷的交換機(jī)仍會(huì)接收到其他交換機(jī)泛洪的ARP請(qǐng)求報(bào)文,并對(duì)該ARP請(qǐng)求報(bào)文進(jìn)行泛洪。那么在控制設(shè)備接收到經(jīng)由鏈路中斷的交換機(jī)泛洪的ARP報(bào)文時(shí),由于控制設(shè)備并不知道與其鏈路中斷的交換機(jī)的存在,因此無(wú)法準(zhǔn)確判斷出發(fā)送該ARP報(bào)文的源交換機(jī)的端口,進(jìn)而導(dǎo)致控制設(shè)備學(xué)習(xí)到錯(cuò)誤的主機(jī)信息。


【發(fā)明內(nèi)容】

[0005]本發(fā)明提供了一種主機(jī)學(xué)習(xí)方法以及裝置,以解決現(xiàn)有技術(shù)中控制設(shè)備會(huì)學(xué)習(xí)到錯(cuò)誤主機(jī)信息的問(wèn)題。
[0006]本發(fā)明提供了一種主機(jī)學(xué)習(xí)方法,應(yīng)用于軟件定義網(wǎng)絡(luò)SDN網(wǎng)絡(luò)中的控制設(shè)備,其中所述方法包括:
[0007]接收交換機(jī)上送的端口狀態(tài)報(bào)文;
[0008]通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口;
[0009]在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
[0010]本發(fā)明還提供一種主機(jī)學(xué)習(xí)裝置,應(yīng)用于SDN網(wǎng)絡(luò)中的控制設(shè)備,其中所述裝置包括:
[0011]報(bào)文接收單元,用于接收交換機(jī)上送的端口狀態(tài)報(bào)文;
[0012]端口狀態(tài)確定單元,用于通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口;
[0013]主機(jī)學(xué)習(xí)單元,用于在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
[0014]本發(fā)明提供一種主機(jī)學(xué)習(xí)方法以及裝置,通過(guò)交換機(jī)上送的端口狀態(tài)報(bào)文確定出傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口狀態(tài),并在接收到經(jīng)由允許學(xué)習(xí)主機(jī)的端口上送的協(xié)議報(bào)文時(shí),學(xué)習(xí)所述協(xié)議報(bào)文中攜帶的主機(jī)信息,從而保證控制設(shè)備根據(jù)允許學(xué)習(xí)主機(jī)的端口學(xué)習(xí)到正確的主機(jī)信息。

【專利附圖】

【附圖說(shuō)明】
[0015]圖1是本發(fā)明中SDN網(wǎng)絡(luò)的組網(wǎng)示意圖;
[0016]圖2是本發(fā)明中主機(jī)學(xué)習(xí)方法的一個(gè)實(shí)施例流程圖;
[0017]圖3為本發(fā)明中主機(jī)學(xué)習(xí)方法的另一個(gè)實(shí)施例流程圖;
[0018]圖4是本發(fā)明中主機(jī)學(xué)習(xí)裝置所在控制設(shè)備的硬件架構(gòu)示意圖;
[0019]圖5為本發(fā)明中主機(jī)學(xué)習(xí)裝置的實(shí)施例結(jié)構(gòu)示意圖;
[0020]圖6為本發(fā)明中端口狀態(tài)確定單元的實(shí)施例結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0021]本發(fā)明實(shí)施例所應(yīng)用的一種網(wǎng)絡(luò)環(huán)境如圖1所示,在SDN網(wǎng)絡(luò)中,包括控制設(shè)備、多個(gè)交換機(jī)(SW1、SW2、SW3)以及接入不同交換機(jī)的主機(jī)(Hostl、Host2、Host3),每個(gè)SW上又包括多個(gè)端口(Port),如 SWl 上包括 SWl-Portl、SWl-Port2、SWl_Port3 以及 SWl_Port4等。其中,控制設(shè)備與SW2因?yàn)殒溌饭收隙鴶嚅_(kāi)連接,控制設(shè)備與SWl以及SW3的連接正常,各交換機(jī)之間連接正常。
[0022]當(dāng)前在SDN網(wǎng)絡(luò)中對(duì)于主機(jī)學(xué)習(xí)的實(shí)現(xiàn)方式為,在控制設(shè)備接收到連接交換機(jī)的主機(jī)發(fā)出的ARP報(bào)文時(shí),根據(jù)發(fā)送該ARP報(bào)文的源交換機(jī)端口以及ARP報(bào)文中攜帶的信息(源IP地址、源MAC地址等)進(jìn)行主機(jī)學(xué)習(xí)。然而在控制設(shè)備與SW2的鏈路中斷后,Hostl發(fā)送的ARP報(bào)文在由SWl上送控制設(shè)備后,控制設(shè)備會(huì)指示SWl以及SW3對(duì)該ARP報(bào)文進(jìn)行泛洪,但是由于交換機(jī)之間的鏈路依然連接正常,在SW2接收到SWl以及SW3泛洪的ARP報(bào)文時(shí),SW2仍會(huì)對(duì)該ARP報(bào)文進(jìn)行泛洪,若SWl-Port4以及SW3_Port4接收到SW2泛洪的ARP報(bào)文,并將該ARP報(bào)文上送至控制設(shè)備,則由于控制設(shè)備并不知道SW2的存在,因此會(huì)誤以為發(fā)送該ARP報(bào)文的源交換機(jī)的源端口為SWl-Port4或者SW3_Port4,即發(fā)送ARP報(bào)文的Hostl在該SWl-Port4或者SW3_Port4上來(lái)回遷移,進(jìn)而導(dǎo)致控制設(shè)備學(xué)習(xí)到錯(cuò)誤的主機(jī)信息。
[0023]為此,本發(fā)明提供一種主機(jī)學(xué)習(xí)方案來(lái)解決現(xiàn)有技術(shù)中在交換機(jī)與控制設(shè)備連接斷開(kāi)時(shí),控制設(shè)備學(xué)習(xí)到錯(cuò)誤的主機(jī)信息的問(wèn)題。
[0024]參見(jiàn)圖2,為本發(fā)明主機(jī)學(xué)習(xí)方法的一個(gè)實(shí)施例流程圖,該實(shí)施例可以應(yīng)用在SDN網(wǎng)絡(luò)中的控制設(shè)備上,包括以下步驟:
[0025]步驟201,接收交換機(jī)上送的端口狀態(tài)報(bào)文。
[0026]本發(fā)明實(shí)施例中,在組建SDN網(wǎng)絡(luò)時(shí),可以對(duì)交換機(jī)上各端口的端口類型進(jìn)行規(guī)劃,端口類型可以包括接入口(與主機(jī)連接的端口),網(wǎng)絡(luò)口(與交換機(jī)連接的端口),其中對(duì)于接入口有學(xué)習(xí)主機(jī)的要求,網(wǎng)絡(luò)口是與其他交換機(jī)連接的端口。本發(fā)明實(shí)施例中,交換機(jī)可以將與主機(jī)連接的端口設(shè)為允許學(xué)習(xí)主機(jī)的端口,將與交換機(jī)連接的端口設(shè)為禁止學(xué)習(xí)主機(jī)的端口,并通過(guò)端口狀態(tài)報(bào)文將各端口的狀態(tài)通告至控制設(shè)備。
[0027]該端口狀態(tài)報(bào)文可以包含端口配置標(biāo)記位,例如該端口配置標(biāo)記位可以是端口狀態(tài)報(bào)文中的config (配置)字段中的第8比特位,也可以是在config字段中新增加一個(gè)端口配置標(biāo)記位,本發(fā)明對(duì)此無(wú)限制。該端口配置標(biāo)記位在默認(rèn)情況下是為空的,即默認(rèn)該交換機(jī)的端口具有學(xué)習(xí)主機(jī)的能力。以該端口配置標(biāo)記位是端口狀態(tài)報(bào)文中的config字段中的第8比特位為例,在通過(guò)端口狀態(tài)報(bào)文通告交換機(jī)的端口為禁止學(xué)習(xí)主機(jī)的端口時(shí),可以將端口狀態(tài)報(bào)文的config字段的第8比特位中添加禁止學(xué)習(xí)標(biāo)識(shí)。例如在config字段的第8比特位中攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí),以指示該端口是禁止學(xué)習(xí)主機(jī)的端口 ;若將交換機(jī)中禁止學(xué)習(xí)主機(jī)的端口的狀態(tài)更改為允許學(xué)習(xí)主機(jī)的端口時(shí),可通過(guò)向控制設(shè)備發(fā)送config字段的第8比特位為空的端口狀態(tài)報(bào)文,以通告該端口的狀態(tài)修改為允許學(xué)習(xí)主機(jī)的端口。
[0028]另外,本發(fā)明實(shí)施例也可根據(jù)需要由控制設(shè)備指定交換機(jī)中允許學(xué)習(xí)主機(jī)的端口以及禁止學(xué)習(xí)主機(jī)的端口。
[0029]在控制設(shè)備要將交換機(jī)的允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口時(shí),可以向所述交換機(jī)端口發(fā)送端口狀態(tài)更新報(bào)文,也可以發(fā)送上述的端口狀態(tài)報(bào)文,該端口狀態(tài)更新報(bào)文或端口狀態(tài)報(bào)文中包括端口配置標(biāo)記位(config字段的第8比特位),config字段的第8比特位中攜帶有禁止學(xué)習(xí)標(biāo)識(shí),以使所述交換機(jī)根據(jù)所述禁止學(xué)習(xí)標(biāo)識(shí)將將所述允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口。該端口狀態(tài)更新報(bào)文中攜帶的禁止學(xué)習(xí)標(biāo)識(shí)可與交換機(jī)上送的端口狀態(tài)報(bào)文中的config字段的第8比特位中攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí)一致,在此不再贅述。在控制設(shè)備將交換機(jī)上允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口后,交換機(jī)即檢測(cè)到自身端口狀態(tài)發(fā)生變化,可以通過(guò)該發(fā)生變化的交換機(jī)端口向控制設(shè)備發(fā)送config字段的第8比特位中攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí)的端口狀態(tài)報(bào)文,以通告控制設(shè)備對(duì)交換機(jī)上的端口狀態(tài)修改成功。步驟202,通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口 ;
[0030]控制設(shè)備在接收到交換機(jī)上送的端口狀態(tài)報(bào)文后,可根據(jù)上述交換機(jī)上送端口狀態(tài)報(bào)文時(shí)對(duì)端口配置標(biāo)記位(config字段的第8比特位)的是否攜帶禁止學(xué)習(xí)標(biāo)識(shí),來(lái)確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是允許學(xué)習(xí)主機(jī)的端口或是禁止學(xué)習(xí)主機(jī)的端口。
[0031]若端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位為空(config字段的第8比特位為空),確定所述交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口 ;若端口狀態(tài)報(bào)文中的端口配置標(biāo)記位攜帶禁止學(xué)習(xí)標(biāo)識(shí)(config字段的第8比特位中攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí)),確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口。
[0032]在控制設(shè)備通過(guò)交換機(jī)發(fā)送的端口狀態(tài)報(bào)文確定出所述交換機(jī)端口的狀態(tài)后,可保存該交換機(jī)端口與端口狀態(tài)的對(duì)應(yīng)關(guān)系。在該交換機(jī)端口為禁止學(xué)習(xí)王機(jī)的端口時(shí),控制設(shè)備可以刪除保存的與該交換機(jī)端口對(duì)應(yīng)的所有主機(jī)信息,以禁止通過(guò)該交換機(jī)端口進(jìn)行主機(jī)學(xué)習(xí)。
[0033]步驟203,在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
[0034]本發(fā)明實(shí)施例中,交換機(jī)在接收到主機(jī)發(fā)送的協(xié)議報(bào)文后,首先將該協(xié)議報(bào)文與自身保存的流表項(xiàng)進(jìn)行匹配,并在匹配到某條流表項(xiàng)時(shí),執(zhí)行所述流表項(xiàng)所指示的動(dòng)作。若接收的協(xié)議報(bào)文為匹配交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文時(shí),例如匹配到Table Miss表項(xiàng)的協(xié)議報(bào)文,則可以由交換機(jī)將該協(xié)議報(bào)文封裝至Packet in報(bào)文,然后上送至控制設(shè)備,由控制設(shè)備對(duì)該協(xié)議報(bào)文進(jìn)行處理。
[0035]例如,結(jié)合圖1所示,上送至控制設(shè)備的協(xié)議報(bào)文為由Hostl通過(guò)SWl-Portl發(fā)送的ARP請(qǐng)求報(bào)文,那么控制設(shè)備可以根據(jù)預(yù)存的交換機(jī)端口與端口狀態(tài)的對(duì)應(yīng)關(guān)系確定該Sffl-Portl端口是允許學(xué)習(xí)主機(jī)的端口還是禁止學(xué)習(xí)主機(jī)的端口,在確定該SWl-Portl端口是允許學(xué)習(xí)主機(jī)的端口時(shí),學(xué)習(xí)發(fā)送ARP請(qǐng)求報(bào)文的主機(jī)的主機(jī)信息,即學(xué)習(xí)Hostl的源IP地址,源MAC地址以及接收所述ARP請(qǐng)求報(bào)文的源交換機(jī)的端口(SWl-Portl)等主機(jī)信肩、O
[0036]在控制設(shè)備對(duì)發(fā)送該ARP請(qǐng)求報(bào)文的主機(jī)進(jìn)行學(xué)習(xí)后,傳統(tǒng)的做法是將該ARP請(qǐng)求報(bào)文下發(fā)至源交換機(jī),由源交換機(jī)對(duì)該ARP請(qǐng)求報(bào)文廣播,除接收該ARP請(qǐng)求報(bào)文的源交換機(jī)端口 SWl-Portl外,所有交換機(jī)的端口都會(huì)接收并轉(zhuǎn)發(fā)該ARP請(qǐng)求報(bào)文。這樣,交換機(jī)上禁止學(xué)習(xí)主機(jī)的端口同樣會(huì)接收到與其連接的交換機(jī)泛洪的ARP請(qǐng)求報(bào)文。由于在首次學(xué)習(xí)進(jìn)行ARP學(xué)習(xí)時(shí),各交換機(jī)均未保存與該ARP請(qǐng)求報(bào)文所請(qǐng)求的目的主機(jī)對(duì)應(yīng)的流表項(xiàng),因此每個(gè)交換機(jī)在接收到該ARP請(qǐng)求報(bào)文后都會(huì)命中Table Miss流表項(xiàng),并將該ARP請(qǐng)求報(bào)文再次上送至控制設(shè)備,控制設(shè)備會(huì)從所有交換機(jī)接收相同的ARP請(qǐng)求報(bào)文。此時(shí),由于控制設(shè)備與SW2斷開(kāi)連接,為了避免控制設(shè)備在接收到SW3上送的ARP請(qǐng)求報(bào)文后,學(xué)習(xí)到錯(cuò)誤的主機(jī)信息,本發(fā)明實(shí)施例提供的主機(jī)學(xué)習(xí)方法在控制設(shè)備將ARP請(qǐng)求報(bào)文進(jìn)行泛洪時(shí),首先將ARP請(qǐng)求報(bào)文封裝至Packet out報(bào)文中下發(fā)至交換機(jī),該P(yáng)acket out報(bào)文中攜帶有各交換機(jī)中允許學(xué)習(xí)主機(jī)的端口的集合,可指示交換機(jī)將該P(yáng)acket out報(bào)文通過(guò)各交換機(jī)上允許學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪,不會(huì)再經(jīng)由各交換機(jī)的禁止學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪。由此,可以避免在控制設(shè)備與SW2斷開(kāi)連接時(shí),控制設(shè)備學(xué)習(xí)到錯(cuò)誤的主機(jī)信息的問(wèn)題。并且,交換機(jī)將需要泛洪的報(bào)文僅通過(guò)各交換機(jī)的允許學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪,可以減少SDN網(wǎng)絡(luò)中廣播報(bào)文和未知報(bào)文的泛洪量。
[0037]目前,SDN技術(shù)中最為流行的是OpenFlow(開(kāi)放流)協(xié)議,以下將以O(shè)penFlow協(xié)議為例進(jìn)行說(shuō)明,需要說(shuō)明的是,本申請(qǐng)并不排除其他能夠?qū)崿F(xiàn)SDN功能的協(xié)議。
[0038]參見(jiàn)圖3,為本發(fā)明主機(jī)學(xué)習(xí)方法的另一個(gè)實(shí)施例流程圖,該實(shí)施例通過(guò)控制設(shè)備與交換機(jī)之間的交互詳細(xì)描述了主機(jī)學(xué)習(xí)過(guò)程,包括以下步驟:
[0039]步驟301,控制設(shè)備接收OpenFlow交換機(jī)上送的端口狀態(tài)報(bào)文;
[0040]在OpenFlow交換機(jī)檢測(cè)到自身端口狀態(tài)發(fā)生變化時(shí),例如端口由允許學(xué)習(xí)主機(jī)的端口狀態(tài)變?yōu)榻箤W(xué)習(xí)主機(jī)的端口,或者由禁止學(xué)習(xí)主機(jī)的端口狀態(tài)變?yōu)樵试S學(xué)習(xí)主機(jī)的端口,則通過(guò)發(fā)送攜帶有端口配置標(biāo)記位的端口狀態(tài)報(bào)文向控制設(shè)備通告該變化。控制設(shè)備接收到該端口狀態(tài)報(bào)文后即說(shuō)明傳輸所述端口狀態(tài)報(bào)文的OpenFlow交換機(jī)端口發(fā)生變化。
[0041]步驟302,控制設(shè)備判斷傳輸所述端口狀態(tài)報(bào)文的OpenFlow交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口,若是,則執(zhí)行步驟303,若否,則執(zhí)行步驟304。
[0042]控制設(shè)備在接收到OpenFlow交換機(jī)上送的端口狀態(tài)報(bào)文后,可根據(jù)上述OpenFlow交換機(jī)上送端口狀態(tài)報(bào)文時(shí)對(duì)端口配置標(biāo)記位(config字段的第8比特位)是否攜帶禁止學(xué)習(xí)標(biāo)識(shí)來(lái)確定傳輸所述端口狀態(tài)報(bào)文的OpenFlow交換機(jī)端口是允許學(xué)習(xí)主機(jī)的端口或是禁止學(xué)習(xí)主機(jī)的端口。
[0043]若端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位為空(config字段的第8比特位不攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí)),則執(zhí)行步驟303,判斷該OpenFlow交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口。
[0044]若端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位攜帶禁止學(xué)習(xí)標(biāo)識(shí)(config字段的第8比特位中攜帶0FPPC_N0_LEARNH0ST標(biāo)識(shí)),執(zhí)行步驟304,確定所述OpenFlow交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口。
[0045]步驟305,控制設(shè)備刪除與禁止學(xué)習(xí)主機(jī)的端口對(duì)應(yīng)的所有主機(jī)信息;
[0046]在判斷該OpenFlow交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口時(shí),刪除保存的與該端口對(duì)應(yīng)的所有主機(jī)信息,以禁止通過(guò)該端口進(jìn)行主機(jī)學(xué)習(xí)。
[0047]步驟306,控制設(shè)備保存各OpenFlow交換機(jī)端口上送的端口狀態(tài);
[0048]在控制設(shè)備通過(guò)OpenFlow交換機(jī)發(fā)送的端口狀態(tài)報(bào)文確定出所述OpenFlow交換機(jī)端口的狀態(tài)后,無(wú)論是禁止學(xué)習(xí)主機(jī)的端口還是允許學(xué)習(xí)主機(jī)的端口,均可以保存該OpenFlow交換機(jī)端口與端口狀態(tài)的對(duì)應(yīng)關(guān)系。
[0049]步驟307,控制設(shè)備接收OpenFlow交換機(jī)上送的協(xié)議報(bào)文;
[0050]步驟308,控制設(shè)備判斷傳輸該協(xié)議報(bào)文的OpenFlow交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口。
[0051]接收到OpenFlow交換機(jī)上送的協(xié)議報(bào)文后,根據(jù)控制設(shè)備保存的各OpenFlow交換機(jī)端口與端口狀態(tài)對(duì)應(yīng)關(guān)系判斷傳輸該協(xié)議報(bào)文的OpenFlow交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口,若是執(zhí)行步驟309,控制設(shè)備學(xué)習(xí)發(fā)送該協(xié)議報(bào)文的主機(jī)的源IP地址,源MAC地址以及接收所述協(xié)議報(bào)文的源OpenFlow交換機(jī)的端口等主機(jī)信息;
[0052]否則執(zhí)行步驟310,不對(duì)經(jīng)由禁止學(xué)主機(jī)端口上送報(bào)文的主機(jī)進(jìn)行主機(jī)學(xué)習(xí)。
[0053]步驟311,控制設(shè)備接收的協(xié)議報(bào)文是否為匹配OpenFlow交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文。
[0054]若控制設(shè)備接收的協(xié)議報(bào)文為匹配OpenFlow交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文時(shí),例如匹配到Table Miss表項(xiàng)的協(xié)議報(bào)文,則會(huì)由OpenFlow交換機(jī)將該協(xié)議報(bào)文封裝至Packet in報(bào)文中上送至控制設(shè)備。
[0055]步驟312,控制設(shè)備指示OpenFlow交換機(jī)將該協(xié)議報(bào)文通過(guò)允許學(xué)習(xí)主機(jī)的端口泛洪。
[0056]控制設(shè)備將協(xié)議報(bào)文進(jìn)行泛洪時(shí),首先將協(xié)議報(bào)文封裝至Packet out報(bào)文中下發(fā)至OpenFlow交換機(jī),該P(yáng)acket out報(bào)文中攜帶有各OpenFlow交換機(jī)中允許學(xué)習(xí)主機(jī)的端口的集合,可指示OpenFlow交換機(jī)將該P(yáng)acket out報(bào)文通過(guò)各OpenFlow交換機(jī)的允許學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪,不會(huì)再經(jīng)由各OpenFlow交換機(jī)的禁止學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪。從而保證控制設(shè)備學(xué)習(xí)到的主機(jī)信息都是正確的主機(jī)信息,還大幅減少了 SDN網(wǎng)絡(luò)中廣播報(bào)文和未知報(bào)文的泛洪量。
[0057]與本發(fā)明主機(jī)學(xué)習(xí)方法的實(shí)施例相對(duì)應(yīng),本發(fā)明還提供了主機(jī)學(xué)習(xí)裝置的實(shí)施例。
[0058]本發(fā)明主機(jī)學(xué)習(xí)裝置的實(shí)施例可以應(yīng)用在SDN中的控制設(shè)備上。該裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖4所示,為本發(fā)明主機(jī)學(xué)習(xí)裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖4所示的CPU、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等;從硬件結(jié)構(gòu)上來(lái)講該設(shè)備還可能是分布式的設(shè)備,可能包括多個(gè)接口卡,以便在硬件層面進(jìn)行報(bào)文處理的擴(kuò)展。
[0059]參見(jiàn)圖5,為本發(fā)明主機(jī)學(xué)習(xí)裝置的實(shí)施例結(jié)構(gòu)示意圖,其從本質(zhì)上說(shuō)該裝置是一個(gè)邏輯裝置。在本實(shí)施方式中,以軟件實(shí)現(xiàn)為例,該主機(jī)學(xué)習(xí)裝置在邏輯層面上可以包括:報(bào)文接收單元501、端口狀態(tài)確定單元502以及主機(jī)學(xué)習(xí)單元503。其中:
[0060]報(bào)文接收單元501,用于接收交換機(jī)上送的端口狀態(tài)報(bào)文;
[0061 ] 端口狀態(tài)確定單元502,用于通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口;
[0062]主機(jī)學(xué)習(xí)單元503,用于在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
[0063]進(jìn)一步地,所述裝置還可以包括信息刪除單元504,信息刪除單元504用于在確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口時(shí),刪除保存的與所述交換機(jī)端口對(duì)應(yīng)的主機(jī)信肩、O
[0064]進(jìn)一步地,所述裝置還可以包括報(bào)文泛洪單元505,報(bào)文泛洪單元505用于在接收的協(xié)議報(bào)文為匹配交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文時(shí),指示各交換機(jī)將所述協(xié)議報(bào)文通過(guò)所述交換機(jī)允許學(xué)習(xí)主機(jī)的端口泛洪。
[0065]進(jìn)一步地,所述裝置還可以包括端口狀態(tài)修改單元506,端口狀態(tài)修改單元506用于在所述控制設(shè)備將所述交換機(jī)的允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口時(shí),向所述交換機(jī)端口發(fā)送端口狀態(tài)更新報(bào)文,所述端口狀態(tài)更新報(bào)文包括禁止學(xué)習(xí)標(biāo)識(shí),以使所述交換機(jī)根據(jù)所述禁止學(xué)習(xí)標(biāo)識(shí)將將所述允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口。
[0066]參見(jiàn)圖6,為圖5中端口狀態(tài)確定單元的實(shí)施例結(jié)構(gòu)示意圖,所述端口狀態(tài)確定單元502具體可以包括:端口判斷子單元5021以及狀態(tài)確定子單元5022。其中:
[0067]端口判斷子單元5021,用于判斷所述端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位是否為空;狀態(tài)確定子單元5022,用于在所述端口配置標(biāo)記位為空時(shí),確定所述交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口 ;若判斷所述端口配置標(biāo)記位攜帶有禁止學(xué)習(xí)標(biāo)識(shí),確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口。
[0068]從以上各種方法和裝置的實(shí)施方式中可以看出,本發(fā)明通過(guò)交換機(jī)上送的端口狀態(tài)報(bào)文確定出傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口,并在接收到經(jīng)由允許學(xué)習(xí)主機(jī)的端口上送的協(xié)議報(bào)文時(shí),學(xué)習(xí)所述協(xié)議報(bào)文中攜帶的主機(jī)信息??梢?jiàn),本發(fā)明能有效避免主機(jī)遷移的問(wèn)題,并保證控制設(shè)備學(xué)習(xí)到正確的主機(jī)信息。同時(shí),在對(duì)需要泛洪的報(bào)文泛洪時(shí),僅通過(guò)各交換機(jī)的允許學(xué)習(xí)主機(jī)的端口進(jìn)行泛洪,可大幅減少SDN網(wǎng)絡(luò)中廣播報(bào)文和未知報(bào)文的泛洪量。
[0069]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種主機(jī)學(xué)習(xí)方法,應(yīng)用于軟件定義網(wǎng)絡(luò)SDN網(wǎng)絡(luò)中的控制設(shè)備,其特征在于,所述方法包括: 接收交換機(jī)上送的端口狀態(tài)報(bào)文; 通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口 ; 在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過(guò)端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口具體為: 判斷所述端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位是否為空; 若所述端口配置標(biāo)記位為空,確定所述交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口 ;若判斷所述端口配置標(biāo)記位攜帶有禁止學(xué)習(xí)標(biāo)識(shí),確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口。
3.如權(quán)利要求1所述的方法,其特征在于,在所述通過(guò)端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口后,所述方法還包括: 若確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口,則刪除保存的與所述交換機(jī)端口對(duì)應(yīng)的主機(jī)信息。
4.如權(quán)利要求1所述的方法,其特征在于,在接收到交換機(jī)上送的協(xié)議報(bào)文后,所述方法還包括: 若接收的協(xié)議報(bào)文為匹配交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文,則指示各交換機(jī)將所述協(xié)議報(bào)文通過(guò)所述交換機(jī)允許學(xué)習(xí)主機(jī)的端口泛洪。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在所述控制設(shè)備要將所述交換機(jī)上允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口時(shí),向所述交換機(jī)發(fā)送端口狀態(tài)更新報(bào)文,所述端口狀態(tài)更新報(bào)文中包括禁止學(xué)習(xí)標(biāo)識(shí),以使所述交換機(jī)根據(jù)所述禁止學(xué)習(xí)標(biāo)識(shí)將將所述允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口。
6.一種主機(jī)學(xué)習(xí)裝置,應(yīng)用于SDN網(wǎng)絡(luò)中的控制設(shè)備,其特征在于,所述裝置包括: 報(bào)文接收單元,用于接收交換機(jī)上送的端口狀態(tài)報(bào)文; 端口狀態(tài)確定單元,用于通過(guò)所述端口狀態(tài)報(bào)文確定傳輸所述端口狀態(tài)報(bào)文的交換機(jī)端口是否為允許學(xué)習(xí)主機(jī)的端口; 主機(jī)學(xué)習(xí)單元,用于在接收到所述交換機(jī)上送的協(xié)議報(bào)文時(shí),若接收所述協(xié)議報(bào)文的交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口,則學(xué)習(xí)發(fā)送所述協(xié)議報(bào)文的主機(jī)的主機(jī)信息。
7.如權(quán)利要求6所述的裝置,其特征在于,所述端口狀態(tài)確定單元具體包括: 端口判斷子單元,用于判斷所述端口狀態(tài)報(bào)文中攜帶的端口配置標(biāo)記位是否為空; 狀態(tài)確定子單元,用于在判斷所述端口配置標(biāo)記位為空時(shí),確定所述交換機(jī)端口為允許學(xué)習(xí)主機(jī)的端口 ;在判斷所述端口配置標(biāo)記位攜帶有禁止學(xué)習(xí)標(biāo)識(shí)時(shí),確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口。
8.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 信息刪除單元,用于在確定所述交換機(jī)端口為禁止學(xué)習(xí)主機(jī)的端口時(shí),刪除保存的與所述交換機(jī)端口對(duì)應(yīng)的主機(jī)信息。
9.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 報(bào)文泛洪單元,用于在接收的協(xié)議報(bào)文為匹配交換機(jī)中缺省轉(zhuǎn)發(fā)表項(xiàng)的協(xié)議報(bào)文時(shí),指示各交換機(jī)將所述協(xié)議報(bào)文通過(guò)所述交換機(jī)允許學(xué)習(xí)主機(jī)的端口泛洪。
10.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 端口狀態(tài)修改單元,用于在所述控制設(shè)備要將所述交換機(jī)的允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口時(shí),向所述交換機(jī)端口發(fā)送端口狀態(tài)更新報(bào)文,所述端口狀態(tài)更新報(bào)文包括禁止學(xué)習(xí)標(biāo)識(shí),以使所述交換機(jī)根據(jù)所述禁止學(xué)習(xí)標(biāo)識(shí)將將所述允許學(xué)習(xí)主機(jī)的端口修改為禁止學(xué)習(xí)主機(jī)的端口。
【文檔編號(hào)】H04L12/741GK104243316SQ201410499391
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年9月25日 優(yōu)先權(quán)日:2014年9月25日
【發(fā)明者】宋小恒 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
牙克石市| 宜阳县| 长白| 色达县| 田林县| 格尔木市| 历史| 呈贡县| 宁安市| 枣强县| 银川市| 三明市| 霞浦县| 福海县| 麟游县| 郯城县| 台东市| 邵阳市| 呼和浩特市| 赣榆县| 酉阳| 东乡族自治县| 鲁山县| 淮滨县| 无锡市| 株洲县| 墨脱县| 柳河县| 屯留县| 禹城市| 五莲县| 辉南县| 漠河县| 万宁市| 和平区| 青阳县| 通化市| 农安县| 都昌县| 盘锦市| 东乡|