一、概述
IS-IS GR是一種支持GR能力的高可靠性技術,可以實現數據的不間斷轉發。與我們之前介紹的OSPF的GR功能幾乎一致,但實現方法并不相同。
1、GR
支持GR的ISIS的設備,IIH報文中一定會攜帶TLV211(GR),TLV211包含的字段
(1)RR:restart request 請求重啟,默認是3秒發送1次,發送3次
(2)RA:restart ack 請求確認
(3)SA:抑制發布鄰接關系位
(4)holdtime:鄰居保持鄰接關系不重置的時間
2、GR的三個定時器
為了實現GR,IS-IS引入211號TLV(Restart TLV)和T1、T2、T3三個定時器。
????????T1定時器:如果GR Restarter已發送RR置位的IIH報文,但直到T1定時器超時還沒有收到GR Helper的包含Restart TLV且RA置位的IIH報文的確認消息時,會重置T1定時器并繼續發送包含Restart TLV的IIH報文。當收到確認報文或者T1定時器已超時3次時,取消T1定時器。T1定時器缺省設置為3秒。
????????T2定時器:GR Restarter從重啟開始到本Level所有設備LSDB完成同步的時間。T2定時器是系統等待各層LSDB同步的最長時間,一般情況下為60秒。
????????T3定時器:GR Restarter成功完成GR所允許的最大時間。T3定時器的初始值為65535秒。T3定時器超時表示GR失敗。
二、工作原理
?GR的過程(Restarting)
?主備倒換和重啟IS-IS進程觸發的GR過程稱為Restarting,FIB表保持不變。
1、GR Restarter進行協議重啟后,GR Restarter進行如下操作:
- 啟動T1、T2和T3定時器。
- 從所有接口發送包含Restart TLV的IIH報文,其中RR置位,RA和SA位清除。
2、GR Helper收到IIH報文以后,進行如下操作:
- GR Helper維持鄰居關系,刷新當前的Holdtime。
- 回送一個包含Restart TLV的IIH報文(RR清除,RA置位,Remaining time是從現在到Holdtime超時的時間間隔)。
- 發送CSNP報文和所有LSP報文給GR Restarter。
3、GR Restarter接收到鄰居的IIH回應報文(RR=0、RA=1),做如下處理:
- 把T3的當前值和報文中Remaining time比較,取其中較小者作為T3的值。
- 在接口收到確認報文和CSNP報文之后,取消該接口的T1定時器。
- 如果該接口沒有收到確認報文和CSNP報文,T1會不停地重置,重發含Restart TLV的IIH報文。如果T1超時次數超過閾值,GR Restarter強制取消T1定時器,啟動正常的IS-IS處理流程。
4、當GR Restarter所有接口上的T1定時器都取消,CSNP列表清空并且收集全所有的LSP報文后,可以認為和所有的鄰居都完成了同步,取消T2定時器。
5、T2定時器被取消,表示本Level的LSDB已經同步。
- 如果是單Level系統,則直接觸發SPF計算。
- 如果是Level-1-2系統,此時判斷另一個Level的T2定時器是否也取消。如果兩個Level的T2定時器都被取消,那么觸發SPF計算,否則等待另一個Level的T2定時器超時。
6、各層的T2定時器都取消后,GR Restarter取消T3定時器,更新FIB表。GR Restarter可以重新生成各層的LSP并泛洪,在同步過程中收到的自己重啟前生成的LSP此時也可以被刪除。
7、至此,GR Restarter的IS-IS Restarting過程結束。
GR的過程(Starting)
設備重啟觸發的GR過程稱為Starting,進行FIB表更新。
對于Starting設備,因為沒有保留FIB表項,所以一方面希望在Starting之前和自己的鄰接關系為“Up”的鄰居重置和自己的鄰接關系,同時希望鄰居能在一段時間內抑制和自己的鄰接關系的發布。
1、GR Restarter Starting后,進行如下操作:
- 為每層LSDB的同步啟動T2定時器。
- 從各個接口發送攜帶Restart TLV的IIH報文,其中RR位清除,SA位置位。
2、鄰居收到攜帶Restart TLV的IIH報文,根據設備是否支持GR,進行如下處理:
- 支持GR:重新初始化鄰接關系。
- 不支持GR:鄰居忽略Restart TLV,重置和GR Restarter之間的鄰接關系。
3、鄰接關系重新初始化之后,在每個接口上GR Restarter都和鄰居重建鄰接關系。當有一個鄰接關系到達Up狀態后,GR Restarter為該接口啟動T1定時器。
4、在T1定時器超時之后,GR Restarter發送RR置位、SA置位的IIH報文
5、鄰居收到RR置位和SA置位的IIH報文后,發送一個RR清除、RA置位的IIH報文作為確認報文,并發送CSNP報文。
6、GR Restarter收到鄰居的IIH確認報文和CSNP報文以后,取消T1定時器。
7、如果沒有收到IIH報文或者CSNP報文,就不停重置T1定時器,重發RR置位、SA置位的IIH報文。如果T1超時次數超過閾值,GR Restarter強制取消T1定時器,進入正常的IS-IS處理流程完成LSDB同步。
8、GR Restarter收到Helper端的CSNP以后,開始同步LSDB。
9、本Level的LSDB同步完成后,GR Restarter取消T2定時器。
10、所有的T2定時器都取消以后,啟動SPF計算,重新生成LSP,并泛洪。
11、至此,GR Restarter的IS-IS Starting過程完成。
GR的相關實驗案例與配置命令將在下章詳細介紹,以上就是本章的全部內容了,感謝大家的瀏覽觀看!文章若有錯誤或疑問可聯系博主刪除更改,非常歡迎私聊博主討論。