專利名稱:在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在二層網(wǎng)絡(luò)設(shè)備中,生成樹協(xié)議的Graceful Restart(優(yōu)雅重啟)方法。該方法使以太網(wǎng)交換機設(shè)備中運行的生成樹協(xié)議即STP(Spanning-Tree Protocol)協(xié)議在控制層面出現(xiàn)故障時,數(shù)據(jù)轉(zhuǎn)發(fā)仍然正常進行,從而保障網(wǎng)絡(luò)上關(guān)鍵業(yè)務(wù)不受影響。
背景技術(shù):
隨著網(wǎng)絡(luò)的發(fā)展,用戶對于網(wǎng)絡(luò)的可靠性提出了越來越高的要求。不間斷轉(zhuǎn)發(fā)NSF(NoneStop Forwarding)就是一項重要的高可靠性技術(shù)(HA,High Availability),它可以保證在網(wǎng)絡(luò)設(shè)備的控制層面出現(xiàn)故障時,數(shù)據(jù)轉(zhuǎn)發(fā)仍然正常執(zhí)行,從而保護網(wǎng)絡(luò)上關(guān)鍵業(yè)務(wù)不受影響。
不間斷轉(zhuǎn)發(fā)是指在網(wǎng)絡(luò)設(shè)備控制層面故障過程中,數(shù)據(jù)轉(zhuǎn)發(fā)不間斷地正常執(zhí)行。最初這個概念的提出主要是在路由器上,路由器設(shè)備是一種三層設(shè)備,進行三層轉(zhuǎn)發(fā),它關(guān)心的主要是一些重要三層協(xié)議的不間斷轉(zhuǎn)發(fā),如OSPF(Open Shortest Path First,開放最短路徑優(yōu)先)、BGP(Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議)、IS-IS(IntermediateSystem-to-Intermediate System,中間系統(tǒng)對中間系統(tǒng)協(xié)議)、LDP(Label DistributionProtocol,標(biāo)簽分發(fā)協(xié)議)、RSVP(Resource-Reservation Protocol,資源預(yù)留協(xié)議)等。通常情況下,路由器故障后,其路由協(xié)議層面的鄰居會檢測到它們之間的鄰居關(guān)系斷掉,過一段時間后再次建立,這個過程稱為鄰居關(guān)系震蕩。這種震蕩會導(dǎo)致路由震蕩的出現(xiàn),使得重啟路由器在一段時間內(nèi)出現(xiàn)黑洞或者導(dǎo)致整個網(wǎng)絡(luò)范圍內(nèi)的路由重新匯聚,由此導(dǎo)致的路由重新計算和整個網(wǎng)絡(luò)范圍內(nèi)的路由更新會消耗大量處理資源,并有可能在瞬時轉(zhuǎn)發(fā)環(huán)路中導(dǎo)致數(shù)據(jù)包丟失。不間斷轉(zhuǎn)發(fā)正是為了防止上述情況的發(fā)生,保護網(wǎng)絡(luò)上數(shù)據(jù)轉(zhuǎn)發(fā)的正常進行。
為了實現(xiàn)不間斷轉(zhuǎn)發(fā),需要路由協(xié)議做擴展以支持GR(Graceful Restart)功能,可以說GR正是實現(xiàn)不間斷轉(zhuǎn)發(fā)的重要組成部分。
隨著交換機在網(wǎng)絡(luò)中越來越多的應(yīng)用,特別是二層以上交換機三層多層交換機的出現(xiàn),用戶對交換機特別是核心交換機的可靠性也提出了更高的要求。但是,交換機跟路由器是有區(qū)別的,路由器是一臺三層設(shè)備,它的功能主是要完成選路,而核心層的三層交換機除了具有路由功能外,它也會進行高速的二層轉(zhuǎn)發(fā)。因此,STP協(xié)議是交換機設(shè)備中不可或缺的重要的二層協(xié)議。而要想在核心交換機上做到NSF這樣的高可靠性,二層轉(zhuǎn)發(fā)的保證是必不可少的。
現(xiàn)有的技術(shù)都是基于三層協(xié)議的GR實現(xiàn),尚未實現(xiàn)對于二層的GR功能。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的缺陷和不足,本發(fā)明提供一種交換機控制層面發(fā)生故障時,數(shù)據(jù)包轉(zhuǎn)發(fā)仍能正常執(zhí)行的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法。
為達到上述目的,本發(fā)明采用以下技術(shù)方案本發(fā)明在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,包括如下步驟步驟A,線卡記錄主用控制板發(fā)送的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文;步驟B,在主用控制板與備用控制板倒換時,使用線卡上記錄的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告;步驟C,倒換結(jié)束后,使用當(dāng)前主用控制板上生成樹協(xié)議產(chǎn)生的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告。
優(yōu)選的在所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法中,步驟B具體為步驟B1,在主用控制板與備用控制板倒換時,主用控制板向線卡和備用控制板發(fā)送控制板倒換信息,在一定時間內(nèi)使端口的狀態(tài)不變,不對端口進行刪除MAC操作;步驟B2,利用線卡緩存的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外發(fā)送生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文。
優(yōu)選的在所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法中,步驟B1具體為步驟B11,線卡接收到主用控制板發(fā)送的主用控制板與備用控制板倒換消息后,設(shè)置線卡倒換超時定時器;備用控制板接收到倒換消息后,啟動主用控制板上的倒換超時定時器;步驟B12,線卡倒換超時定時器未超時的情況下,每個發(fā)送間隔時間向外發(fā)送線卡接口上記錄的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文一次;步驟B13,線卡倒換超時定時器未超時的情況下,線卡接收到寫端口狀態(tài)消息時,屏蔽該消息,不再通告給驅(qū)動模塊;步驟B14,主用控制板的倒換超時定時器未超時的情況下,接收到FLUSH消息后,不再刪除MAC地址。
優(yōu)選的在所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法中,所述超時定時器定時為30秒。
與現(xiàn)有的主用控制板主備倒換相比,本發(fā)明在主用控制板進行主備倒換時,不影響二層流量的轉(zhuǎn)發(fā),提高了交換機設(shè)備的可靠性,增強了網(wǎng)絡(luò)的穩(wěn)定性,具有實際應(yīng)用的意義。
圖1分布式體系結(jié)構(gòu)交換機GR實現(xiàn)原理圖;
圖2線卡事件驅(qū)動流程圖;圖3主控事件驅(qū)動流程圖;圖4實施例組網(wǎng)圖。
具體實施例方式
現(xiàn)有交換設(shè)備的控制板主備倒換實現(xiàn)的是一個實際意義上的冷倒換,備用控制板在主用控制板正常工作時,只是運行了同樣的軟件版本,但是各個具體的協(xié)議模塊并沒有運行。只有當(dāng)備用控制板變成主用控制板的時候,協(xié)議模塊才開始進行初始化。
對于生成樹協(xié)議來說,控制板發(fā)生主備倒換的時候,備用控制板上的STP才會進行協(xié)議的初始化。初始化過程中首先會把開啟了生成樹協(xié)議的端口狀態(tài)設(shè)置為阻塞狀態(tài),然后會刪除從該端口上學(xué)習(xí)到的所有MAC地址,這樣就會在穩(wěn)定的拓撲結(jié)構(gòu)中引起流量的瞬間不通。同時由于備用控制板啟動時,備用控制板中沒有網(wǎng)絡(luò)中鄰居交換機的向量信息,如果備用控制板變?yōu)橹靼鍐訒r間很長,鄰居交換機就會由于接收不到BPDU報文,導(dǎo)致STP重新計算,這樣就可能會對網(wǎng)絡(luò)上數(shù)據(jù)轉(zhuǎn)發(fā)產(chǎn)生影響。
為了實現(xiàn)STP協(xié)議在主控板主備倒換時,不影響數(shù)據(jù)的轉(zhuǎn)發(fā),有以下兩種實現(xiàn)方法1做STP協(xié)議的RESTART過程仿照路由協(xié)議的做法,在RESTART過程中,通告鄰居交換機,使得鄰居交換機在一定時間內(nèi),保持端口向量信息和端口狀態(tài)不變,當(dāng)本端RESTART啟動完成后,鄰居交換機還需要負責(zé)把端口信息通告給RESTART的交換機。本做法由于牽涉到協(xié)議狀態(tài)機的修改,沒有標(biāo)準的支持,很難實現(xiàn),通用性也不好,故沒有采用。
方法2如圖1所示,線卡會記錄當(dāng)前發(fā)送BPDU報文信息,當(dāng)控制板主備倒換時,主用控制板會向線卡和備用控制板發(fā)送控制板倒換信息,在一定時間內(nèi)使端口的狀態(tài)不變,不對端口進行刪除MAC操作,同時利用線卡緩存的BPDU報文向外發(fā)送BPDU報文。倒換結(jié)束后,以前的備用控制板變成了當(dāng)前的主用控制板,它會用當(dāng)前STP協(xié)議進程計算的BPDU報文信息向線卡同步,線卡同樣會記錄下當(dāng)前發(fā)送BPDU報文信息,并向外通告當(dāng)前的BPDU報文信息。
參照附圖2,分布式體系結(jié)構(gòu)的交換機具體實現(xiàn)有以下幾個方面線卡通過DISP_RCV_PACKET_MESSAGE消息接收到主控板上發(fā)送過來BPDU報文,通過np_rec_mstp_pkt函數(shù)記錄下該BPDU報文;線卡上接收到主控板主備倒換消息MSG_MSExchange后,把np_stp_masterToslave變量設(shè)置為1,設(shè)置mstp_msexchange_Tick定時器;線卡上的30秒倒換定時器未超時,通過np_send_mstp_pkt函數(shù)發(fā)送線卡接口上記錄下的BPDU報文,每個HELLO時間向外發(fā)送BPDU報文一次;線卡上30秒倒換定時器未超時,接收到寫端口狀態(tài)消息時,屏蔽該消息,不再通告給驅(qū)動模塊;線卡上30秒倒換定時器超時,把np_stp_masterToslave變量設(shè)置為0;參照附圖3,備用控制板接收到倒換消息MSG_SlaveToMaster后,把變量mstp_slave_master設(shè)置為1,啟動主控板上30秒的倒換定時器主控板上30秒的倒換定時器沒有超時接收到FLUSH消息時,不再調(diào)用mac_on_port_stp_down函數(shù)刪除MAC地址;主控上30秒定時器超時后,通過函數(shù)sync_port_state同步端口狀態(tài)到線卡上,防止在主備倒換期間網(wǎng)絡(luò)拓撲發(fā)生變化導(dǎo)致主控和線卡上端口狀態(tài)不一致。
圖4是一個現(xiàn)網(wǎng)應(yīng)用的組網(wǎng)環(huán)境,該環(huán)境中使用了四臺分布式體系結(jié)構(gòu)核心三層交換機。在該環(huán)境中,為了實現(xiàn)鏈路冗余,開啟了MSTP(Multiple Spanning-Tree Protocol),將四臺交換機都配置在同一個區(qū)域中,其中共配置了10個實例,每個實例分別以其中某一臺交換機為根網(wǎng)橋。為了實現(xiàn)結(jié)點冗余,還開啟了VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議),防止單點故障。為了宣告路由,還配置了OSPF協(xié)議。總之,這是一個比較復(fù)雜的環(huán)境,既開啟了二層MSTP協(xié)議,又開啟了相應(yīng)的三層協(xié)議。
由于使用該設(shè)備的客戶是運營商級的客戶,所以對設(shè)備的性能和可靠性都要求比較高。因此,對于主控板主備倒換時對流量的影響要求比較高。在沒有加上STP的GR功能時,從圖中switch1所接PC與switch2所接PC互ping包進行測試,當(dāng)switch1或者switch2的主控板進行主備倒換時,可以發(fā)現(xiàn),數(shù)據(jù)包會丟大概20個左右。這正是因為備用控制板在成為主用控制板后,會對STP協(xié)議重新進行初始化,會把開啟了生成樹協(xié)議的端口狀態(tài)設(shè)置為阻塞狀態(tài),然后會刪除從該端口上學(xué)習(xí)到的所有MAC地址,這樣就會在穩(wěn)定的拓撲結(jié)構(gòu)中引起流量的瞬間不通。當(dāng)為STP協(xié)議加上GR功能后,同樣的環(huán)境里面進行同樣的測試,可以直觀地看出,丟包率為0%。
為了進一步驗證結(jié)果,將兩端的PC機換成測試儀,從測試儀兩端互發(fā)二層流量,進行主控板主備倒換,從測試儀的控制臺可以看到,一個數(shù)據(jù)包都沒有丟失。
綜上所述,本發(fā)明有效地實現(xiàn)了當(dāng)控制層面出現(xiàn)故障時,數(shù)據(jù)的不間斷轉(zhuǎn)發(fā)。本發(fā)明實現(xiàn)簡單,不用對STP狀態(tài)機進行修改,因此對軟件成本增加不大,避免了代碼的大規(guī)模修改和由此引入的潛在問題,有效地提高交換機的可靠性,實現(xiàn)了STP的Graceful Restart功能。
權(quán)利要求
1.一種在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,包括如下步驟步驟A,線卡記錄主用控制板發(fā)送的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文;步驟B,在主用控制板與備用控制板倒換時,使用線卡上記錄的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告;步驟C,倒換結(jié)束后,使用當(dāng)前主用控制板上生成樹協(xié)議產(chǎn)生的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告。
2.根據(jù)權(quán)利要求1所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,其特征在于步驟B具體為步驟B1,在主用控制板與備用控制板倒換時,主用控制板向線卡和備用控制板發(fā)送控制板倒換信息,在一定時間內(nèi)使端口的狀態(tài)不變,不對端口進行刪除MAC操作;步驟B2,利用線卡緩存的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外發(fā)送生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文。
3.根據(jù)權(quán)利要求2所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,其特征在于步驟B1具體為步驟B11,線卡接收到主用控制板發(fā)送的主用控制板與備用控制板倒換消息后,設(shè)置線卡倒換超時定時器;備用控制板接收到倒換消息后,啟動主用控制板上的倒換超時定時器;步驟B12,線卡倒換超時定時器未超時的情況下,每個發(fā)送間隔時間向外發(fā)送線卡接口上記錄的生成樹網(wǎng)橋協(xié)議數(shù)據(jù)單元報文一次;步驟B13,線卡倒換超時定時器未超時的情況下,線卡接收到寫端口狀態(tài)消息時,屏蔽該消息,不再通告給驅(qū)動模塊;步驟B14,主用控制板的倒換超時定時器未超時的情況下,接收到FLUSH消息后,不再刪除MAC地址。
4.根據(jù)權(quán)利要求3所述的在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,其特征在于,所述超時定時器定時為30秒。
全文摘要
本發(fā)明公開了一種在二層網(wǎng)絡(luò)設(shè)備中生成樹協(xié)議的優(yōu)雅重啟實現(xiàn)方法,解決了現(xiàn)有優(yōu)雅重啟方法只能在三層網(wǎng)絡(luò)設(shè)備上實現(xiàn),無法在二層網(wǎng)絡(luò)設(shè)備上實現(xiàn)的問題。包括線卡記錄主用控制板發(fā)送的網(wǎng)橋協(xié)議數(shù)據(jù)單元報文;在主用控制板與備用控制板倒換時,使用線卡上記錄的網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告;倒換結(jié)束后,使用當(dāng)前主用控制板上生成樹協(xié)議產(chǎn)生的網(wǎng)橋協(xié)議數(shù)據(jù)單元報文向外通告。與現(xiàn)有的主用控制板主備倒換相比,本發(fā)明在主用控制板進行主備倒換時,不影響二層流量的轉(zhuǎn)發(fā),提高了交換機設(shè)備的可靠性,增強了網(wǎng)絡(luò)的穩(wěn)定性,具有實際應(yīng)用的意義。
文檔編號H04L12/24GK1988542SQ20061016211
公開日2007年6月27日 申請日期2006年12月5日 優(yōu)先權(quán)日2006年12月5日
發(fā)明者鄒宗惠, 陸小科 申請人:中興通訊股份有限公司