設(shè)置控制信息、建立通信的方法及管理控制器及控制器的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及網(wǎng)絡(luò)通信
技術(shù)領(lǐng)域:
,尤其涉及軟件定義網(wǎng)絡(luò)中的配置、連接方法及管理控制器及控制器?!?br>背景技術(shù):
】[0002]SDN(SoftwareDefinedNetwork)是一種新型的網(wǎng)絡(luò)架構(gòu),它的設(shè)計理念是將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)轉(zhuǎn)發(fā)平面進行分離,并實現(xiàn)可編程化控制。SDN的典型架構(gòu)共分三層,最上層為應(yīng)用層,包括各種不同的業(yè)務(wù)和應(yīng)用;中間的控制層主要負責(zé)處理數(shù)據(jù)平面資源的編排,維護網(wǎng)絡(luò)拓撲、狀態(tài)信息等;最底層的基礎(chǔ)設(shè)施層負責(zé)基于流表(flowtable)的數(shù)據(jù)處理、轉(zhuǎn)發(fā)和狀態(tài)收集。[0003]現(xiàn)有網(wǎng)絡(luò)中,對流量的控制和轉(zhuǎn)發(fā)都依賴于網(wǎng)絡(luò)設(shè)備實現(xiàn),且設(shè)備中集成了與業(yè)務(wù)特性緊耦合的操作系統(tǒng)和專用硬件,這些操作系統(tǒng)和專用硬件都是各個廠家自己開發(fā)和設(shè)計的。而在SDN網(wǎng)絡(luò)中,轉(zhuǎn)發(fā)設(shè)備只負責(zé)單純的數(shù)據(jù)轉(zhuǎn)發(fā),其硬件架構(gòu)將趨向于統(tǒng)一化,其各個部件在各個廠家之間趨向于通用化。而原來負責(zé)路由、安全、策略、QoS、流量工程等的控制平面將由專門的SDN控制器實現(xiàn)。路由、安全、策略、QoS、流量工程等業(yè)務(wù)功能和特性可以通過編程實現(xiàn)。SDN控制器對硬件形態(tài)沒有固定的要求,可以是一個裝置,一個虛擬機或是一個物理服務(wù)器,完全可以采用像x86這樣高性能低成本的通用架構(gòu)。轉(zhuǎn)發(fā)設(shè)備與SDN控制器之間通訊的協(xié)議一般是OpenFlow協(xié)議。轉(zhuǎn)發(fā)設(shè)備與控制器建立連接,使用OpenFlow協(xié)議傳遞信息。[0004]一臺轉(zhuǎn)發(fā)設(shè)備可以與多臺控制器建立連接,這些控制器有不同的身份(role),可以分為MASTER、SLAVE、EQUAL三種。MASTER擁有轉(zhuǎn)發(fā)設(shè)備的全部控制權(quán)限,對于某一臺轉(zhuǎn)發(fā)設(shè)備而言,MASTER控制器是唯一的。SLAVE擁有只讀權(quán)限,可以有多臺控制器為此身份。EQUAL,擁有轉(zhuǎn)發(fā)設(shè)備的全部控制權(quán)限,可以有多臺控制器為此身份。由此可見,控制器與轉(zhuǎn)發(fā)設(shè)備之間存在一種管理關(guān)系,所謂的管理關(guān)系包括:控制器以什么身份與網(wǎng)絡(luò)中的哪些轉(zhuǎn)發(fā)設(shè)備建立連接,也即:轉(zhuǎn)發(fā)設(shè)備與控制器之間的連接關(guān)系和控制器的身份信息。為詳細地說明控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系,下面以一個例子進行說明,請參見圖1:網(wǎng)絡(luò)中存在三臺控制器,分別是第一控制器、第二控制器和第三控制器,網(wǎng)絡(luò)中還存在四臺轉(zhuǎn)發(fā)設(shè)備,分別是第一轉(zhuǎn)發(fā)設(shè)備、第二轉(zhuǎn)發(fā)設(shè)備、第三轉(zhuǎn)發(fā)設(shè)備和第四轉(zhuǎn)發(fā)設(shè)備。第一控制器與第一轉(zhuǎn)發(fā)設(shè)備建立連接,且第一控制器扮演第一轉(zhuǎn)發(fā)設(shè)備的MASTER控制器;第二控制器與第二轉(zhuǎn)發(fā)設(shè)備建立連接,且第二控制器扮演第二轉(zhuǎn)發(fā)設(shè)備的MASTER控制器;第三控制器與第三、第四轉(zhuǎn)發(fā)設(shè)備建立連接,且第三控制器扮演第三和第四轉(zhuǎn)發(fā)設(shè)備的MASTER控制器。則該網(wǎng)絡(luò)中,控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系是:第一控制器以MASTER控制器的身份與第一轉(zhuǎn)發(fā)設(shè)備建立連接;第二控制器以MASTER控制器的身份與第二轉(zhuǎn)發(fā)設(shè)備建立連接;第三控制器以MASTER控制器的身份與第三、第四轉(zhuǎn)發(fā)設(shè)備建立連接。進一步地,如果第三控制器還是第一轉(zhuǎn)發(fā)設(shè)備的SALVE控制器,那么網(wǎng)絡(luò)中的管理關(guān)系還包括:第三控制器以SALVE控制器的身份與第一轉(zhuǎn)發(fā)設(shè)備建立連接。[0005]現(xiàn)有技術(shù)中,各控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系是通過選舉確定的,而且因各控制器是同級關(guān)系,獨立運作,所以各控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系是互不影響的,這樣會導(dǎo)致網(wǎng)絡(luò)中控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系不合理。例如,網(wǎng)絡(luò)中某控制器因性能較好,所以大多數(shù)轉(zhuǎn)發(fā)設(shè)備通過選舉后確定的MASTER控制器(這里以MASTER控制器為例,也可以是其他身份的控制器)都是該控制器,從而導(dǎo)致該控制器的負載超負荷,而網(wǎng)絡(luò)中其他的控制器可能處于閑置的狀態(tài),因各控制器獨立運作,所以各控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系互不影響,所以處于超負荷狀態(tài)的控制器會一直處于超負荷,而處于閑置狀態(tài)的控制器也會一致處于閑置狀態(tài)?!?br/>發(fā)明內(nèi)容】[0006]本發(fā)明要解決的主要技術(shù)問題是,提供設(shè)置控制信息、建立通信的方法及管理控制器及控制器,從而解決現(xiàn)有的軟件定義網(wǎng)絡(luò)中控制器與轉(zhuǎn)發(fā)設(shè)備之間的管理關(guān)系不合理的問題。[0007]為解決上述技術(shù)問題,本發(fā)明提供了一種設(shè)置控制信息的方法,具體包括:管理控制器獲取所在網(wǎng)絡(luò)中控制器及轉(zhuǎn)發(fā)設(shè)備的信息;管理控制器依據(jù)控制器及轉(zhuǎn)發(fā)設(shè)備的信息設(shè)置各控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息;管理控制器將控制信息發(fā)送給對應(yīng)的控制器。[0008]在本發(fā)明的一種實施例中,控制信息包括:管理控制器為控制器分配的轉(zhuǎn)發(fā)設(shè)備的信息;控制器對分配給控制器的轉(zhuǎn)發(fā)設(shè)備的控制權(quán)限。[0009]在本發(fā)明的一種實施例中,在網(wǎng)絡(luò)初始化過程中,管理控制器獲取所在網(wǎng)絡(luò)中控制器及轉(zhuǎn)發(fā)設(shè)備的信息之前還包括:管理控制器與網(wǎng)絡(luò)中發(fā)現(xiàn)的所有轉(zhuǎn)發(fā)設(shè)備建立通信。[0010]在本發(fā)明的一種實施例中,當(dāng)管理控制器獲知以下情況中的至少一種時,管理控制器設(shè)置或更新相應(yīng)控制器的控制信息:[0011]網(wǎng)絡(luò)中新增轉(zhuǎn)發(fā)設(shè)備和/或控制器;[0012]網(wǎng)絡(luò)中有控制器處于閑置狀態(tài);[0013]轉(zhuǎn)發(fā)設(shè)備和/或控制器發(fā)送故障。[0014]在本發(fā)明的一種實施例中,當(dāng)網(wǎng)絡(luò)中新增控制器或有控制器處于閑置狀態(tài)時,管理控制器獲取所在網(wǎng)絡(luò)中控制器及轉(zhuǎn)發(fā)設(shè)備的信息包括:新增控制器或處于閑置狀態(tài)的控制器的信息;管理控制器設(shè)置控制器的控制信息包括:管理控制器依據(jù)控制器和轉(zhuǎn)發(fā)設(shè)備的信息調(diào)整網(wǎng)絡(luò)中已有控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息;為新增控制器或處于閑置狀態(tài)的控制器分配轉(zhuǎn)發(fā)設(shè)備;[0015]當(dāng)網(wǎng)絡(luò)中新增轉(zhuǎn)發(fā)設(shè)備時,管理控制器獲取所在網(wǎng)絡(luò)中控制器及轉(zhuǎn)發(fā)設(shè)備的信息包括:新增轉(zhuǎn)發(fā)設(shè)備的信息;管理控制器設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制權(quán)限包括:管理控制器為新增的轉(zhuǎn)發(fā)設(shè)備指定控制器,并設(shè)置為新增轉(zhuǎn)發(fā)設(shè)備指定的控制器對新增轉(zhuǎn)發(fā)設(shè)備的控制權(quán)限;[0016]當(dāng)網(wǎng)絡(luò)中控制器發(fā)送故障時,管理控制器設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息包括:管理控制器為與發(fā)生故障的控制器連接的轉(zhuǎn)發(fā)設(shè)備指定新的控制器,并設(shè)置新控制器對與發(fā)生故障的控制器連接的轉(zhuǎn)發(fā)設(shè)備的控制權(quán)限。[0017]在本發(fā)明的一種實施例中,管理控制器獲取的網(wǎng)絡(luò)中控制器的信息包括:控制器的負載情況;[0018]管理控制器依據(jù)控制器信息設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息包括:管理控制器依據(jù)負載情況設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息。[0019]在本發(fā)明的一種實施例中,管理控制器獲取的網(wǎng)絡(luò)中各控制器及轉(zhuǎn)發(fā)設(shè)備的信息包括:控制器的負載情況及所在網(wǎng)絡(luò)中控制器和轉(zhuǎn)發(fā)設(shè)備的網(wǎng)絡(luò)拓撲;[0020]管理控制器依據(jù)控制器及轉(zhuǎn)發(fā)設(shè)備信息設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息包括:管理控制器依據(jù)負載情況及網(wǎng)絡(luò)拓撲設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息。[0021]本發(fā)明還提供了一種建立通信的方法,具體包括:控制器將其自身的信息發(fā)送給管理控制器;[0022]控制器接收管理控制器依據(jù)控制器及轉(zhuǎn)發(fā)設(shè)備的信息設(shè)置的控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息;[0023]控制器依據(jù)控制信息與相應(yīng)的轉(zhuǎn)發(fā)設(shè)備建立通信。[0024]在本發(fā)明的一種實施例中,發(fā)送給管理控制器的信息包括:控制器的負載情況。[0025]本發(fā)明還提供了一種管理控制器,應(yīng)用在軟件定義網(wǎng)絡(luò)中,該管理控制器包括第一以太網(wǎng)口、第一存儲器和處理器,第一以太網(wǎng)口用于獲取網(wǎng)絡(luò)中控制器及轉(zhuǎn)發(fā)設(shè)備的信息,并存儲于第一存儲器中;第一存儲器還用于依據(jù)控制器及轉(zhuǎn)發(fā)設(shè)備的信息設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息;第一以太網(wǎng)口還用于將控制信息發(fā)送給相應(yīng)的控制器。[0026]在本發(fā)明的一種實施例中,在網(wǎng)絡(luò)初始化過程中,第一以太網(wǎng)口還用于與網(wǎng)絡(luò)中發(fā)現(xiàn)的所有轉(zhuǎn)發(fā)設(shè)備建立通信。[0027]在本發(fā)明的一種實施例中,處理器還用于檢測網(wǎng)絡(luò)中是否新增轉(zhuǎn)發(fā)設(shè)備和/或控制器、是否有控制器處于閑置狀態(tài)、轉(zhuǎn)發(fā)設(shè)備和/或控制器是否發(fā)生故障中的至少一種情況,如是,則對相應(yīng)控制器的控制信息進行設(shè)置或更新。[0028]在本發(fā)明的一種實施例中,第一以太網(wǎng)口獲取的網(wǎng)絡(luò)中的控制器及轉(zhuǎn)發(fā)設(shè)備的信息為:控制器的負載情況及控制器和轉(zhuǎn)發(fā)設(shè)備的網(wǎng)絡(luò)拓撲;處理器用于依據(jù)負載情況及網(wǎng)絡(luò)拓撲設(shè)置控制器對轉(zhuǎn)發(fā)設(shè)備的控制信息。[0029]本發(fā)明還提供了一種控制器,應(yīng)用在軟件定義網(wǎng)絡(luò)中,該控制器包括第二以太網(wǎng)口,第二以太網(wǎng)口用于將控制器自身的信息發(fā)送給所在網(wǎng)絡(luò)中的管理控制當(dāng)前第1頁1 2 3 4