思科路由器平穩(wěn)重啟技術(shù)怎樣
思科路由器平穩(wěn)重啟技術(shù)怎樣
眾所周知,要獲得很高的網(wǎng)絡(luò)永續(xù)性,需要使用具有熱故障恢復(fù)功能和連接 不同網(wǎng)絡(luò)路徑的主路由器和備用路由器。但是僅僅這樣并不夠。路由器本身——尤其是那些位于不安全的 WAN 邊緣的路由器——應(yīng)當(dāng)配有內(nèi)部冗余硬件組件,例如交換矩陣、線路卡、電源和路由處理器( RP )。高可用性路由器還必須支持快速軟件恢復(fù)技術(shù)。
利用可以隔離控制和轉(zhuǎn)發(fā)面板,并使用平穩(wěn)的重啟機制——也被稱為思科不間斷轉(zhuǎn)發(fā)( NSF )——的路由器,可以大幅度地延長網(wǎng)絡(luò)和應(yīng)用的正常運行時間。這種軟件恢復(fù)技術(shù)可以在 RP 流程發(fā)生中斷時,保持分組的正常傳輸,從而控制中斷對網(wǎng)絡(luò)的影響。
雙 RP 和連續(xù)分組轉(zhuǎn)發(fā)
RP 包含了路由器的“大腦”。它負(fù)責(zé)存儲最佳路徑路由信息的數(shù)據(jù)庫,保存與對等路由器的鄰接關(guān)系,以及處理特定的管理職能。冗余硬件可以提高網(wǎng)絡(luò)組件在發(fā)生故障時的可用性。思科的雙 RP 設(shè)備包括 12000 、 10000 和 7600 系列高端路由器,以及 Cisco 7500 和 7300 系列路由器。
兩個 RP 的狀態(tài)信息的同步程度在一定程度上將取決于路由器能夠以多快的速度從進程重啟或者從故障中恢復(fù)。這需要在兩個極端的備份形式之間進行平衡。一種極端形式是 RP 的“冷”備份,即不包含任何關(guān)于第二層連接、鄰接關(guān)系和最佳路徑路由表的狀態(tài)信息。在這種情況下,所有這些信息都需要重新構(gòu)建,因而可能會導(dǎo)致極長的恢復(fù)時間。另外一種極端形式是在兩個 RP 之間不間斷地同步所有的信息,這可能會占用過多的處理資源,影響到網(wǎng)絡(luò)的可擴展性和性能。
通常采用的方式是在這兩種極端的 RP 同步方式之間保持適當(dāng)?shù)钠胶?,即將大部?但并非全部)恢復(fù)信息加載到備用 RP 中。這種同步可以在切換 RP 和集中路由表的過程中,繼續(xù)進行第三層分組轉(zhuǎn)發(fā)。
安裝在上述路由器平臺上的 Cisco IOS?軟件 12.0(22)S 版本或者更高版本可以支持思科 NSF 。它能在主 RP 進行預(yù)定維護或者 RP 發(fā)生意外故障時縮短路由器的停機時間。在大多數(shù)情況下,要實現(xiàn)思科 NSF ,重啟路由器和它的對等路由器必須保存針對所有可以通過重啟路由器到達的網(wǎng)絡(luò)的轉(zhuǎn)發(fā)信息。在重啟路由器上,在從主 RP 向備用 RP 切換的過程中,控制面板和轉(zhuǎn)發(fā)面板必須互相隔離,以便讓轉(zhuǎn)發(fā)面板能繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)流量。
路由協(xié)議擴展
為了實現(xiàn) NSF ,部分思科路由器可以采用常用路由協(xié)議——包括邊界網(wǎng)關(guān)協(xié)議( BGP )、 IS-IS 和開放最短路徑優(yōu)先( OSPF )的新型平穩(wěn)重啟擴展。這些擴展可以在判斷主 RP 能否迅速恢復(fù)的同時,暫時繼續(xù)轉(zhuǎn)發(fā)分組和保持網(wǎng)絡(luò)連接的穩(wěn)定性。
要讓大部分思科 NSF/ 平穩(wěn)重啟部署可以發(fā)揮作用,重啟路由器的對等路由器也必須支持這些擴展。這主要是由于下面兩點原因。首先, RP 切換并不代表拓?fù)渥兓瑑H僅表示 RP 恢復(fù)。對等路由器可以利用平穩(wěn)重啟擴展區(qū)別這兩種情況,從而避免對外廣播停用和啟用重啟路由器的信息。這可以防止不必要的廣播信息和路由變化。其次,它讓對等路由器能在恢復(fù)期間繼續(xù)向重啟路由器轉(zhuǎn)發(fā)分組,從而提供 NSF 。它還必須知道應(yīng)當(dāng)交換哪些消息和信息,以幫助主路由器迅速恢復(fù)。
但是,因為每種路由協(xié)議都使用不同的機制來建立路由器的鄰接關(guān)系或者對等關(guān)系,以及交換路由信息,所以每種協(xié)議的平穩(wěn)重啟步驟和消息都有所不同(如圖 2 所示)。
例如, BGP 利用底層 TCP 協(xié)議來建立對等關(guān)系,而 OSPF 和 IS-IS 使用 Hello 消息來建立鄰接關(guān)系。這兩種路由協(xié)議的另外一個區(qū)別是:在發(fā)現(xiàn)重啟路由器無法恢復(fù)和決定重新利用完全網(wǎng)絡(luò)融合進行傳統(tǒng)恢復(fù)之前,持續(xù)轉(zhuǎn)發(fā)分組的時間。
BGP 平穩(wěn)重啟
因為 BGP 重啟的影響可能會非常深遠(yuǎn),所以 BGP 是進行高可用性改進的重要對象。 BGP 可以承載大量的路由,所以在某個 BGP 軟件發(fā)生故障后進行網(wǎng)絡(luò)融合的時間通常長于其他支持較少路由的路由協(xié)議。此外,因為 BGP 是一種域間路由協(xié)議,所以一個發(fā)生故障的 BGP 流程可能會傳播到多個網(wǎng)絡(luò),而不是局限于某一個域。
在 BGP 網(wǎng)絡(luò)進行重啟時,協(xié)議改進會在初始 BGP 連接建立之后開始。重啟路由器及其對等路由器會通過在建立進程的初始 BGP OPEN 消息中交換 BGP 功能代碼 64 ,表明對思科 NSF 的支持。
在通常情況下,當(dāng)路由器重啟它的 BGP 進程時,與對等路由器的 TCP 連接將被清除,從而導(dǎo)致對等路由器清除所有與重啟路由器有關(guān)的路由。但是,在進行 BGP 平穩(wěn)重啟時將不會進行這樣的操作。相反,對等路由器會將這些路由標(biāo)為“過期”,并根據(jù)對重啟路由器將會迅速重新建立 BGP 進程的預(yù)期,繼續(xù)用這些路由轉(zhuǎn)發(fā)分組。同樣,重啟路由器還將在 BGP 協(xié)議進行重新融合時繼續(xù)轉(zhuǎn)發(fā)分組。
當(dāng)重啟路由器建立新的 BGP 進程時,它將會再次向它的對等路由器發(fā)送 BGP 功能代碼 64 。但是在這一次,平穩(wěn)重啟功能交換中的標(biāo)記位設(shè)置將讓對等路由器知道 BGP 流程已經(jīng)重啟。
在繼續(xù)轉(zhuǎn)發(fā)分組的同時,對等路由器將向重啟路由器發(fā)送一個初始路由升級。對等路由器將通過一個 end-of-RIB ( EOR )標(biāo)記表明它已經(jīng)將升級發(fā)送完畢。這個標(biāo)記實際上是一個空的 BGP UPDATE 消息。在重啟路由器從所有對等路由器收到 EOR 以后,它就知道它可以利用新的路由信息再次開始選擇最佳路徑。
同樣,重啟路由器也會向它的對等路由器發(fā)送所有升級,再利用 EOR 標(biāo)記表示發(fā)送完成。這將讓對等路由器可以用從重啟路由器接收到的升級取代過期的路由。
IS-IS 的特性
互聯(lián)網(wǎng)工程任務(wù)小組 ( IETF )正在以互聯(lián)網(wǎng)草案的形式,為 IS-IS 連接狀態(tài)、單域路由協(xié)議設(shè)計一個類似的平穩(wěn)重啟流程。 IS-IS 擴展的設(shè)計者、來自思科的 Mike Shand 指出, 在本期 Packet? 出版時, IETF 將會公布這個草案的最后一個版本。如前所述, IS-IS 利用 Hello 協(xié)議發(fā)現(xiàn)相鄰的路由器,以及建立和保持鄰接關(guān)系。當(dāng)路由器重啟時,它會通過 Hello 協(xié)議數(shù)據(jù)單元中的一個重啟請求( RR )位向其對等路由器發(fā)送信號。在一個 IS-IS 網(wǎng)絡(luò)中,對等路由器可以直接向重啟路由器發(fā)送數(shù)據(jù)庫信息,而無需等待確認(rèn)消息。
在路由器重啟之后,它會發(fā)送一個帶有特殊的 RR 位設(shè)置的 Hello 分組,從而讓對等路由器知道它已經(jīng)重啟。對等路由器會通過在它自己的 Hello 消息中設(shè)置一個特殊的重啟確認(rèn)( RA )位,確認(rèn)這個重啟信號。在對等路由器知道另外一個路由器已經(jīng)重啟(因而沒有任何路由信息)之后,它會發(fā)送一個所有連接狀態(tài)分組( LSP )的匯總列表,隨后再發(fā)送該列表中指明的 LSP 。另外,一旦匯總列表符合,重啟路由器就會升級它的數(shù)據(jù)庫。從這個角度上來說,這種功能與 BGP 平穩(wěn)重啟流程中的 EOR 相當(dāng)類似。
思科為可以利用命令行界面( CLI )進行設(shè)置配置的 IS-IS 提供了另一種方法,即將所有的鄰接和 LSP 信息保存或者暫存到備用 RP 中。在切換完畢之后,新的主 RP 將利用暫存的數(shù)據(jù)保持它的鄰接關(guān)系,并可以迅速地重建它的路由表。
RP 的切換過程只需要幾秒鐘時間。 IS-IS 可以在接下來的幾秒鐘內(nèi)重建它的路由表,并與網(wǎng)絡(luò)重新同步。在這個時候, IS-IS 會等待一段指定的間隔,隨后嘗試第二個思科 NSF 重啟。在此期間,新的備用 RP 將會啟動,并將它的配置與主 RP 保持同步。
在同步完成之后, IS-IS 鄰接關(guān)系和 LSP 數(shù)據(jù)會暫存到備用 RP ;但是,只有在間隔時間結(jié)束之后, IS-IS 才會嘗試新的思科 NSF 重啟。另外,重啟路由器將會用第一個匯總列表驗證它所緩存的 LSP 的有效性,從而保持 IS-IS 協(xié)議的狀態(tài)。
OSPF 的工作方式
當(dāng)某個支持 OSPF NSF 的路由器進行 RP 切換時,它會執(zhí)行兩項任務(wù),以便與它的 OSPF 鄰居重新同步它的連接狀態(tài)數(shù)據(jù)庫( LSDB )。首先,它必須在不重新設(shè)置鄰接關(guān)系的情況下,重新學(xué)習(xí)網(wǎng)絡(luò)上的可用 OSPF 鄰居。其次,它必須重新獲得網(wǎng)絡(luò)的 LSDB 的內(nèi)容。
在 RP 切換之后,重啟路由器會以很短的間隔時間,向支持思科 NSF 的相鄰設(shè)備發(fā)送一個 Hello 分組,并在其中的擴展選項類型長度值( TLV )中設(shè)置重啟信號位。對等路由器將意識到,與重啟路由器的鄰接關(guān)系不需要重新設(shè)置。在重啟路由器收到一個 Hello 響應(yīng)(作為對它的 Hello 消息的回復(fù))之后,它就會開始與它的對方路由器進行數(shù)據(jù)庫同步。
在數(shù)據(jù)庫同步結(jié)束之后,重啟路由器將會升級它的路由信息庫( RIB )和轉(zhuǎn)發(fā)信息庫( FIB )。如果網(wǎng)絡(luò)或者連接狀態(tài)信息與重啟路由器在數(shù)據(jù)庫同步期間收到的信息不同,重啟路由器將會把這些信息發(fā)送到對等路由器。
高可用性網(wǎng)絡(luò)必須在很多方面進行加固,包括采用冗余的網(wǎng)絡(luò)拓?fù)湓O(shè)計。此外,還需要部署配有冗余組件和軟件智能的路由器。這些軟件智能可以進行故障恢復(fù)和減輕暫時中斷對網(wǎng)絡(luò)的影響。
很多思科路由器都以路由協(xié)議擴展的形式支持內(nèi)部設(shè)計和軟件智能,因而可以幫助服務(wù)供應(yīng)商和企業(yè)加固它們的網(wǎng)絡(luò)。
JAYKUMAR THONTAKUDI 是思科集中營銷部門的一位技術(shù)營銷工程師,精通面向企業(yè)和服務(wù)供應(yīng)商網(wǎng)絡(luò)的 IP 路由和網(wǎng)絡(luò)永續(xù)性。
計算路由器的正常運行時間
系統(tǒng)的可用性是通過路由器的平均故障間隔時間( MTBF )——即設(shè)備正常工作的總時間——和平均故障恢復(fù)時間( MTTR )衡量的。 MTTR 表示系統(tǒng)不能處理和轉(zhuǎn)發(fā)分組的時間。用 MTBF 除以 MTBF 和 MTTR 之和,再乘以 100 ,就得出某個特定系統(tǒng)的可用性百分比。