本發(fā)明涉及數(shù)據(jù)通信技術(shù),特別涉及縱向虛擬化環(huán)境中一種逐級發(fā)現(xiàn)設(shè)備的技術(shù)。
背景技術(shù):
隨著在大樓局域網(wǎng)和數(shù)據(jù)中心的接入網(wǎng)絡(luò)中,客戶對網(wǎng)絡(luò)管理簡單化的要求越來越高,虛擬化技術(shù)被用來將復雜的網(wǎng)絡(luò)環(huán)境中的多臺設(shè)備,虛擬成一臺邏輯設(shè)備,對于網(wǎng)絡(luò)管理員而言,管理一個網(wǎng)絡(luò)等同于管理一臺邏輯設(shè)備。
虛擬化技術(shù)分為橫向虛擬化和縱向虛擬化,橫向虛擬化是指將在同一網(wǎng)絡(luò)層次的多臺冗余設(shè)備虛擬成一臺邏輯設(shè)備的技術(shù),被虛擬化的多臺設(shè)備通常都是型號相同或相近的設(shè)備,彼此之間是對等體的關(guān)系,任一設(shè)備失效可由其他設(shè)備頂替;縱向虛擬化則是將不同網(wǎng)絡(luò)層次的設(shè)備虛擬成一臺邏輯設(shè)備的技術(shù),現(xiàn)有的縱向虛擬化技術(shù),通常是將下層設(shè)備虛擬成上層設(shè)備的一張板卡,通過上層設(shè)備直接管理,上下層設(shè)備之間是無法進行角色轉(zhuǎn)換的。
縱向虛擬化要求網(wǎng)絡(luò)上層設(shè)備要能夠發(fā)現(xiàn)并管理下層設(shè)備,上層設(shè)備通常叫主控設(shè)備或管理設(shè)備,下層設(shè)備通常叫節(jié)點設(shè)備或被控設(shè)備,而為了實現(xiàn)“一網(wǎng)一設(shè)備”的管理目的,同時兼顧管理設(shè)備的冗余備份,通常會將上層管理設(shè)備進行橫向虛擬化后,再與下層設(shè)備形成縱向虛擬化,其系統(tǒng)框圖如圖1所示,在管理層面整張網(wǎng)絡(luò)等同于一臺邏輯設(shè)備。由于管理設(shè)備被橫向虛擬化虛擬成一臺邏輯設(shè)備,所以,節(jié)點設(shè)備都是以跨設(shè)備的鏈路匯聚上聯(lián)到管理設(shè)備,圖1中的所有設(shè)備被虛擬成一臺邏輯設(shè)備,且沒有環(huán)路。
當前各大廠商支持的縱向虛擬化技術(shù),大體分為兩種,一種是緊耦合的實現(xiàn)方式,不僅需要在上層設(shè)備上全新開發(fā)虛擬化模塊,還需要同步在下層設(shè)備上開發(fā)虛擬化模塊,這種方式對下層設(shè)備的CPU(處理器)、內(nèi)存等資源要求較高,且可擴展性不強,因為每支持一款下層設(shè)備都需要全新開發(fā),且通常越下層的設(shè)備性能越差;另外一種是松耦合的實現(xiàn)方式,采用已有的一些通用設(shè)備發(fā)現(xiàn)協(xié)議,負責上下層設(shè)備的發(fā)現(xiàn)和管理通信,只需要在上下層設(shè)備上做較少改動即可支持對下層設(shè)備的管理,擴展性好,但對下層設(shè)備管理能力有限;而為了實現(xiàn)“一網(wǎng)一設(shè)備”的管理目的,同時兼顧管理設(shè)備的冗余備份,通常會將上層設(shè)備即管理設(shè)備進行橫向虛擬化后,再與下層設(shè)備形成縱向虛擬化,在管理層面整張網(wǎng)絡(luò)等同于一臺邏輯設(shè)備。
當前在縱向虛擬化環(huán)境下,上層設(shè)備要發(fā)現(xiàn)下層設(shè)備,都需要在下層設(shè)備上進行預配置,雖然配置內(nèi)容很少,但由于與網(wǎng)絡(luò)環(huán)境和設(shè)備型號密切相關(guān),很難通過默認配置文件實現(xiàn)。這意味著網(wǎng)絡(luò)建立之初,需要管理員對網(wǎng)絡(luò)進行詳細規(guī)劃,明確端口和IP地址信息,并逐臺登錄設(shè)備完成配置后才能用于安裝,且安裝時需要按照規(guī)劃正確連接端口,否則可能出現(xiàn)設(shè)備無法發(fā)現(xiàn)和管理的問題,同樣,一旦需要更換或新增下層設(shè)備時,都要提前將配置復制到新設(shè)備或?qū)π略O(shè)備重新配置后才能更換。這種方式使“一網(wǎng)一設(shè)備”的管理目標大打折扣。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的就是解決目前縱向虛擬化環(huán)境中無配置設(shè)備難以被發(fā)現(xiàn)的問題,提供一種虛擬化成員設(shè)備及鄰居發(fā)現(xiàn)方法。
本發(fā)明解決其技術(shù)問題,采用的技術(shù)方案是,虛擬化成員設(shè)備,包括處理模塊,其特征在于,還包括偵聽模塊、報文解析記錄模塊及鏈路匯聚創(chuàng)建模塊,
所述處理模塊,用于啟動后判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,正常工作,否則開啟設(shè)備發(fā)現(xiàn)任務,通知偵聽模塊開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,且開始計時,若計時達到預設(shè)時間,則查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文,若有則命令報文解析記錄模塊對其進行解析,并將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,若查詢報文解析記錄模塊中沒有發(fā)現(xiàn)協(xié)議報文則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā);若接收到鏈路匯聚對應端口列表信息則將其發(fā)送給鏈路匯聚創(chuàng)建模塊;
所述偵聽模塊,用于對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則將其發(fā)送給報文解析記錄模塊,否則不進行處理;
所述報文解析記錄模塊,用于記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,并根據(jù)處理模塊命令對其進行解析,得到鄰居信息,發(fā)送給鏈路匯聚創(chuàng)建模塊;
所述鏈路匯聚創(chuàng)建模塊,用于根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,若接收到處理模塊發(fā)送來的鏈路匯聚對應端口列表信息則創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口加入到該動態(tài)鏈路匯聚中。
具體的,所述將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議是指:將所有端口的生成樹狀態(tài)設(shè)置為阻塞Blocking狀態(tài);
所述將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文是指:將所有端口的生成樹狀態(tài)設(shè)置為轉(zhuǎn)發(fā)Forwarding狀態(tài)。
進一步的,所述鄰居信息包括鄰居MAC地址、發(fā)送端口列表信息及接收端口列表信息。
具體的,所述計時達到預設(shè)時間后,處理模塊先判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,若被配置為管理設(shè)備或被強制退出設(shè)備發(fā)現(xiàn)任務則清空報文解析記錄模塊中的數(shù)據(jù),結(jié)束發(fā)現(xiàn)過程,否則查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文。
再進一步的,所述處理模塊在開啟設(shè)備發(fā)現(xiàn)任務的同時,生成一個計數(shù)值為0,當其查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文時,若沒有發(fā)現(xiàn)協(xié)議報文,則將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若是則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,否則將計時清零,并重新開始計時。
虛擬化成員設(shè)備的鄰居發(fā)現(xiàn)方法,應用于上述虛擬化成員設(shè)備中,其特征在于,包括以下步驟:
步驟1、虛擬化成員設(shè)備啟動,判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,正常工作,否則進入步驟2;
步驟2、虛擬化成員設(shè)備開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,且開始計時;
步驟3、偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,否則不進行處理;
步驟4、時刻判斷計時是否達到預設(shè)時間,若達到則進入步驟5,否則回到步驟3;
步驟5、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若有則進入步驟6,若沒有則進入步驟7;
步驟6、解析并記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,得到鄰居信息,根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,進入步驟7;
步驟7、將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作;
步驟8、正常工作時,若接收到鏈路匯聚對應端口列表信息則將創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口加入到該動態(tài)鏈路匯聚中。
具體的,步驟2中,所述將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議是指:將所有端口的生成樹狀態(tài)設(shè)置為阻塞Blocking狀態(tài);
步驟7中,所述將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文是指:將所有端口的生成樹狀態(tài)設(shè)置為轉(zhuǎn)發(fā)Forwarding狀態(tài)。
進一步的,步驟6中,所述鄰居信息包括鄰居MAC地址、發(fā)送端口列表信息及接收端口列表信息。
具體的,步驟5包括以下具體步驟:
步驟501、判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,若被配置為管理設(shè)備或被強制退出設(shè)備發(fā)現(xiàn)任務則先清空設(shè)備發(fā)現(xiàn)任務中所接收到的發(fā)現(xiàn)協(xié)議報文,再進入步驟7,否則進入步驟502;
步驟502、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若有則進入步驟6,若沒有則進入步驟7。
再進一步的,步驟2中,在開啟設(shè)備發(fā)現(xiàn)任務的同時,生成一個計數(shù)值為0;
步驟5中,若沒有發(fā)現(xiàn)協(xié)議報文,則將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若是則進入步驟7,否則將計時清零,并重新開始計時,回到步驟3。
本發(fā)明的有益效果是,通過上述虛擬化成員設(shè)備及鄰居發(fā)現(xiàn)方法,只需要在主控或管理設(shè)備上配置為縱向虛擬化網(wǎng)絡(luò)中的管理者(即將需要的虛擬化成員設(shè)備配置為管理設(shè)備),就能夠完成整個網(wǎng)絡(luò)鄰居的逐級發(fā)現(xiàn),網(wǎng)絡(luò)管理者或網(wǎng)絡(luò)建設(shè)實施人員無需關(guān)心設(shè)備間要怎么接線,更不用對網(wǎng)絡(luò)中的每臺設(shè)備都進行預配置,極大的減少網(wǎng)絡(luò)管理難度和工作量,網(wǎng)絡(luò)從建設(shè)到維護真正實現(xiàn)“一網(wǎng)一設(shè)備”的管理效果,且這種效果在設(shè)備層級越多,設(shè)備量越大時優(yōu)勢更明顯。以一棟10層的辦公大樓為例,每層樓至少1臺匯聚交換機,每層樓至少5臺接入交換機,加上核心交換機2臺,共計62臺交換機,對匯聚和接入的60臺交換機,預配置的時間大概是20分鐘/臺,配置完所有的60臺交換機需要不間斷的20個小時,但利用上述方案則完全不需要投入預配置,鄰居發(fā)現(xiàn)最多在預設(shè)計數(shù)值乘以預設(shè)時間所得的時間內(nèi)就會完成;另外,在規(guī)劃和安裝上由于上述方案實際不關(guān)心物理連接,實際上在規(guī)劃和施工上節(jié)約的時間更可觀,關(guān)鍵是對管理人員的要求會很低,管理人員只需要會配置管理設(shè)備即可。
附圖說明
圖1是目前縱向虛擬化組網(wǎng)的系統(tǒng)框圖;
圖2是本發(fā)明中虛擬化成員設(shè)備的系統(tǒng)框圖;
圖3是本發(fā)明實施例中虛擬化成員設(shè)備的鄰居發(fā)現(xiàn)方法的流程圖;
圖4是本發(fā)明實施例中三層縱向虛擬化組網(wǎng)的系統(tǒng)框圖。
具體實施方式
下面結(jié)合實施例及附圖,詳細描述本發(fā)明的技術(shù)方案。
本發(fā)明的虛擬化成員設(shè)備,其系統(tǒng)框圖參見圖2,包括處理模塊、偵聽模塊、報文解析記錄模塊及鏈路匯聚創(chuàng)建模塊,其中,處理模塊用于啟動后判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,正常工作,否則開啟設(shè)備發(fā)現(xiàn)任務,通知偵聽模塊開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,且開始計時,若計時達到預設(shè)時間,則查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文,若有則命令報文解析記錄模塊對其進行解析,并將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,若沒有則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,當正常工作時,若接收到鏈路匯聚對應端口列表信息則將其發(fā)送給鏈路匯聚創(chuàng)建模塊;偵聽模塊用于對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則將其發(fā)送給報文解析記錄模塊,否則不進行處理;報文解析記錄模塊用于記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,并根據(jù)處理模塊命令對其進行解析,得到鄰居信息,發(fā)送給鏈路匯聚創(chuàng)建模塊;鏈路匯聚創(chuàng)建模塊用于根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,上游鄰居若接收到發(fā)送來的鏈路匯聚對應端口列表信息則創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口列表加入到該動態(tài)鏈路匯聚中。
本發(fā)明的虛擬化成員設(shè)備的鄰居發(fā)現(xiàn)方法,應用于上述虛擬化成員設(shè)備中,具體為:首先虛擬化成員設(shè)備啟動,判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,正常工作,否則開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,且開始計時,偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若未監(jiān)聽到則暫時不進行處理,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,時刻判斷計時是否達到預設(shè)時間,若未達到則回到偵聽時那一步繼續(xù)偵聽,若達到則查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若沒有則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,若有則解析并記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,得到鄰居信息,根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,再將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,若沒有也將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,在正常工作時,若接收到鏈路匯聚對應端口列表信息則將創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口列表加入到該動態(tài)鏈路匯聚中。
實施例
本發(fā)明實施例中虛擬化成員設(shè)備,其系統(tǒng)框圖參見圖2,包括處理模塊、偵聽模塊、報文解析記錄模塊及鏈路匯聚創(chuàng)建模塊。
其中,處理模塊用于,啟動后判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,所述虛擬化成員設(shè)備可以正常工作,否則開啟設(shè)備發(fā)現(xiàn)任務,通知偵聽模塊開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,本例中,可將所有端口的生成樹狀態(tài)設(shè)置為阻塞(Blocking)狀態(tài)以達到上述效果,且開始計時,若計時達到預設(shè)時間,則查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文,若有則命令報文解析記錄模塊對其進行解析,并將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,本例中,對應的可將所有端口的生成樹狀態(tài)設(shè)置為轉(zhuǎn)發(fā)(Forwarding)狀態(tài),完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),所述虛擬化成員設(shè)備可以正常工作,若查詢報文解析記錄模塊中沒有發(fā)現(xiàn)協(xié)議報文則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,本例中,對應的可將所有端口的生成樹狀態(tài)設(shè)置為Forwarding狀態(tài),完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,當正常工作時,若接收到鏈路匯聚對應端口列表信息則將其發(fā)送給鏈路匯聚創(chuàng)建模塊。
偵聽模塊,用于對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則將其發(fā)送給報文解析記錄模塊,否則不進行處理。
報文解析記錄模塊,用于記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,并根據(jù)處理模塊命令對其進行解析,得到鄰居信息,發(fā)送給鏈路匯聚創(chuàng)建模塊。本例中,鄰居信息包括鄰居MAC地址、發(fā)送端口列表信息及接收端口列表信息等。
鏈路匯聚創(chuàng)建模塊,用于根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,上游鄰居若接收到發(fā)送來的鏈路匯聚對應端口列表信息則創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口加入到該動態(tài)鏈路匯聚中。
本例中,計時達到預設(shè)時間后,處理模塊還可先判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,若被配置為管理設(shè)備或被強制退出設(shè)備發(fā)現(xiàn)任務則清空報文解析記錄模塊中的數(shù)據(jù),結(jié)束發(fā)現(xiàn)過程,否則查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文。
處理模塊在開啟設(shè)備發(fā)現(xiàn)任務的同時,還可以生成一個計數(shù)值為0,當其查詢報文解析記錄模塊中是否有發(fā)現(xiàn)協(xié)議報文時,若沒有發(fā)現(xiàn)協(xié)議報文,則將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若是則將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作,否則將計時清零,并重新開始計時。
使用時,其流程圖參見圖3,具體步驟如下:
步驟1、虛擬化成員設(shè)備啟動,判斷是否存在配置文件,若是則加載配置文件,根據(jù)所加載的配置文件與其他虛擬化成員設(shè)備形成縱向虛擬化,正常工作,否則進入步驟2。
步驟2、虛擬化成員設(shè)備開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議,且開始計時。
本步驟中,參見圖3,將自身設(shè)置為不能轉(zhuǎn)發(fā)報文的同時不影響鏈路層發(fā)現(xiàn)協(xié)議可為:將所有端口的生成樹狀態(tài)設(shè)置為Blocking狀態(tài)。且在開啟設(shè)備發(fā)現(xiàn)任務的同時,可以生成一個計數(shù)值為0。
步驟3、偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,若監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,則記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,否則不進行處理。
步驟4、時刻判斷計時是否達到預設(shè)時間,若達到則進入步驟5,否則回到步驟3。
本步驟中,預設(shè)時間可由工作人員或虛擬化成員設(shè)備的生產(chǎn)廠家提前設(shè)置,如5分鐘。
步驟5、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若有則進入步驟6,若沒有則進入步驟7。
本步驟中,參見圖3,其可包括以下具體步驟:
步驟501、判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,若被配置為管理設(shè)備或被強制退出設(shè)備發(fā)現(xiàn)任務則先清空設(shè)備發(fā)現(xiàn)任務中所接收到的發(fā)現(xiàn)協(xié)議報文,再進入步驟7,否則進入步驟502;
步驟502、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若有則進入步驟6,若沒有則進入步驟7。
若之前步驟2中設(shè)置了計數(shù)值,則本步驟中,若沒有發(fā)現(xiàn)協(xié)議報文,則將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若是則進入步驟7,否則將計時清零,并重新開始計時,回到步驟3。本例中,預設(shè)計數(shù)值可以如2、3、4等,此數(shù)可由工作人員或虛擬化成員設(shè)備的生產(chǎn)廠家提前設(shè)置。
步驟6、解析并記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,得到鄰居信息,根據(jù)鄰居信息在本地創(chuàng)建與對應上游鄰居互聯(lián)的鏈路匯聚,并將接收到該發(fā)現(xiàn)協(xié)議報文的端口加入該鏈路匯聚,生成鏈路匯聚對應端口列表信息并反向發(fā)送給對應的上游鄰居,進入步驟7。
步驟7、將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文,完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟發(fā)現(xiàn)協(xié)議報文的收發(fā),正常工作。
本步驟中,參見圖3,將自身設(shè)置為能夠轉(zhuǎn)發(fā)報文可為:將所有端口的生成樹狀態(tài)設(shè)置為Forwarding狀態(tài)。
步驟8、正常工作時,若接收到鏈路匯聚對應端口列表信息則將創(chuàng)建一個新的動態(tài)鏈路匯聚,并將該鏈路匯聚對應端口列表信息中的端口加入到該動態(tài)鏈路匯聚中。
下面以創(chuàng)建一個三層縱向虛擬化組網(wǎng)為例,其系統(tǒng)框圖參見圖4,其中,發(fā)現(xiàn)協(xié)議報文以設(shè)備發(fā)現(xiàn)協(xié)議報文為例,可見,縱向堆疊環(huán)境包含核心、匯聚、接入三個層次,在核心層通過橫向虛擬化技術(shù)將兩臺核心設(shè)備虛擬成一臺設(shè)備,核心層設(shè)備作為管理設(shè)備,需要與匯聚層的3臺設(shè)備和接入層的5臺設(shè)備形成縱向虛擬化,目前的方法則是通過人為規(guī)劃,明確所有設(shè)備互聯(lián)的端口號、鏈路匯聚甚至是IP地址,并將設(shè)備逐一通電啟動后,按照規(guī)劃配置端口、鏈路匯聚、IP地址,并在設(shè)備上開啟設(shè)備發(fā)現(xiàn)協(xié)議(如CAPWAP),匯聚層和接入層設(shè)備都會與管理設(shè)備建立連接,作為管理設(shè)備的葉子節(jié)點,統(tǒng)一由管理設(shè)備管理,管理人員實際上投入相當大的精力來管理匯聚層和接入層上的設(shè)備。
按照本發(fā)明提供的方案,所有設(shè)備無需提前配置,可以統(tǒng)一通電啟動,此時管理員只需要在核心設(shè)備上配置為管理設(shè)備(Master)即可,其他參數(shù)如:域名、發(fā)現(xiàn)周期等可選修改。具體流程如下:
核心虛擬交換機(管理設(shè)備)的流程:
按照圖3所示的流程,則有:
步驟1、核心交換機通電啟動,由于核心交換機上無配置,轉(zhuǎn)入步驟2;
步驟2、開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并修改核心交換機上所有端口的生成樹狀態(tài)為Blocking,且開始計時,生成一個計數(shù)值為0,轉(zhuǎn)入步驟3,此時核心交換機所有端口將無法轉(zhuǎn)發(fā)報文,同時不影響鏈路層發(fā)現(xiàn)協(xié)議,從而防止了核心交換機與匯聚交換機之間互聯(lián)的兩條鏈路形成的環(huán)路,避免了廣播風暴;
步驟3、偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽,由于此時沒有設(shè)備發(fā)出發(fā)現(xiàn)協(xié)議報文,則不會監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,因而不進行處理繼續(xù)偵聽直至步驟5中計時達到預設(shè)時間(以5分鐘為例),進入步驟501;
步驟501、判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,因為本機被配置為管理設(shè)備則先清空設(shè)備發(fā)現(xiàn)任務中所接收到的發(fā)現(xiàn)協(xié)議報文,再進入步驟7;
步驟7、將核心交換機上所有端口的生成樹狀態(tài)修改為Forwarding狀態(tài)完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟設(shè)備的發(fā)現(xiàn)協(xié)議模塊,正常工作,由于該核心交換機被配置為管理設(shè)備,則其正常收發(fā)發(fā)現(xiàn)協(xié)議報文。
匯聚交換機的流程:
按照圖3所示的流程,則有:
步驟1、匯聚交換機通電啟動,由于匯聚交換機上無配置,轉(zhuǎn)入步驟2;
步驟2、開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并修改匯聚交換機上所有端口的生成樹狀態(tài)為Blocking,且開始計時,生成一個計數(shù)值為0,轉(zhuǎn)入步驟3,此時匯聚交換機所有端口將無法轉(zhuǎn)發(fā)報文,同時不影響鏈路層發(fā)現(xiàn)協(xié)議,從而防止了核心交換機與匯聚交換機之間互聯(lián)的兩條鏈路形成的環(huán)路,避免了廣播風暴;
步驟3、偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽直至步驟5中計時達到預設(shè)時間5分鐘,若偵聽未達到預設(shè)時間5分鐘時,核心交換機就被配置為管理設(shè)備,則此時會偵聽到核心交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文,則記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,然后進入步驟501,否則直接進入步驟501;
步驟501、判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,因為本機不會被配置為管理設(shè)備則判斷是否被強制退出設(shè)備發(fā)現(xiàn)任務,若是則先清空設(shè)備發(fā)現(xiàn)任務中所接收到的發(fā)現(xiàn)協(xié)議報文,再進入步驟7,否則進入步驟502;
步驟502、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若未查詢到發(fā)現(xiàn)協(xié)議報文則由于之前步驟2中設(shè)置了計數(shù)值,此時將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若超過預設(shè)計數(shù)值則進入步驟7,若未超過預設(shè)計數(shù)值則將計時清零,并重新開始計時,回到步驟3(此時相當于重新開始偵聽及計時),若查詢到發(fā)現(xiàn)協(xié)議報文,則進入步驟6;
步驟6、解析并記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,得到鄰居信息,鄰居信息包括域名(未修改則使用默認域名)、核心交換機的MAC地址、發(fā)送端口(以Gi1/0/1和Gi2/0/1為例),本端接收端口(以Gi0/47和Gi0/48為例),在匯聚交換機上創(chuàng)建一個新的動態(tài)鏈路匯聚,并將收到核心交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文的端口Gi0/47和Gi0/48加入到這個鏈路匯聚中,將收到核心交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文中的所有發(fā)送端口Gi1/0/1和Gi2/0/1,通過發(fā)現(xiàn)協(xié)議報文反向發(fā)送給核心交換機,進入步驟7,核心交換機收到后會創(chuàng)建一個新的動態(tài)鏈路匯聚,并將端口Gi1/0/1和Gi2/0/1加入到這個鏈路匯聚中(即核心交換機正常工作時的步驟8);
步驟7、將匯聚交換機上所有端口的生成樹狀態(tài)修改為Forwarding狀態(tài)完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟設(shè)備的發(fā)現(xiàn)協(xié)議模塊(即開啟發(fā)現(xiàn)協(xié)議報文的收發(fā)),正常工作,此時,匯聚交換機和核心交換機通過創(chuàng)建的動態(tài)鏈路匯聚建立了縱向虛擬化的鄰居關(guān)系,于此同時,其他匯聚層設(shè)備也會以相同點的流程與管理設(shè)備建立鄰居關(guān)系,并作為管理設(shè)備的節(jié)點設(shè)備被管理,若之前被強制退出設(shè)備發(fā)現(xiàn)任務,則該匯聚交換機獨立正常工作。接入交換機的流程與匯聚交換機的流程基本一致:
按照圖3所示的流程,則有:
步驟1、接入交換機通電啟動,由于接入交換機上無配置,轉(zhuǎn)入步驟2;
步驟2、開啟設(shè)備發(fā)現(xiàn)任務,開始偵聽發(fā)現(xiàn)協(xié)議報文,并修改接入交換機上所有端口的生成樹狀態(tài)為Blocking,且開始計時,生成一個計數(shù)值為0,轉(zhuǎn)入步驟3,此時接入交換機所有端口將無法轉(zhuǎn)發(fā)報文,同時不影響鏈路層發(fā)現(xiàn)協(xié)議;
步驟3、偵聽時對自身所有端口可能收到的發(fā)現(xiàn)協(xié)議報文進行監(jiān)聽直至步驟5中計時達到預設(shè)時間5分鐘,若偵聽未達到預設(shè)時間5分鐘時,核心交換機就被配置為管理設(shè)備,且匯聚交換機已完成了設(shè)備發(fā)現(xiàn)任務,則此時會偵聽到匯聚交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文,記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,然后進入步驟501,否則直接進入步驟501;而由于發(fā)現(xiàn)協(xié)議報文是點到點傳輸?shù)?,核心交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文不會穿過匯聚交換機發(fā)送到接入交換機上;
步驟501、判斷本機是否被配置為管理設(shè)備或是否被強制退出設(shè)備發(fā)現(xiàn)任務,因為本機不會被配置為管理設(shè)備則判斷是否被強制退出設(shè)備發(fā)現(xiàn)任務,若是則先清空設(shè)備發(fā)現(xiàn)任務中所接收到的發(fā)現(xiàn)協(xié)議報文,再進入步驟7,否則進入步驟502;
步驟502、查詢是否有監(jiān)聽到發(fā)現(xiàn)協(xié)議報文,若未查詢到發(fā)現(xiàn)協(xié)議報文則由于之前步驟2中設(shè)置了計數(shù)值,此時將計數(shù)值加1,并判斷當前計數(shù)值是否超過預設(shè)計數(shù)值,若超過預設(shè)計數(shù)值則進入步驟7,若未超過預設(shè)計數(shù)值則將計時清零,并重新開始計時,回到步驟3(此時相當于重新開始偵聽及計時),若查詢到發(fā)現(xiàn)協(xié)議報文,則進入步驟6;
步驟6、解析并記錄監(jiān)聽到的發(fā)現(xiàn)協(xié)議報文,得到鄰居信息,鄰居信息包括域名(未修改則使用默認域名)、匯聚交換機的MAC地址、發(fā)送端口(以Gi0/1和Gi0/2為例)及本端接收端口(以Gi0/5和Gi0/6為例),在接入交換機上創(chuàng)建一個新的動態(tài)鏈路匯聚,并將收到匯聚交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文的端口Gi0/5和Gi0/6加入到這個鏈路匯聚中,將收到匯聚交換機發(fā)送的發(fā)現(xiàn)協(xié)議報文中的所有發(fā)送端口Gi0/1和Gi0/2,通過發(fā)現(xiàn)協(xié)議報文反向發(fā)送給匯聚交換機,進入步驟7,匯聚交換機收到后會創(chuàng)建一個新的動態(tài)鏈路匯聚,并將端口Gi0/1和Gi0/2加入到這個鏈路匯聚中(即匯聚交換機正常工作時的步驟8);
步驟7、將接入交換機上所有端口的生成樹狀態(tài)修改為Forwarding狀態(tài)完成設(shè)備發(fā)現(xiàn)任務,關(guān)閉偵聽模塊的偵聽,開啟設(shè)備的發(fā)現(xiàn)協(xié)議模塊(即開啟發(fā)現(xiàn)協(xié)議報文的收發(fā)),正常工作,此時,接入交換機和匯聚交換機通過創(chuàng)建的動態(tài)鏈路匯聚建立了縱向虛擬化的鄰居關(guān)系,于此同時,其他接入層設(shè)備也會以相同點的流程與匯聚交換機建立鄰居關(guān)系,通過發(fā)現(xiàn)協(xié)議鄰居交互信息,匯聚交換機會向核心交換機通告接入交換機的信息,這樣,接入交換機和匯聚交換機都會作為節(jié)點設(shè)備被核心交換機管理,若之前被強制退出設(shè)備發(fā)現(xiàn)任務,則該接入交換機獨立正常工作。
當網(wǎng)絡(luò)鄰居發(fā)現(xiàn)結(jié)束后,整個網(wǎng)絡(luò)能夠正常管理和運行,當有擴容需求時,只需要將空配置的設(shè)備隨意接入現(xiàn)有網(wǎng)絡(luò),就能夠重復上述接入交換機的流程,被網(wǎng)絡(luò)自動發(fā)現(xiàn),并作為新的節(jié)點設(shè)備被管理。
綜上所述,整個網(wǎng)絡(luò)只需要在核心交換機上配置為管理設(shè)備,就能夠完成整個網(wǎng)絡(luò)鄰居的逐級發(fā)現(xiàn)。