一種控制器的自動發(fā)現(xiàn)和配置方法和設(shè)備的制作方法【專利摘要】本發(fā)明實施例公開了一種控制器的自動發(fā)現(xiàn)和配置方法和設(shè)備,通過應(yīng)用本發(fā)明實施例所提出的技術(shù)方案,在交換機(jī)上使能一種自動發(fā)現(xiàn)控制器的能力,通過向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文的方式,同步自身與該控制器上的ARP表項,并根據(jù)該表項建立Openflow會話,控制器通過該Openflow會話自動向交換機(jī)下發(fā)該交換機(jī)所應(yīng)歸屬的主控制器和備控制器的信息,從而,可以實現(xiàn)交換機(jī)對于新增控制器的自動發(fā)現(xiàn)功能,并且,可以由控制器按照負(fù)載均分等原則調(diào)整交換機(jī)所應(yīng)歸屬的主控制器和備控制器,實現(xiàn)交換機(jī)所歸屬備份組的自動配置功能?!緦@f明】一種控制器的自動發(fā)現(xiàn)和配置方法和設(shè)備【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及通信【
技術(shù)領(lǐng)域:
】,特別涉及一種控制器的自動發(fā)現(xiàn)和配置方法和設(shè)備?!?br>背景技術(shù):
】[0002]OpenFlow是SDN(SoftwareDefinedNetwork,軟件定義網(wǎng)絡(luò))架構(gòu)中定義的一個控制器與轉(zhuǎn)發(fā)層之間的通信接口標(biāo)準(zhǔn)。OpenFlow允許直接訪問和操作網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面,這些網(wǎng)絡(luò)設(shè)備可能是物理上的,也可能是虛擬的。[0003]OpenFlow的思想是分離控制平面和數(shù)據(jù)平面,二者之間使用標(biāo)準(zhǔn)的協(xié)議通信;數(shù)據(jù)平面采用基于流的方式進(jìn)行轉(zhuǎn)發(fā)。[0004]OpenFlow網(wǎng)絡(luò)由OpenFlowSwitch(OpenFlow網(wǎng)絡(luò)設(shè)備)和OpenFlowController(OpenFlow控制器)通過OpenFlowChannel(OpenFlow通道)組成的,如圖1所示,為現(xiàn)有技術(shù)中OpenFlow網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。[0005]OpenFlow控制器是控制中心,根據(jù)用戶的配置或者動態(tài)運(yùn)行的協(xié)議生成流表發(fā)送到OpenFlow設(shè)備。控制器上可能運(yùn)行實驗程序,或者第三方開發(fā)的軟件等等。[0006]OpenFlow網(wǎng)絡(luò)設(shè)備接收OpenFlow控制器設(shè)置的流表,并根據(jù)流表進(jìn)行報文處理,向OpenFlow控制器上報設(shè)備的狀態(tài)和事件如接口UP/D0WN。在OpenFlow網(wǎng)絡(luò)設(shè)備和OpenFlow控制器之間通過OpenFlow通道(基于TCP或者SSL)進(jìn)行通信。[0007]由于OpenFlow可以基于流對網(wǎng)絡(luò)進(jìn)行編程,因此,基于OpenFlow的SDN架構(gòu)能夠提供相當(dāng)精細(xì)力度的控制,實現(xiàn)網(wǎng)絡(luò)在應(yīng)用、用戶和會話級別上變更的實時響應(yīng)。而當(dāng)前基于IP的路由方式是不能提供這種級別上的控制的。[0008]如圖2所不,為現(xiàn)有技術(shù)中OpenFlow轉(zhuǎn)發(fā)流程的不意圖。報文在進(jìn)入設(shè)備后從最小的FlowTable開始查表,可以進(jìn)行多個流表的查詢,一旦在某個流表匹配到后,會更新此報文的動作集Act1nSet,動作集即動作的集合,初始為空,對報文的操作都放在這個集合里。完成最后一個流表的處理后,動作集內(nèi)的所有動作會被執(zhí)行,此時報文的內(nèi)容會被修改,然后從指定出接口轉(zhuǎn)發(fā)出去。[0009]目前,Openflow網(wǎng)絡(luò)中的交換機(jī)跟SDNController建立連接,需要在交換機(jī)上進(jìn)行Controller地址的配置,配置完成之后,會觸發(fā)交換機(jī)和Controller之間建立TCP的連接,TCP建立完成之后,才會建立Openflow實例的會話。[0010]如圖3所示,為現(xiàn)有技術(shù)中一個Cont1ller的控制器集群的示意圖,里面有4臺設(shè)備。[0011]如圖4所示,為圖3中所示的Controller的控制器集群的具體結(jié)構(gòu)示意圖,可以看出,4臺設(shè)備分配成了2個備份組。[0012]如圖5所示,為圖4中所示的Controller的控制器集群中的備份組的詳細(xì)信息的示意圖。[0013]其中,Controller控制的一臺設(shè)備上面的Openflow的配置[0014][XXX-of-1nst-1]disthis#openflowinstanceIdefaulttable-misspermitflow-tablemac-1p0classificat1nglobalcontroller0addressip192.168.212.100controllerIaddressip192.168.212.101#return[XXX-of-1nst-1]disopenflowinstanceIcontrollerInstanceIcontrollerinformat1n:Reconnectinterval:60(s)Echointerval;5(s)[0015]ControllerID:0ControllerIPaddress:192.168.212.100Controllerport:6633Controllerrole:SlaveConnecttype:TCPConnectstate:EstablishedPacketssent:5636Packetsreceived:5936SSLpolicy:--VRFname:-ControllerID:1ControllerIPaddress;192.168.212.101Controllerport:6633ControHerrole;MasterConnecttype:TCPConnectstate:EstablishedPacketssent:484Packetsreceived;777SSLpolicy:--VRFname:--[0016]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:[0017]目前SDNController為了提高可靠性,采用集群的方式,當(dāng)集群數(shù)目過多的時候,就目前的方式需要在所有的交換機(jī)上都進(jìn)行Cont1ller的地址的配置,當(dāng)集群中加入新的Controller,還是需要在交換機(jī)上進(jìn)行ControllerIP地址的控制。而且設(shè)備上面的地址配置連接的2個Cont1ller必須是同一個備份組,如果配置錯誤了就會導(dǎo)致出現(xiàn)問題。當(dāng)Controller的備份組出現(xiàn)配置變化的時候,設(shè)備上面的配置要相應(yīng)的進(jìn)行配置改變,這樣極大的增加了用戶的使用難度。【
發(fā)明內(nèi)容】[0018]本發(fā)明實施例提供一種控制器的自動發(fā)現(xiàn)和配置方法和設(shè)備,解決現(xiàn)有的控制器信息需要在交換機(jī)上逐一配置而導(dǎo)致的配置過程繁瑣,更新困難的問題。[0019]為達(dá)到上述目的,本發(fā)明實施例一方面提供了一種SDN控制器的自動發(fā)現(xiàn)和配置方法,所述方法包括:[0020]在交換機(jī)的直連接口配置了IP地址之后,所述交換機(jī)通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文;[0021]在所述自動發(fā)現(xiàn)的控制器確定當(dāng)前本地映射表中沒有所述免費ARP報文所對應(yīng)的ARP表項時,所述交換機(jī)接收所述自動發(fā)現(xiàn)的控制器返回的ARP協(xié)議報文,并學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項;[0022]如果所述交換機(jī)當(dāng)前不存在Openflow會話,所述交換機(jī)根據(jù)學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話;[0023]所述交換機(jī)通過所述Openflow會話接收所述自動發(fā)現(xiàn)的控制器所配置的備份組信息,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息;[0024]所述交換機(jī)與所述備份組信息所對應(yīng)的控制器建立連接,并結(jié)束與所述自動發(fā)現(xiàn)的控制器之間的Openflow會話。[0025]另一方面,本發(fā)明實施例還提供了一種交換機(jī),包括:[0026]發(fā)送模塊,用于在所述交換機(jī)的直連接口配置了IP地址之后,通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文;[0027]學(xué)習(xí)模塊,用于在所述自動發(fā)現(xiàn)的控制器確定當(dāng)前本地映射表中沒有所述免費ARP報文所對應(yīng)的ARP表項時,接收所述自動發(fā)現(xiàn)的控制器返回的ARP協(xié)議報文,并學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項;[0028]判斷模塊,用于在所述學(xué)習(xí)模塊學(xué)習(xí)到新的ARP表項后,判斷所述交換機(jī)當(dāng)前是否存在Openflow會話;[0029]會話建立模塊,用于在所述判斷模塊判斷所述交換機(jī)當(dāng)前不存在Openflow會話時,根據(jù)所述學(xué)習(xí)模塊學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話;[0030]接收模塊,用于通過所述會話建立模塊所建立的Openflow會話接收所述自動發(fā)現(xiàn)的控制器所配置的備份組信息,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息;[0031]連接建立模塊,用于根據(jù)所述接收模塊所接收到的備份組信息,與對應(yīng)的控制器建立連接,并結(jié)束所述會話建立模塊所建立的與所述自動發(fā)現(xiàn)的控制器之間的Openflow會話。[0032]另一方面,本發(fā)明實施例還提供了一種控制器,包括:[0033]接收模塊,用于接收交換機(jī)發(fā)送的免費ARP報文;[0034]判斷模塊,用于判斷當(dāng)前本地映射表中是否存在所述免費ARP報文所對應(yīng)的ARP表項,如果存在,則結(jié)束當(dāng)前操作;[0035]處理模塊,用于在所述判斷模塊的判斷結(jié)果為存在時結(jié)束當(dāng)前操作,或在所述判斷模塊的判斷結(jié)果為不存在時,將所述免費ARP報文所對應(yīng)的ARP表項添加到本地映射表中;[0036]發(fā)送模塊,用于在所述處理模塊添加了新的ARP表項后,向發(fā)送所述免費ARP報文的交換機(jī)發(fā)送與所述ARP表項相對應(yīng)的ARP協(xié)議報文。[0037]與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提出的技術(shù)方案具有以下優(yōu)點:[0038]通過應(yīng)用本發(fā)明實施例所提出的技術(shù)方案,在交換機(jī)上使能一種自動發(fā)現(xiàn)控制器的能力,通過向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文的方式,同步自身與該控制器上的ARP表項,并根據(jù)該表項建立Openflow會話,控制器通過該Openflow會話自動向交換機(jī)下發(fā)該交換機(jī)所應(yīng)歸屬的主控制器和備控制器的信息,從而,可以實現(xiàn)交換機(jī)對于新增控制器的自動發(fā)現(xiàn)功能,并且,可以由控制器按照負(fù)載均分等原則調(diào)整交換機(jī)所應(yīng)歸屬的主控制器和備控制器,實現(xiàn)交換機(jī)所歸屬備份組的自動配置功能?!緦@綀D】【附圖說明】[0039]圖1為現(xiàn)有技術(shù)中OpenFlow網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;[0040]圖2為現(xiàn)有技術(shù)中OpenFlow轉(zhuǎn)發(fā)流程的示意圖;[0041]圖3為現(xiàn)有技術(shù)中一個Controller的控制器集群的示意圖;[0042]圖4為圖3中所示的Controller的控制器集群的具體結(jié)構(gòu)示意圖;[0043]圖5為圖4中所示的Controller的控制器集群中的備份組的詳細(xì)信息的示意圖;[0044]圖6為本發(fā)明實施例所提出的一種控制器的自動發(fā)現(xiàn)和配置方法的流程示意圖;[0045]圖7為本發(fā)明實施例所提出的一種交換機(jī)與自動發(fā)現(xiàn)的控制器之間進(jìn)行ARP表項同步的流程示意圖;[0046]圖8為本發(fā)明實施例所提出的一種交換機(jī)與自動發(fā)現(xiàn)的控制器之間進(jìn)行Openflow會話建立的流程示意圖;[0047]圖9為本發(fā)明實施例所提出的一種交換機(jī)的結(jié)構(gòu)示意圖;[0048]圖10為本發(fā)明實施例所提出的一種控制器的結(jié)構(gòu)示意圖?!揪唧w實施方式】[0049]如【
背景技術(shù):
】所述,現(xiàn)有的控制其配置方案過程繁瑣,更新不便,為了解決這樣的問題,本發(fā)明提出了一種控制器的自動發(fā)現(xiàn)和配置方法,在交換機(jī)上使能一種自動發(fā)現(xiàn)控制器的能力,通過向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文的方式,同步自身與該控制器上的ARP表項,并根據(jù)該表項建立Openflow會話,控制器通過該Openflow會話自動向交換機(jī)下發(fā)該交換機(jī)所應(yīng)歸屬的主控制器和備控制器的信息,實現(xiàn)交換機(jī)對于新增控制器的自動發(fā)現(xiàn)功能,以及控制器的自動分配功能。[0050]如圖6所示,為本發(fā)明實施例所提出的一種控制器的自動發(fā)現(xiàn)和配置方法的流程示意圖,該方法具體包括以下步驟:[0051]步驟S601、在交換機(jī)的直連接口配置了IP地址之后,所述交換機(jī)通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文。[0052]具體的,本方案可以實現(xiàn)在現(xiàn)有SDN組網(wǎng)中,在交換機(jī)配置Openflow的時候,配置Controller自動發(fā)現(xiàn)功能,具體的處理方式是新增加一條命令controllerIaddressautodiscovery,用來支持可以自動發(fā)現(xiàn)Controller并下發(fā)配置的能力。當(dāng)然,這樣的操作需要在本步驟中所提及的交換機(jī)的直連接口配置IP地址之前。[0053]在Openflow的視圖下:[0054]openflowinstance100[0055]defaulttable-misspermit[0056]flow-tablemac-1pI[0057]controllerIaddressautodiscovery。[0058]需要進(jìn)一步說明的是,在所述交換機(jī)通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文之后,在控制器側(cè),需要進(jìn)行以下的處理:[0059]所述自動發(fā)現(xiàn)的控制器判斷當(dāng)前本地映射表中是否存在所述免費ARP報文所對應(yīng)的ARP表項。[0060]如果存在,則結(jié)束當(dāng)前操作。[0061]如果不存在,則將所述免費ARP報文所對應(yīng)的ARP表項添加到本地映射表中,并向所述交換機(jī)發(fā)送與所述ARP表項相對應(yīng)的ARP協(xié)議報文,然后執(zhí)行步驟S602。[0062]步驟S602、所述交換機(jī)接收所述自動發(fā)現(xiàn)的控制器返回的ARP協(xié)議報文,并學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項。[0063]所述交換機(jī)學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項之后,遍歷本地當(dāng)前狀態(tài),判斷當(dāng)前是否已經(jīng)存在Openflow會話。[0064]如果存在,則結(jié)束當(dāng)前操作,即不用觸發(fā)進(jìn)行TCP連接的創(chuàng)建,從而,可以保證在交換機(jī)中,只要有一個Openflow會話建立成功,后續(xù)學(xué)習(xí)到ARP表項的時候,就不會再去觸發(fā)建立TCP連接。[0065]如果不存在,則執(zhí)行步驟S603。[0066]其中,當(dāng)所述交換機(jī)中的多個直連端口都在同時嘗試進(jìn)行TCP連接的建立時,如果其中的任何一個TCP連接建立成功,則所述交換機(jī)結(jié)束其他直連端口的嘗試建立TCP連接的過程。[0067]如果所述交換機(jī)當(dāng)前不存在Openflow會話,則執(zhí)行步驟S603。[0068]步驟S603、所述交換機(jī)根據(jù)學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話。[0069]則根據(jù)學(xué)習(xí)到的所述ARP表項嘗試與所述自動發(fā)現(xiàn)的控制器建立TCP連接,并在所述TCP連接建立成功后觸發(fā)Openflow會話。[0070]步驟S604、所述交換機(jī)通過所述Openflow會話接收所述自動發(fā)現(xiàn)的控制器所配置的備份組信息。[0071]具體的,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息。[0072]具體的配置信息的確定過程如下:[0073]所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的DPID,利用哈希算法確定所述交換機(jī)所歸屬的主控制器和備控制器,并使用netconfig協(xié)議向所述交換機(jī)下發(fā)包含所述主控制器和備控制器的信息的備份組信息。[0074]在具體的應(yīng)用場景中,一旦交換機(jī)和ControlIer建立好I個連接之后,Controller根據(jù)設(shè)備的DPID利用哈希算法計算出這臺設(shè)備屬于哪個主備組(這個哈希算法用戶可以自己定義,用來對設(shè)備控制進(jìn)行負(fù)載分擔(dān)),然后使用netconfig協(xié)議對設(shè)備自動下發(fā)連接。[0075]具體的,這個主備組的配置示例如下:[0076]controllerOaddressip192.168.212.100[0077]controllerIaddressip192.168.212.101[0078]步驟S605、所述交換機(jī)與所述備份組信息所對應(yīng)的控制器建立連接,并結(jié)束與所述自動發(fā)現(xiàn)的控制器之間的Openflow會話。[0079]等設(shè)備和這個備份組真正建立好連接之后,斷開之前與自動發(fā)現(xiàn)的控制器之間的那個連接,后面就使用這個備份組來對交換機(jī)進(jìn)行控制。[0080]與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提出的技術(shù)方案具有以下優(yōu)點:[0081]通過應(yīng)用本發(fā)明實施例所提出的技術(shù)方案,在交換機(jī)上使能一種自動發(fā)現(xiàn)控制器的能力,通過向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文的方式,同步自身與該控制器上的ARP表項,并根據(jù)該表項建立Openflow會話,控制器通過該Openflow會話自動向交換機(jī)下發(fā)該交換機(jī)所應(yīng)歸屬的主控制器和備控制器的信息,從而,可以實現(xiàn)交換機(jī)對于新增控制器的自動發(fā)現(xiàn)功能,并且,可以由控制器按照負(fù)載均分等原則調(diào)整交換機(jī)所應(yīng)歸屬的主控制器和備控制器,實現(xiàn)交換機(jī)所歸屬備份組的自動配置功能。[0082]為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的應(yīng)用場景,對本發(fā)明的技術(shù)方案進(jìn)行說明。[0083]首先,在對于自動發(fā)現(xiàn)的控制器進(jìn)行會話匹配的過程中,本法發(fā)明實施例采用了建立Openflow會話的方式,OpenFlow會話通過用戶定義的流表(FlowTable)來匹配和處理報文。所有流表項都被組織在不同的FlowTable中,在同一個FlowTable中按流表項的優(yōu)先級進(jìn)行先后匹配。一個OpenFlow網(wǎng)絡(luò)設(shè)備可以包含一個或者多個FlowTable。[0084]在Controller下發(fā)流表時,協(xié)議報文結(jié)構(gòu)如表1所示:[0085]表1流表結(jié)構(gòu)[0086]【權(quán)利要求】1.一種控制器的自動發(fā)現(xiàn)和配置方法,其特征在于,所述方法包括:在交換機(jī)的直連接口配置了IP地址之后,所述交換機(jī)通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文;在所述自動發(fā)現(xiàn)的控制器確定當(dāng)前本地映射表中沒有所述免費ARP報文所對應(yīng)的ARP表項時,所述交換機(jī)接收所述自動發(fā)現(xiàn)的控制器返回的ARP協(xié)議報文,并學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項;如果所述交換機(jī)當(dāng)前不存在Openflow會話,所述交換機(jī)根據(jù)學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話;所述交換機(jī)通過所述Openflow會話接收所述自動發(fā)現(xiàn)的控制器所配置的備份組信息,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息;所述交換機(jī)與所述備份組信息所對應(yīng)的控制器建立連接,并結(jié)束與所述自動發(fā)現(xiàn)的控制器之間的Openflow會話。2.如權(quán)利要求1所述的方法,其特征在于,在交換機(jī)的直連接口配置了IP地址之前,還包括:在所述交換機(jī)中增加一條命令controllerIaddressautodiscovery,用來支持可以自動發(fā)現(xiàn)控制器并下發(fā)配置的能力。3.如權(quán)利要求1所述的方法,其特征在于,所述交換機(jī)通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文之后,還包括:所述自動發(fā)現(xiàn)的控制器判斷當(dāng)前本地映射表中是否存在所述免費ARP報文所對應(yīng)的ARP表項;如果存在,則結(jié)束當(dāng)前操作;如果不存在,則將所述免費ARP報文所對應(yīng)的ARP表項添加到本地映射表中,并向所述交換機(jī)發(fā)送與所述ARP表項相對應(yīng)的ARP協(xié)議報文。4.如權(quán)利要求1所述的方法,其特征在于,如果所述交換機(jī)當(dāng)前不存在Openflow會話,所述交換機(jī)根據(jù)學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話,具體包括:所述交換機(jī)學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項之后,遍歷本地當(dāng)前狀態(tài),判斷當(dāng)前是否已經(jīng)存在Openflow會話;如果存在,則結(jié)束當(dāng)前操作;如果不存在,則根據(jù)學(xué)習(xí)到的所述ARP表項嘗試與所述自動發(fā)現(xiàn)的控制器建立TCP連接,并在所述TCP連接建立成功后觸發(fā)Openflow會話;其中,當(dāng)所述交換機(jī)中的多個直連端口都在同時嘗試進(jìn)行TCP連接的建立時,如果其中的任何一個TCP連接建立成功,則所述交換機(jī)結(jié)束其他直連端口的嘗試建立TCP連接的過程。5.如權(quán)利要求1所述的方法,其特征在于,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息,具體為:所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的DPID,利用哈希算法確定所述交換機(jī)所歸屬的主控制器和備控制器,并使用netconfig協(xié)議向所述交換機(jī)下發(fā)包含所述主控制器和備控制器的信息的備份組信息。6.一種交換機(jī),其特征在于,包括:發(fā)送模塊,用于在所述交換機(jī)的直連接口配置了IP地址之后,通過所述直連接口向自動發(fā)現(xiàn)的控制器發(fā)送免費ARP報文;學(xué)習(xí)模塊,用于在所述自動發(fā)現(xiàn)的控制器確定當(dāng)前本地映射表中沒有所述免費ARP報文所對應(yīng)的ARP表項時,接收所述自動發(fā)現(xiàn)的控制器返回的ARP協(xié)議報文,并學(xué)習(xí)所述ARP協(xié)議報文所對應(yīng)的ARP表項;判斷模塊,用于在所述學(xué)習(xí)模塊學(xué)習(xí)到新的ARP表項后,判斷所述交換機(jī)當(dāng)前是否存在Openflow會話;會話建立模塊,用于在所述判斷模塊判斷所述交換機(jī)當(dāng)前不存在Openflow會話時,根據(jù)所述學(xué)習(xí)模塊學(xué)習(xí)到的所述ARP表項,與所述自動發(fā)現(xiàn)的控制器建立Openflow會話;接收模塊,用于通過所述會話建立模塊所建立的Openflow會話接收所述自動發(fā)現(xiàn)的控制器所配置的備份組信息,所述備份組信息為所述自動發(fā)現(xiàn)的控制器根據(jù)所述交換機(jī)的信息所確定的所述交換機(jī)所歸屬的主控制器和備控制器的信息;連接建立模塊,用于根據(jù)所述接收模塊所接收到的備份組信息,與對應(yīng)的控制器建立連接,并結(jié)束所述會話建立模塊所建立的與所述自動發(fā)現(xiàn)的控制器之間的Openflow會話。7.如權(quán)利要求6所述的交換機(jī),其特征在于,所述交換機(jī)通過增加一條命令controllerIaddressautodiscovery,來支持可以自動發(fā)現(xiàn)控制器并下發(fā)配置的能力。8.如權(quán)利要求6所述的交換機(jī),其特征在于,所述判斷模塊,具體用于在所述學(xué)習(xí)模塊學(xué)習(xí)到所述ARP協(xié)議報文所對應(yīng)的ARP表項之后,遍歷本地當(dāng)前狀態(tài),判斷當(dāng)前是否已經(jīng)存在Openflow會話;所述會話建立模塊,用于在所述判斷模塊的判斷結(jié)果為存在時結(jié)束當(dāng)前操作,或在所述判斷模塊的判斷結(jié)果為不存在時,根據(jù)學(xué)習(xí)到的所述ARP表項嘗試與所述自動發(fā)現(xiàn)的控制器建立TCP連接,并在所述TCP連接建立成功后觸發(fā)Openflow會話;其中,當(dāng)所述交換機(jī)中的多個直連端口都在同時嘗試進(jìn)行TCP連接的建立時,如果其中的任何一個TCP連接建立成功,則所述會話建立模塊結(jié)束其他直連端口的嘗試建立TCP連接的過程。9.一種控制器,其特征在于,包括:接收模塊,用于接收交換機(jī)發(fā)送的免費ARP報文;判斷模塊,用于判斷當(dāng)前本地映射表中是否存在所述免費ARP報文所對應(yīng)的ARP表項,如果存在,則結(jié)束當(dāng)前操作;處理模塊,用于在所述判斷模塊的判斷結(jié)果為存在時結(jié)束當(dāng)前操作,或在所述判斷模塊的判斷結(jié)果為不存在時,將所述免費ARP報文所對應(yīng)的ARP表項添加到本地映射表中;發(fā)送模塊,用于在所述處理模塊添加了新的ARP表項后,向發(fā)送所述免費ARP報文的交換機(jī)發(fā)送與所述ARP表項相對應(yīng)的ARP協(xié)議報文。10.如權(quán)利要求9所述的控制器,其特征在于,還包括:確定模塊,用于在所述交換機(jī)與所述控制器建立Openflow會話之后,根據(jù)所述交換機(jī)的DPID,利用哈希算法確定所述交換機(jī)所歸屬的主控制器和備控制器;所述發(fā)送模塊,還用于使用netconfig協(xié)議向所述交換機(jī)下發(fā)包含所述確定模塊所確定的所述主控制器和備控制器的信息的備份組信息。【文檔編號】H04L29/08GK104202364SQ201410403927【公開日】2014年12月10日申請日期:2014年8月15日優(yōu)先權(quán)日:2014年8月15日【發(fā)明者】黃李偉,王海申請人:杭州華三通信技術(shù)有限公司