本發(fā)明實施方式涉及數(shù)據(jù)通訊技術(shù)領域,尤其涉及一種基于SDN(Software Defined Network,軟件定義網(wǎng)絡)的路由器發(fā)現(xiàn)協(xié)議實施方法、裝置和系統(tǒng)。
背景技術(shù):
一個網(wǎng)絡中的主機如果要發(fā)送報文到網(wǎng)絡外部,它至少需要獲取本網(wǎng)絡內(nèi)的一臺路由器的IP地址,由路由器把報文轉(zhuǎn)發(fā)出去。主機通常有兩種方式獲取路由器的IP地址:一是在主機上配置默認網(wǎng)關(guān),二是讓主機偵聽網(wǎng)絡內(nèi)的路由協(xié)議報文,從報文中獲取路由器的IP地址。
這兩種方式都有缺點。第一種要求靜態(tài)配置,必須要手工維護,而且不能適應網(wǎng)絡的動態(tài)變化;第二種方式要求主機能夠識別各種路由協(xié)議的報文,這對于一臺主機來說要求太高了,而且有時路由器上不運行動態(tài)路由協(xié)議,此時主機便無法偵聽到路由協(xié)議報文。
IRDP(ICMP Router Discovery Protocol,ICMP路由器發(fā)現(xiàn)協(xié)議)使主機可以決定當作缺省網(wǎng)關(guān)使用的路由器地址。IRDP中用到兩種ICMP(Internet Control Message Protocol,網(wǎng)際報文實施協(xié)議)消息,路由公告消息RA(Router Advertisements):由路由器發(fā)送,用于公告該路由器的IP地址、優(yōu)先級等信息;路由請求消息RS(Router Solicitations):由主機發(fā)送,用于主動向網(wǎng)絡中的路由器請求其IP地址,整個過程如圖1所示。
在實施本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:
傳統(tǒng)的IRDP算法是基于某一臺轉(zhuǎn)發(fā)設備,而且IRDP算法是靜態(tài)配置的,整個配置是分布式的,配置復雜且容易出錯。
應該注意,上面對技術(shù)背景的介紹只是為了方便對本發(fā)明的技術(shù)方案進行清楚、完整的說明,并方便本領域技術(shù)人員的理解而闡述的。不能僅僅因為這些方案在本發(fā)明的背景技術(shù)部分進行了闡述而認為上述技術(shù)方案為本領域技術(shù)人員所公知。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明實施方式的目的在于提供一種基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的方法、裝置和系統(tǒng),能夠基于SDN架構(gòu),只需要控制器集中配置,動態(tài)計算網(wǎng)關(guān),網(wǎng)絡的維護簡單而有效。
為實現(xiàn)上述目的,本發(fā)明實施方式提供一種基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的方法,包括:控制器預先設置基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能;當所述配置功能打開時,控制器接收交換機上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息;根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,控制器生成私有的網(wǎng)關(guān)表;控制器掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息控制器控制器控制器。
進一步地,所述私有報文的網(wǎng)關(guān)和用戶端口信息為交換機ID和交換機用戶端口的端口ID;其中,所述交換機ID為交換機MAC地址;所述端口ID表示接收到未匹配流表的用戶報文的交換機用戶端口。
進一步地,所述方法還包括:預先配置老化時間和周期時間,所述老化時間表示私有報文的老化時間,周期時間表示發(fā)送路由公告消息的周期時間;所述根據(jù)所述網(wǎng)關(guān)和用戶端口信息,控制器生成私有的網(wǎng)關(guān)表,包括:控制器根據(jù)交換機上報的私有報文中交換機ID和交換機用戶端口的端口ID,以及配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表控制器控制器。
進一步地,所述控制器掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,包括:控制器掃描所述私有的網(wǎng)關(guān)表,根據(jù)所述私有的網(wǎng)關(guān)表中的周期時間,控制器定時觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,所述指定的用戶端口根據(jù)所述私有的網(wǎng)關(guān)表中的交換機ID和交換機用戶端口的端口ID確定控制器控制器。
進一步地,所述方法還包括:如果超過所述私有的網(wǎng)關(guān)表中的老化時間,則將所述交換機ID和交換機用戶端口的端口ID對應的私有的網(wǎng)關(guān)表中的表項老化。
為實現(xiàn)上述目的,本發(fā)明實施方式還提供一種基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的系統(tǒng),包括:交換機,用于向控制器上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息;控制器,用于基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能;當所述基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能打開時,接收交換機上報的未匹配流表的報文和私有報文;根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,生成私有的網(wǎng)關(guān)表;掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息。
為實現(xiàn)上述目的,本發(fā)明實施方式還提供一種實施基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的的裝置,包括:第一處理模塊,用于預先設置基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能;第二處理模塊,用于當所述基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能打開時,接收交換機上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息;第三處理模塊,用于根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,生成私有的網(wǎng)關(guān)表;第四處理模塊,用于掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息。
由上可見,本發(fā)明實施方式提供的一種基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的方法、裝置和系統(tǒng),控制器預先配置基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的算法功能,并通過擴展私有報文上報的交換機ID和交換機用戶端口的端口ID,從而控制器可以根據(jù)交換機ID和交換機用戶端口的端口ID,以及預先配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表,并根據(jù)該私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,由此可看出,只需要控制器集中配置,就可以動態(tài)計算網(wǎng)關(guān),網(wǎng)絡的維護簡單而有效。
附圖說明
為了更清楚地說明本發(fā)明實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖逐一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為傳統(tǒng)的實施網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議的示意圖。
圖2為本發(fā)明實施方式提供的基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的系統(tǒng)的架構(gòu)示意圖;
圖3為本發(fā)明實施方式提供的基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的方法的流程示意圖;
圖4為本發(fā)明實施方式擴展的Experimenter報文格式的示意圖;
圖5為圖3方法的應用實例示意圖。
圖6為本發(fā)明實施方式提供的基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施方式的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施方式中的附圖,對本發(fā)明實施方式中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施方式是本發(fā)明一部分實施方式,而不是全部的實施方式?;诒景l(fā)明中的實施方式,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施方式,都屬于本發(fā)明保護的范圍。
SDN是一種新型的網(wǎng)絡架構(gòu),其可以通過OpenFlow(開放流)技術(shù)將網(wǎng)絡設備的實施面與數(shù)據(jù)面進行分離,從而實現(xiàn)對網(wǎng)絡流量的靈活實施。在SDN中,包含實現(xiàn)實施面功能的控制器和若干實現(xiàn)數(shù)據(jù)面功能的交換機。
本發(fā)明實施方式提供一種基于SDN的IRDP系統(tǒng),如圖2所示,SDN網(wǎng)絡中包括控制器和交換機,其中SDN網(wǎng)絡中的交換機由集中的控制器管理。此外,Host(主機)分別和交換機連接,通過SDN網(wǎng)絡進行通訊。
本發(fā)明實施方式提供一種基于SDN的實施IRDP的方法。請參閱圖3,所述方法應用于SDN中的控制器上,包括以下步驟:
步驟S31:控制器預先設置基于SDN的IRDP算法配置任務序列。
在本實施方式中,控制器預先設置基于SDN的IRDP算法配置任務序列,該任務序列的配置項包括基于SDN的IRDP算法功能,用于打開或關(guān)閉基于SDN的IRDP算法功能。具體如表1所示。
表1
步驟S32:控制器接收交換機上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息。
在本實施方式中,當報文進入到SDN網(wǎng)絡后,入口交換機查詢流表,如果所述報文匹配流表,則將所述報文根據(jù)流表中的轉(zhuǎn)發(fā)路徑進行轉(zhuǎn)發(fā);如果所述報文未匹配流表,則將所述報文上報給控制器。
控制器還接收交換機通過私有Experimenter報文上報的網(wǎng)關(guān)和用戶端口信息。
和現(xiàn)有技術(shù)相比,本實施方式對Experimenter報文進行了擴展,擴展的Experimenter報文格式如圖4所示,Experimenter值為255需要向ONF組織申請;Experimenter type值為1表明是從交換機到控制器。此外,在擴展的Experimenter報文中擴展了交換機ID和交換機用戶端口的端口ID,其中交換機ID為交換機MAC地址,端口ID表示接收到未匹配流表的用戶報文的交換機用戶端口。
步驟S33:根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,生成私有的網(wǎng)關(guān)表。
在本實施方式中,控制器預先配置老化時間和周期時間,所述老化時間表示Experimenter報文的老化時間,周期時間表示發(fā)送路由公告消息的周期時間。
根據(jù)交換機上報的Experimenter報文中交換機ID和交換機用戶端口的端口ID,以及配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表,該私有的網(wǎng)關(guān)表的配置項包括交換機ID、交換機用戶端口、老化時間和周期時間,具體如表2所示。
表2
步驟S34:控制器掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息。
在本實施方式中,控制器掃描所述私有的網(wǎng)關(guān)表,根據(jù)所述私有的網(wǎng)關(guān)表中的周期時間,控制器定時觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,所述指定的用戶端口根據(jù)所述私有的網(wǎng)關(guān)表中的交換機ID和交換機用戶端口的端口ID確定。
此外,控制器在私有的網(wǎng)關(guān)表中還預先配置了老化時間,例如老化時間為30秒。如果超過老化時間沒有Experimenter報文更新,則所述交換機ID和交換機用戶端口的端口ID對應的私有的網(wǎng)關(guān)表中的表項信息老化。
請參考圖5,本發(fā)明的一個應用實例中,Host通過SDN網(wǎng)絡與服務器連通,控制器配置基于SDN的IRDP算法配置任務序列。交換機上報未匹配流表的報文和Experimenter報文,控制器根據(jù)交換機上報的Experimenter報文中交換機ID和交換機用戶端口的端口ID,以及用戶配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表的表項。根據(jù)表項中的交換機ID和交換機用戶端口的端口ID,以及配置的周期時間,控制器觸發(fā)交換機向用戶端口發(fā)送路由公告消息,即S1和S3為網(wǎng)關(guān),都會定時向Host發(fā)送RA消息。
如果鏈路負載發(fā)生變化,例如斷掉S3到Host鏈路,若超過預先設置的30秒的老化時間,則控制器通知S3停止向Host發(fā)送RA消息。
請繼續(xù)參閱圖1。本發(fā)明實施方式提供一種基于SDN的實施IRDP的系統(tǒng),包括:
交換機,用于向控制器上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息;
控制器,用于預先設置基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能;當所述基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能打開時,接收交換機上報的未匹配流表的報文和私有報文;根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,生成私有的網(wǎng)關(guān)表;掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息。
其中,
所述控制器,具體用于:
預先配置老化時間和周期時間,所述老化時間表示Experimenter報文的老化時間,周期時間表示發(fā)送路由公告消息的周期時間;根據(jù)交換機上報的私有報文中交換機ID和交換機用戶端口的端口ID,以及配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表;掃描所述私有的網(wǎng)關(guān)表,根據(jù)所述私有的網(wǎng)關(guān)表中的周期時間,定時觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,所述指定的用戶端口根據(jù)所述私有的網(wǎng)關(guān)表中的交換機ID和交換機用戶端口的端口ID確定;
所述控制器還用于:
如果超過所述私有的網(wǎng)關(guān)表中的老化時間,則將所述交換機ID和交換機用戶端口的端口ID對應的私有的網(wǎng)關(guān)表中的表項老化。
請參閱圖6。本發(fā)明實施方式提供一種實施基于SDN的實施IRDP的裝置,包括:
第一處理模塊,用于預先設置基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能;
第二處理模塊,用于當所述基于軟件定義網(wǎng)絡的網(wǎng)際報文控制路由器發(fā)現(xiàn)協(xié)議算法配置功能打開時,接收交換機上報的未匹配流表的報文和私有報文,所述私有報文包括網(wǎng)關(guān)和用戶端口信息;
第三處理模塊,用于根據(jù)所述私有報文中的網(wǎng)關(guān)和用戶端口信息,生成私有的網(wǎng)關(guān)表;
第四處理模塊,用于掃描所述私有的網(wǎng)關(guān)表,并根據(jù)所述私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息。
其中,
所述第三處理模塊,具體用于:
預先配置老化時間和周期時間,所述老化時間表示Experimenter報文的老化時間,周期時間表示發(fā)送路由公告消息的周期時間;根據(jù)交換機上報的私有報文中交換機ID和交換機用戶端口的端口ID,以及配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表;
所述第四處理模塊,具體用于:
掃描所述私有的網(wǎng)關(guān)表,根據(jù)所述私有的網(wǎng)關(guān)表中的周期時間,定時觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,所述指定的用戶端口根據(jù)所述私有的網(wǎng)關(guān)表中的交換機ID和交換機用戶端口的端口ID確定;如果超出所述私有的網(wǎng)關(guān)表中的老化時間,則將所述交換機ID和交換機用戶端口的端口ID對應的私有的網(wǎng)關(guān)表中的表項老化。
上述的涉及到的基于SDN的實施IRDP裝置和系統(tǒng)的具體技術(shù)細節(jié)和基于SDN的實施IRDP方法中的類似,故在此不再具體贅述。
由上可見,本發(fā)明實施方式中控制器預先配置基于軟件定義網(wǎng)絡的實施路由器發(fā)現(xiàn)協(xié)議的算法功能,并通過擴展私有報文上報的交換機ID和交換機用戶端口的端口ID,從而控制器可以根據(jù)交換機ID和交換機用戶端口的端口ID,以及預先配置的老化時間和周期時間生成私有的網(wǎng)關(guān)表,并根據(jù)該私有的網(wǎng)關(guān)表觸發(fā)交換機向指定的用戶端口發(fā)送路由公告消息,由此可看出,只需要控制器集中配置,就可以動態(tài)計算網(wǎng)關(guān),網(wǎng)絡的維護簡單而有效。
本說明書中的各個實施方式均采用遞進的方式描述,各個實施方式之間相同相似的部分互相參見即可,每個實施方式重點說明的都是與其他實施方式的不同之處。
最后應說明的是:上面對本發(fā)明的各種實施方式的描述以描述的目的提供給本領域技術(shù)人員。其不旨在是窮舉的、或者不旨在將本發(fā)明限制于單個公開的實施方式。如上所述,本發(fā)明的各種替代和變化對于上述技術(shù)所屬領域技術(shù)人員而言將是顯而易見的。因此,雖然已經(jīng)具體討論了一些另選的實施方式,但是其它實施方式將是顯而易見的,或者本領域技術(shù)人員相對容易得出。本發(fā)明旨在包括在此已經(jīng)討論過的本發(fā)明的所有替代、修改、和變化,以及落在上述申請的精神和范圍內(nèi)的其它實施方式。