麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

修復生成樹協(xié)議轉(zhuǎn)發(fā)狀態(tài)異常的方法及堆疊設(shè)備的制作方法

文檔序號:7554400閱讀:353來源:國知局
專利名稱:修復生成樹協(xié)議轉(zhuǎn)發(fā)狀態(tài)異常的方法及堆疊設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及堆疊技術(shù)領(lǐng)域,具體涉及修復生成樹協(xié)議(STP, Spanning TreeProtocol)轉(zhuǎn)發(fā)狀態(tài)異常的方法及堆疊設(shè)備。
背景技術(shù)
智能彈性架構(gòu)(IRF,Intelligent Resilient Framework)也稱為堆疊,是一種軟件虛擬化技術(shù)。它的核心思想是將多臺設(shè)備連接在一起,進行必要的配置后,虛擬化成一臺設(shè)備。使用這種虛擬化技術(shù)可以集合多臺設(shè)備的硬件資源和軟件處理能力,實現(xiàn)多臺設(shè)備的協(xié)同工作、統(tǒng)一管理和不間斷維護。IRF有很多優(yōu)點,一旦主(Master)設(shè)備故障,系統(tǒng)會迅速自動選舉新的Master,以保證業(yè)務(wù)不中斷,從而實現(xiàn)了設(shè)備的1:N備份。多實例生成樹協(xié)議(MSTP,Multiple Spanning Tree Protocol)是由電氣和電子工程師協(xié)會(IEEE, Institute of Electrical and Electronics Engineers)制定的802.1s標準定義,它可以彌補STP、快速生成樹協(xié)議(RSTP,Rapid Spanning TreeProtocol)和按虛擬局域網(wǎng)生成樹(PVST,Per VLAN Spanning Tree)協(xié)議的缺陷,既可以快速收斂,也能使不同VLAN的流量沿各自的路徑轉(zhuǎn)發(fā),從而為冗余鏈路提供了更好的負載分擔機制。目前,網(wǎng)絡(luò)中無論是接入層、匯聚層,還是核心層,這些網(wǎng)絡(luò)層次上的設(shè)備越來越廣泛使用IRF技術(shù)來提高網(wǎng)絡(luò)的可靠性。特別是在數(shù)據(jù)中心越來越集中龐大的趨勢下,對設(shè)備的處理性能的要求也越來越高,應(yīng)用堆疊技術(shù)能夠很好地滿足這一需求。圖1給出了傳統(tǒng)的網(wǎng)絡(luò)拓撲示意圖,圖2為引入了 IRF技術(shù)后的網(wǎng)絡(luò)拓撲示意圖,將圖1和圖2對比,可以發(fā)現(xiàn),IRF技術(shù)已經(jīng)應(yīng)用到了接入層、匯聚層和核心層設(shè)備中。隨著網(wǎng)絡(luò)用戶的增多,網(wǎng)絡(luò)中的數(shù)據(jù)流量也呈現(xiàn)出極大的增長,鏈路聚合也廣泛地應(yīng)用于網(wǎng)絡(luò)設(shè)備之間,它不僅增加了鏈路帶寬,也增加了鏈路的可靠性。IRF與鏈路聚合技術(shù)很好地融合在一起,對網(wǎng)絡(luò)的可靠性提供了很好的保障。目前,網(wǎng)絡(luò)中仍然根據(jù)接入層、匯聚層和核心層來部署網(wǎng)絡(luò)設(shè)備,接入層設(shè)備屬于較低端的設(shè)備,處理性能和流量轉(zhuǎn)發(fā)性能有限,而匯聚層的流量較大,因而設(shè)備性能都較強大,核心層設(shè)備的要求則更高,處理性能更加強大。由于數(shù)據(jù)流量可能在一段集中時間內(nèi)突發(fā)到匯聚層或核心層設(shè)備上,會對設(shè)備處理性能造成極大壓力,中央處理單元(CPU,Central Processing Unit)可能會出現(xiàn)使用率很高的情況,而這段時間內(nèi)可能會導致某些協(xié)議的計算和處理無法及時響應(yīng),而導致數(shù)據(jù)丟失和不一致的情況出現(xiàn)。圖3給出了 IRF與鏈路聚合技術(shù)融合的典型組網(wǎng)圖,如圖3所示,當堆疊交換機A處理大量上CPU的數(shù)據(jù)時,很容易導致像MSTP這樣耗計算量和內(nèi)存的協(xié)議不能及時得到調(diào)度,會出現(xiàn)聚合口 Al上某些成員口的狀態(tài)與聚合口狀態(tài)不一致,特別是分布在其他堆疊成員設(shè)備上的聚合成員口。比如MSTP計算出聚合口 Al是禁止轉(zhuǎn)發(fā)(discarding)狀態(tài),然后會通知所有成員口 al a4將自己置為discarding,由于CPU繁忙或堆疊鏈路擁塞,可能會出現(xiàn)通知消息丟失而導致a3和a4沒有接收到,從而導致a3和a4接口仍然保持原來的轉(zhuǎn)發(fā)狀態(tài)。另一種情況,當聚合口有STP狀態(tài)變化時,需要下發(fā)新的狀態(tài)給各個聚合成員所在接口板,當堆疊交換機存在大量接口板的情況下,可能會出現(xiàn)有的接口板CPU不忙,有的接口板CPU很忙的情形,這樣也會造成處理STP消息不及時的問題,從而導致本接口板上的聚合成員口的STP狀態(tài)與其他成員口狀態(tài)不一致的問題。由上所述,IRF與鏈路聚合技術(shù)融合后存在如下缺點:1、當堆疊設(shè)備的CPU使用率很高時,由于CPU使用率很高可能無法及時處理MSTP模塊的各種事件和消息,會導致跨框的鏈路聚合口可能存在個別成員口 MSTP轉(zhuǎn)發(fā)狀態(tài)與聚合口不一致的情況。2、當堆疊設(shè)備的CPU使用率很高時,設(shè)備無法及時檢測到或無法準確檢測出聚合成員口 STP狀態(tài)不一致問題。3、聚合口有STP狀態(tài)變化時需要將狀態(tài)下發(fā)到不同接口板上,考慮不同接口板上處理的順序會有時間差,也可能會出現(xiàn)短時間聚合成員口 STP狀態(tài)不一致問題。4、當出現(xiàn)聚合成員口的MSTP轉(zhuǎn)發(fā)狀態(tài)與聚合口不一致時,網(wǎng)絡(luò)中可能會出現(xiàn)網(wǎng)絡(luò)環(huán)路,從而使CPU忙的情況更加惡化。

發(fā)明內(nèi)容
本發(fā)明提供修復STP轉(zhuǎn)發(fā)狀態(tài)異常的方法及堆疊設(shè)備,以在堆疊設(shè)備的聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)不一致時及時修復。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:一種修復生成樹協(xié)議STP轉(zhuǎn)發(fā)狀態(tài)異常的方法,該方法包括:第一堆疊設(shè)備的主用主控板周期性檢測本板的CPU的使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,或者,發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化時,通知本堆疊設(shè)備的各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備,以使得:第二設(shè)備判斷第一堆疊設(shè)備的同一聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若不同,則認為第一堆疊設(shè)備的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)出現(xiàn)異常;當?shù)谝欢询B設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知時,將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板,以便:各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。所述第一堆疊設(shè)備運行STP、或者快速生成樹協(xié)議RSTP,或者多生成樹協(xié)議MSTP。當所述第一堆疊設(shè)備運行MSTP時,所述發(fā)現(xiàn)任一聚合口的生成樹協(xié)議STP轉(zhuǎn)發(fā)狀態(tài)變化為:發(fā)現(xiàn)任一聚合口的任一實例的MSTP轉(zhuǎn)發(fā)狀態(tài)變化; 所述通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備為:通知各接口板將各成員口的各實例的MSTP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備;所述第二設(shè)備判斷第一堆疊設(shè)備的同一聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同為:針對第一堆疊設(shè)備的同一聚合口的每個實例,第二設(shè)備判斷該實例在該聚合口的不同成員口上的MSTP轉(zhuǎn)發(fā)狀態(tài)是否相同;所述第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知為:第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示一聚合口的一實例的MSTP轉(zhuǎn)發(fā)狀態(tài)異常通知;所述將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板為:將該聚合口的所述實例的MSTP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板;所述各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與聚合口 一致為:各接口板將該聚合口的各成員口的所述實例的MSTP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口的所述實例—致。所述通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備包括:各接口板獲取本板上各成員口的STP轉(zhuǎn)發(fā)狀態(tài),將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)通過鏈路匯聚控制協(xié)議LACP報文,或者鏈路層發(fā)現(xiàn)協(xié)議LLDP報文,或者設(shè)備鏈路檢測協(xié)議DLDP報文發(fā)送給第二設(shè)備。所述第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知為:第一堆疊設(shè)備的各接口板接收到第二設(shè)備發(fā)來的指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知;所述第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知之后、將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板之前進一步包括:第一堆疊設(shè)備的各接口板將指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知轉(zhuǎn)發(fā)給主控板,同時啟動定時器;且,所述各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致為:對于任一接口板,若在定時器超時前接收到主控板發(fā)來的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致;否則,將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為禁止轉(zhuǎn)發(fā)Discarding狀態(tài)。一種堆疊設(shè)備,包括:主控板和接口板,其中:主控板:當作為主用主控板時,周期性檢測本板的CPU的使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,或者,發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化時,向各接口板發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)傳輸通知;接口板:當接收到主控板發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)傳輸通知時,將本板上各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備;當接收到第二設(shè)備發(fā)來的指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知時,向主控板獲取該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。所述堆疊設(shè)備運行STP、或者RSTP,或者MSTP。所述接口板進一步用于,當向主控板獲取該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)時,若發(fā)現(xiàn)在預(yù)設(shè)等待時長內(nèi)未接收到主控板返回的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為Discarding。所述接口板進一步用于,當接收到對端堆疊設(shè)備發(fā)來的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,將該各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主控板;將主控板發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給對端堆疊設(shè)備;
所述主控板進一步用于,當接收到各接口板發(fā)來的對端堆疊設(shè)備的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài),針對對端堆疊設(shè)備的每個聚合口,判斷該聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若否,則將指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給各接口板。一種設(shè)備,包括:接口板和主控板,其中:接口板:當接收到對端堆疊設(shè)備發(fā)來的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,將該各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主控板;將主控板發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給對端堆疊設(shè)備;主控板:當接收到各接口板發(fā)來的對端堆疊設(shè)備的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài),針對對端堆疊設(shè)備的每個聚合口,判斷該聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若否,則將指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給各接口板。—種主控板,位于堆疊設(shè)備上,該主控板包括:檢測模塊、STP模塊和鏈路聚合模塊,其中:檢測模塊:當本板作為主用主控板時,周期性檢測本板的CPU使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,向鏈路聚合模塊發(fā)送告警消息;STP模塊:當本板作為主用主控板時,若發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化,向鏈路聚合模塊發(fā)送告警消息;當接收到本堆疊設(shè)備的任一接口板發(fā)來的聚合口 STP轉(zhuǎn)發(fā)狀態(tài)獲取請求時,將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)下發(fā)給該接口板;鏈路聚合模塊:當接收到檢測模塊發(fā)來的告警消息時,向本堆疊設(shè)備的各接口板發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)傳輸消息,以通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備。所述STP模塊運行STP,或者RSTP,或者MSTP。所述鏈路聚合模塊進一步用于,當接收到本堆疊設(shè)備的各接口板上報的對端設(shè)備的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,針對屬于同一聚合口的各成員口,判斷各成員口的STP轉(zhuǎn)發(fā)狀態(tài)是否一致,若否,則向本堆疊設(shè)備的各接口板返回指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知。一種接口板,位于堆疊設(shè)備上,該接口板包括:鏈路聚合模塊和STP模塊,其中:鏈路聚合模塊:當接收到本堆疊設(shè)備的主用主控板發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)傳輸消息時,向STP模塊發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)獲取請求,將STP模塊返回的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端設(shè)備;當接收到對端設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知時,向STP發(fā)送攜帶該聚合口標識的告警消息;STP模塊:接收鏈路聚合模塊發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)獲取請求,將本板上各成員口的STP轉(zhuǎn)發(fā)狀態(tài)返回給鏈路聚合模塊;當接收到鏈路聚合模塊發(fā)來的告警消息時,向主用主控板獲取該消息指示的聚合口的STP轉(zhuǎn)發(fā)狀態(tài),將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。該接口板運行STP,或者RSTP,或者MSTP。所述STP模塊進一步用于,當向主用主控板獲取該消息指示的聚合口的STP轉(zhuǎn)發(fā)狀態(tài)時,若在預(yù)設(shè)等待時長內(nèi)未接收到主用主控板返回的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為Discarding。所述鏈路聚合模塊進一步用于,接收對端設(shè)備發(fā)來的各成員口的STP轉(zhuǎn)發(fā)狀態(tài),將該各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主用主控板;當接收到主用主控板返回的指示對端設(shè)備的聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知時,將該通知轉(zhuǎn)發(fā)給對端設(shè)備。與現(xiàn)有技術(shù)相比,本發(fā)明在堆疊設(shè)備的聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)不一致時,能夠及時發(fā)現(xiàn)并修復,同時降低了堆疊設(shè)備的CPU的負擔。


圖1為傳統(tǒng)的網(wǎng)絡(luò)拓撲示意圖;圖2為現(xiàn)有的引入了 IRF技術(shù)后的網(wǎng)絡(luò)拓撲示意圖;圖3為現(xiàn)有的IRF與鏈路聚合技術(shù)融合的典型組網(wǎng)圖;圖4為本發(fā)明實施例提供的IRF與鏈路聚合融合的組網(wǎng)示意圖;圖5為本發(fā)明實施例提供的當圖4所示組網(wǎng)運行MSTP時,修復聚合成員口的MSTP轉(zhuǎn)發(fā)狀態(tài)不一致的方法流程圖。
具體實施例方式下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。圖4為本發(fā)明實施例提供的IRF與鏈路聚合融合的組網(wǎng)示意圖,如圖4所示,堆疊設(shè)備A與設(shè)備B互連。其中,堆疊設(shè)備A包括堆疊成員I和堆疊成員2,堆疊成員I包括一個主控板、一個或多個接口板,堆疊成員2也包括一個主控板、一個或多個接口板,設(shè)當前堆疊成員I的主控板為主用主控板,堆疊成員2的主控板為備用主控板。任一主控板都包括:檢測模塊、鏈路聚合模塊和STP模塊,任一接口板都包括:鏈路聚合模塊和STP模塊。主用主控板可控制、管理堆疊成員1、2的所有接口板。設(shè)備B上包括:主控板上的鏈路聚合模塊和接口板上的鏈路聚合模塊。其中,堆疊設(shè)備A可如圖3所示的堆疊交換機A,設(shè)備B可如圖3所示的交換機B。需要說明的是,圖4中對于堆疊成員1、2分別只畫出了一個接口板,在實際應(yīng)用中,堆疊成員1、2可能都包含多個接口板,此時,各接口板的內(nèi)部結(jié)構(gòu)以及與主用主控板的連接關(guān)系與圖4中的兩個接口板都類同。另外,當堆疊設(shè)備A的主用主控板故障時,會發(fā)生主備倒換,備用主控板升級為主用主控板,開始對堆疊設(shè)備A的各接口板進行控制、管理,主備倒換過程與現(xiàn)有技術(shù)相同,不再贅述。另外,STP共包含三種協(xié)議:STP、RSTP和MSTP。MSTP與其他兩種STP:STP和RSTP的區(qū)別在于=MSTP為多實例,STP和RSTP為單實例。對于STP和RSTP組網(wǎng)環(huán)境,其實施方式與MSTP組網(wǎng)環(huán)境類同,區(qū)別僅在于:對于STP和RSTP組網(wǎng)環(huán)境,實施方式僅針對一個實例,其具體實現(xiàn)可由MSTP組網(wǎng)環(huán)境的實施方式直接地、毫無疑義地得出。以下以MSTP組網(wǎng)環(huán)境為例,給出在圖4所示組網(wǎng)中,避免MSTP轉(zhuǎn)發(fā)狀態(tài)不一致的具體實施方法:圖5為本發(fā)明實施例提供的當圖4所示組網(wǎng)運行MSTP時,修復聚合成員口的MSTP轉(zhuǎn)發(fā)狀態(tài)不一致的方法流程圖,在本實施例中,堆疊設(shè)備為堆疊交換機,如圖5所示,其具體步驟如下:步驟501:對于任一堆疊交換機A,該堆疊交換機A的主用主控板的檢測模塊周期性檢測主用主控板的CPU使用率。
步驟502:當堆疊交換機A的主用主控板的檢測模塊發(fā)現(xiàn)主用主控板的CPU的使用率在預(yù)設(shè)時長tl內(nèi)持續(xù)達到a%以上,則向主用主控板的鏈路聚合模塊發(fā)送告警消息。tl、a可根據(jù)經(jīng)驗設(shè)定。另外,當堆疊交換機A的主用主控板的MSTP模塊計算出聚合口的任一實例的轉(zhuǎn)發(fā)狀態(tài)變化時,考慮到不同接口板的處理性能會有差異,從而處理的順序會有時間差,此時該MSTP模塊也可以向主用主控板的鏈路聚合模塊發(fā)送告警消息。上述告警消息可攜帶聚合口標識,或者聚合口標識+實例編號。步驟503:堆疊交換機A的主用主控板的鏈路聚合模塊接收該告警消息,向交換機A的各接口板的鏈路聚合模塊發(fā)送組裝轉(zhuǎn)發(fā)狀態(tài)類型長度值(TLV,Type Length Value)消
肩、O在實際應(yīng)用中,步驟503中,主用主控板的鏈路聚合模塊可以向所有聚合口的各成員口所在的接口板的鏈路聚合模塊發(fā)送組裝轉(zhuǎn)發(fā)狀態(tài)TLV消息,也可以只向部分聚合口的各成員口所在的接口板的鏈路聚合模塊發(fā)送組裝轉(zhuǎn)發(fā)狀態(tài)TLV消息,或者,只向部分聚合口的部分成員口所在的接口板的鏈路聚合模塊發(fā)送組裝轉(zhuǎn)發(fā)狀態(tài)TLV消息,另外,主用主控板的鏈路聚合模塊也可以在組裝轉(zhuǎn)發(fā)狀態(tài)TLV消息中攜帶實例編號,以指示僅對該實例進行轉(zhuǎn)發(fā)狀態(tài)TLV組裝。例如:當一個聚合口的一個實例的MSTP轉(zhuǎn)發(fā)狀態(tài)變化時,則可只對該聚合口的各成員口的該實例進行轉(zhuǎn)發(fā)狀態(tài)TLV組裝。步驟504:當堆疊交換機A的任一接口板的鏈路聚合模塊接收到該組裝轉(zhuǎn)發(fā)狀態(tài)TLV消息時,向本接口板的MSTP模塊發(fā)送轉(zhuǎn)發(fā)狀態(tài)獲取請求,本接口板的MSTP模塊接收該轉(zhuǎn)發(fā)狀態(tài)獲取請求,將本接口板的各聚合成員口的各個實例的轉(zhuǎn)發(fā)狀態(tài)攜帶在轉(zhuǎn)發(fā)狀態(tài)獲取響應(yīng)中返回給本接口板的鏈路聚合模塊,本接口板的鏈路聚合模塊分別將本接口板的各聚合成員口的各個實例的轉(zhuǎn)發(fā)狀態(tài)組裝成轉(zhuǎn)發(fā)狀態(tài)TLV,將該TLV攜帶在鏈路匯聚控制協(xié)議(LACP, Link Aggregation Control Protocol)報文中,將該 LACP 報文通過本接口板的各聚合成員口發(fā)送給對端交換機B。例如,堆疊交換機A的聚合口 Al有四個成員口 &1、&2、&3和&4,al、a2位于接口板I上、a3、a4位于接口板2上,al的實例O的轉(zhuǎn)發(fā)狀態(tài)為discarding,實例I的轉(zhuǎn)發(fā)狀態(tài)為forwarding,則接口板I的鏈路聚合模塊分別將al 口的實例O和實例I的轉(zhuǎn)發(fā)狀態(tài)組裝成TLV,然后將該TLV封裝在al 口發(fā)送的LACP報文中,同理,對于成員口 a2、a3和a4都按照上述原則封裝對應(yīng)實例的轉(zhuǎn)發(fā)狀態(tài)到TLV中。步驟505:當交換機B的任一接口板的鏈路聚合模塊從本接口板的任一聚合成員口接收到來自堆疊交換機A的LACP報文時,解析報文的TLV字段,得到堆疊交換機A的各聚合口的各成員口的各實例的轉(zhuǎn)發(fā)狀態(tài),將解析得到的堆疊交換機A的各聚合口的各成員口的各實例的轉(zhuǎn)發(fā)狀態(tài)發(fā)送給本交換機B的主控板的鏈路聚合模塊。步驟506:對于堆疊交換機A的每個聚合口的每個實例,交換機B的主控板的鏈路聚合模塊比較該實例在該聚合口的不同成員口上的轉(zhuǎn)發(fā)狀態(tài),判斷是否相同,若是,確定該實例的轉(zhuǎn)發(fā)狀態(tài)正常;否則,確定該實例的轉(zhuǎn)發(fā)狀態(tài)異常。例如:設(shè)交換機B的聚合口 BI的成員口為bl、b2、b3和b4,bl、b2在接口板I上,b3、b4在接口板2上,若bl 口接收到的TLV顯示:堆疊交換機A的成員口 al的實例O的轉(zhuǎn)發(fā)狀態(tài)為discarding,b3 口接收到的TLV則顯示:堆疊交換機A的成員口 a3的實例O的轉(zhuǎn)發(fā)狀態(tài)為forwarding,則表明堆疊交換機A的聚合口 Al的實例O的轉(zhuǎn)發(fā)狀態(tài)出現(xiàn)異常。步驟507:當交換機B的主控板的鏈路聚合模塊發(fā)現(xiàn)堆疊交換機A的任一聚合口的任一實例的轉(zhuǎn)發(fā)狀態(tài)出現(xiàn)異常時,立即將該聚合口標識+實例編號及異常指示攜帶在組裝檢測反饋TLV消息中發(fā)送給本交換機B的各接口板的鏈路聚合模塊。步驟508:當交換機B的任一接口板的鏈路聚合模塊接收到該組裝檢測反饋TLV消息時,將該消息中的聚合口標識+實例編號及異常指示組裝成檢測反饋TLV,將該TLV攜帶在LACP報文中,通過本接口板的聚合成員口發(fā)送給堆疊交換機A。步驟509:當堆疊交換機A的任一接口板的鏈路聚合模塊接收到交換機B發(fā)來的攜帶檢測反饋TLV的LACP報文時,從該報文中解析出轉(zhuǎn)發(fā)狀態(tài)異常的聚合口標識+實例編號,然后立即向本接口板的MSTP模塊發(fā)送告警消息,該消息攜帶聚合口標識+實例編號及異常指示。步驟510:當堆疊交換機A的任一接口板的MSTP模塊接收到該告警消息,向主用主控板的MSTP模塊發(fā)送攜帶轉(zhuǎn)發(fā)狀態(tài)異常的聚合口標識+實例編號的轉(zhuǎn)發(fā)狀態(tài)獲取請求,同時開啟接收超時定時器。步驟511:當堆疊交換機A的主用主控板的MSTP模塊接收到任一接口板的MSTP模塊發(fā)來的轉(zhuǎn)發(fā)狀態(tài)獲取請求時,根據(jù)該消息中的轉(zhuǎn)發(fā)狀態(tài)異常的聚合口標識+實例編號,立即將該聚合口的該實例的轉(zhuǎn)發(fā)狀態(tài)攜帶在轉(zhuǎn)發(fā)狀態(tài)獲取響應(yīng)中在預(yù)設(shè)時長t2內(nèi)重復發(fā)送給該聚合口的各成員口所在的接口板的MSTP模塊。t2可根據(jù)經(jīng)驗確定。步驟512:對于堆疊交換機A的任一接口板的MSTP模塊,若該MSTP模塊在接收超時定時器超時前接收到了主用主控板的MSTP模塊下發(fā)的轉(zhuǎn)發(fā)狀態(tài)獲取響應(yīng),則根據(jù)該響應(yīng)指示的聚合口的實例的轉(zhuǎn)發(fā)狀態(tài)設(shè)置本接口板上該聚合口的各成員口的該實例的轉(zhuǎn)發(fā)狀態(tài);若在接收超時定時器超時前未收到主用主控板的MSTP模塊下發(fā)的轉(zhuǎn)發(fā)狀態(tài)獲取響應(yīng),則將本接口板上該聚合口的各成員口的該實例置為Discarding狀態(tài)。這里,當將接口板的該聚合口的各成員口的該實例置為Discarding狀態(tài)后,若又收到了主用主控板的MSTP模塊下發(fā)的轉(zhuǎn)發(fā)狀態(tài)獲取響應(yīng),且響應(yīng)中攜帶的該聚合口的該實例的轉(zhuǎn)發(fā)狀態(tài)為Forwarding,則將該接口板上該聚合口的各成員口的該實例更新為Forwarding 狀態(tài)。需要說明的是,圖5所示實施例是借助LACP報文發(fā)出轉(zhuǎn)發(fā)狀態(tài)TLV和檢測反饋TLV,在實際應(yīng)用中,也可采用其他協(xié)議報文,如鏈路層發(fā)現(xiàn)協(xié)議(LLDP,Link LayerDiscovery Protocol)、設(shè)備鏈路檢測協(xié)議(DLDP,Device Link Detection Protocol)等報文發(fā)出該兩TLV。從圖5所示實施例可以看出,當堆疊設(shè)備的主用主控板的CPU的使用率很高時,或者,聚合口的任一實例的轉(zhuǎn)發(fā)狀態(tài)變化時,堆疊設(shè)備將每個聚合口的各成員口的各實例的轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端設(shè)備,讓對端設(shè)備判斷聚合口的每個實例在不同聚合成員口上的轉(zhuǎn)發(fā)狀態(tài)是否相同,并將判斷結(jié)果通知堆疊設(shè)備。可見,這樣可以大大降低堆疊設(shè)備的CPU的負擔,在堆疊設(shè)備的CPU使用率很高時,通過對端設(shè)備及時處理聚合口的實例的轉(zhuǎn)發(fā)狀態(tài)異常或變化的情況,使得聚合口的實例的轉(zhuǎn)發(fā)狀態(tài)快速恢復正常。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種修復生成樹協(xié)議STP轉(zhuǎn)發(fā)狀態(tài)異常的方法,其特征在于,該方法包括: 第一堆疊設(shè)備的主用主控板周期性檢測本板的CPU的使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,或者,發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化時,通知本堆疊設(shè)備的各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備,以使得:第二設(shè)備判斷第一堆疊設(shè)備的同一聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若不同,則認為第一堆疊設(shè)備的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)出現(xiàn)異常; 當?shù)谝欢询B設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知時,將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板,以便:各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一堆疊設(shè)備運行STP、或者快速生成樹協(xié)議RSTP,或者多生成樹協(xié)議MSTP。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當所述第一堆疊設(shè)備運行MSTP時, 所述發(fā)現(xiàn)任一聚合口的生成樹協(xié)議STP轉(zhuǎn)發(fā)狀態(tài)變化為:發(fā)現(xiàn)任一聚合口的任一實例的MSTP轉(zhuǎn)發(fā)狀態(tài)變化; 所述通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備為:通知各接口板將各成員口的各實例的MSTP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備; 所述第二設(shè)備判斷第一堆疊設(shè)備的同一聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同為:針對第一堆疊設(shè)備的同一聚合口的每個實例,第二設(shè)備判斷該實例在該聚合口的不同成員口上的MSTP轉(zhuǎn)發(fā)狀態(tài)是否相同; 所述第一堆疊設(shè)備接收到第二設(shè)備`發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知為:第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示一聚合口的一實例的MSTP轉(zhuǎn)發(fā)狀態(tài)異常通知;所述將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板為:將該聚合口的所述實例的MSTP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板; 所述各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與聚合口一致為:各接口板將該聚合口的各成員口的所述實例的MSTP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口的所述實例一致。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備包括: 各接口板獲取本板上各成員口的STP轉(zhuǎn)發(fā)狀態(tài),將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)通過鏈路匯聚控制協(xié)議LACP報文,或者鏈路層發(fā)現(xiàn)協(xié)議LLDP報文,或者設(shè)備鏈路檢測協(xié)議DLDP報文發(fā)送給第二設(shè)備。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知為: 第一堆疊設(shè)備的各接口板接收到第二設(shè)備發(fā)來的指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知; 所述第一堆疊設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知之后、將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板之前進一步包括: 第一堆疊設(shè)備的各接口板將指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知轉(zhuǎn)發(fā)給主控板,同時啟動定時器;且,所述各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致為: 對于任一接口板,若在定時器超時前接收到主控板發(fā)來的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致;否則,將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為禁止轉(zhuǎn)發(fā)Discarding狀態(tài)。
6.一種堆疊設(shè)備,其特征在于,包括:主控板和接口板,其中: 主控板:當作為主用主控板時,周期性檢測本板的CPU的使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,或者,發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化時,向各接口板發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)傳輸通知; 接口板:當接收到主控板發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)傳輸通知時,將本板上各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備;當接收到第二設(shè)備發(fā)來的指示一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知時,向主控板獲取該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述堆疊設(shè)備運行STP、或者RSTP,或者MSTP。
8.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述接口板進一步用于,當向主控板獲取該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)時,若發(fā)現(xiàn)在預(yù)設(shè)等待時長內(nèi)未接收到主控板返回的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為Discarding。
9.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述接口板進一步用于,當接收到對端堆疊設(shè)備發(fā)來的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,將該各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主控板;將主控板發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給對端堆疊設(shè)備; 所述主控板進一步用于,當接收到各接口板發(fā)來的對端堆疊設(shè)備的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài),針對對端 堆疊設(shè)備的每個聚合口,判斷該聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若否,則將指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給各接口板。
10.一種設(shè)備,其特征在于,包括:接口板和主控板,其中: 接口板:當接收到對端堆疊設(shè)備發(fā)來的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,將該各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主控板;將主控板發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給對端堆疊設(shè)備; 主控板:當接收到各接口板發(fā)來的對端堆疊設(shè)備的各聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài),針對對端堆疊設(shè)備的每個聚合口,判斷該聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同,若否,則將指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知發(fā)送給各接口板。
11.一種主控板,位于堆疊設(shè)備上,其特征在于,該主控板包括:檢測模塊、STP模塊和鏈路聚合模塊,其中: 檢測模塊:當本板作為主用主控板時,周期性檢測本板的CPU使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值時,向鏈路聚合模塊發(fā)送告警消息; STP模塊:當本板作為主用主控板時,若發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化,向鏈路聚合模塊發(fā)送告警消息;當接收到本堆疊設(shè)備的任一接口板發(fā)來的聚合口 STP轉(zhuǎn)發(fā)狀態(tài)獲取請求時,將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)下發(fā)給該接口板; 鏈路聚合模塊:當接收到檢測模塊發(fā)來的告警消息時,向本堆疊設(shè)備的各接口板發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)傳輸消息,以通知各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備。
12.根據(jù)權(quán)利要求11所述的主控板,其特征在于,所述STP模塊運行STP,或者RSTP,或者 MSTP。
13.根據(jù)權(quán)利要求11所述的主控板,其特征在于,所述鏈路聚合模塊進一步用于,當接收到本堆疊設(shè)備的各接口板上報的對端設(shè)備的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)時,針對屬于同一聚合口的各成員口,判斷各成員口的STP轉(zhuǎn)發(fā)狀態(tài)是否一致,若否,則向本堆疊設(shè)備的各接口板返回指示該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知。
14.一種接口板,位于堆疊設(shè)備上,其特征在于,該接口板包括:鏈路聚合模塊和STP模塊,其中: 鏈路聚合模塊:當接收到本堆疊設(shè)備的主用主控板發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)傳輸消息時,向STP模塊發(fā)送STP轉(zhuǎn)發(fā)狀態(tài)獲取請求,將STP模塊返回的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端設(shè)備;當接收到對端設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知時,向STP發(fā)送攜帶該聚合口標識的告警消息; STP模塊:接收鏈路聚合模塊發(fā)來的STP轉(zhuǎn)發(fā)狀態(tài)獲取請求,將本板上各成員口的STP轉(zhuǎn)發(fā)狀態(tài)返回給鏈路聚合模塊;當接收到鏈路聚合模塊發(fā)來的告警消息時,向主用主控板獲取該消息指示的聚合口的STP轉(zhuǎn)發(fā)狀態(tài),將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。
15.根據(jù)權(quán)利要求14所述的接口板,其特征在于,該接口板運行STP,或者RSTP,或者MSTP。
16.根據(jù)權(quán)利要求14所述的接口板,其特征在于,所述STP模塊進一步用于,當向主用主控板獲取該消息指示的聚合口的STP轉(zhuǎn)發(fā)狀態(tài)時,若在預(yù)設(shè)等待時長內(nèi)未接收到主用主控板返回的該聚合口的STP轉(zhuǎn)發(fā)狀態(tài),則將本板上該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)設(shè)置為 Discarding。
17.根據(jù)權(quán)利要求14所述的接口板,其特征在于,所述鏈路聚合模塊進一步用于,接收對端設(shè)備發(fā)來的各成員口的STP轉(zhuǎn)發(fā)狀態(tài),將該各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給主用主控板;當接收到主用主控板返回的指示對端設(shè)備的聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常的通知時,將該通知轉(zhuǎn)發(fā)給對端設(shè)備。
全文摘要
本發(fā)明公開了修復生成樹協(xié)議轉(zhuǎn)發(fā)狀態(tài)異常的方法及堆疊設(shè)備。方法包括第一堆疊設(shè)備的主用主控板周期性檢測本板的CPU的使用率,當發(fā)現(xiàn)CPU的使用率在預(yù)設(shè)第一時長內(nèi)持續(xù)高于門限值,或者,發(fā)現(xiàn)任一聚合口的STP轉(zhuǎn)發(fā)狀態(tài)變化時,通知本設(shè)備的各接口板將各成員口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給對端第二設(shè)備,第二設(shè)備判斷同一聚合口的不同成員口上的STP轉(zhuǎn)發(fā)狀態(tài)是否相同;當?shù)谝欢询B設(shè)備接收到第二設(shè)備發(fā)來的指示聚合口的STP轉(zhuǎn)發(fā)狀態(tài)異常通知時,將該聚合口的STP轉(zhuǎn)發(fā)狀態(tài)發(fā)送給各接口板,各接口板將該聚合口的各成員口的STP轉(zhuǎn)發(fā)狀態(tài)調(diào)整為與該聚合口一致。本發(fā)明在堆疊設(shè)備的聚合成員口的STP轉(zhuǎn)發(fā)狀態(tài)不一致時,能夠及時發(fā)現(xiàn)并修復。
文檔編號H04L12/24GK103152210SQ20131010808
公開日2013年6月12日 申請日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者王偉, 王佳炳, 戴一凡 申請人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 苏尼特左旗| 日喀则市| 潮州市| 北川| 惠水县| 前郭尔| 海伦市| 龙里县| 武强县| 建始县| 炉霍县| 门源| 宜州市| 天祝| 来安县| 湘阴县| 会宁县| 固阳县| 福州市| 宜昌市| 广汉市| 噶尔县| 吴堡县| 汉中市| 乌鲁木齐市| 桑植县| 内黄县| 兰溪市| 霞浦县| 大丰市| 祁门县| 馆陶县| 七台河市| 游戏| 周至县| 雅安市| 谷城县| 涞源县| 巩留县| 富源县| 夏邑县|