本發(fā)明涉及通信
技術領域:
,尤其涉及一種sdn設備自動上線的方法、sdn設備和控制器。
背景技術:
:軟件定義網(wǎng)絡(softwaredefinednetwork,簡稱為sdn)是一種新型的網(wǎng)絡架構,它的設計理念是將網(wǎng)絡的控制平面與數(shù)據(jù)轉發(fā)平面進行分離,并實現(xiàn)可編程化控制。通常將sdn網(wǎng)絡架構抽象定義成三層:第一層是轉發(fā)面實體,包括實現(xiàn)這種轉發(fā)功能的各種軟硬件組件;第二層是針對第一層轉發(fā)實體進行管理和控制的實體,第三層是基于前兩層基礎網(wǎng)絡的應用和服務。前兩層之間的接口稱之為sdn的南向接口,目前開放流(openflow)協(xié)議是南向接口的主流協(xié)議,它以流表為基礎,控制細顆粒度的轉發(fā)表及其行為,具有很強的表達能力,適應能力強。sdn設備是運用于運營商的本地移動回傳網(wǎng)或承載網(wǎng)中,由路由器設備演進而來的,具有openflow轉發(fā)設備(openflowswitch)所不具備的包括偽線(pseudo-wire,簡稱pw)、三層虛擬專用網(wǎng)絡(layer3vpn,簡稱l3vpn)、操作管理和維護(operationadministrationandmaintenance,簡稱oam)、時鐘等一系列復雜功能的設備,也叫sdn白盒設備。目前,針對于運營商的sdn網(wǎng)絡,在實現(xiàn)sdn設備自動上線(即設備的自動地址分配、自動建立管理通道和自動拓撲發(fā)現(xiàn))方面還處于探索階段,沒有一個完善的通用的方法。技術實現(xiàn)要素:本發(fā)明的實施例提供一種sdn設備自動上線的方法、sdn設備和控制器,用以實現(xiàn)sdn設備自動上線,進而簡化sdn網(wǎng)絡中設備上線的工作流程,提高設備上線效率,做到設備即插即用、即插即管。為達到上述目的,本發(fā)明的實施例采用如下技術方案:第一方面,本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備自動上線的方法,所述方法包括:待上線sdn設備廣播封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;接收第一控制器廣播的第一dhcp響應報文,所述第一dhcp響應報文為所述待上線sdn設備接收到的第一個dhcp響應報文,所述第一dhcp響應報文攜帶了所述第一控制器為所述待上線sdn設備分配的管理ip地址和所述第一控制器的ip地址;將接收所述第一dhcp響應報文的第一端口置于所述vlan標識;采用所述第一端口廣播dhcp請求報文,所述dhcp請求報文攜帶了所述待上線sdn設備的設備標識,以及所述第一控制器的ip地址;通過第一端口接收所述第一控制器廣播的dhcp應答報文,所述dhcp應答報文攜帶了第一控制器為所述待上線sdn設備分配的管理ip地址,以及所述第一控制器的ip地址和tcp端口號;當所述待上線sdn設備與所述第一控制器根據(jù)所述第一控制器的ip地址和tcp端口號建立了開放流openflow連接之后,接收所述第一控制器發(fā)送的出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。第二方面,本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備的自動上線方法,所述方法包括:控制器接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;向所述待上線sdn設備廣播dhcp響應報文,所述dhcp響應報文攜帶了所述控制器為所述待上線sdn設備分配的管理ip地址和所述控制器的ip地址;接收所述待上線sdn設備廣播的dhcp請求報文,所述dhcp請求報文攜帶了所述待上線sdn設備的設備標識,以及所述控制器的ip地址;向所述待上線sdn設備廣播dhcp應答報文,所述dhcp應答報文攜帶了控制器為所述待上線sdn設備分配管理ip地址,以及所述控制器的ip地址和tcp端口號;在所述待上線sdn設備與所述控制器根據(jù)所述控制器的ip地址和tcp端口號建立了openflow連接之后,向所述待上線sdn設備發(fā)送出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。第三方面,本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備的自動上線方法,所述方法包括:已上線sdn設備接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;向控制器發(fā)送入向報文,所述入向報文中封裝了所述待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文;接收所述控制器發(fā)送的openflow流表報文,所述openflow流表報文攜帶了將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識的命令;根據(jù)所述openflow流表報文,將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識,以便于所述已上線sdn設備轉發(fā)所述待上線sdn設備與所述控制器之間的報文。第四方面,本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備,所述sdn設備處于待上線狀態(tài),該sdn設備包括:發(fā)送單元,用于廣播封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了該sdn設備的設備標識;接收單元,用于接收第一控制器廣播的第一dhcp響應報文,所述第一dhcp響應報文為該sdn設備接收到的第一個dhcp響應報文,所述第一dhcp響應報文攜帶了所述第一控制器為該sdn設備分配的管理ip地址和所述第一控制器的ip地址;vlan處理單元,用于將接收所述第一dhcp響應報文的第一端口置于所述vlan標識;所述發(fā)送單元,還用于采用所述第一端口廣播dhcp請求報文,所述dhcp請求報文攜帶了該sdn設備的設備標識,以及所述第一控制器的ip地址;所述接收單元,還用于通過第一端口接收所述第一控制器廣播的dhcp應答報文,所述dhcp應答報文攜帶了第一控制器為該sdn設備分配的管理ip地址,以及所述第一控制器的ip地址和tcp端口號;當該sdn設備與所述第一控制器根據(jù)所述第一控制器的ip地址和tcp端口號建立了開放流openflow連接之后,接收所述第一控制器發(fā)送的出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。第五方面,本發(fā)明實施例提供了一種控制器,所述控制器包括:接收單元,用于接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;發(fā)送單元,用于向所述待上線sdn設備廣播dhcp響應報文,所述dhcp響應報文攜帶了所述控制器為所述待上線sdn設備分配的管理ip地址和所述控制器的ip地址;所述接收單元,還用于接收所述待上線sdn設備廣播的dhcp請求報文,所述dhcp請求報文攜帶了所述待上線sdn設備的設備標識,以及所述控制器的ip地址;所述發(fā)送單元,還用于向所述待上線sdn設備廣播dhcp應答報文,所述dhcp應答報文攜帶了控制器為所述待上線sdn設備分配管理ip地址,以及所述控制器的ip地址和tcp端口號;在所述待上線sdn設備與所述控制器根據(jù)所述控制器的ip地址和tcp端口號建立了openflow連接之后,向所述待上線sdn設備發(fā)送出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。第六方面,本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備,所述sdn設備處于已上線狀態(tài),所述sdn設備包括:接收單元,用于接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;發(fā)送單元,用于向控制器發(fā)送入向報文,所述入向報文中封裝了所述待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文;所述接收單元,還用于接收所述控制器發(fā)送的openflow流表報文,所述openflow流表報文攜帶了將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識的命令;vlan處理單元,用于根據(jù)所述openflow流表報文,將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識,以便于該sdn設備轉發(fā)所述待上線sdn設備與所述控制器之間的報文。本發(fā)明實施例提供了一種sdn設備自動上線的方法、sdn設備和控制器,通過待上線sdn設備廣播封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,dhcp發(fā)現(xiàn)報文攜帶了待上線sdn設備的設備標識;接收第一控制器廣播的第一dhcp響應報文,第一dhcp響應報文為待上線sdn設備接收到的第一個dhcp響應報文,第一dhcp響應報文攜帶了第一控制器為待上線sdn設備分配的管理ip地址和第一控制器的ip地址;將接收第一dhcp響應報文的第一端口置于vlan標識;采用第一端口廣播dhcp請求報文,dhcp請求報文攜帶了待上線sdn設備的設備標識,以及第一控制器的ip地址;通過第一端口接收第一控制器廣播的dhcp應答報文,dhcp應答報文攜帶了第一控制器為待上線sdn設備分配的管理ip地址,以及第一控制器的ip地址和tcp端口號;當待上線sdn設備與第一控制器根據(jù)第一控制器的ip地址和tcp端口號建立了開放流openflow連接之后,接收第一控制器發(fā)送的出向報文,出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。即通過待上線sdn設備與控制器之間利用擴展的dhcp報文的交互實現(xiàn)待上線sdn設備的自動地址分配,以及獲得待上線sdn設備與控制器建立openflow連接所需的控制器的ip地址和tcp端口號,當待上線sdn設備與控制器建立openflow連接即完成自動建立管理通道之后,控制器向待上線sdn設備發(fā)送攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息的出向報文,實現(xiàn)自動拓撲發(fā)現(xiàn),進而一步步的實現(xiàn)了待上線sdn設備的自動上線過程。簡化了sdn網(wǎng)絡中設備上線的工作流程,提高設備上線效率,做到設備即插即用、即插即管。附圖說明為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有網(wǎng)絡中使用的設備的自動地址分配方法流程圖;圖2為現(xiàn)有運營商網(wǎng)絡主要采用的dcn自通功能的流程圖;圖3為現(xiàn)有技術的一種dhcp報文的格式示意圖;圖4為本發(fā)明實施例提供的一種option61字段的格式示意圖;圖5為本發(fā)明實施例提供的一種option60字段的格式示意圖;圖6為本發(fā)明實施例提供的一種option43字段的格式示意圖;圖7為本發(fā)明實施例提供的sdn設備自動上線的方法流程圖之一;圖8為本發(fā)明實施例提供的sdn設備自動上線的方法流程圖之二;圖9為現(xiàn)有技術的一種網(wǎng)絡拓撲示意圖;圖10為本發(fā)明實施例提供的網(wǎng)絡拓撲示意圖之一;圖11為本發(fā)明實施例提供的網(wǎng)絡拓撲示意圖之二;圖12為本發(fā)明實施例提供的一種sdn設備的框圖;圖13為本發(fā)明實施例提供的一種控制器的框圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本發(fā)明實施例中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。為了便于清楚描述本發(fā)明實施例的技術方案,在本發(fā)明的實施例中,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上?,F(xiàn)有網(wǎng)絡中使用的設備的自動地址分配方法主要是動態(tài)主機配置協(xié)議(dynamichostconfigurationprotocol,簡稱dhcp)。參考圖1所示,網(wǎng)絡設備或主機在配置了某個接口或網(wǎng)卡為dhcp方式獲取地址信息后,會從這個接口向外發(fā)送dhcp發(fā)現(xiàn)(discover)廣播報文,在這個廣播域內(nèi)的所有dhcp服務器(server)都會收到這個dhcpdiscover報文,從而對這個報文的mac進行地址分配,對即將分配的地址進行地址重復檢測之后,會使用這個分配的地址對這個報文回復dhcp響應(offer)報文,并附上自己的ip地址。設備在收到眾多dhcpoffer報文后,選取一個dhcpoffer消息,針對這一dhcpserver發(fā)送dhcp請求(request),這一報文為廣播報文,在廣播域內(nèi)的dhcpserver都將收到,但只有標識了對應ip的dhcpserver才會對這一報文進行確認,通過dhcp應答(ack)報文回復和確認分配給這一設備的地址。至此,設備完成了地址的自動獲取。現(xiàn)有運營商網(wǎng)絡主要采用的設備自動發(fā)現(xiàn)、分配ip,并實現(xiàn)網(wǎng)管管理的方法為數(shù)據(jù)通信網(wǎng)絡(datacommunicationnetwork,簡稱dcn)自通功能。參考圖2所示,r1、r2、r3為網(wǎng)絡中正常運行的設備,通過網(wǎng)管專用通道與網(wǎng)管系統(tǒng)交互信令。r4設備為網(wǎng)絡中新安裝的設備,設備中預先開啟了設備的dcn功能,并配置了相應的網(wǎng)元id(neid)和網(wǎng)元ip(neip)。這樣r4首先建立協(xié)商點到點協(xié)議(point-to-pointprotocol,簡稱ppp)通道,與r2、r3分別生成了一條點到點的路由,并建立開放式最短路徑優(yōu)先(openshortestpathfirst,簡稱ospf)鄰居,這樣各鄰居通過ospf協(xié)議,由不透明的(opaque)鏈路狀態(tài)廣播(link-stateadvertisement,簡稱lsa)攜帶neid,生成一條neid和neip對應關系的核心路由,并學習到達r4的neip的32位路由。這樣網(wǎng)管系統(tǒng)訪問r4時,以r2的neip為目的地址,加上r4的neid,通過傳輸控制協(xié)議,(transmissioncontrolprotocol,簡稱tcp)連接到達r2;r2將數(shù)據(jù)包送至應用層,根據(jù)neid查詢目的neip,并把目的地址修改為r4的neip,重新封裝為用戶數(shù)據(jù)報協(xié)議(userdataprotocol,簡稱udp)報文,并查詢本地路由表轉發(fā)給r4;r4收到該報文后查詢到數(shù)據(jù)包的目的地為本設備,上送至應用層來進行處理。至此,完成了設備的即插即用,自動上線,自動發(fā)現(xiàn)網(wǎng)元并實現(xiàn)遠程管理,從而進行設備調(diào)測。dhcp方法雖然能夠使設備自動獲取到地址,但無法打通控制器與設備之間的邏輯通路,無法實現(xiàn)設備的即插即用、即插即管;而dcn自通方法對設備和網(wǎng)絡限制較多,首先,鏈路需要是ppp鏈路,這樣才能形成點到點的32位主機路由,以便使ospf域內(nèi)的鄰居都能獲悉這條路由,其次,設備必須能夠支持ospf的10類lsa,這對設備提出了較高的要求。因此,上述兩種方法都不適用于本發(fā)明實施例涉及的針對于運營商的sdn設備自動上線的問題。需要說明的是:在本發(fā)明實施例中,采用并詳細定義了三個新的報文格式,如圖4、圖5、圖6和表1、表2所示(其中表1是對圖3各個字段的解釋,表2是對圖6各個字段的解釋),均是在符合rfc2131所規(guī)定的如圖3所示的dhcp報文的基礎上,對部分option61、option60和option43字段進行詳細定義,當然也可以是對其他字段進行詳細定義,在此不予限制。表1字段名位寬(byte)說明op1信息類型代碼htype1物理地址類型hlen1物理地址長度hops1跳數(shù)xid4事務idsecs2客戶端開始dhcp過程的時間flags2標記位ciaddr4客戶端ip地址yiaddr4客戶端ip地址siaddrdhcp4服務器ip地址giaddr4中繼ip地址chaddr16客戶端物理地址sname64服務器名字file128啟動文件名options可變的可選參數(shù)域表2需要說明的是:表2中na表示長度不固定,例如,sub-option2含的ip數(shù)量可能不同,其所占bytes數(shù)目不固定。實施例一本發(fā)明實施例提供了一種軟件定義網(wǎng)絡sdn設備自動上線的方法,在本發(fā)明實施例提供的網(wǎng)絡架構中至少包括控制器(controller)和待上線sdn設備,在控制器和待上線sdn設備之間還可能包括已上線sdn設備,而在已上線sdn設備和控制器之間還可能包括傳統(tǒng)路由器。參考圖7所示,該方法具體包括:需要說明的是:為了便于描述,在以下實施例中,步驟s101~s109中ra在進行自動上線,表示待上線sdn設備,步驟s109以后,ra完成自動上線,表示已上線sdn設備,rb表示另一待上線設備,controller1表示第一控制器,controller2表示第二控制器。s101、ra廣播封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,dhcp發(fā)現(xiàn)報文攜帶了ra的設備標識。其中,vlan標識就是vlan號,在本發(fā)明實施例中vlan標識是vlan4094,當然也可以是其他的vlan號,具體參考現(xiàn)有技術。在啟動之初,即設備一上電,ra將其所有端口置于假vlan4094,具體的,ra通過預先設置,設備啟動之初在各端口上發(fā)送的dhcp報文外面都封裝一層vlan4094的標簽(tag)。ra的設備標識包括客戶端id(clientid)和廠商標識,還可能包括其他的設備標識,在此不再贅述。具體的,本發(fā)明實施例在dhcpdiscover報文基礎上做出了修改。(1)參考圖4所示,采用并詳細定義了option61字段的客戶端(client)id,格式為sdn-hhhhhhhhhhhh-if0,其中,sdn代表了是sdn設備,hhhhhhhhhhhh為設備mac地址字符,mac地址字符占8個字節(jié)。包括mac地址字符在內(nèi),所有字符均采用ascii碼形式進行編碼。如:mac地址為000e-5e7a-aa97的設備在發(fā)送dhcpdiscover報文時,clientid為3d150053646e2d3030306535653761306139372d494630。(2)參考圖5所示,采用并詳細定義了option60字段的供廠商標識id(vendorclassidentifier),廠商標識id所占字節(jié)數(shù)不限定,根據(jù)具體情況而定。格式為廠商標識id4094。如:廠商標識id為中國聯(lián)通(chinaunicom),則vendorclassidentifier為3c0f6348696e61756e69636f6d34303934。同時option60和option61字段表明ra正在采用4094這一vlan,進行設備自動上線。s102、控制器向ra廣播dhcp響應報文,dhcp響應報文攜帶了控制器為ra分配的管理ip地址和控制器的ip地址。需要說明的是:本步驟中的控制器包括同一廣播域內(nèi)(在本發(fā)明實施例中是指vlan4094)的,且收到ra發(fā)送的dhcpdiscover報文的任一控制器,即包括下面的controller1和controller2。具體的,控制器接收ra廣播的封裝了虛擬局域網(wǎng)vlan標識(vlan4094)的dhcpdiscover報文,dhcpdiscover報文攜帶了ra的設備標識??刂破魍ㄟ^dhcp報文處理器,獲取帶有特殊字段option61和option60的設備信息,并保存至控制器的設備管理信息數(shù)據(jù)庫中,同時從地址池中選取一個地址分配給設備,一并寫入設備管理信息數(shù)據(jù)庫中進行維護。示例的,controller在數(shù)據(jù)庫中記錄設備的clientid,并為其分配管理ip地址,如:20.0.0.85;控制器在進行地址重復性檢測后,廣播dhcpoffer報文對dhcpdiscover報文進行回復,報文包括了控制器要對ra進行分配的地址。同時,控制器在檢測到option60字段后,準備開啟設備上線流程。s103、ra將接收第一dhcpoffer報文的第一端口置于vlan標識。具體的,ra接收controller1廣播的第一dhcpoffer報文,第一dhcpoffer報文為ra接收到的第一個dhcpoffer報文,第一dhcpoffer報文攜帶了controller1為ra分配的管理ip地址和controller1的ip地址。ra將接收第一dhcpoffer報文的第一端口置于vlan標識。示例的,ra將接收第一dhcpoffer報文的第一端口置于vlan4094。ra還接收controller2廣播的第二dhcpoffer報文,第二dhcpoffer報文為ra接收到的除第一dhcpoffer報文以外的dhcpoffer報文,第二dhcpoffer報文攜帶了controller2為ra分配的管理ip地址和controller2的ip地址,丟棄第二dhcpoffer。需要說明的是:ra接收到第二dhcpoffer報文和第一dhcpoffer報文的端口可以是同一個端口,也可以不是同一個端口。s104、ra采用第一端口廣播dhcp請求報文,dhcp請求報文攜帶了ra的設備標識,以及controller1的ip地址。具體的,ra廣播發(fā)送dhcprequest,指定controller1來分配地址。s105、controller1向ra廣播dhcp應答報文,dhcp應答報文攜帶了控制器為ra分配管理ip地址,以及controller1的ip地址和tcp端口號。具體的,controller1接收ra廣播的dhcprequest報文,dhcprequest報文攜帶了ra的設備標識,以及controller1的ip地址。controller1回復ra設備dhcpack報文,該報文不僅攜帶了為ra分配的管理ip地址、租約等信息,同時還攜帶了如圖6所示的option43字段,帶有controller1的ip和tcp端口號。即controller1通過dhcp功能與openflow關聯(lián)器的作用,將建立openflow連接的相關信息通過dhcp的option43發(fā)送給設備,并等待設備主動建立tcp連接和openflow連接。ra通過第一端口接收controller1廣播的dhcpack報文。dhcpack報文攜帶了controller1為ra分配的管理ip地址,以及controller1的ip地址和tcp端口號。其中controller1的ip地址和tcp端口號用以實現(xiàn)ra與controller1建立openflow連接,從而實現(xiàn)ra自動上線。ra將controller1的ip地址、用以建立openflow連接的tcp端口號信息等記錄下來,保存在數(shù)據(jù)緩沖區(qū)(buffer)中,等待調(diào)用。至此,ra完成自動上線過程中的自動地址分配。s106(可選的)、ra對controller1的ip地址進行地址解析協(xié)議(addressresolutionprotocol,簡稱arp)解析。具體的,ra在收到包含controller1的ip地址的dhcpack報文后,對controller1的ip地址進行arp解析,已獲得controller1的mac地址,為后續(xù)ra與controller1建立連接做準備。ra向controller1發(fā)送arprequest報文,controller1向ra回復arpreply報文。具體的參考現(xiàn)有技術,在此不再贅述。s107(可選的)、ra與controller1使用controller1的tcp端口號進行tcp三次握手。一個正常的tcp連接需要三次握手,在本發(fā)明實施例中,首先ra發(fā)送一個包含syn(synchronous的簡稱,是tcp/ip建立連接時使用的握手信號)標志的數(shù)據(jù)包,其后controller1返回一個syn/ack的應答包,表示ra的請求被接受,最后ra再返回一個確認包ack,完成tcp連接。ra向controller1發(fā)送tcpsyn報文,controller1向ra回復tcpsynack報文,ra向controller1回復報文tcpack報文。具體的參考現(xiàn)有技術,在此不再贅述。ra與controller1建立的tcp連接是一個實際連接,為后續(xù)建立openflow連接進行通信提供了一個可靠的通道。s108(可選的)、ra與controller1建立openflow連接。并完成包括獲取特征(feature)、端口(port)等信息的openflow報文交互。controller1向ra發(fā)送openflowhello報文,ra向controller1回復openflowhello報文,以及ra與controller1之間發(fā)送一系列的openflow報文。具體的參考現(xiàn)有技術,在此不再贅述。至此,ra完成自動上線過程中的自動建立管理通道。s109、當ra與controller1根據(jù)controller1的ip地址和tcp端口號建立了開放流openflow連接之后,controller1向ra發(fā)送出向報文,出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。controller1向ra發(fā)送出向(packet_out)報文,該報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議(linklayerdiscoveryprotocol,簡稱lldp)消息。ra接收第一控制器發(fā)送的出向報文,出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。至此,ra完成自動上線過程中的自動拓撲發(fā)現(xiàn),進而ra完成設備自動上線,成為已上線設備。在上述步驟s109完成之前,即ra是待上線sdn設備,未完成自動上線過程之前,若ra收到來自另一待上線sdn設備rb廣播的dhcpdiscover報文,則丟棄該報文。在上述步驟s109完成之后,ra是已上線sdn設備,若ra收到來自另一待上線sdn設備rb廣播的dhcpdiscover報文,則參考圖8所示,該方法包括:s201、ra接收rb廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,dhcp發(fā)現(xiàn)報文攜帶了rb的設備標識。此處的vlan標識與步驟s101-s109中的vlan標識相同,在本發(fā)明實施例中為vlan4094。rb的設備標識包括rb的clientid和廠商標識。dhcpdiscover報文的格式與步驟s101中的相同。具體的參考步驟s101。s202、ra向controller1發(fā)送入向報文,入向報文中封裝了rb廣播的dhcp發(fā)現(xiàn)報文。具體的,ra發(fā)現(xiàn)rb發(fā)送的dhcpdiscover報文封裝了vlan4094的標簽,ra將rb發(fā)送的dhcpdiscover報文封裝在入向(packet_in)報文中,將其發(fā)送給controller1,并標記接收rb發(fā)送的dhcpdiscover報文的端口。s203、controller1向ra發(fā)送openflow流表報文,openflow流表報文攜帶了將ra接收dhcp發(fā)現(xiàn)報文的端口置于vlan標識的命令,以便于ra轉發(fā)rb與控制器之間的報文。具體的,controller1接收ra發(fā)送的第一packet_in報文,第一packet_in報文中封裝了rb廣播的dhcpdiscover報文,第一packet_in報文為controller1接收到的第一個packet_in報文。controller1還接收第二已上線sdn設備發(fā)送的第二packet_in報文,第二入向報文中封裝了rb廣播的dhcp發(fā)現(xiàn)報文,第二packet_in報文為controller1接收到的除第一packet_in報文以外的packet_in報文;丟棄第二packet_in報文。controller1從第一packet_in報文中封裝的dhcpdiscover報文中獲知rb的設備信息,以及rb正在進行自動上線請求。controller1向ra發(fā)送openflow流表(flow_mod)報文,flow_mod報文攜帶了將ra接收dhcpdiscover報文的端口置于vlan標識(vlan4094)的命令,以便于ra轉發(fā)rb與控制器之間的報文。s204、ra根據(jù)openflow流表報文,將接收dhcp發(fā)現(xiàn)報文的端口置于vlan標識,以便于ra轉發(fā)rb與controller1之間的報文。具體的,ra接收controller1發(fā)送的flow_mod報文,flow_mod報文攜帶了將接收dhcpdiscover報文的端口置于vlan4094的命令。ra根據(jù)該flow_mod報文將步驟s202中標記的端口置于管理vlan4094中。從而ra可以對rb與controller1之間封裝了vlan4094標簽的報文進行透傳。這里的透傳是指ra可以直接轉發(fā)rb與controller1之間封裝了vlan4094標簽的報文,不需做任何處理,具體的參考下面步驟。s205、rb廣播封裝了vlan標識的dhcp發(fā)現(xiàn)報文,dhcp發(fā)現(xiàn)報文攜帶了rb的設備標識。s206、ra將rb廣播的封裝了vlan標識的dhcp發(fā)現(xiàn)報文轉發(fā)給controller1。s207、controller1廣播dhcp響應報文,dhcp響應報文攜帶了controller1為rb分配的管理ip地址和控制器的ip地址。s208、ra將controller1廣播的dhcp響應報文轉發(fā)給rb。s209、rb將接收dhcp響應報文的端口置于vlan標識。s210、rb采用置于vlan標識的端口廣播dhcp請求報文,dhcp請求報文攜帶了rb的設備標識,以及controller1的ip地址。s211、ra將rb廣播的dhcp請求報文轉發(fā)給controller1。s212、controller1廣播dhcp應答報文,dhcp應答報文攜帶了控制器為rb分配管理ip地址,以及controller1的ip地址和tcp端口號。s213、ra將controller1廣播的dhcp應答報文轉發(fā)給rb。至此,rb完成自動上線過程中的自動地址分配。s214、rb對controller1的ip地址進行arp解析。s215、rb與controller1使用controller1的tcp端口號進行tcp三次握手。s216、rb與controller1建立openflow連接。至此,rb完成自動上線過程中的自動建立管理通道。s217、當rb與controller1根據(jù)controller1的ip地址和tcp端口號建立了開放流openflow連接之后,controller1向rb發(fā)送出向報文,出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息。s218、ra轉發(fā)controller1向rb發(fā)送的出向報文。至此,rb完成自動上線過程中的自動拓撲發(fā)現(xiàn),進而rb完成設備自動上線,成為已上線設備。上述步驟s205-s218的具體過程參考步驟s101-s109,不再贅述。為了便于對本發(fā)明實施例的進一步理解,下面舉例說明本發(fā)明實施例的具體實現(xiàn)方式。1、參考圖9所示,當區(qū)域a內(nèi)路由器均為傳統(tǒng)路由器時,需要在r6和r8間、r7和r8間建立兩條l2vpn。這樣區(qū)域b中的sdn設備在上線時,可以將報文封裝成mpls報文,經(jīng)過之前建立的l2vpn到達controller,具體參考現(xiàn)有技術,在此不再贅述。r2/r4/r10/r11首先進行自動地址分配、自動建立管理通道(openflow連接)和自動拓撲發(fā)現(xiàn),實現(xiàn)自動上線。然后r2/r4/r10/r11將接收到的下游設備發(fā)送的dhcpdiscover消息裝入openflowpacket_in報文傳送給controller,對于同一下游設備的mac,controller回復先到達的openflowpacket_in,接收到controller發(fā)送的flow_mod消息的sdn設備將下游端口劃入vlan4094。sdn設備在未完成自動上線之前,在收到來自其他設備的dhcpdiscover報文時,不處理直接丟棄。這樣,經(jīng)過sdn設備自動上線操作后,會形成一個無環(huán)的網(wǎng)絡的管理通道,如圖10所示。避免了區(qū)域b內(nèi)的sdn設備間形成環(huán)路,造成廣播風暴。2、參考圖9所示,當區(qū)域a內(nèi)路由器均為sdn設備時,依據(jù)r8->r6/r9->r2/r7/r10->r1/r5/r4/r11/r12->r3的上線順序,實現(xiàn)以r8為根節(jié)點的一根無環(huán)的自通管理通道樹,具體過程與1類似。最終形成的管理通道示意圖,如圖11所示。需要說明的是:根據(jù)本發(fā)明實施里提供的方法,圖10和圖11僅是上述兩種情況下獲得的示例的拓撲結構,而不是唯一的拓撲結構。本發(fā)明實施例提供了一種sdn設備自動上線的方法,通過待上線sdn設備與控制器之間利用擴展的dhcp報文的交互實現(xiàn)待上線sdn設備的自動地址分配,以及獲得待上線sdn設備與控制器建立openflow連接所需的控制器的ip地址和tcp端口號,當待上線sdn設備與控制器建立openflow連接即完成自動建立管理通道之后,控制器向待上線sdn設備發(fā)送攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息的出向報文,實現(xiàn)自動拓撲發(fā)現(xiàn),進而一步步的實現(xiàn)了待上線sdn設備的自動上線過程。簡化了sdn網(wǎng)絡中設備上線的工作流程,提高設備上線效率,做到設備即插即用、即插即管。實施例二本發(fā)明實施例提供了一種sdn設備,該sdn設備包括:發(fā)送單元11、接收單元12和vlan處理單元13。若該sdn設備處于待上線狀態(tài),則發(fā)送單元11,用于廣播封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了該sdn設備的設備標識;接收單元13,用于接收第一控制器廣播的第一dhcp響應報文,所述第一dhcp響應報文為該sdn設備接收到的第一個dhcp響應報文,所述第一dhcp響應報文攜帶了所述第一控制器為該sdn設備分配的管理ip地址和所述第一控制器的ip地址;vlan處理單元13,用于將接收所述第一dhcp響應報文的第一端口置于所述vlan標識;所述發(fā)送單元11,還用于采用所述第一端口廣播dhcp請求報文,所述dhcp請求報文攜帶了該sdn設備的設備標識,以及所述第一控制器的ip地址;所述接收單元12,還用于通過第一端口接收所述第一控制器廣播的dhcp應答報文,所述dhcp應答報文攜帶了第一控制器為該sdn設備分配的管理ip地址,以及所述第一控制器的ip地址和tcp端口號;當該sdn設備與所述第一控制器根據(jù)所述第一控制器的ip地址和tcp端口號建立了開放流openflow連接之后,接收所述第一控制器發(fā)送的出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息??蛇x的,所述接收單元12,還用于接收第二控制器廣播的第二dhcp響應報文,所述第二dhcp響應報文為該sdn設備接收到的除所述第一dhcp響應報文以外的dhcp響應報文,所述第二dhcp響應報文攜帶了所述第二控制器為該sdn設備分配的管理ip地址和所述第二控制器的ip地址;丟棄所述第二dhcp響應報文??蛇x的,所述接收單元12,還用于若接收到來自另一待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文,則丟棄該報文。若該sdn設備處于已上線狀態(tài),則接收單元12,用于接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;發(fā)送單元11,用于向控制器發(fā)送入向報文,所述入向報文中封裝了所述待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文;所述接收單元12,還用于接收所述控制器發(fā)送的openflow流表報文,所述openflow流表報文攜帶了將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識的命令;vlan處理單元13,用于根據(jù)所述openflow流表報文,將接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識,以便于所述該sdn設備轉發(fā)所述待上線sdn設備與所述控制器之間的報文。需要說明的是:本實施例中的發(fā)送單元11可以為sdn設備上具備發(fā)送功能的接口電路,如發(fā)送機或信息發(fā)送接口;接收單元12可以為sdn設備上具備接收功能或的接口電路,如接收機或信息接收接口;其他單元可以為單獨設立的處理器,也可以集成在sdn設備的某一個處理器中實現(xiàn),此外,也可以以程序代碼的形式存儲于sdn設備的存儲器中,由sdn設備的某一個處理器調(diào)用并執(zhí)行以上各個單元的功能。這里所述的處理器可以是一個中央處理器(英文全稱:centralprocessingunit,英文簡稱:cpu),或者是特定集成電路(英文全稱:applicationspecificintegratedcircuit,英文簡稱:asic),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。本發(fā)明實施例提供了一種sdn設備,通過sdn設備與控制器之間利用擴展的dhcp報文的交互實現(xiàn)sdn設備的自動地址分配,以及獲得sdn設備與控制器建立openflow連接所需的控制器的ip地址和tcp端口號,當sdn設備與控制器建立openflow連接即完成自動建立管理通道之后,控制器向sdn設備發(fā)送攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息的出向報文,實現(xiàn)自動拓撲發(fā)現(xiàn),進而一步步的實現(xiàn)了sdn設備的自動上線過程。簡化了sdn網(wǎng)絡中設備上線的工作流程,提高設備上線效率,做到設備即插即用、即插即管。實施例三本發(fā)明實施例提供了一種控制器,所述控制器包括:接收單元21,用于接收待上線sdn設備廣播的封裝了虛擬局域網(wǎng)vlan標識的dhcp發(fā)現(xiàn)報文,所述dhcp發(fā)現(xiàn)報文攜帶了所述待上線sdn設備的設備標識;發(fā)送單元22,用于向所述待上線sdn設備廣播dhcp響應報文,所述dhcp響應報文攜帶了所述控制器為所述待上線sdn設備分配的管理ip地址和所述控制器的ip地址;所述接收單元21,還用于接收所述待上線sdn設備廣播的dhcp請求報文,所述dhcp請求報文攜帶了所述待上線sdn設備的設備標識,以及所述控制器的ip地址;所述發(fā)送單元22,還用于向所述待上線sdn設備廣播dhcp應答報文,所述dhcp應答報文攜帶了控制器為所述待上線sdn設備分配管理ip地址,以及所述控制器的ip地址和tcp端口號;在所述待上線sdn設備與所述控制器根據(jù)所述控制器的ip地址和tcp端口號建立了openflow連接之后,向所述待上線sdn設備發(fā)送出向報文,所述出向報文攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息??蛇x的,所述接收單元21,還用于接收第一已上線sdn設備發(fā)送的第一入向報文,所述第一入向報文中封裝了所述待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文,所述第一入向報文為所述控制器接收到的第一個入向報文;所述發(fā)送單元22,還用于向所述第一已上線sdn設備發(fā)送openflow流表報文,所述openflow流表報文攜帶了將所述第一已上線sdn設備接收所述dhcp發(fā)現(xiàn)報文的端口置于所述vlan標識的命令,以便于所述第一已上線sdn設備轉發(fā)所述待上線sdn設備與所述控制器之間的報文。可選的,所述接收單元21,還用于接收第二已上線sdn設備發(fā)送的第二入向報文,所述第二入向報文中封裝了所述待上線sdn設備廣播的dhcp發(fā)現(xiàn)報文,所述第二入向報文為所述控制器接收到的除所述第一入向報文以外的入向報文;丟棄所述第二入向報文。需要說明的是:本實施例中的接收單元21可以為控制器上具備接收功能或的接口電路,如接收機或信息接收接口;發(fā)送單元22可以為控制器上具備發(fā)送功能的接口電路,如發(fā)送機或信息發(fā)送接口;其他單元可以為單獨設立的處理器,也可以集成在控制器的某一個處理器中實現(xiàn),此外,也可以以程序代碼的形式存儲于控制器的存儲器中,由控制器的某一個處理器調(diào)用并執(zhí)行以上各個單元的功能。這里所述的處理器與實施例二相同。本發(fā)明實施例提供了一種控制器,通過待上線sdn設備與控制器之間利用擴展的dhcp報文的交互實現(xiàn)待上線sdn設備的自動地址分配,以及獲得待上線sdn設備與控制器建立openflow連接所需的控制器的ip地址和tcp端口號,當待上線sdn設備與控制器建立openflow連接即完成自動建立管理通道之后,控制器向待上線sdn設備發(fā)送攜帶了鏈路層發(fā)現(xiàn)協(xié)議lldp消息的出向報文,實現(xiàn)自動拓撲發(fā)現(xiàn),進而一步步的實現(xiàn)了待上線sdn設備的自動上線過程。簡化了sdn網(wǎng)絡中設備上線的工作流程,提高設備上線效率,做到設備即插即用、即插即管。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。上述以軟件功能單元的形式實現(xiàn)的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟件功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(read-onlymemory,簡稱rom)、隨機存取存儲器(randomaccessmemory,簡稱ram)、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。當前第1頁12