IS-IS GR技術白皮書
關鍵詞:IS-IS、GR、LSDB
摘 要:GR技術屬於高可靠性技術的一種,可以在路由協議重啟時保證數據的正常轉發,從而保證關鍵業務不中斷,目前已經被廣泛地使用在路由器主備切換和係統升級方麵。本文檔較為詳盡地描述了針對IS-IS協議實現GR的技術細節以及典型組網應用。
說 明:本文中所指的路由器代表了一般意義下的路由器,以及運行了路由協議的三層交換機。為提高可讀性,在本文的描述中將不再另行說明。
縮略語清單:
縮略語 | 英文全名 | 中文解釋 |
IS-IS | Intermediate System-to-Intermediate System intra-domain routing information exchange protocol | 中間係統到中間係統的域內路由信息交換協議 |
GR | Graceful Restart | 平滑重啟 |
PDU | Protocol Data Unit | 協議數據單元 |
IIH PDU | Intermediate System-to-Intermediate System Hello PDU | IS-IS Hello協議報文 |
LSP | Link State Protocol Data Unit | 鏈路狀態協議數據單元 |
LSDB | Link State Database | 鏈路狀態數據庫 |
SNP | Sequence Numbers PDU | 序列號報文 |
PSNP | Partial Sequence Numbers PDU | 部分時序報文 |
CSNP | Complete Sequence Numbers PDU | 全時序報文 |
RR | Restart Request | 重啟請求 |
RA | Restart Acknowledgement | 重啟確認 |
SA | Suppress Adjacency | 抑製鄰接 |
DIS | Designed Intermediate System | 指定中間係統 |
RIB | Routing Information Base | 路由信息庫 |
FIB | Forwarding Information Base | 轉發信息庫 |
目 錄
GR(Graceful Restart,平滑重啟)是一種在主備切換或協議重啟時保證轉發業務不中斷的機製。其核心在於:設備進行協議重啟時,能夠通知其周邊設備,使到該設備的鄰居關係和路由在一定時間內保持穩定。在協議重啟完畢後,周邊設備協助其進行信息(包括支持GR的相關協議所維護的各種拓撲、路由和會話信息)同步,在盡量短的時間內恢複到重啟前的狀態。在協議重啟過程中不會產生路由振蕩,報文轉發路徑也沒有任何改變,整個係統可以實現不間斷運行。
IS-IS GR可以保證運行IS-IS協議的路由器在進行主備切換或IS-IS協議重啟時,轉發業務正常進行。
一台路由器的IS-IS協議重啟之後,會發送Hello報文以發現鄰居,而鄰居路由器因為之前已經和該路由器建立有鄰居關係,因此收到該Hello報文之後就會把該路由器從鄰居列表中刪除,斷開與該路由器的鄰居關係,並通知其他路由器。當該路由器與鄰居路由器重新建立ISIS鄰居關係後,會重新同步所有的路由信息數據,而周邊路由器也需要重新進行路由計算,這樣就會引起網絡的路由振蕩以及轉發中斷,這對於一個可靠性要求較高的網絡來說是不可接受的。
如何能使協議重啟而不引起網絡振蕩和轉發中斷呢?由於分布式設備的控製與轉發是分開的,主控板負責整個設備的控製與管理,包括協議運行和路由計算,而接口板則負責數據轉發。這樣當發生主備倒換或協議重啟時,數據轉發仍然可以不中斷進行。
同時,如果在重啟期間周邊設備能維持鄰居關係不變並保持路由穩定,並且在設備重啟後能協助設備進行路由信息同步,在盡量短的時間內使得本設備的路由信息恢複到重啟前的狀態,那麼就可以保持網絡拓撲穩定,不引起網絡路由振蕩。
為了實現這個目的,IETF針對IS-IS路由協議提出了增強協議,即IS-IS GR。通過此協議,可以避免網絡的路由振蕩及轉發中斷。
l 減少協議重啟或主備切換時路由振蕩對全網的影響
IS-IS GR的基本術語:
l GR Restarter:發生協議重啟事件且具有GR能力的設備。
l GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。
l GR Session:IS-IS鄰居建立時進行關於GR能力的協商,一般把GR能力協商過程稱為GR Session。協商的內容包括雙方是否都具備GR能力等。一旦GR能力協商通過,當協議重啟時就可以進入GR流程。
分布式設備可以充當GR restarter和GR helper;而集中式設備隻能充當GR helper,協助GR restarter完成GR流程。
IS-IS為了支持GR能力,對協議進行了如下擴展:
l 在ISIS Hello報文中新增了Restart TLV(TLV 211)
l 引入了T1、T2和T3三個定時器
為了能夠在GR Restarter重啟時順利通知GR Helper,增加了一個Type為211的Restart TLV。Length根據TLV填寫的具體情況而定,但必須在1到3 + ID Length的範圍內,Value的具體內容如下圖所示:
Flags記錄了一些必要的狀態標誌位,長度為1字節,具體格式如下圖所示:
圖2 Restart TLV中Flags字段結構圖
目前隻用了最後三位作為相應標誌位。
(1) RR/RA
l RR:Restart請求標誌位,當RR位為1時表示該路由器剛剛發生了重啟;
l RA:Restart確認標誌位,當RA位為1時表示是對重啟路由器的應答。
當GR Restarter重啟後,在每個接口上發的第一個Hello報文中將RR標誌位置1,通知GR Helper本設備正在重啟;當GR Helper收到GR Restarter發來帶有RR標誌位的Hello報文時,立即回複一個將RA標誌位置1的Hello報文作為對對方請求的確認。
(2) SA
SA表示抑製鄰接標誌位,是一個可選項,其主要目的是為了避免出現路由黑洞,例如在啟動的情況下,此時如果GR Helper將報文送到本設備來進行轉發將是一個黑洞,會造成嚴重的丟包現象,在這種情況下GR Restarter發送的Hello報文中必須將SA位置1,而GR Helper接收到這種SA位被置1的Hello報文後就不會將發送該Hello報文的GR Restarter放入LSP擴散出去,即GR Restarter將在網絡上被屏蔽一段時間,所有設備都不會將報文送到GR Restarter上來進行轉發,這樣就可以有效的避免路由黑洞問題。
Remaining Time表示鄰居老化的剩餘時間(秒),即鄰居設備進入GR Helper處理流程的最長保持時間。如果超出這個時間,則GR Restarter和GR Helper的鄰居關係結束。當GR Helper收到GR Restarter發送的帶有RR標誌位的Hello報文後,會立即回複一個將RA標誌位置1的Hello報文作為確認,在這個確認報文中,需要將對應鄰居(GR Restarter)離老化時間的剩餘秒數填入Remaining Time字段。
Restarting Neighbor ID的內容是GR Restarter的System ID。當GR Helper收到帶有RR標誌位的Hello報文時,將報文中的System ID字段值填入Hello確認報文的Restarting Neighbor ID字段中,並發送此確認報文。這樣就嚴格指定了該Hello確認報文的目的設備。當多個GR Restarter同時收到該Hello確認報文時,比較該報文中的Restarting Neighbor ID與本設備的System ID是否相同,就可以判斷是否需要處理該確認Hello報文。
為了支持IS-IS GR特性,新擴展協議定義了T1、T2和T3三種定時器。
l T1定時器類似於ISIS協議中的IIH定時器,每個接口都有一個,它定義了發送帶RR標誌位的Hello報文的重傳時間。當設備重啟時在每一個接口上都會創建T1定時器,並周期性的發送帶RR標誌位的Hello報文,直到在對應接口上收到帶RA標誌位的Hello確認報文以及全部CSNP報文後,該接口上的T1定時器才會被取消。當接口上沒有鄰居或者沒有支持GR特性的鄰居時,該接口就一直無法收到帶RA標誌位的Hello確認報文,因此T1定時器就會永遠得不到撤銷,為了避免這種情況發生,ISIS GR限製了T1定時器的最大超時次數,當T1定時器超時次數超過這個最大值時就自動撤銷該T1定時器。
l T2定時器定義了設備重啟後LSDB同步的最大等待時間。每個LSDB數據庫都有一個定時器,例如對於Level-1-2路由器來說,就需要有兩個T2定時器,一個為Level-1 LSDB同步的最大等待時間,另外一個為Level-2 LSDB同步的最大等待時間。當某個Level的LSDB同步完成之後,相應Level的T2定時器就會被取消。如果T2定時器超時後LSDB還沒有同步完成,則撤銷T2定時器,GR失敗。
l T3定時器定義了設備重啟過程的最大持續時間。整個IS-IS路由器隻有一個T3定時器。T3定時器初始化為65535秒,但是在各個接口上收到的帶RA標誌位的Hello確認報文後會根據這些報文中的Remaining Time的最小值來重新設定T3定時器的超時時間。如果T3定時器超時後LSDB同步還沒有結束,T3定時器被撤銷,GR失敗。
下麵以一個簡單的組網模型來介紹ISIS GR的運行過程。如圖3所示,Router A和Router B通過接口Ethernet1/1相連,兩台路由器在接口Ethernet1/1都使能了IS-IS並且能正常運行。
圖3 IS-IS簡易組網圖
假設Router A和Router B原來有穩定的IS-IS鄰居關係,並且Router A使能了GR能力,此時Router A重啟,將按照以下的流程進行路由信息交互。
圖4 IS-IS GR協議流程圖
具體工作流程如下:
(1) 當Router A的IS-IS協議被重新全局使能時啟動T2和T3定時器。當Router A的接口Ethernet1/1重新up並使能協議時,在接口Ethernet1/1上啟動T1定時器,並且將接口Ethernet1/1上發出的Hello報文Restart TLV中Flags字段的RR標誌位置為1。
(2) 當Router B收到Router A發出的帶有RR標誌位的Hello報文後,保持鄰居Router A的狀態不變,立即回複一個帶有RA標誌位的Hello報文。之後,Router B發送CSNP報文和LSP報文給Router A以協助其進行LSDB同步。
(3) 當Router A在接口Ethernet1/1上收到了帶有RA標誌位的Hello報文以及接收到全部CSNP報文後就可以取消T1定時器,否則就周期性發送帶有RR標誌位的Hello報文,直到收到帶有RA標誌位的Hello報文以及全部CSNP報文或者T1定時器達到最大超時次數才取消該接口的T1定時器。
(4) 當LSDB同步完成之後,Router A取消T2定時器。
(5) 當所有T2定時器都取消之後就可以取消T3定時器,GR流程結束,正式進入IS-IS的正常流程。此時需要在所有接口上啟動IIH定時器,以後就周期性的發送正常的Hello報文(Restart TLV中所有字段為0的Hello報文)。
(6) Router A在恢複所有路由信息後重新進行路由計算,重新刷新FIB表。
圖6 IS-IS GR配置組網圖
l 所有的路由器都運行IS-IS,Router A、Router B與骨幹網相連,屬於骨幹節點;Router F、Router G、Router H、Router I、Router J和Router K是分支節點,通過核心節點Router C、Router D、Router E與骨幹節點相連,通過骨幹節點連接到骨幹網上。
l 使用GR保證網絡中的骨幹節點和核心節點在出現協議重啟時的轉發業務不中斷,避免出現不必要的路由振蕩。
l 骨幹節點和核心節點做為GR Restarter(同時缺省也做為GR Helper),分支節點做為GR Helper。這樣當骨幹節點發生主備切換或重啟IS-IS進程時,核心節點可以作為GR Helper協助其進行LSDB重同步,並且保持轉發不中斷;當核心節點發生主備切換或重啟IS-IS進程時,骨幹節點和分支節點都可以作為GR Helper協助其進行LSDB重同步,並且保持轉發不中斷。
l ISO 10589:ISO IS-IS Routing Protocol
l RFC 1195:Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
l RFC 3847:Restart Signaling for Intermediate System to Intermediate System (IS-IS)
Copyright ©2008 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。