專利名稱:減少錯誤平滑重啟狀態(tài)持續(xù)時長的方法及路由器的制作方法
技術領域:
本發(fā)明涉及平滑重啟技術領域,具體涉及一種減少錯誤平滑重啟狀態(tài)持 續(xù)時長的方法及路由器。
背景技術:
平滑重啟(GR, Graceful Restart)指的是在協議重啟時保證數據轉發(fā)正 常進行,保證關鍵業(yè)務不中斷。GR技術屬于高可靠性(HA, High Availability ) 技術的一種。HA是一整套綜合技術,主要包括冗余容錯、鏈路保證、節(jié)點 故障修復及流量工程。GR是一種冗余容錯技術,目前已被廣泛使用在主備 切換和系統升級方面,以保證關鍵業(yè)務的不間斷轉發(fā)。
目前,支持GR的多協議標簽交換(MPLS)協議包括標簽分發(fā)協議 (LDP)和資源預留協議(RSVP)。該兩協議在支持GR時,在協議的初 始化消息中增加與GR相關的參數,這些參數在路由器之間建立鄰居關系時 交互,用于幫助GR的進行。
以LDP為例,對現有的GR過程進行說明,如圖1所示,其具體步驟 如下
步驟101:路由器A確定鄰居路由器B重啟,進入GR狀態(tài),將自身作 為helper端,同時啟動連接定時器。
步驟102:路由器A在自身查找鄰居路由器B的LSP,并在該LSP上
作標記。
路由器A和路由器B在建立鄰居關系時,會交互LSP。
步驟103:路由器A向鄰居路由器B發(fā)送鄰居關系建立報文。
步驟104:路由器A判斷是否在連接定時器超時前,收到鄰居路由器B
發(fā)來的鄰居關系建立報文,若是,執(zhí)行步驟105;否則,執(zhí)行步驟106。
步驟105:路由器A繼續(xù)保持GR狀態(tài),將所述已作標記的LSP發(fā)送給
鄰居路由器B,本流程結束。
步驟106:路由器A刪除所述已作標記的LSP,退出GR狀態(tài)。
目前,支持LDP的路由器主要通過以下方式確定鄰居路由器發(fā)生重啟
方式一、路由器檢測到與鄰居路由器的傳輸控制協議(TCP )接口關閉,
則確定鄰居重啟。
由于LDP運行在TCP之上,所以當TCP連接斷掉,LDP連接自然斷掉。 方式二、路由器檢測到維護鄰居關系的HoldTime定時器超時,則確定 鄰居路由器重啟。
HoldTime定時器是用來維護鄰居關系的定時器,若在HoldTime的定時 時長內未收到鄰居路由器發(fā)來的握手(Hello)報文,則路由器認為鄰居路 由器重啟。
支持RSVP的路由器則在連續(xù)3次未收到鄰居路由器發(fā)來的Hello報文 時,確定鄰居關系斷掉,從而認為鄰居路由器重啟。
可以看出無論是支持LDP的路由器還是支持RSVP的路由器,都是 通過檢測到鄰居關系的斷掉,來確定鄰居路由器發(fā)生重啟的。而實際上,鄰 居關系斷掉時,鄰居路由器有可能未發(fā)生重啟。例如鄰居路由器可能由于 系統較忙或本身協議處理的問題導致無法及時發(fā)出Hello報文,此時本端路 由器檢測到鄰居關系斷掉,就會認為鄰居路由器發(fā)生重啟;或者,在兩臺路 由器通過交換機相連時,當其中一臺路由器的物理鏈路發(fā)生故障時,另外一 臺路由器也會由于檢測到鄰居關系斷掉,而認為鄰居路由器發(fā)生重啟。以上 情況都會使得路由器誤入GR狀態(tài)。
誤入GR狀態(tài)會帶來以下缺點
一、 會引起路由器之間不必要的信令、數據交互,占用CPU的資源。
二、 可能會引起數據轉發(fā)失敗,原因是考慮到路由器在處于GR狀態(tài) 時,與該路由器相關的某些路由可能會發(fā)生震蕩,因此,現有協議規(guī)定當
路由器處于GR狀態(tài)時,該路由器上新產生的路由不能使用進入GR狀態(tài)前 分配、但在處于GR狀態(tài)時失效的路由對應的LSP,即在路由器進入GR 狀態(tài)后,若檢測到某個已分配的LSP對應的路由失效,則該LSP不被立刻 釋放,而是一直保留到GR狀態(tài)結束,當GR狀態(tài)結束時,若該LSP對應的 路由仍不可用,則將該LSP釋放,以分配給新產生的路由使用。顯然,這 樣會引起如下問題若在路由器處于GR狀態(tài)時,路由器新產生的路由的數 量較大,則有可能會造成由于路由器的LSP不夠用,而使得新產生的路由 因無法被分配到LSP而不可用,從而導致數據轉發(fā)失敗。例如某路由器 最多可支持10萬條LSP,在路由器進入GR狀態(tài)前,已經為已產生的路由 分配了9萬條LSP,則路由器處于GR狀態(tài)時,只能再分配1萬條LSP,若 在處于GR狀態(tài)時新產生的路由數大于1萬如為3萬,則會有2萬條路由 因無法被分配到LSP而不可用,造成2萬個目的地址在GR狀態(tài)期間不可達。 因此,在誤入GR狀態(tài)時,必須要及時檢測到并退出,以減少錯誤的 GR狀態(tài)的持續(xù)時長。目前,還沒有解決該問題的方案。
發(fā)明內容
本發(fā)明實施例的目的在于提供減少錯誤GR狀態(tài)持續(xù)時長的方法及路由 器,以減少錯誤的GR狀態(tài)的持續(xù)時長。 本發(fā)明的技術方案是這樣實現的 一種減少錯誤GR狀態(tài)持續(xù)時長的方法,包括
當前路由器檢測到與鄰居路由器的鄰居關系斷掉且自身未發(fā)生重啟,則進 入GR狀態(tài),接收鄰居路由器發(fā)來的鄰居關系建立報文,檢測到該報文未指示 鄰居路由器發(fā)生重啟時,則退出GR狀態(tài)。
所述路由器進入GR狀態(tài)的同時進一步包括所述路由器在自身保存的鄰 居路由器的LSP上作標記;
且,所述路由器在退出GR狀態(tài)的同時進一步包括所述路由器將所述LSP 上的標記刪除。
所述檢測到鄰居關系建立報丈未指示鄰居路由器發(fā)生重啟通過以下步驟實
現
檢測到該報文未攜帶鄰居路由器發(fā)生重啟的指示; 或者,檢測到該報文攜帶鄰居路由器未發(fā)生重啟的指示。 所述方法進一步包括預先在鄰居關系建立報文中設置路由器是否發(fā)生重 啟的指示。
所述在鄰居關系建立報文中設置路由器是否發(fā)生重啟的指示為在鄰居關 系建立報文的保留位中設置路由器是否發(fā)生重啟的指示。
所述路由器進入GR狀態(tài)的同時,進一步包括所述路由器向鄰居路由器 發(fā)送鄰居關系建立報文,該報文指示自身未發(fā)生重啟,同時啟動連接定時器;
且所述路由器進入GR狀態(tài)之后進一步包括當所述連接定時器超時,所 述路由器未收到鄰居路由器發(fā)來的鄰居關系建立報文,退出GR狀態(tài)。
所述方法進一步包括
當前路由器檢測到自身重啟時,向鄰居路由器發(fā)送攜帶有自身發(fā)生重啟指 示的鄰居關系建立報文。
一種減少錯誤GR狀態(tài)持續(xù)時長的方法,包括當前路由器檢測到與鄰居 路由器的鄰居關系斷掉且自身未發(fā)生重啟,則進入GR狀態(tài),并在自身保存的 鄰居路由器的LSP上作標記,接收鄰居路由器發(fā)來的鄰居關系建立報文,檢測 到該報文指示鄰居路由器發(fā)生重啟時,將所述已作標記的LSP發(fā)送給鄰居路由 器。
一種路由器,包括鄰居關系檢測模塊、重啟檢測模塊、關系報文接收處 理模塊和GR模塊,其中
所述鄰居關系4全測;漢塊用于在^r測到與鄰居路由器的鄰居關系斷掉后,向 所述重啟檢測模塊發(fā)送重啟查詢指示,若收到所述重啟檢測模塊返回的未重啟 指示,則向所述GR模塊發(fā)送進入指示,同時向關系報文接收處理模塊發(fā)送重 啟信息上報指示;
所述重啟檢測模塊用于在收到所述重啟查詢指示后,若檢測到自身未發(fā)生
重啟,則向所迷鄰居關系檢測4莫塊返回未重啟指示;
所述關系報文接收處理模塊用于在收到所述重啟信息上報指示后,若檢測 到鄰居路由器發(fā)來的鄰居關系建立報文未指示該鄰居路由器發(fā)生重啟,則向所
述GR模塊發(fā)送退出指示;
所述GR模塊用于在收到所述進入指示后,進入GR狀態(tài);在收到所述退 出指示后,退出GR狀態(tài)。
所述路由器進一步包括LSP存儲模塊,用于存儲鄰居路由器的LSP;
且,所述鄰居關系檢測模塊進一步用于,在向所述GR模塊發(fā)送進入指示 的同時,在所述LSP存儲模塊中保存的鄰居路由器的LSP上作標記;
所述關系報文接收處理模塊進一步用于,在向所述GR模塊發(fā)送退出指示 的同時,刪除所述LSP存儲模塊中的LSP上的標記。
所述重啟檢測模塊進一步用于,在檢測到自身發(fā)生重啟后,生成并輸出重 啟發(fā)送指示;
且,該路由器進一步包括關系報文發(fā)送處理模塊,與所述重啟檢測模塊 相連,在收到所述重啟發(fā)送指示后,向鄰居路由器發(fā)送指示自身發(fā)生重啟的鄰 居關系建立報文。
所述鄰居關系檢測模塊進一步用于,在收到所述重啟檢測模塊發(fā)來的未重 啟指示后,生成并輸出啟動指示;
該路由器進一步包括連接定時器,與所迷鄰居關系檢測模塊相連,用于 在收到所述啟動指示后,開始定時,并在定時超時時,向所迷關系報文接收處 理模塊發(fā)送超時指示;
所述關系報文接收處理模塊包括關系報文接收模塊和超時處理模塊,其
中
所述關系報文接收模塊用于在收到所述鄰居關系檢測模塊發(fā)來的重啟信息 上報指示后,若檢測到在收到所述連接定時器發(fā)來的超時指示前,未收到鄰居 路由器發(fā)來的鄰居關系建立報文,則向所述超時處理模塊發(fā)送啟動指示;
所述超時處理模塊用于在收到所述關系報文接收模塊發(fā)來的啟動指示后,
將所述LSP存儲模塊中的已作標記的LSP刪除,并向GR模塊發(fā)送退出指示。
一種路由器,包括鄰居關系檢測模塊、重啟檢測模塊、關系報文接收處 理模塊、GR模塊和LSP存儲模塊,其中
所述鄰居關系沖金測才莫塊用于在^r測到與鄰居路由器的鄰居關系斷掉后,向 所述重啟檢測模塊發(fā)送重啟查詢指示,若收到所述重啟檢測模塊返回的未重啟 指示,則向所述GR^莫塊發(fā)送進入指示,并在所述LSP存儲模塊中保存的鄰居 路由器的LSP上作標記,同時向關系報文接收處理模塊發(fā)送重啟信息上報指示;
所述重啟檢測模塊用于在收到所述重啟查詢指示后,若檢測到自身未發(fā)生 重啟,則向所述鄰居關系檢測模塊返回未重啟指示;
所述關系報文接收處理模塊用于在收到所述重啟信息上報指示后,若檢測 到鄰居路由器發(fā)來的鄰居關系建立報文指示鄰居路由器發(fā)生重啟,則將所述 LSP存儲模塊中已作標記的LSP發(fā)送給鄰居路由器;
所述GR模塊用于在收到所述進入指示后,進入GR狀態(tài);
所述LSP存儲模塊用于存儲鄰居路由器的LSP。
與現有技術相比,本發(fā)明中,路由器在檢測到與鄰居路由器的鄰居關系 斷掉且自身未發(fā)生重啟時,進入GR狀態(tài),之后若檢測鄰居路由器發(fā)來的鄰 居關系建立報文未指示鄰居路由器發(fā)生重啟,則確定自身誤入了 GR狀態(tài), 退出GR狀態(tài),從而在誤入GR狀態(tài)時,能夠及時檢測到并退出,減少了錯 誤的GR狀態(tài)的持續(xù)時長,減少了不必要的信令、數據交互,降低了 CPU 資源的占用;同時也使得在GR狀態(tài)期間失效的路由對應的LSP能夠被及時 分配給新產生的路由,提高數據轉發(fā)成功率。
另外,本發(fā)明通過在路由器在檢測到與鄰居路由器的鄰居關系斷掉且自 身未發(fā)生重啟時,進入GR狀態(tài),并在自身保存的鄰居路由器的LSP上作標 記,此后若檢測到鄰居路由器發(fā)來的鄰居關系建立報文指示鄰居路由器發(fā)生 重啟,則確定自身未誤入GR狀態(tài),將所述已作標記的LSP發(fā)送給鄰居路由 器,使得路由器在進入GR狀態(tài)時,能夠及時得知自身進入了正確的GR狀 態(tài),幫助鄰居路由器及時恢復正常數據轉發(fā)。
圖1為現有的GR過程執(zhí)行流程圖2為本發(fā)明實施例提供的減少錯誤GR狀態(tài)持續(xù)時長的流程圖; 圖3為本發(fā)明實施例提供的減少錯誤GR狀態(tài)持續(xù)時長的路由器的結構 示意圖4為本發(fā)明實施例提供的關系報文接收處理模塊的結構示意圖; 圖5為本發(fā)明應用實例一中的鏈路故障示意圖; 圖6為本發(fā)明應用實例三中的路由器故障示意圖。
具體實施例方式
下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。 圖2為本發(fā)明實施例提供的減少錯誤GR狀態(tài)持續(xù)時長的流程圖,如圖 2所示,其具體步驟如下
步驟201:路由器A檢測到與鄰居路由器B的鄰居關系斷掉,且自身未 發(fā)生重啟,則進入GR狀態(tài),將自身作為Helper端,同時啟動連接定時器。 步驟202:路由器A在自身保存的鄰居路由器B的LSP上作標記。 步驟203:路由器A向鄰居路由器B發(fā)送指示自身未發(fā)生重啟的鄰居關 系建立報文。
本發(fā)明中,具體可通過以下方式使得鄰居關系建立報文能夠指示本端路 由器是否發(fā)生重啟
方式一、在鄰居關系建立報文中設置用于指示本端路由器是否發(fā)生重啟 標識信息;該方式具體的實現手段有以下幾種
1、 在鄰居關系建立報文中新增加一個或一個以上用于指示本端路由器 是否發(fā)生重啟的比特位。例如當新增加一個比特位時,可設定當該比特位 為0時,表示本端路由器未發(fā)生重啟,當該比特位為l時,表示本端路由器 發(fā)生重啟。
2、 將鄰居關系建立報文中的任意一個保留位用于指示本端路由器是否
發(fā)生重啟,當該保留位為0時,表示本端路由器未發(fā)生童啟;當該保留位為 l時,表示本端路由器發(fā)生重啟;
3、將鄰居關系建立報文中的特定的一個以上的保留位用于指示本端路 由器是否發(fā)生重啟,當該特定的一個以上的保留位都為0時,表示本端路由 器未發(fā)生重啟;當該特定的一個以上的保留位都為1時,表示本端路由器發(fā) 生重啟。
以上表示本端路由器未發(fā)生重啟的標識和表示本端路由器發(fā)生重啟的 標識不限于O或l,只要兩者不同即可。
方式二、設定當本端路由器發(fā)生重啟時,在鄰居關系建立報文中增加用 于指示本端路由器發(fā)生重啟的標識信息,而當本端路由器未發(fā)生重啟時,則
不在鄰居關系建立報文中增加任何標識信息,即該鄰居關系建立報文與現 有技術中的鄰居關系建立報文相同。
例如當本端路由器發(fā)生重啟時,在鄰居關系建立報文中增加一個或多 個比特位,該比特位的值可以任意設定;而當本端路由器未發(fā)生重啟時,則 不對鄰居關系建立報文作任何改動。
方式三、設定當本端路由器未發(fā)生重啟時,在鄰居關系建立報文中增加 用于指示本端路由器未發(fā)生重啟的標識信息,而當本端路由器發(fā)生重啟時,
則不在鄰居關系建立報文中設增加任何標識信息,即該鄰居關系建立報文 與現有技術中的鄰居關系建立報文相同。
具體采用以上三種方式中的哪一種,路由器A和路由器B可預先協商 確定,或者由網絡管理員等將所采用的方式信息預先配置在路由器A和路 由器B上。
步驟204:路由器A判斷是否在連接定時器超時前,收到鄰居路由器B 發(fā)來的鄰居關系建立報文,若是,執(zhí)行步驟206;否則,執(zhí)行步驟205。
步驟205:路由器A刪除所述已作標記的LSP,退出GR狀態(tài),本流程 結束。
步驟206:路由器A判斷該報文是否指示鄰居路由器B發(fā)生重啟,若是,
執(zhí)行步驟207;否則,執(zhí)行步驟209。
鄰居路由器B發(fā)現自身重啟后,會向路由器A發(fā)送鄰居關系建立報文, 該報文指示路由器B發(fā)生重啟。具體可根據路由器A和路由器B所采用的 使得鄰居關系建立報文能夠指示本端路由器是否發(fā)生重啟的方式,來判斷本 步驟206中的鄰居關系建立報文是否指示路由器B發(fā)生重啟,例如
若采用步驟203中的方式一,則路由器A可根據鄰居關系建立報文中 的標識信息,來判斷路由器B是否發(fā)生重啟;
若采用步驟203中的方式二,則路由器A可根據鄰居關系建立報文中 是否攜帶標識信息,來判斷路由器B是否發(fā)生重啟,若攜帶,則確定路由器 B發(fā)生重啟;
若采用步驟203中的方式三,則路由器A同樣根據鄰居關系建立報文 中是否攜帶標識信息,來判斷路由器B是否發(fā)生重啟,若未攜帶,則確定路 由器B發(fā)生重啟。
步驟207:路由器A繼續(xù)保持GR狀態(tài),將所述已作標記的LSP發(fā)送給 鄰居路由器B。
步驟208:鄰居路由器B收到路由器A發(fā)來的LSP,保存該LSP,根據 該LSP進行數據轉發(fā),本流程結束。
步驟209:路由器A刪除所述LSP上的標記,退出GR狀態(tài)。
從圖2所示流程可以看出路由器A在進入GR狀態(tài)后,若收到路由器 B發(fā)來的指示路由器B未發(fā)生重啟的鄰居關系建立報文,則路由器A會及 時退出GR狀態(tài),從而減少了錯誤的GR狀態(tài)的持續(xù)時長,減少了不必要的 信令、數據交互,降低了 CPU資源的占用;同時也使得新產生的路由能夠 被及時分配到LSP,從而提高了數據轉發(fā)的成功率。
圖3為本發(fā)明實施例提供的減少錯誤GR狀態(tài)持續(xù)時長的路由器的結構 示意圖,如圖3所示,其主要包括鄰居關系檢測模塊31、連接定時器32、 重啟檢測模塊33、關系報文發(fā)送處理模塊34、關系報文接收處理模塊35、 GR模塊36和LSP存儲模塊37,其中
鄰居關系檢測模塊31:用于在檢測到與鄰居路由器的鄰居關系斷掉以 后,向重啟檢測模塊33發(fā)送重啟查詢指示,在收到重啟檢測模塊33返回的 未重啟指示后,向GR模塊36發(fā)送進入指示,同時向連接定時器32發(fā)送啟 動指示,并向關系報文發(fā)送處理模塊34發(fā)送未重啟發(fā)送指示,同時在LSP 存儲模塊37中存儲的鄰居路由器的LSP上作標記,并向關系報文接收處理 模塊35發(fā)送重啟信息上報指示。
連接定時器32:用于在收到鄰居關系檢測模塊31發(fā)來的啟動指示后開 始定時,并在定時超時時,向關系報文接收處理模塊35發(fā)送超時指示。
重啟檢測模塊33:用于在收到鄰居關系檢測模塊31發(fā)來的重啟查詢指 示后,若檢測到自身未發(fā)生重啟,則向鄰居關系檢測模塊31返回未重啟指 示;在檢測到自身發(fā)生重啟后,向關系報文發(fā)送處理模塊34發(fā)送重啟發(fā)送 指示。
關系報文發(fā)送處理模塊34:用于在收到鄰居關系檢測模塊31發(fā)來的未 重啟發(fā)送指示后,向鄰居路由器發(fā)送指示自身未發(fā)生重啟的鄰居關系建立報 文;在收到重啟檢測模塊33發(fā)來的重啟發(fā)送指示后,向鄰居路由器發(fā)送指 示自身發(fā)生重啟的鄰居關系建立報文。
關系報文接收處理模塊35:用于在收到鄰居關系檢測模塊31發(fā)來的重 啟信息上報指示后,若檢測到在收到連接定時器32發(fā)來的超時指示前,未 收到鄰居路由器發(fā)來的鄰居關系建立報文,則將LSP存儲模塊37中已作標 記的LSP刪除,并向GR模塊36發(fā)送退出指示;若檢測到在收到連接定時 器32發(fā)來的超時指示前,收到鄰居路由器發(fā)來的鄰居關系建立報文,則判 斷該報文是否指示鄰居路由器發(fā)生重啟,若是,則將LSP存儲模塊37中存 儲的已作標記的LSP發(fā)送給鄰居路由器;若否,則向GR模塊36發(fā)送退出 指示,同時將LSP存儲模塊37中保存的LSP上的標記刪除。
GR模塊36:用于在收到鄰居關系檢測模塊31發(fā)來的進入指示后,進 入GR狀態(tài);在收到關系報文接收處理模塊35發(fā)來的退出指示后,退出GR 狀態(tài)。
LSP存儲模塊37:用于存儲鄰居路由器的LSP。
具體地,如圖4所示,關系報文接收處理模塊35主要包括關系報文 接收模塊351、超時處理模塊352、未重啟處理模塊353和重啟處理模塊354, 其中
關系報文接收模塊351:用于在收到鄰居關系檢測模塊31發(fā)來的重啟 信息上報指示后,若檢測到在收到連接定時器32發(fā)來的超時指示前,未收 到鄰居路由器發(fā)來的鄰居關系建立報文,則向超時處理模塊351發(fā)送啟動指 示;若檢測到在收到連接定時器32發(fā)來的超時指示前,收到鄰居路由器發(fā) 來的鄰居關系建立報文,則判斷該報文是否指示鄰居路由器發(fā)生重啟,若是, 則向重啟處理模塊354發(fā)送啟動指示,否則,則向未重啟處理模塊353發(fā)送 啟動4旨示。
超時處理模塊352:用于在收到關系報文接收模塊351發(fā)來的啟動指示 后,將LSP存儲模塊37中已作標記的LSP刪除,并向GR模塊36發(fā)送退 出指示。
未重啟處理模塊353:用于在收到報文接收模塊351發(fā)來的啟動指示后, 向GR模塊36發(fā)送退出指示,同時將LSP存儲模塊37中保存的LSP上的 標記刪除。
重啟處理模塊354:用于在收到關系報文接收模塊351發(fā)來的啟動指示 后,將LSP存儲模塊37中已作標記的LSP發(fā)送給鄰居路由器。 以下給出三個應用本發(fā)明的具體實例
實例一、該實例給出的是交換機發(fā)生鏈路故障、而路由器未發(fā)生重啟時 的GR過程。
如圖5所示,路由器RTA與路由器RTB通過交換機S1和S2相連,當 S1和S2之間的鏈路發(fā)生故障時,RTB和RTA都會發(fā)現同對端路由器的鄰 居關系斷掉,則RTB和RTA都會認為自己為對端的Helper端,都會進入 GR狀態(tài),保持與對端的鄰居關系,并在自身保存的對端的LSP上作標記, 同時不斷向對端發(fā)出鄰居關系建立報文,該報文中用于指示本端是否發(fā)生重
啟的保留位被設置為O,以表示本端未發(fā)生重啟。
當Sl和S2之間的鏈路恢復時,RTB、 RTA都會收到對端發(fā)來的指示 對端未發(fā)生重啟的鄰居關系建立4艮文,則RTB、 RTA都會把原來已作標記 的LSP上的標記刪除,退出GR狀態(tài);同時進入重新建立鄰居關系的流程。
實例二、該實施例給出的是由于路由器正忙或協議處理問題,未及時發(fā) 出Hello l艮文時的GR過程。
在本實施例中,路由器RTA與路由器RTB為鄰居路由器,RTB由于當 前自身正忙或協議處理問題,而未及時向RTA發(fā)送Hello報文。RTA在維 護鄰居關系的HoldTime定時器超時時,未收到RTB發(fā)來的Hello報文,則 確定鄰居關系斷掉,將自己作為RTB的Helper端,進入GR狀態(tài),并在自 身保存的RTB的LSP上作標記,同時不斷向RTB發(fā)出鄰居關系建立報文, 該報文中用于指示本端是否發(fā)生重啟的保留位被設置為0,以表示本端未發(fā) 生重啟。
當RTB不忙或協議處理恢復正常時,會處理RTA發(fā)來的鄰居關系建立 報文,檢測到該報文攜帶指示RTA未發(fā)生重啟的信息,則向RTA發(fā)送鄰居 關系建立報文,該報文中用于指示本端是否發(fā)生重啟的保留位被設置為0, RTA收到該報文后,得知RTB未發(fā)生重啟,則把原來已作標記的LSP上的 標記刪除,退出GR狀態(tài)。
實例三、該實例給出的是路由器發(fā)生重啟時的GR過程。
如圖6所示,路由器RTA和路由器RTB之間通過交換機S連接。當 RTB發(fā)生故障時,RTA會發(fā)現同RTB的鄰居關系斷掉,則認為自己為Helper 端,進入GR狀態(tài),并在自身保存的RTB的LSP上作標記,同時不斷向RTB 發(fā)送攜帶指示自身未發(fā)生重啟的信息的鄰居關系建立報文。
當RTB重啟后,向RTA發(fā)送攜帶指示自身發(fā)生重啟的信息的鄰居關系 建立報文,RTA收到該報文后,得知RTB發(fā)生重啟,則將已作標記的LSP 發(fā)給RTB,此時> RTA和RTB都處于GR狀態(tài)。
應當理解,實現本發(fā)明方法的軟件可以存儲于一計算機可讀取存儲介質中,該軟件的在執(zhí)衧時,包括如下步驟在鄰居關系建立報丈中設置路由器 是否發(fā)生重啟的指示;當前路由器檢測到與鄰居路由器的鄰居關系斷掉且自
身未發(fā)生重啟,則進入GR狀態(tài),并在自身保存的鄰居路由器的LSP上作標 記,接收鄰居路由器發(fā)來的鄰居關系建立報文,檢測到該報文未攜帶鄰居路 由器發(fā)生重啟的指示時,則退出GR狀態(tài),并刪除所述LSP上的標記。所述 的存儲介質,如ROM/RAM、磁碟、光盤等。
以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
權利要求
1、一種減少錯誤平滑重啟GR狀態(tài)持續(xù)時長的方法,其特征在于,包括當前路由器檢測到與鄰居路由器的鄰居關系斷掉且自身未發(fā)生重啟,則進入GR狀態(tài),接收鄰居路由器發(fā)來的鄰居關系建立報文,檢測到該報文未指示鄰居路由器發(fā)生重啟時,則退出GR狀態(tài)。
2、 如權利要求l所述的方法,其特征在于,所述路由器進入GR狀態(tài)的同 時進一步包括所述路由器在自身保存的鄰居路由器的LSP上作標記;且,所述路由器在退出GR狀態(tài)的同時進一步包括所述路由器將所述LSP 上的標記刪除。
3、 如權利要求l所述的方法,其特征在于,所述檢測到鄰居關系建立報文 未指示鄰居路由器發(fā)生重啟通過以下步驟實現檢測到該報文未攜帶鄰居路由器發(fā)生重啟的指示;或者,檢測到該報文攜帶鄰居路由器未發(fā)生重啟的指示。
4、 如權利要求1或2或3所述的方法,其特征在于,所述方法進一步包括 預先在鄰居關系建立報文中設置路由器是否發(fā)生重啟的指示。
5、 如權利要求4所述的方法,其特征在于,所述在鄰居關系建立報文中設 置路由器是否發(fā)生重啟的指示為在鄰居關系建立報文的保留位中設置路由器 是否發(fā)生重啟的指示。
6、 如權利要求l所述的方法,其特征在于,所述路由器進入GR狀態(tài)的同 時,進一步包括所述路由器向鄰居路由器發(fā)送鄰居關系建立報文,該報文指 示自身未發(fā)生重啟,同時啟動連接定時器;且所述路由器進入GR狀態(tài)之后進一步包括當所述連接定時器超時,所 述路由器未收到鄰居路由器發(fā)來的鄰居關系建立報文,退出GR狀態(tài)。
7、 如權利要求1或2所述的方法,其特征在于,所述方法進一步包括 當前路由器檢測到自身重啟時,向鄰居路由器發(fā)送攜帶有自身發(fā)生重啟指示的鄰居關系建立報文。
8、 一種威少錯誤GR狀態(tài)持續(xù)時長的方法,其特征在于,包括當前路由 器檢測到與鄰居路由器的鄰居關系斷掉且自身未發(fā)生重啟,則進入GR狀態(tài), 并在自身保存的鄰居路由器的LSP上作標記,接收鄰居路由器發(fā)來的鄰居關系 建立報文,檢測到該報文指示鄰居路由器發(fā)生重啟時,將所述已作標記的LSP 發(fā)送給鄰居路由器。
9、 一種路由器,其特征在于,包括鄰居關系檢測模塊、重啟檢測模塊、 關系報文接收處理模塊和GR模塊,其中所述鄰居關系檢測模塊用于在檢測到與鄰居路由器的鄰居關系斷掉后,向 所述重啟檢測模塊發(fā)送重啟查詢指示,若收到所述重啟檢測模塊返回的未重啟 指示,則向所述GR模塊發(fā)送進入指示,同時向關系報文接收處理模塊發(fā)送重 啟信息上報指示;所述重啟檢測模塊用于在收到所述重啟查詢指示后,若檢測到自身未發(fā)生 重啟,則向所述鄰居關系檢測模塊返回未重啟指示;所述關系報文接收處理模塊用于在收到所述重啟信息上報指示后,若檢測 到鄰居路由器發(fā)來的鄰居關系建立報文未指示該鄰居路由器發(fā)生重啟,則向所 述GR模塊發(fā)送退出指示;所述GR模塊用于在收到所述進入指示后,進入GR狀態(tài);在收到所述退 出指示后,退出GR狀態(tài)。
10、 如權利要求9所述的路由器,其特征在于,所述路由器進一步包括 LSP存儲模塊,用于存儲鄰居路由器的LSP;且,所述鄰居關系檢測模塊進一步用于,在向所述GR模塊發(fā)送進入指示 的同時,在所述LSP存儲模塊中保存的鄰居路由器的LSP上作標記;所述關系報文接收處理模塊進一步用于,在向所述GR模塊發(fā)送退出指示 的同時,刪除所述LSP存儲模塊中的LSP上的標記。
11、 如權利要求9或IO所述的路由器,其特征在于,所述重啟檢測模塊進 一步用于,在檢測到自身發(fā)生重啟后,生成并輸出重啟發(fā)送指示;且,該路由器進一步包括關系報文發(fā)送處理模塊,與所述重啟檢測模塊 相連,在收到所述重啟發(fā)送指示后,向鄰居路由器發(fā)送指示自身發(fā)生重啟的鄰 居關系建立報文。
12、 如權利要求IO所述的路由器,其特征在于,所述鄰居關系檢測模塊進 一步用于,在收到所述重啟檢測模塊發(fā)來的未重啟指示后,生成并輸出啟動指示;該路由器進一步包括連接定時器,與所述鄰居關系檢測模塊相連,用于在收到所述啟動指示后,開始定時,并在定時超時時,向所述關系報文接收處理模塊發(fā)送超時指示;所述關系報文接收處理模塊包括關系報文接收模塊和超時處理模塊,其中所述關系報文接收模塊用于在收到所述鄰居關系檢測模塊發(fā)來的重啟信息 上報指示后,若檢測到在收到所述連接定時器發(fā)來的超時指示前,未收到鄰居 路由器發(fā)來的鄰居關系建立報文,則向所述超時處理模塊發(fā)送啟動指示;所述超時處理模塊用于在收到所述關系報文接收模塊發(fā)來的啟動指示后, 將所述LSP存儲模塊中的已作標記的LSP刪除,并向GR模塊發(fā)送退出指示。
13、 一種路由器,其特征在于,包括鄰居關系檢測模塊、重啟檢測模塊、 關系報文接收處理模塊、GR模塊和LSP存儲模塊,其中所述鄰居關系檢測模塊用于在檢測到與鄰居路由器的鄰居關系斷掉后,向 所述重啟檢測模塊發(fā)送重啟查詢指示,若收到所述重啟檢測模塊返回的未重啟 指示,則向所述GR模塊發(fā)送進入指示,并在所述LSP存儲模塊中保存的鄰居 路由器的LSP上作標記,同時向關系報文接收處理模塊發(fā)送重啟信息上報指示;所述重啟檢測模塊用于在收到所述重啟查詢指示后,若檢測到自身未發(fā)生 重啟,則向所述鄰居關系檢測模塊返回未重啟指示;所述關系報文接收處理模塊用于在收到所述重啟信息上報指示后,若檢測 到鄰居路由器發(fā)來的鄰居關系建立報文指示鄰居路由器發(fā)生重啟,則將所述 LSP存儲模塊中已作標記的LSP發(fā)送給鄰居路由器;所述GR模塊用于在收到所述進入指示后,進入GR狀態(tài);4所述LSP存儲模塊用于存儲鄰居路由器的LSP。
全文摘要
本發(fā)明公開了減少錯誤GR狀態(tài)持續(xù)時長的方法,包括當路由器檢測到與鄰居路由器的鄰居關系斷掉且自身未發(fā)生重啟時,進入GR狀態(tài),接收鄰居路由器發(fā)來的鄰居關系建立報文,檢測到該報文未指示鄰居路由器發(fā)生重啟,則退出GR狀態(tài);本發(fā)明同時公開了路由器,包括鄰居關系檢測模塊、重啟檢測模塊、關系報文接收處理模塊和GR模塊。本發(fā)明在誤入GR狀態(tài)時能夠及時檢測到,減少了不必要的信令、數據交互,降低了CPU資源的占用;且可使得新產生的路由能夠被及時分配到LSP,提高數據轉發(fā)成功率。
文檔編號H04L12/26GK101179446SQ20061013827
公開日2008年5月14日 申請日期2006年11月10日 優(yōu)先權日2006年11月10日
發(fā)明者王麗星 申請人:華為技術有限公司