OSPF GR技術白皮書
關鍵詞:OSPF,GR
摘 要:GR技術屬於高可靠性技術的一種,可以在路由協議重啟時保證數據的正常轉發,從而保證關鍵業務不中斷。目前已經被廣泛地使用在路由器主備切換和係統升級方麵。本文檔較為詳盡地描述了針對OSPF協議實現GR的技術細節以及典型組網應用。
說 明:本文中所指的路由器代表了一般意義下的路由器,以及運行了路由協議的三層交換機。為提高可讀性,在本文的描述中將不再另行說明。
縮略語:
縮略語 | 英文全名 | 中文解釋 |
DD | Database Description | 鏈路狀態信息庫描述 |
GR | Graceful Restart | 平滑重啟 |
HA | High Availability | 高可靠性 |
LLS | Link Local signaling | 本地鏈路信令 |
LSA | Link State Advertisement | 鏈路狀態信息公告 |
LSR | Link State Request | 鏈路狀態信息請求 |
LSU | Link State Update | 鏈路狀態信息更新 |
OOB | Out-of-band LSDB Resynchronization | 帶外的鏈路狀態信息庫重新同步 |
OSPF | Open Shortest Path First | 開放最短路徑優先路由協議 |
目 錄
GR(Graceful Restart,平滑重啟)是一種在主備切換或協議重啟時保證轉發業務不中斷的機製。其核心在於:設備進行協議重啟時,能夠通知其周邊設備,使到該設備的鄰居關係和路由在一定時間內保持穩定。在協議重啟完畢後,周邊設備協助其進行信息(包括支持GR的相關協議所維護的各種拓撲、路由和會話信息)同步,在盡量短的時間內恢複到重啟前的狀態。在協議重啟過程中不會產生路由振蕩,報文轉發路徑也沒有任何改變,整個係統可以實現不間斷運行。
OSPF GR可以保證運行OSPF協議的路由器在進行主備切換或OSPF協議重啟時,轉發業務正常進行。
一台路由器的OSPF協議重啟之後,會發送Hello報文以發現鄰居,而鄰居路由器因為之前已經和該路由器建立有鄰居關係,因此收到該Hello報文之後就會把該路由器從鄰居列表中刪除,斷開與該路由器的鄰居關係,並通知其他路由器。當該路由器與鄰居路由器重新建立OSPF鄰居關係後,會重新同步所有的路由信息數據,而周邊路由器也需要重新進行路由計算,這樣就會引起網絡的路由振蕩以及轉發中斷,對於一個大型網絡,尤其是運營商網絡,這些路由振蕩和轉發中斷是不可容忍的。
如何能使協議重啟而不引起網絡振蕩和轉發中斷呢?由於分布式設備的控製與轉發是分開的,主控板負責整個設備的控製與管理,包括協議運行和路由計算,而接口板則負責數據轉發。這樣當發生主備倒換或協議重啟時,數據轉發仍然可以不中斷進行。
同時,如果在重啟期間周邊設備能維持鄰居關係不變並保持路由穩定,並且在設備重啟後能協助設備進行路由信息同步,在盡量短的時間內使得本設備的路由信息恢複到重啟前的狀態,那麼就可以保持網絡拓撲穩定,不引起網絡路由振蕩。
為了實現這個目的,OSPF路由協議進行了擴展,即OSPF GR。通過OSPF GR,可以避免網絡的路由振蕩及轉發中斷。
l 減少協議重啟或主備切換時路由振蕩對全網的影響
l 減少單點故障,提高整個網絡的可靠性
l GR Restarter:發生協議重啟事件且具有GR能力的設備。
l GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。
l GR Session:OSPF鄰居建立時進行關於GR能力的協商,一般把GR能力協商過程稱為GR Session。協商的內容包括雙方是否都具備GR能力等。一旦GR能力協商通過,當協議重啟時就可以進入GR流程。
分布式設備可以充當GR restarter和GR helper;而集中式設備隻能充當GR helper,協助GR restarter完成GR流程。
l 一種是基於IETF標準,Restarter通過向Helper發送一種稱為Grace LSA的9類Opaque LSA來控製GR的交互過程。
l 另外一種是非IETF標準,Restarter與Helper之間是通過相互發送攜帶LLS與OOB擴展信息的OSPF報文來完成GR的交互過程。
GR Restarter上隻能配置IETF標準與非IETF標準其中的一種能力,兩種方式是互斥的。
對OSPF協議做了如下擴展:增加一種9類Opaque LSA――Grace LSA,用以在GR Restarter重啟時,通知周邊鄰居進入GR Helper流程。
Grace LSA格式如圖1所示:
其中,幾個主要的TLV介紹如下:
l Grace Period TLV:Type取值為1,長度為4字節,表示鄰居設備進入GR Helper處理流程的最長保持時間。如果超過這段時間GR Restarter還沒有完成GR處理流程,則周邊鄰居不再擔任GR Helper角色。該TLV是Grace LSA必須攜帶的。
l Graceful Restart Reason TLV:Type取值為2,長度為1字節,告知鄰居設備GR Restarter的重啟原因。Value取值為0表示原因未知,取值為1表示軟件重啟,取值為2表示軟件重新加載(升級),取值為3表示GR Restarter進行主備倒換。Grace LSA中必須攜帶該TLV。
l IP Interface Address TLV:Type取值為3,長度為4字節,用來告知發送Grace LSA的接口的IP地址,在網絡上需要用該IP地址來唯一標識一台重啟設備。
假設Router A和Router B原來有穩定的OSPF鄰居關係,並且Router A使能了GR能力,此時Router A重啟,將按照以下的流程進行路由信息交互。
圖2 IETF 標準OSPF GR運行示意圖
如圖2所示,具體工作流程如下:
(1) Router A重啟之後向Router B發送Grace LSA。
(2) Router B收到Router A發出的Grace LSA後,會維持與Router A的鄰居關係不變。
(3) Router A 與Router B進行Hello報文與DD報文交互和LSDB同步。由於GR過程中不能生成LSA,所以在LSDB同步過程中,如果Router A從Router B收到自己產生的LSA,直接存儲下來並置上Stale標誌。
(4) 完成LSDB的同步之後,Router A發送Grace LSA(Grace Period TLV的Type值為0)通知Router B結束GR流程。Router A進入正常OSPF流程,然後Router A重新生成LSA,並刪除那些置了Stale標誌而又沒有被重新生成的LSA。
(5) Router A在恢複所有路由信息後重新進行路由計算,重新刷新FIB表。
與IETF標準的OSPF GR相比,非IETF標準GR主要是通過下麵兩個能力擴展來支持OSPF GR:
l Link-Local Signaling(LLS):OSPF本地鏈路通告擴展,用來標識當前路由器和其他路由器進行一些可選信息的通信。
l Out-of-band LSDB Resynchronization(OOB):帶外的LSDB重新同步,完成無鄰接關係變化的LSDB重新同步。
在OSPF的Hello報文和DD報文的尾部增加了LLS Data。同時對Hello報文和DD報文的Option字段進行擴展,以標識是否攜帶LLS。如果L位置1表示攜帶了LLS Data,Option字段格式如圖3所示:
經過擴展後的報文格式如圖4所示:
圖4 LLS擴展後的OSPF報文格式圖
LLS Data的具體的格式如圖5所示:
LLS Data中的TLV可以用於進行不同的OSPF擴展。例如為支持GR,使用了類型為1的TLV,即Extended Option TLV(EO TLV)。下麵我們講一下EO TLV裏兩個重要字段:
l LR字段:用以實現OOB能力的協商,LR在EO TLV中的位置如圖6所示。如果當前路由器具備OOB能力,則在發送Hello和DD報文時將LR(LSDB Resynchronization)進行置位;否則不對LR進行置位。關於OOB能力的介紹請參考2.3.2 OOB能力擴展。
圖6 EO TLV LR位說明圖
l RS字段:用以通知鄰居當前路由器進入GR流程,RS在EO TLV中的位置如圖7所示。當路由器需要短暫離開網絡時,可以通過將Hello報文中的RS(Restart Signal)置位來向周邊鄰居通知自己需要進入GR流程,這樣周邊鄰居就會保持與此路由器的鄰居關係不變;否則不對RS進行置位。
圖7 EO TLV RS位說明圖
當路由器通過LLS完成OOB能力協商,確認雙方都具備OOB能力後,則表示可以在鄰居關係和網絡拓撲穩定時進行LSDB同步,即進入OOB流程。這時需要在向鄰居發送的DD報文中將Option字段中的R進行置位,R在Option字段中的位置如圖8所示。
圖8 DD報文
假設Router A和Router B原來有穩定的IS-IS鄰居關係,並且Router A使能了GR能力,此時Router A重啟,將按照以下的流程進行路由信息交互。
圖9 非IETR標準GR同步過程
如圖9所示,具體工作流程如下:
(1) Router A重啟後向Router B發送LR和RS都置位的Hello報文,向Router B通告自己隻是暫時斷開馬上就會恢複正常,並且自己具備OOB能力;
(2) Router B收到Hello報文後,也會向Router A回複一個LR仍保持置位但是RS位已經清除的Hello報文,向Router A通告自己已經知道它是要短暫離開,並且自己也具備OOB能力;
(3) Router A向Router B發送R置位的DD報文,向Router B發起LSDB同步請求,在LSDB同步期間,Router B不會將Router A從自己的鄰居列表中刪除,在自己生成的Router LSA(Network LSA)中,與Router A的鄰居關係仍然為Full。由於GR過程中不能生成LSA,所以在LSDB同步過程中,如果Router A從Router B收到自己產生的LSA,直接存儲下來並置上Stale標誌。
(4) 完成LSDB的同步之後,Router A結束GR流程,進入正常OSPF流程,然後Router A重新生成LSA,並刪除那些置了Stale標誌而又沒有被重新生成的LSA。Router B在和Router A的鄰居關係重新達到Full狀態後退出GR流程,進入正常OSPF流程。
(5) Router A在恢複所有路由信息後重新進行路由計算,重新刷新FIB表。
圖1 OSPF GR配置組網圖
l Router A、Router B、Router C、Router D、Router E、Router G、Router H、Router I、Router J、Router K、Router L運行OSPF協議;
l Router A、Router B與骨幹網相連,屬於骨幹節點;
l Router G、Router H、Router I、Router J、Router K、Router L是分支節點,通過核心節點Router C、Router D、Router E與骨幹節點相連,通過骨幹節點連接到骨幹網上。
l 使用GR保證網絡中的骨幹節點和核心節點在出現協議重啟時的轉發業務不中斷,避免出現不必要的路由振蕩。
l 骨幹節點和核心節點作為GR Restarter(同時缺省也作為GR Helper),分支節點作為GR Helper。這樣當骨幹節點發生主備切換或重啟OSPF進程時,核心節點可以作為GR Helper協助其進行LSDB重同步,並且保持轉發不中斷;當核心節點發生主備切換或重啟OSPF進程時,骨幹節點和分支節點都可以作為GR Helper協助其進行LSDB重同步,並且保持轉發不中斷。
l RFC 2328:OSPF Version 2
l RFC 3623:Graceful OSPF Restart
l RFC 4811:OSPF Out-of-Band LSDB Resynchronization
l RFC 4812:OSPF Restart Signaling
l RFC 4813:OSPF Link-Local Signaling
Copyright ©2008 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。