一種轉(zhuǎn)發(fā)路由信息生成方法、控制器及軟件定義網(wǎng)絡系統(tǒng)的制作方法
【專利摘要】本發(fā)明適用于SDN【技術領域】,提供一種軟件定義網(wǎng)絡中多控制器協(xié)同生成轉(zhuǎn)發(fā)路由信息的方法及系統(tǒng),所述方法包括針對每一個控制器,獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;針對每一個控制器,獲取對應控制域與其它控制域的連接關系;針對每一個控制器,根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息;通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。本發(fā)明基于網(wǎng)絡拓撲信息,通過各控制器相互協(xié)作,為進入網(wǎng)絡的數(shù)據(jù)包自動生成轉(zhuǎn)發(fā)路由信息,從而解決整個網(wǎng)絡的路由問題。
【專利說明】一種轉(zhuǎn)發(fā)路由信息生成方法、控制器及軟件定義網(wǎng)絡系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于軟件定義網(wǎng)絡領域,尤其涉及一種軟件定義網(wǎng)絡中多控制器協(xié)同生成轉(zhuǎn)發(fā)路由信息的方法及系統(tǒng)。
【背景技術】
[0002]互聯(lián)網(wǎng)已成為人類社會的基礎設施和必不可少的工具,對人們生活、工作、學習的影響日漸顯著,其發(fā)展速度更是日新月異。但是,互聯(lián)網(wǎng)在發(fā)展過程中也已發(fā)現(xiàn)存在很多問題,面臨各種挑戰(zhàn)。其體系架構復雜度高、可擴展性差、對硬件設備依賴性強、虛擬化能力弱等等問題與應用對網(wǎng)絡的高效、智能、開放、靈活、低成本的矛盾日漸尖銳,難以調(diào)和。
[0003]軟件定義網(wǎng)絡(Software Defined Networking, SDN)為互聯(lián)網(wǎng)存在的上述問題帶來了解決契機。它正好是針對現(xiàn)有包括互聯(lián)網(wǎng)的各種網(wǎng)絡體系架構上的不足而生,基于軟件定義的網(wǎng)絡能夠滿足未來應用對網(wǎng)絡的各種需求。
[0004]SDN技術目前尚在發(fā)展階段,有很多問題尚待解決,比如路由的生成問題。按照目前業(yè)界廣為接受的SDN架構,轉(zhuǎn)發(fā)設備和控制器是SDN網(wǎng)絡中基本和核心的組成成分,其中,轉(zhuǎn)發(fā)設備只負責數(shù)據(jù)轉(zhuǎn)發(fā),控制功能交給控制器去實施。那么傳統(tǒng)網(wǎng)絡中的路由功能也移交到控制器上來,這通常由對轉(zhuǎn)發(fā)設備的流表實施管理來實現(xiàn)。由于流表信息量巨大,通過手工配置來維護流表工作量巨大、不科學。因此,需要控制器采用一定的方法自動完成流表信息的管理從而實現(xiàn)轉(zhuǎn)發(fā)路由的自動生成。
[0005]另一方面,單控制器的控制能力是有限的,而SDN網(wǎng)絡的規(guī)模則可能很大,大規(guī)模網(wǎng)絡的信息量巨大,如一千臺轉(zhuǎn)發(fā)設備的網(wǎng)絡僅轉(zhuǎn)發(fā)設備間連接信息就需要兆級別的存儲量,由此產(chǎn)生的計算量同樣飛速增長,有可能超出了單控制器管理的能力限度。這通常需要通過多控制器協(xié)同完成整個網(wǎng)絡的控制。在這種情況下,需要所有控制器合作,才能夠滿足整個網(wǎng)絡的控制要求。同樣,自動生成網(wǎng)絡中所有轉(zhuǎn)發(fā)設備的流表信息也是需要所有控制器協(xié)同完成的。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,本發(fā)明的目的在于提供一種多控制器協(xié)同生成轉(zhuǎn)發(fā)路由信息的方法及系統(tǒng),該方法基于網(wǎng)絡拓撲信息,通過各控制器相互協(xié)作,為進入網(wǎng)絡的數(shù)據(jù)包自動生成轉(zhuǎn)發(fā)路由信息,從而解決整個網(wǎng)絡的路由問題。
[0007]—方面,所述轉(zhuǎn)發(fā)路由信息生成方法包括下述步驟:
[0008]針對每一個控制器,獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;
[0009]針對每一個控制器,獲取對應控制域與其它控制域的連接關系;
[0010]針對每一個控制器,根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息;
[0011]通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。。
[0012]另一方面,所述控制器包括:
[0013]拓撲結構獲取單元,用于獲取對應控制域的網(wǎng)絡拓撲結構,;
[0014]路由信息計算單元,用于計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;
[0015]連接關系獲取單元,用于獲取對應控制域與其它控制域的連接關系;
[0016]主機信息獲取單元,用于根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息;
[0017]路由獲取修改單元,用于通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。
[0018]第三方面,所述軟件定義網(wǎng)絡系統(tǒng),包括多個控制器,每個控制器控制一個控制域,每個控制域中包括有若干轉(zhuǎn)發(fā)設備,每個控制域連接有若干主機。
[0019]本發(fā)明的有益效果是:在軟件定義網(wǎng)絡中,控制器或控制器群收集控制域的網(wǎng)絡拓撲和其它信息,并計算出各控制域內(nèi)轉(zhuǎn)發(fā)設備間的最短轉(zhuǎn)發(fā)路由;并根據(jù)進入軟件定義網(wǎng)絡的數(shù)據(jù)包得到數(shù)據(jù)包的源和目的主機信息,再根據(jù)上述信息計算或查詢得到最短轉(zhuǎn)發(fā)路由,通過更新該路由上所有轉(zhuǎn)發(fā)設備的流表信息使該路由生效。因此,本發(fā)明通過各控制器間的協(xié)作,自動更新相應轉(zhuǎn)發(fā)設備的流表,實現(xiàn)了為進入網(wǎng)絡的數(shù)據(jù)包自動生成轉(zhuǎn)發(fā)路由。
【專利附圖】
【附圖說明】
[0020]圖1是一種SDN網(wǎng)絡系統(tǒng)結構圖;
[0021]圖2是本發(fā)明第一實施例提供的轉(zhuǎn)發(fā)路由信息生成方法的流程圖;
[0022]圖3是控制域拓撲結構存儲示意圖;
[0023]圖4是控制域轉(zhuǎn)發(fā)設備間最短路由信息存儲示意圖;
[0024]圖5是控制域間連接存儲示意圖;
[0025]圖6是制域主機群存儲示意圖;
[0026]圖7是本發(fā)明第二實施例提供的轉(zhuǎn)發(fā)路由信息生成方法的流程圖;
[0027]圖8是非報文源主機直連控制域?qū)刂破鞯纳勺疃剔D(zhuǎn)發(fā)路由的工作流程圖;
[0028]圖9是報文源主機直連控制域?qū)刂破鞯纳勺疃剔D(zhuǎn)發(fā)路由的工作流程圖;
[0029]圖10是控制器邏輯連接示意圖;
[0030]圖11是本發(fā)明第三實施例提供的控制器的結構方框圖。
【具體實施方式】
[0031]本發(fā)明技術方案基于多控制器軟件定義網(wǎng)絡,每臺控制器負責控制網(wǎng)絡中所有轉(zhuǎn)發(fā)設備中的一個子集(以下稱控制域)?;谔囟▍f(xié)議,各控制器可以得到對應控制域的網(wǎng)絡拓撲圖,并計算出任意兩臺轉(zhuǎn)發(fā)設備之間的最短路由,同時可得到對應控制域與其它控制域的連接信息(以下稱控制域間連接)?;诰W(wǎng)絡中主機發(fā)出的廣播報文,各控制器可得到與本控制域直接相連的所有主機信息(以下稱控制域主機群)。當某一數(shù)據(jù)包(即一報文)進入某一控制域中某一轉(zhuǎn)發(fā)設備時,如果流表中無對應的條目,則該報文送至本控制域?qū)目刂破?,否則直接按對應條目轉(zhuǎn)發(fā)。當控制器收到該報文時,如果目的主機也連接到本控制域,則根據(jù)前述的最短路由,更新路由中所有轉(zhuǎn)發(fā)設備的流表。如果目的主機并非連接到本控制域,則當前控制域的控制器與其它控制器協(xié)同,基于前述的最短路由及控制域間連接計算出整個網(wǎng)絡(包含所有控制域)對應的最短路由,然后更新整個路由中所有轉(zhuǎn)發(fā)設備的流表以使該路由生效,最后根據(jù)該路由轉(zhuǎn)發(fā)該報文至目的主機。為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0032]實施例一:
[0033]圖1示出了一種SDN網(wǎng)絡系統(tǒng)結構,包括多個控制器1,每個控制器控制一個控制域,每個控制域中包括有若干轉(zhuǎn)發(fā)設備2,每個控制域連接有若干主機3。圖示中包含三個控制域,每個控制域中包含若干轉(zhuǎn)發(fā)設備,控制域之間相互連接?;谏鲜鯯DN網(wǎng)絡系統(tǒng),圖2示出了本發(fā)明實施例提供的轉(zhuǎn)發(fā)路由信息生成方法的流程,為了便于說明僅示出了與本發(fā)明實施例相關的部分。
[0034]本實施例在控制器一側,描述了轉(zhuǎn)發(fā)路由信息生成方法的流程,包括下述步驟:
[0035]步驟S101、針對每一個控制器,獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息。
[0036]SDN網(wǎng)絡的規(guī)模有可能很大,而控制器需要存儲和處理的信息可能隨著網(wǎng)絡的規(guī)模成冪函數(shù)或指數(shù)級增長,如一個一千臺轉(zhuǎn)發(fā)設備的網(wǎng)絡,則僅僅存儲網(wǎng)絡拓撲信息,就需要以兆為單位的存儲空間。但是,如果劃分為二十個控制域,則每臺控制器的需存儲和處理的信息僅為劃分前的四百分之一。因此實現(xiàn)本步驟前,對轉(zhuǎn)發(fā)設備進行網(wǎng)絡控制域劃分,可以降低對系統(tǒng)的性能要求。
[0037]因此實現(xiàn)本步驟前,首先在SDN網(wǎng)絡中,根據(jù)網(wǎng)絡的規(guī)模、結構、控制器的能力、應用需要等因素部署多臺控制器,各控制器分別控制網(wǎng)絡的一個子集,即控制域,比如圖1中,劃分了三個控制域,每個控制域?qū)粋€控制器,同時各控制域間有可能存在一條或多條連接通道。
[0038]本步驟中,每個控制器根據(jù)特定協(xié)議,可以是任意標準協(xié)議或?qū)S袇f(xié)議,比如鏈路層發(fā)現(xiàn)協(xié)議LLDP,獲取控制器對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息并存儲。網(wǎng)絡拓撲結構表明了控制域內(nèi)轉(zhuǎn)發(fā)設備的連接關系,作為一種網(wǎng)絡拓撲結構存儲方式,圖3示出一種控制域拓撲結構示例,實際上相當于以鄰接矩陣的方式存儲了控制域網(wǎng)絡拓撲圖,而且,示例圖中包含了連接所用端口的信息,圖示中,“端口 P12-端口 P21”表示轉(zhuǎn)發(fā)設備I的第2個端口與轉(zhuǎn)發(fā)設備2的第I個端口連接;其他意思相同。如果兩臺轉(zhuǎn)發(fā)設備并無直接連接,則對應的信息為空;如果網(wǎng)絡拓撲是無向圖,則示例圖相當于對稱矩陣。
[0039]根據(jù)拓撲結構計算出控制域內(nèi)轉(zhuǎn)發(fā)設備間的最短路由就比較容易了,可采用經(jīng)典的迪杰斯特拉算法來完成,計算出的結果可存儲在類似于圖4給出的信息結構中。圖4同樣相當于鄰接矩陣的方式,如果網(wǎng)絡拓撲是無向圖,則示例圖相當于對稱矩陣。圖示中包含了以第一列轉(zhuǎn)發(fā)設備為源節(jié)點,以第一行設備為目的節(jié)點的所有最短路由信息,如果不存在這樣的路由,則對應的最短路由信息為空。
[0040]步驟S102、針對每一個控制器,獲取對應控制域與其它控制域的連接關系。
[0041]同樣本步驟中,各個控制器可以根據(jù)特定協(xié)議,比如鏈路層發(fā)現(xiàn)協(xié)議LLDP,獲取本控制器對應控制域與其他控制域的連接關系,即控制域間連接。作為控制域間連接的一種示例,如圖5所示,同樣相當于鄰接矩陣的方式,如果網(wǎng)絡拓撲是無向圖,則示例圖相當于對稱矩陣,控制域間連接可以O條,也可以是多條。
[0042]步驟S103、針對每一個控制器,根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息。
[0043]每個控制域中可能連接有一個或多個主機,網(wǎng)絡系統(tǒng)中的報文數(shù)據(jù)來由其中一個主機發(fā)送至另一個主機。本步驟需要獲取到每個控制器對應的控制域所連接的主機信息,即控制域主機群信息,具體的,各控制器根據(jù)直接連接到本控制域的主機發(fā)出的廣播報文,生成本控制域主機群信息。作為一種控制域主機群示例,如圖6所示,以表格的形式說明了與控制域直接連接的主機的相關信息,包括主機地址、主機直接連接的轉(zhuǎn)發(fā)設備、轉(zhuǎn)發(fā)設備對應的端口等信息。
[0044]步驟S104、通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。
[0045]在得到每個控制域的最短路由信息、控制域間連接、控制域主機群信息后,針對一個進入系統(tǒng)網(wǎng)絡中的報文,首先分析報文的源地址和目的地址,然后通過控制器間的協(xié)作,找到從源地址主機到目的地址主機間的最短轉(zhuǎn)發(fā)路由,并并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。最后各個控制器根據(jù)流表表項轉(zhuǎn)發(fā)該報文,實現(xiàn)了報文轉(zhuǎn)發(fā)。當控制域網(wǎng)絡拓撲發(fā)生改變時,針對每一個控制器,重新獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;當控制域間連接發(fā)生改變時,針對每一個控制器,重新獲取對應控制域與其它控制域的連接關系O
[0046]實施例二:
[0047]本實施例提供的轉(zhuǎn)發(fā)路由信息生成方法的流程如圖7所示,包括下述步驟:
[0048]步驟S701、針對每一個控制器,獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;
[0049]步驟S702、針對每一個控制器,獲取對應控制域與其它控制域的連接關系;
[0050]步驟S703、針對每一個控制器,根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息。
[0051]這里上述步驟S701-S703與實施例一中步驟S101-S103相同,這里不再贅述。
[0052]步驟S704、當報文進入網(wǎng)絡時,如果轉(zhuǎn)發(fā)設備上沒有對應的流表表項,則為進入控制域的報文創(chuàng)建流表表項;
[0053]步驟S705、若當前報文的源主機和目的主機屬于同一控制域時,根據(jù)查詢所述最短路由信息得到當前報文的最短轉(zhuǎn)發(fā)路由,并更新最短轉(zhuǎn)發(fā)路由上所有轉(zhuǎn)發(fā)設備的流表;
[0054]步驟S706、若當前報文的源主機和目的主機不屬于同一控制域時,與其他控制器協(xié)同生成整個網(wǎng)絡中當前報文的最短轉(zhuǎn)發(fā)路由,各控制器根據(jù)最短轉(zhuǎn)發(fā)路由更新對應控制域中相應轉(zhuǎn)發(fā)設備的流表。
[0055]上述步驟S704-S706是實施例一中步驟S104的一種具體優(yōu)選實現(xiàn)方式。當當報文進入網(wǎng)絡時,如果轉(zhuǎn)發(fā)設備上已經(jīng)存在對應的流表表項,表示該報文需要的轉(zhuǎn)發(fā)路由已建立,則無需控制器或控制器群生成新的路由,按流表轉(zhuǎn)發(fā)報文即可。若轉(zhuǎn)發(fā)設備上沒有對應的流表表項,則需要控制器或控制器群為其生成轉(zhuǎn)發(fā)路由信息。具體的,首先為進入控制域的報文創(chuàng)建流表表項;然后獲取報文的源地址和目的地址,分析當前報文的源主機和目的主機是否屬于同一控制域,若屬于同一控制域,則不需其它控制器參與,查詢得到本控制器已計算好的最短路由信息,即可得到當前報文的最短轉(zhuǎn)發(fā)路由,最后更新最短轉(zhuǎn)發(fā)路由上所有轉(zhuǎn)發(fā)設備的流表;若不屬于同一控制域,則需要多個控制器協(xié)同操作生成最短轉(zhuǎn)發(fā)路由,各控制器根據(jù)最短轉(zhuǎn)發(fā)路由更新對應控制域中相應轉(zhuǎn)發(fā)設備的流表。本實施例中,當報文進入某控制域A的控制器B并產(chǎn)生轉(zhuǎn)發(fā)路由生成需求時,控制器B開始著手計算最短轉(zhuǎn)發(fā)路由。如果該報文關聯(lián)的源、目的主機同屬控制域A,則控制器B通過查詢最短路由信息就可完成;如果該報文關聯(lián)的源、目的主機不同屬控制域A,則需要多臺控制器協(xié)同完成最短轉(zhuǎn)發(fā)路由的生成。
[0056]在具體實現(xiàn)流表更新時,與源主機直連的控制域A對應的控制器B計算出最短轉(zhuǎn)發(fā)路由后,控制器B首先更新控制域A上與該路由關聯(lián)的轉(zhuǎn)發(fā)設備的流表信息,然后將在該路由上且不在本控制域的轉(zhuǎn)發(fā)設備流表信息發(fā)給相鄰控制器D。然后控制器D像控制器B一樣操作處理,直至所有在該路由上的轉(zhuǎn)發(fā)設備的關聯(lián)流表更新完成。
[0057]對于上述步驟S706,不同類型的控制器所執(zhí)行的步驟流程不同,對于不是報文源主機直連控制域?qū)目刂破鳎鐖D8所示,其工作流程如下:
[0058]步驟S801、接收相鄰控制域控制器發(fā)出的路由請求信息;
[0059]步驟S802、判斷目的主機與本控制域是否直接相連;
[0060]步驟S803、若直接相連,則針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢從該連接到目的主機的最短路徑并緩存;
[0061]步驟S804、若是不是直接連接,則針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢到其它控制域間連接的最短路由并緩存;
[0062]步驟S805、通過控制器間交換信息的虛通道,向其它相鄰控制域的控制器發(fā)路由請求消息,并發(fā)送目的主機地址信息;
[0063]步驟S806、等待并接收相鄰控制域的控制器反饋從各條域間連接到到目的主機的最短路由信息結果;
[0064]步驟S807、根據(jù)其它相鄰控制器的反饋結果結合所述最短路由信息計算出與所述控制域間連接對應的的最短路由;
[0065]步驟S808、將各控制域間連接對應的最短路由發(fā)送給請求路由的控制器。
[0066]當控制器D收到控制器X(對應控制域Y)的路由請求消息后,如果判斷目的主機在本控制域C,則針對每條控制器Y關聯(lián)的控制域間連接,查詢出從該連接到目的主機的最短路由,反饋到控制器X。否則,繼續(xù)向與之相連的其它控制器(不包括控制器X)發(fā)送路由請求消息及必要的信息。當控制器D收到控制器F發(fā)來的路由反饋信息后,它針對與控制域Y關聯(lián)的每條控制域間連接,結合控制域C的最短路由信息計算出從該控制域間連接到目的主機的最短轉(zhuǎn)發(fā)路由,然后反饋到控制器X。
[0067]對于報文源主機直連控制域?qū)目刂破?,如圖9所示,其工作流程如下:
[0068]步驟S901、獲取本控制域的控制域間連接;
[0069]步驟S902、針對每條控制域間連接,查詢從源主機經(jīng)過該控制域間連接到相鄰控制域的最短路由并緩存;
[0070]步驟S903、通過控制器間交換信息的虛通道,向相鄰控制域的控制器發(fā)出路由請求消息,并發(fā)送目的主機的地址信息;
[0071]步驟S904、等待并接收相鄰控制域的控制器反饋的從各條控制域間連接到目的主機的最短路由信息結果;
[0072]步驟S905、根據(jù)相鄰控制域的控制器反饋的最短路由信息結果,并結合本控制域的最短路由信息計算出全網(wǎng)的最短轉(zhuǎn)發(fā)路由。
[0073]當控制器B發(fā)現(xiàn)目的主機不在控制域A時,通過控制器間交換信息的虛通道向相鄰控制域的控制器發(fā)送路由請求消息及必要的信息。當收到其它控制器反饋的路由信息后,控制器B結合控制域A的最短路由信息計算出整個網(wǎng)絡的最短轉(zhuǎn)發(fā)路由。
[0074]這里需要說明的是,本實施例中,控制器間交換信息采用虛通道V,也就是說,控制器間并不需要專門的物理連接來完成相互的信息交換,通過控制域間連接L就可以建立控制器間交換信息的通路。就本實施例而言,控制器間需要交換的信息有如下三個方面:路由請求消息、路由計算反饋結果、流表信息傳遞??刂破髌鏖g交換信息可以使用標準協(xié)議、標準協(xié)議擴展或?qū)S袇f(xié)議來實現(xiàn)。
[0075]實施例三:
[0076]本實施例提供了一種控制器結構,如圖11所示,包括:
[0077]拓撲結構獲取單元11,用于獲取對應控制域的網(wǎng)絡拓撲結構,;
[0078]路由信息計算單元12,用于計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;
[0079]連接關系獲取單元13,用于獲取對應控制域與其它控制域的連接關系;
[0080]主機信息獲取單元14,用于根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息;
[0081]路由獲取修改單元15,用于通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。
[0082]上述拓撲結構獲取單元11、路由信息計算單元12對應實現(xiàn)了實施例一中的步驟S101,主要完成獲取各個控制域的拓撲結構,并且計算出控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息。上述連接關系獲取單元13、主機信息獲取單元14、路由獲取修改單元15分別實現(xiàn)了實施例一中的步驟S102-S104,主要完成獲取控制域間連接、控制域主機群信息以及通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并更新流表。
[0083]上述結構中,作為一種具體優(yōu)選實施方式,所述路由獲取修改單元15包括:
[0084]流表創(chuàng)建模塊151,用于當報文進入網(wǎng)絡時,如果轉(zhuǎn)發(fā)設備上沒有對應的流表表項,則為進入控制域的報文創(chuàng)建流表表項;
[0085]直接獲取更新模塊152,用于用于若當前報文的源主機和目的主機屬于同一控制域時,根據(jù)查詢所述最短路由信息得到當前報文的最短轉(zhuǎn)發(fā)路由,并更新最短轉(zhuǎn)發(fā)路由上所有轉(zhuǎn)發(fā)設備的流表;
[0086]協(xié)同獲取更新模塊153,用于用于若當前報文的源主機和目的主機不屬于同一控制域時,與其他控制器協(xié)同生成整個網(wǎng)絡中當前報文的最短轉(zhuǎn)發(fā)路由,各控制器根據(jù)最短轉(zhuǎn)發(fā)路由更新對應控制域中相應轉(zhuǎn)發(fā)設備的流表。
[0087]本優(yōu)選結構中,對于單控制域的最短轉(zhuǎn)發(fā)路由生成方案通過直接獲取更新模塊152實現(xiàn),對于多控制域的最短轉(zhuǎn)發(fā)路由生成方案通過協(xié)同獲取更新模塊153實現(xiàn),具體實現(xiàn)方式在實施例二中已描述,這里不再贅述。
[0088]對于上述協(xié)同獲取更新模塊153,若所述控制器不是報文源主機直連控制域?qū)目刂破鳎鰠f(xié)同獲取更新模塊153包括:
[0089]請求信息接收單元,用于接收相鄰控制域控制器發(fā)出的路由請求信息;
[0090]連接判斷單元,用于判斷目的主機與本控制域是否直接相連;
[0091]第一查詢單元,用于當連接判斷單元判斷是時,針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢從該連接到目的主機的最短路徑并緩存;
[0092]第二查詢單元,用于當連接判斷單元判斷否時,針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢到其它控制域間連接的最短路由并緩存;
[0093]信息發(fā)送單元,用于通過控制器間交換信息的虛通道,向其它相鄰控制域的控制器發(fā)路由請求消息,并發(fā)送目的主機地址信息;
[0094]反饋接收單元,用于等待并接收相鄰控制域的控制器反饋從各條域間連接到到目的主機的最短路由信息結果;
[0095]最短路由計算單元,用于根據(jù)其它相鄰控制器的反饋結果結合所述最短路由信息計算出與所述控制域間連接對應的的最短路由;
[0096]路由發(fā)送單元,用于將各控制域間連接對應的最短路由發(fā)送給請求路由的控制器。
[0097]若所述控制器為報文源主機直連控制域?qū)目刂破鳎鰠f(xié)同獲取更新模塊包括:
[0098]連接獲取單元,用于獲取本控制域的控制域間連接;
[0099]第三查詢單元,用于針對每條控制域間連接,查詢從源主機經(jīng)過該控制域間連接到相鄰控制域的最短路由并緩存;
[0100]消息發(fā)送單元,用于通過控制器間交換信息的虛通道,向相鄰控制域的控制器發(fā)出路由請求消息,并發(fā)送目的主機的地址信息;
[0101]路由反饋接收單元,用于等待并接收相鄰控制域的控制器反饋的從各條控制域間連接到目的主機的最短路由信息結果;
[0102]最短路由獲取單元,根據(jù)相鄰控制域的控制器反饋的最短路由信息結果,并結合本控制域的最短路由信息計算出全網(wǎng)的最短轉(zhuǎn)發(fā)路由。
[0103]上述各個功能單元對應實現(xiàn)了實施二中所述的步驟S801-S808、S901-S905。這里不再贅述。
[0104]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種轉(zhuǎn)發(fā)路由信息生成方法,其特征在于,所述方法包括: 針對每一個控制器,獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息; 針對每一個控制器,獲取對應控制域與其它控制域的連接關系; 針對每一個控制器,根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息; 通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。
2.如權利要求1所述方法,其特征在于,所述通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效步驟,具體包括: 當報文進入網(wǎng)絡時,如果轉(zhuǎn)發(fā)設備上沒有對應的流表表項,則為進入控制域的報文創(chuàng)建流表表項; 若當前報文的源主機和目的主機屬于同一控制域時,根據(jù)查詢所述最短路由信息得到當前報文的最短轉(zhuǎn)發(fā)路由,并更新最短轉(zhuǎn)發(fā)路由上所有轉(zhuǎn)發(fā)設備的流表; 若當前報文的源主機和目的主機不屬于同一控制域時,與其他控制器協(xié)同生成整個網(wǎng)絡中當前報文的最短轉(zhuǎn)發(fā)路由,各控制器根據(jù)最短轉(zhuǎn)發(fā)路由更新對應控制域中相應轉(zhuǎn)發(fā)設備的流表。
3.如權利要求2所述方法,其特征在于,所述與其他控制器協(xié)同生成整個網(wǎng)絡中當前報文的最短轉(zhuǎn)發(fā)路由步驟,具體包括: 對于不是報文源主機直連控制域?qū)目刂破?,首先接收相鄰控制域控制器發(fā)出的路由請求信息; 判斷目的主機與本控制域是否直接相連; 若直接相連,則針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢從該連接到目的主機的最短路徑并緩存; 若是不是直接連接,則針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢到其它控制域間連接的最短路由并緩存; 通過控制器間交換信息的虛通道,向其它相鄰控制域的控制器發(fā)路由請求消息,并發(fā)送目的主機地址信息; 等待并接收相鄰控制域的控制器反饋從各條域間連接到到目的主機的最短路由信息結果; 根據(jù)其它相鄰控制器的反饋結果結合所述最短路由信息計算出與所述控制域間連接對應的的最短路由; 將各控制域間連接對應的最短路由發(fā)送給請求路由的控制器; 對于報文源主機直連控制域?qū)目刂破?,首先獲取本控制域的控制域間連接; 針對每條控制域間連接,查詢從源主機經(jīng)過該控制域間連接到相鄰控制域的最短路由并緩存; 通過控制器間交換信息的虛通道,向相鄰控制域的控制器發(fā)出路由請求消息,并發(fā)送目的主機的地址信息; 等待并接收相鄰控制域的控制器反饋的從各條控制域間連接到目的主機的最短路由 息結果; 根據(jù)相鄰控制域的控制器反饋的最短路由信息結果,并結合本控制域的最短路由信息計算出全網(wǎng)的最短轉(zhuǎn)發(fā)路由。
4.如權利要求1-3任一項所述方法,其特征在于,所述方法還包括: 當控制域網(wǎng)絡拓撲發(fā)生改變時,針對每一個控制器,重新獲取對應控制域的網(wǎng)絡拓撲結構,并計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息; 當控制域間連接發(fā)生改變時,針對每一個控制器,重新獲取對應控制域與其它控制域的連接關系。
5.一種控制器,其特征在于,所述控制器包括: 拓撲結構獲取單元,用于獲取對應控制域的網(wǎng)絡拓撲結構,; 路由信息計算單元,用于計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息; 連接關系獲取單元,用于獲取對應控制域與其它控制域的連接關系; 主機信息獲取單元,用于根據(jù)主機的廣播報文獲取直接連接到對應控制域的所有主機信息; 路由獲取修改單元,用于通過控制器間的協(xié)作,為進入網(wǎng)絡中的報文尋找最短轉(zhuǎn)發(fā)路由,并修改所述最短轉(zhuǎn)發(fā)路由上的所有轉(zhuǎn)發(fā)設備的流表表項信息,以使該轉(zhuǎn)發(fā)路由生效。
6.如權利要求5所述控制器,其特征在于,所述路由獲取修改單元包括: 流表創(chuàng)建模塊,用于當報文進入網(wǎng)絡時,如果轉(zhuǎn)發(fā)設備上沒有對應的流表表項,則為進入控制域的報文創(chuàng)建流表表項; 直接獲取更新模塊,用于用于若當前報文的源主機和目的主機屬于同一控制域時,根據(jù)查詢所述最短路由信息得到當前報文的最短轉(zhuǎn)發(fā)路由,并更新最短轉(zhuǎn)發(fā)路由上所有轉(zhuǎn)發(fā)設備的流表; 協(xié)同獲取更新模塊,用于用于若當前報文的源主機和目的主機不屬于同一控制域時,與其他控制器協(xié)同生成整個網(wǎng)絡中當前報文的最短轉(zhuǎn)發(fā)路由,各控制器根據(jù)最短轉(zhuǎn)發(fā)路由更新對應控制域中相應轉(zhuǎn)發(fā)設備的流表。
7.如權利要求6所述控制器,其特征在于,若所述控制器不是報文源主機直連控制域?qū)目刂破鳎鰠f(xié)同獲取更新模塊包括: 請求信息接收單元,用于接收相鄰控制域控制器發(fā)出的路由請求信息; 連接判斷單元,用于判斷目的主機與本控制域是否直接相連; 第一查詢單元,用于當連接判斷單元判斷是時,針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢從該連接到目的主機的最短路徑并緩存; 第二查詢單元,用于當連接判斷單元判斷否時,針對每一條與發(fā)送路由請求消息的控制器對應控制域直連的控制域間連接,查詢到其它控制域間連接的最短路由并緩存; 信息發(fā)送單元,用于通過控制器間交換信息的虛通道,向其它相鄰控制域的控制器發(fā)路由請求消息,并發(fā)送目的主機地址信息; 反饋接收單元,用于等待并接收相鄰控制域的控制器反饋從各條域間連接到到目的主機的最短路由信息結果; 最短路由計算單元,用于根據(jù)其它相鄰控制器的反饋結果結合所述最短路由信息計算出與所述控制域間連接對應的的最短路由; 路由發(fā)送單元,用于將各控制域間連接對應的最短路由發(fā)送給請求路由的控制器; 若所述控制器為報文源主機直連控制域?qū)目刂破鳎鰠f(xié)同獲取更新模塊包括: 連接獲取單元,用于獲取本控制域的控制域間連接; 第三查詢單元,用于針對每條控制域間連接,查詢從源主機經(jīng)過該控制域間連接到相鄰控制域的最短路由并緩存; 消息發(fā)送單元,用于通過控制器間交換信息的虛通道,向相鄰控制域的控制器發(fā)出路由請求消息,并發(fā)送目的主機的地址信息; 路由反饋接收單元,用于等待并接收相鄰控制域的控制器反饋的從各條控制域間連接到目的主機的最短路由信息結果; 最短路由獲取單元,根據(jù)相鄰控制域的控制器反饋的最短路由信息結果,并結合本控制域的最短路由信息計算出全網(wǎng)的最短轉(zhuǎn)發(fā)路由。
8.如權利要求5-7任一項所述控制器,其特征在于,所述拓撲結構獲取單元還用于當控制域網(wǎng)絡拓撲發(fā)生改變時,針對每一個控制器,重新獲取對應控制域的網(wǎng)絡拓撲結構,所述路由信息計算單元還用于當控制域網(wǎng)絡拓撲發(fā)生改變時,重新計算出本控制域中任意兩臺轉(zhuǎn)發(fā)設備間的最短路由信息;所述連接關系獲取單元還用于當控制域間連接發(fā)生改變時,針對每一個控制器,重新獲取對應控制域與其它控制域的連接關系。
9.一種軟件定義網(wǎng)絡系統(tǒng),其特征在于,所述系統(tǒng)包括多個控制器,每個控制器控制一個控制域,每個控制域中包括有若干轉(zhuǎn)發(fā)設備,每個控制域連接有若干主機。
【文檔編號】H04L12/741GK104363173SQ201410616629
【公開日】2015年2月18日 申請日期:2014年10月31日 優(yōu)先權日:2014年10月31日
【發(fā)明者】戴錦友, 余少華, 董喜明, 汪學舜, 朱國勝 申請人:武漢烽火網(wǎng)絡有限責任公司