靜態(tài)路由是一種最簡單的路由,需手工配置,用一條指令指定靜態(tài)路由的目的IP地址、子網(wǎng)掩碼、下一跳IP地址,或者出接口、優(yōu)先級等主要參數(shù)值就可以了。還可根據(jù)實際需要配置靜態(tài)路由與BFD或者NQA的聯(lián)動。 一、路由基礎(chǔ) “路由”簡單說就是報文從源端到目的端的整條傳輸路徑。當報文從路由器到目的網(wǎng)段有多條路由可達時,路由器可以根據(jù)路由表中最佳路由進行轉(zhuǎn)發(fā)。最佳路由的選取與發(fā)現(xiàn)此路由的路由協(xié)議的優(yōu)先級、所配置的路由度量有關(guān)。當多條路由的協(xié)議優(yōu)先級與路由度量都有關(guān)系時,可以實現(xiàn)負載分擔;當多條路由的協(xié)議優(yōu)先級與路由度量不同時,可以構(gòu)成路由備份,提高網(wǎng)絡(luò)的可靠性。 一)路由的分類 根據(jù)路由的來源不同,可把路由分為以下三大類: ①通過鏈路層協(xié)議發(fā)現(xiàn)的路由稱為直連路由(Direct),不需要配置。 ②通過網(wǎng)絡(luò)管理員手動配置的路由稱為靜態(tài)路由(Static)。 ③通過動態(tài)路由協(xié)議發(fā)現(xiàn)的路由稱為動態(tài)路由(分為RIP、OSPF、IS-IS、BGP等多種) “靜態(tài)路由”是一種特殊的路由,因為它沒有自己的路由算法,不能自動生成,純粹靠管理員為它們一級級指明下一跳路徑,所以靜態(tài)路由的運行和維護比較簡單,適用拓撲結(jié)構(gòu)簡單且穩(wěn)定的小型網(wǎng)絡(luò),或中大型網(wǎng)絡(luò)中動態(tài)路由的補充。缺點是不能自動適應網(wǎng)絡(luò)拓撲的變化(不具有主動網(wǎng)絡(luò)收斂功能)。 “動態(tài)路由”有自己的路由算法,能夠根據(jù)用戶配置自動生成對應的動態(tài)路由表項,且能夠主動適應網(wǎng)絡(luò)拓撲的變化,更適用于具有一定數(shù)量三層設(shè)備的網(wǎng)絡(luò)。 根據(jù)采用的不同路由算法,動態(tài)路由協(xié)議又有RIP(Routing Information Protocol,路由信息協(xié)議)、OSPF(OpenShortest Path First,開放最短路徑優(yōu)先)、IS-IS(Intermedia System-Intermedia System,中間系統(tǒng)到中間系統(tǒng))和BGP(BorderGateway Protocol,邊界網(wǎng)關(guān)協(xié)議)。根據(jù)作用范圍不同,這些動態(tài)路由協(xié)議可分為以下兩種: ①IGP(InteriorGateway Protocol,內(nèi)部網(wǎng)關(guān)協(xié)議):在一個自治系統(tǒng)內(nèi)部運行。常見的IGP包括RIP、OSPF和IS-IS ②EGP(Exterior GatewayProtocol,外部網(wǎng)關(guān)協(xié)議):運行于不同自治系統(tǒng)之間,目前常見的EGP就是BGP。 根據(jù)使用的路由算法不同,動態(tài)路由協(xié)議又可分為以下兩種: ①距離矢量協(xié)議(Distance-VectorProtocol):包括RIP和BGP,BGP也被稱為路徑矢量協(xié)議(Path-Vector Protocol)。 ②鏈路狀態(tài)協(xié)議(Link-StateProtocol):包括OSPF和IS-IS。 當網(wǎng)絡(luò)規(guī)模比較大,使用多種路由協(xié)議時,不同的路由協(xié)議間通常需要發(fā)布其他路由協(xié)議發(fā)現(xiàn)的路由,各動態(tài)路由協(xié)議都可以引入其他路由協(xié)議的路由,包括直連路由和靜態(tài)路由,但直連路由和靜態(tài)路由不能引入其他類型的路由。 二)路由表和FIB表 路由器在進行報文轉(zhuǎn)發(fā)過程中要依據(jù)兩種“表”——路由表(RoutingTable)和FIB(Forwarding Information Base,轉(zhuǎn)發(fā)信息庫)表。路由器通過路由表選擇用于報文轉(zhuǎn)發(fā)的路由,然后通過FIB表中對應轉(zhuǎn)發(fā)表項指導報文的轉(zhuǎn)發(fā)。 1、路由表 每臺運行動態(tài)路由協(xié)議的路由器中都至少有兩張“路由表”,一張是保存了所有最佳路由表項的本地核心路由表(即通常說的IP路由表),另一張則是保存對應路由協(xié)議路由表項的協(xié)議路由表,如RIP路由表、BGP路由表等。 (1)本地核心路由表 “本地核心路由表”用來保存本地路由器到達網(wǎng)絡(luò)中各目的地的當前各種最佳(依據(jù)到達同一目的地的各種協(xié)議路由的優(yōu)先級和度量值來選取優(yōu)先路由)協(xié)議路由(包括直連路由、靜態(tài)路由和各種動態(tài)路由),只有到達某一目的地的最佳路由才會在本地核心路由表中出現(xiàn),并負責把這些最佳路由下發(fā)到FIB表,生成對應的FIB表項,指導報文的轉(zhuǎn)發(fā)。 對于支持L3VPN(Layer 3Virtual Private Network,三層VPN)的路由器,每個VPN-Instance擁有一個自己的本地核心路由表。 (2)協(xié)議路由表 協(xié)議路由表中存放著該協(xié)議已發(fā)現(xiàn)的所有路由信息,但就所有路由表來說,協(xié)議路由表中的路由不一定是最佳路由,也就是說不一定會最終用來進行數(shù)據(jù)報文路由。路由協(xié)議可以引入并發(fā)布其他協(xié)議生成的路由。如在路由器上運行OSPF協(xié)議,需要使用OSPF協(xié)議通告直連路由、靜態(tài)路由或者IS-IS路由時,則要先將這些路由引入OSPF協(xié)議的路由表中。 在路由器中執(zhí)行displayip routing-table命令可查看路由器的IP路由表信息(均為有效的最佳路由,非有效、最佳路由不會在IP路由表中顯示)。 IP路由表中包含了下列字段: ①Destination:表示此路由的目的地址。用來標識IP包的目的地址或者目的網(wǎng)絡(luò)。 ②Mask:表示此目的地址的子網(wǎng)掩碼長度。與目的地址一起來標識目的主機或目的網(wǎng)絡(luò)所在的網(wǎng)段地址。 ③Proto:表示學習此路由的路由協(xié)議,包括靜態(tài)路由(Static)、直連路由(Direct)和各種動態(tài)路由。 ④Pre:即Preference,表示此路由的路由協(xié)議優(yōu)先級。這是用來比較不同協(xié)議類型、相同目的地址的多條路由的優(yōu)先級。同一目的地址可能存在不同的下一跳、出接口等多條路由,這些不同的路由可能是由不同的路由協(xié)議發(fā)現(xiàn)的,也可以是手工配置的靜態(tài)路由。優(yōu)先級高(數(shù)值?。┱邔⒊蔀楫斍暗淖罴崖酚?/strong>。 ⑤Cost:路由開銷,這是用來比較同一種協(xié)議類型、相同目的地址的多條路由的優(yōu)先級。但不同類型協(xié)議路由的開銷類型不同,如距離矢量協(xié)議采用的是“距離”,即將“跳數(shù)”作為路由開銷,而鏈路狀態(tài)協(xié)議采用的是“鏈路狀態(tài)”(由鏈路帶寬、網(wǎng)絡(luò)傳輸性能等參數(shù)共同決定)作為路由開銷。當?shù)竭_同一目的地的多條路由具有相同的路由優(yōu)先級時,路由開銷最小的將成為當前的最佳路由。 ⑥NextHop:表示此路由的下一跳IP地址。指明數(shù)據(jù)轉(zhuǎn)發(fā)路徑中的下一個三層設(shè)備。 ⑦Interface:表示此路由從本地設(shè)備發(fā)出的出接口。 如下圖的網(wǎng)絡(luò)中,路由器A與3個網(wǎng)絡(luò)直接相連,因此在其IP路由表中有2個目的IP地址、下一跳和出接口的直連路由。 2、FIB表的匹配 在IP路由表選擇好要使用的路由表項后,IP路由表會將這些路由表項下發(fā)到FIB表中,以生成對應的FIB表項(所以FIB表中的表項是與IP路由表中的表項有對應關(guān)系的)。當對應目的地址的報文到達路由器時,會通過查找FIB表中的對應項進行轉(zhuǎn)發(fā)。FIB表中每條表項都指明到達某網(wǎng)段或某主機的報文應通過路由器的哪個物理接口或邏輯接口發(fā)送,這樣就可到達該路徑的下一個路由器,或者不再經(jīng)過別的路由器而傳送到直接相連的網(wǎng)絡(luò)中的目的主機。可使用displayfib命令查看FIB表信息。 在FIB表中包括Destination、Mask、Nexthop、Flag、TimeStamp、Interface和TunnelID字段,其中Destination、Mask、Nexthop、Interface字段是與IP路由表的對應字段一樣,其他3個字段說明: ①Flag:轉(zhuǎn)發(fā)表項的標志,可能是G、H、U、S、D、B、L中一個或多字母組合。 ●G(Gateway網(wǎng)關(guān)路由):表示下一跳是網(wǎng)關(guān)。 ●H(Host主機路由):表示該路由為主機路由。 ●U(Up可用路由):表示該路由狀態(tài)是Up。 ●S(Static靜態(tài)路由):表示該路由為手動配置路由。 ●D(Dynamic 動態(tài)路由):表示該路由為根據(jù)路由算法自動生成路由。 ●B(Black Hole 黑洞路由):表示下一跳是空接口。 ●L(Vlink Route):表示Vlink類型路由 ②TimeStamp:轉(zhuǎn)發(fā)表項的時間戳,表示該表項已存在的時間,單位是s。 ③TunnelID:表示轉(zhuǎn)發(fā)表項索引。該值不為0時,表示匹配該項的報文通過對應的隧道進行轉(zhuǎn)發(fā)。該值為0時,表示報文不通過隧道轉(zhuǎn)發(fā)。 因為在IP封裝中,IP報頭只封裝了源IP地址和目的IP地址,沒有封裝對應的子網(wǎng)掩碼,所以這時如果在FIB表中有多條同時到達同一目的地,但處于相同自然網(wǎng)段的子網(wǎng)轉(zhuǎn)發(fā)項時,就涉及最終選擇哪條轉(zhuǎn)發(fā)表的問題了。這就是FIB表中的“最長掩碼”匹配原則,也即最精細路由匹配原則。具體方法是,在查找FIB表時,先將報文的目的地址與FIB中各表項的掩碼按位進行“邏輯與”運算,得到匹配的網(wǎng)絡(luò)地址(可能有多個),然后在這些對應的FIB表項中選擇一個最長掩碼的FIB表項進行報文轉(zhuǎn)發(fā)。 如上例FIB表,假如有一個目的地址是“9.1.2.1”的報文進入路由器,首先,將目的地址:9.1.2.1與FIB表中各表項的掩碼長度“0、8、16”所對應的掩碼進行“邏輯與”,得到下面幾個網(wǎng)段地址:0.0.0.0/0、9.0.0.0/8、9.1.0.0/16。根據(jù)最長掩碼匹配原則,最終選擇9.1.0.0/16表項從接口GE2/0/0轉(zhuǎn)發(fā)報文。 實際上FIB表項只選擇與報文中的目的地址第一個八位組相同的各子網(wǎng)和自然網(wǎng)段的轉(zhuǎn)發(fā)表項,再加上所有缺省路由轉(zhuǎn)發(fā)表項,從中選擇子網(wǎng)掩碼最長的轉(zhuǎn)發(fā)。 三)路由協(xié)議的優(yōu)先級 對于不同的目的地,不同的路由協(xié)議(包括靜態(tài)路由)可能發(fā)現(xiàn)不同的路由,但在某一時刻,到某一目的地的當前路由僅能由唯一的路由協(xié)議來決定。為了判斷最佳路由,各路由協(xié)議都被賦予一個優(yōu)先級,當存在多個路由信息源時,具有較高優(yōu)先級(取值較小)的路由協(xié)議發(fā)現(xiàn)的路由將成為最佳路由,并將最佳路由放入IP路由表中。 路由協(xié)議的優(yōu)先級又分“外部優(yōu)先級”和“內(nèi)部優(yōu)先級”兩種。選擇路由時先比較路由的外部優(yōu)先級,當不同的路由協(xié)議配置了相同的外部優(yōu)先級時,系統(tǒng)才會通過內(nèi)部優(yōu)先級決定哪個路由協(xié)議發(fā)現(xiàn)的路由(內(nèi)部優(yōu)先級最高的)將成為最佳路由。 外部優(yōu)先級是指用戶可以手動為各路由協(xié)議配置的優(yōu)先級,我們通常所說的路由協(xié)議優(yōu)先級就是指外部優(yōu)先級。缺省各路由協(xié)議的外部優(yōu)先級如下(優(yōu)先級數(shù)值越小,優(yōu)先級越高): 0表示直接連接的路由,255表示任何來自不可信源端的路由,靜態(tài)路由的優(yōu)先級比OSPF、IS-IS中的路由優(yōu)先級要低(這點與Cisco中的不一樣)。除直連路由(DIRECT)外,各種路由協(xié)議的優(yōu)先級都可以由用戶手動進行配置。 路由協(xié)議的內(nèi)部優(yōu)先級則不能被用戶手動修改,僅當?shù)竭_同一目的地的多條路由的外部優(yōu)先級相同時才會比較他們的內(nèi)部優(yōu)先級。 例如到達同一目的地10.1.1.0/24有兩條路由可供選擇,一條靜態(tài)路由,一條OSPF路由,且這兩條路由的外部優(yōu)先級都被配置為5,則根據(jù)內(nèi)部優(yōu)先級進行判斷,因為OSPF協(xié)議的內(nèi)部優(yōu)先級是10,高于靜態(tài)路由的內(nèi)部優(yōu)先級60,選擇OSPF協(xié)議路由為最佳路由。 四)負載分擔與路由備份 當多條路由的路由優(yōu)先級和路由度量都相同,這幾條路由就稱為等價路由,多條等價路由可以實現(xiàn)負載分擔。當幾條路由為非等價路由時,就可以實現(xiàn)路由備份。 1、負載分擔 路由器支持多路由模式,即允許配置多條目的地相同,且優(yōu)先級也相同的路由。當?shù)竭_同一目的地存在同一路由協(xié)議發(fā)現(xiàn)的多條路由時,且這幾條路由的開銷值也相同,那么就滿足負載分擔的條件。當實現(xiàn)負載分擔時,路由器根據(jù)五元組(源IP地址、目的IP地址、源端口、目的端口、協(xié)議)進行轉(zhuǎn)發(fā)。當五元組相同時,路由器總是選擇與上次相同的下一跳IP地址發(fā)送報文;當五元組不同時,路由器會選擇相對空閑的路徑進行轉(zhuǎn)發(fā)。 如上圖,RouterA已經(jīng)通過接口GE1/0/0轉(zhuǎn)發(fā)到目的地址10.1.1.0/24的第一個報文P1,隨后又需要分別轉(zhuǎn)發(fā)報文到目的地址10.1.1.0/24和10.2.1.0/24。其轉(zhuǎn)發(fā)過程如下: ①當轉(zhuǎn)發(fā)到達10.1.1.0/24的第2個報文P2時,發(fā)現(xiàn)此報文與到達10.1.1.0/24的第1個報文P1的五元組一致,所以之后到達該目的地的報文都從GE1/0/0轉(zhuǎn)發(fā)。 ②當轉(zhuǎn)發(fā)到達10.2.1.0/24的第1個報文P1時,發(fā)現(xiàn)此報文與到達10.1.1.0/24的第一個報文P1的五元組不一致,所以選擇較空閑的GE2/0/0轉(zhuǎn)發(fā),并且之后到達給目的地址的報文都從GE2/0/0轉(zhuǎn)發(fā)。 2、路由備份 為提高網(wǎng)絡(luò)的可靠性,可配置到同一目的地的多條路由,其中一條路由的優(yōu)先級最高,作為主路由,其余作為備份路由。正常情況下,路由器采用主路由轉(zhuǎn)發(fā)數(shù)據(jù),主鏈路出現(xiàn)故障,主路由變?yōu)榉羌せ睿酚善鬟x擇備份路由中優(yōu)先級最高的路由轉(zhuǎn)發(fā)數(shù)據(jù)。 五)路由的收斂 路由收斂是指網(wǎng)絡(luò)拓撲變化引起的通過重新計算路由而發(fā)生替代路由的行為。隨著網(wǎng)絡(luò)的融合,區(qū)分服務的需求越來越強烈。某些路由指導關(guān)鍵業(yè)務(VoIP,視頻會議,組播等)轉(zhuǎn)發(fā),關(guān)鍵業(yè)務路由需要盡快收斂。系統(tǒng)需要對不同路由按不同的收斂優(yōu)先級處理。 按優(yōu)先級收斂是指系統(tǒng)為路由設(shè)置不同的收斂優(yōu)先級,從高到低分別為critical(臨界)、high(高)、medium(中)、low(低)4種。 如下圖所示,網(wǎng)絡(luò)上運行OSPF和IS-IS協(xié)議,組播接受者在RouterA端,組播源服務器10.10.10.10/32在RouterB端,要求到組播服務器的路由優(yōu)先于其他路由收斂。這時可以配置路由10.10.10.10/32的收斂優(yōu)先級高于路由12.10.10.0/24的收斂優(yōu)先級,這樣當網(wǎng)絡(luò)路由重新收斂時,就能確保到組播源的路由10.10.10.10/32優(yōu)先收斂,保證組播業(yè)務的轉(zhuǎn)發(fā)。 二、靜態(tài)路由基礎(chǔ) 靜態(tài)路由是一種需要手動配置的特殊路由,比動態(tài)路由使用更少的帶寬,不占用CPU資源來計算和分析路由更新。但不會自動收斂。 一)靜態(tài)路由的組成 靜態(tài)路由包括5個主要參數(shù):目的IP地址和子網(wǎng)掩碼、出接口和下一跳IP地址、優(yōu)先級。 1、目的IP地址/子網(wǎng)掩碼 目的IP地址就是路由要到達的目的主機或目的網(wǎng)絡(luò)的IP地址,子網(wǎng)掩碼就是目的地址所對應的子網(wǎng)掩碼。當目的地址和子網(wǎng)掩碼都為零時,表示靜態(tài)缺省路由。 2、根據(jù)不同的出接口類型,在配置靜態(tài)路由時,可指定出接口,也可指定下一跳IP地址,還可以同時指定出接口和下一跳IP地址。 ①對于點到點類型的接口(如PPP鏈接接口),只需指定出接口。當然也可同時指定下一跳IP地址,但這時已沒有意義了。因為在點對點網(wǎng)絡(luò)中,對端是唯一的,指定了發(fā)送接口即隱含指定可下一跳IP地址,這時認為與該接口相連的對端接口地址就是路由器的下一跳IP地址。 ②對于NBMA(NonBroadcast Multiple Access,非廣播多路訪問)類型的接口(如FR、ATM接口),只需要配置下一跳IP地址。當然,也可同時指定出接口,但這時已沒有意義,因為除了配置IP路由外,這類接口還需在鏈路層建立IP地址到鏈路層地址的映射,相當于指定了出接口。 ③對于廣播類型的接口(如以太網(wǎng)接口)和VT(Virtual-Template)接口,必須指定下一跳IP地址,有些情況下還需要同時指定出接口。因為以太網(wǎng)接口是廣播類型的接口,而VT接口下可以關(guān)聯(lián)多個虛擬訪問接口(Virtual Access Interface),這都會導致出現(xiàn)多個下一跳,無法唯一確定下一跳。而在廣播型網(wǎng)絡(luò)中,還可能有多個出接口到達同一個下一跳IP地址,此時就必須同時指定出接口。 3、靜態(tài)路由優(yōu)先級 對于不同的靜態(tài)路由,可以配置不同的優(yōu)先級。配置到達相同目的地的多條靜態(tài)路由,如果指定相同優(yōu)先級,則可實現(xiàn)負載分擔;如果指定不同優(yōu)先級,則可實現(xiàn)路由備份。 二)靜態(tài)路由的主要特點 1、手動配置 2、路由路徑相對固定:網(wǎng)絡(luò)拓撲變動也不會修改,除非管理員修改 3、不可通告性:靜態(tài)路由信息在缺省情況下是私有的,不會主動通告給其他路由器,但管理員可以在本地設(shè)備的動態(tài)路由中引入靜態(tài)路由,然后以對應動態(tài)協(xié)議路由進行通告,使得網(wǎng)絡(luò)中其他路由器也可獲此靜態(tài)路由。 4、單向性:靜態(tài)路由具有單向性,它僅為數(shù)據(jù)提供沿著下一跳的方向進行路由,不提供反向路由。所以如果想要使源節(jié)點與目標節(jié)點或網(wǎng)絡(luò)進行雙向通信,必須同時配置回程靜態(tài)路由。 如果想使得PC1(已配置A節(jié)點IP地址10.16.1.2/24作為網(wǎng)關(guān))能夠ping通PC2,必須同時配置以下兩條靜態(tài)路由: ①在R1上配置了到達PC2的正向靜態(tài)路由(以PC210.16.3.2/24作為目標節(jié)點,以C節(jié)點IP地址10.16.2.2/24作為下一跳IP地址) ②在R2上配置到達PC1的回程靜態(tài)路由(以PC110.16.1.1/24作為目標節(jié)點,以B節(jié)點IP地址10.16.2.1/24作為下一跳IP地址),以提供Ping過程回程ICMP消息的路由路徑。 5、接力性 如果某條靜態(tài)路由中間經(jīng)過的跳數(shù)大于1(即整條路由路徑經(jīng)歷了3個或3個以上路由器節(jié)點),則必須在除最后一個路由器外的其他路由器上依次配置到達相同目標節(jié)點或目標網(wǎng)絡(luò)的靜態(tài)路由,這就是靜態(tài)路由的“接力”特性。路由器各端口上直接連接的各個網(wǎng)絡(luò)都是直接互通的,因為他們之間缺省就有直連路由,無需另外配置其他路由,即連接在同一路由器的各網(wǎng)絡(luò)之間的跳數(shù)為0。如上圖,R1上連接了10.16.1.0/24和10.16.2.0/24,R2上連接10.16.2.0/24和10.16.3.0/24網(wǎng)絡(luò),R3上連接了10.16.3.0/24和10.16.4.0/24網(wǎng)絡(luò),都是直接互通的,所以不需要配置從R2到R3路由器以及從R2到R1路由器的靜態(tài)路由。 6、迭代性 許多人存在一個錯誤認識:認為靜態(tài)路由的“下一跳”必須是與本地路由器直接連接的下一個路由器接口,這是錯誤的!?。?/span>靜態(tài)路由沒有建立鄰接關(guān)系的Hello包,靜態(tài)路由也不會被通告鄰居路由器,所以他的下一跳純粹是由配置的“下一跳IP地址”直接指定的,或通過配置“出接口”間接指定。理論上說,靜態(tài)路由的下一跳可以是路徑中其他路由器中的任意一個接口,只是能保證到達下一跳就行了。這就是靜態(tài)路由的“迭代性”。 7、適用小型網(wǎng)絡(luò) 三、靜態(tài)路由主要特性及應用 IPv4靜態(tài)路由的主要特性有靜態(tài)缺省路由、靜態(tài)路由與BFD聯(lián)動、靜態(tài)路由與NQA聯(lián)動、靜態(tài)路由優(yōu)先級和靜態(tài)路由永久發(fā)布。 一)靜態(tài)缺省路由 缺省路由是另外一種特殊的路由,分靜態(tài)缺省路由和動態(tài)缺省路由兩類。缺省路由是沒有在路由表中找到匹配的路由表項時才使用的候補路由。如果路由器中沒有配置缺省路由,且報文的目的地址不在路由表中,那么該報文將被丟棄,并向源端返回一個ICMP報文,報告該目的地址或網(wǎng)絡(luò)不可達。 在路由表中,缺省路由以到網(wǎng)絡(luò)0.0.0.0(掩碼也為0.0.0.0)的路由形式出現(xiàn)。可通過display ip routing-table查看。 二)靜態(tài)路由與BFD聯(lián)動 靜態(tài)路由自身沒有檢測和網(wǎng)絡(luò)收斂機制,可通過靜態(tài)路由與BFD聯(lián)動特性進行綁定,利用BFD會話來快速的檢測靜態(tài)路由所在鏈路的狀態(tài),實現(xiàn)毫秒級快速主備切換。 1、當某條靜態(tài)路由上的BFD會話檢測到鏈路故障時,BFD會將故障上報系統(tǒng),促使該路由失效,使該路由在IP路由表中不可見。 2、當某條靜態(tài)路由上的BFD會話檢測到故障的鏈路重新建立成功時,BFD會上報系統(tǒng),重新激活該條路由,使該路由重新出現(xiàn)在IP路由表中。 三)靜態(tài)路由與NQA聯(lián)動 在一些不支持BFD的鏈路環(huán)境中,可以通過把靜態(tài)路由與NQA特性進行綁定來實現(xiàn)鏈路故障檢測和快速的主備鏈路切換,且只要求互通設(shè)備的其中一端支持NQA即可,不受二層設(shè)備的限制。 1、如果NQA檢測例檢測到鏈路故障,路由器將這條靜態(tài)路由設(shè)置為“非激活”狀態(tài)(從IP路由表中刪除) 2、如果NQA檢測例檢測到鏈路恢復,路由器將這條靜態(tài)路由設(shè)置為“激活”狀態(tài)(路由可用,并添加到IP路由表中) 靜態(tài)路由與NQA聯(lián)動時僅采用ICMP測試例來檢測源端到目的端的路由是否可達,且每條靜態(tài)路由只可以綁定一個NQA測試例。 四)靜態(tài)路由優(yōu)先級 可以為不同靜態(tài)路由配置不同的優(yōu)先級,優(yōu)先級值越小,對應的優(yōu)先級越高。通過為多條到達同一目的地址的靜態(tài)路由配置相同或不同的優(yōu)先級,可分別實現(xiàn)多條相同目的地址的靜態(tài)路由的負載分擔和路由備份。 1、負載分擔 如果到達相同目的地址的多條靜態(tài)路由指定相同優(yōu)先級,則可實現(xiàn)負載分擔。 2、路由備份 如果到達相同目的地址的多條靜態(tài)路由指定不同優(yōu)先級,則可實現(xiàn)路由備份。 10-8圖是負載分擔,兩條路由均在IP路由表中存在,同時承擔數(shù)據(jù)轉(zhuǎn)發(fā)。10-9是路由備份,正常情況下,靜態(tài)路由B被激活,主鏈路承擔數(shù)據(jù)轉(zhuǎn)發(fā),靜態(tài)路由D不在路由表中體現(xiàn)。 (1)主鏈路故障,靜態(tài)路由B在路由表中被刪除,靜態(tài)路由D作為備份路由被激活,備份鏈路承擔數(shù)據(jù)轉(zhuǎn)發(fā)。 (2)主鏈路恢復后,靜態(tài)路由B重新被激活,主鏈路承擔數(shù)據(jù)轉(zhuǎn)發(fā)。靜態(tài)路由D在路由表中刪除。這條備份路由也叫浮動靜態(tài)路由。 五)靜態(tài)路由永久發(fā)布 靜態(tài)路由永久發(fā)布為客戶提供一種低成本、部署簡單的鏈路檢測機制,在客戶希望確定業(yè)務流量的轉(zhuǎn)發(fā)路徑,不希望流量從其他路徑穿越時,靜態(tài)路由永久發(fā)布可以通過Ping靜態(tài)路由目的地址的方式來測試鏈路的有效性而達到業(yè)務監(jiān)控的目的。配置永久發(fā)布屬性后,之前無法發(fā)布的靜態(tài)路由仍然被優(yōu)選并添加到IP路由表中。具體分兩種情況: (1)靜態(tài)路由配置了出接口,且出接口的IP地址存在時,無論出接口的狀態(tài)是U還是Down,只要配置了永久發(fā)布屬性,則該靜態(tài)路由都會被優(yōu)選并添加到IP路由表。 (2)靜態(tài)路由沒有配置出接口時,無論靜態(tài)路由是否能迭代到出接口,只要配置了永久發(fā)布屬性,路由都會被優(yōu)選并添加到IP路由表中。 這樣通過控制靜態(tài)路由的優(yōu)先級和前綴長度,使Ping報文始終通過靜態(tài)路由轉(zhuǎn)發(fā),就可以檢測出鏈路的有效性。但是,該特性不判斷路由是否可達,而是一直會將靜態(tài)路由保留在IP路由表中,如果實際路徑不可達,靜態(tài)路由可能形成黑洞路由。 ![]() BR1、BR2、BR3分屬ISP1、ISP2、ISP3.從BR1到BR2有兩條鏈路(LinkA和LinkB)可達,但ISP1希望流量都通過LinkA直接轉(zhuǎn)發(fā)到ISP2,而不從ISP3穿越。這時可以配置ISP1到ISP2的靜態(tài)路由為永久發(fā)布的。 BR1和BR2之間建立直連單跳EBGP鄰居,同時為了進行業(yè)務狀態(tài)監(jiān)控,在BR1上配置到對端(BR2)BGP鄰居地址(10.1.1.2/24)的靜態(tài)路由(吹摁扣為與BR2直連的本地接口),并使能路由永久發(fā)布。網(wǎng)絡(luò)監(jiān)控系統(tǒng)周期性的Ping 10.1.1.2,可通過Ping結(jié)果來判斷LinkA的狀態(tài),進而間接的監(jiān)控BGP業(yè)務狀態(tài)。 當LinkA正常時,Ping數(shù)據(jù)包都通過LinkA進行轉(zhuǎn)發(fā)。如LinkA故障,即使能通過LinkB到達BR2,但由于靜態(tài)路由使能了靜態(tài)路由永久發(fā)布,所以Ping數(shù)據(jù)包還是通過LinkA轉(zhuǎn)發(fā),此時不通。對于BGP數(shù)據(jù)包也是相同的情況,故障會導致BGP鄰居斷開,監(jiān)控系統(tǒng)可以通過Ping結(jié)果間接地檢測到業(yè)務問題,并通知維護人員。 四、靜態(tài)路由配置與管理 靜態(tài)路由的主要配置: ①創(chuàng)建靜態(tài)路由 ②(可選)配置靜態(tài)路由的缺省優(yōu)先級 ③(可選)使能靜態(tài)路由按遞歸深度優(yōu)先選擇 ④(可選)配置靜態(tài)路由永久發(fā)布 ⑤(可選)靜態(tài)路由與靜態(tài)BFD聯(lián)動 ⑥(可選)靜態(tài)路由與靜態(tài)NQA聯(lián)動 一)配置靜態(tài)路由基本功能 靜態(tài)路由基本功能包括以下配置任務 (1)創(chuàng)建靜態(tài)路由 在創(chuàng)建靜態(tài)路由時,可以同時指定出接口和下一跳。對不同出接口類型,可以只指定出接口或只指定下一跳。 ①對于點對點接口,只需指定出接口(可同時指定下一跳) ②對于NBMA接口,只需指定下一跳(可同時指定出接口) ③對于以太網(wǎng)接口和VT接口,必須指定下一跳(有時需同時指定出接口) (2)(可選)配置靜態(tài)路由的缺省優(yōu)先級 缺省優(yōu)先級值(60),也可改變?nèi)笔?yōu)先級,以影響路由的選路順序。 (3)(可選)使能靜態(tài)路由按遞歸深度優(yōu)先選擇 路由迭代是通過路由的下一跳信息來找到直連出接口的過程。迭代深度指路由迭代中查找路由的次數(shù),次數(shù)越少迭代深度越小。當系統(tǒng)中存在若干條同一前綴,迭代深度不同的靜態(tài)路由時,迭代深度較小的路由穩(wěn)定性較高。配置了基于迭代深度的優(yōu)選之后,系統(tǒng)會選擇迭代深度較小的靜態(tài)路由作為活躍路由,并下發(fā)FIB。 (4)(可選)配置靜態(tài)路由永久發(fā)布 靜態(tài)路由永久發(fā)布就是通過Ping靜態(tài)路由目的地址的方式來檢測鏈路的有效性。 創(chuàng)建靜態(tài)路由時要區(qū)分是在公共網(wǎng)絡(luò)中創(chuàng)建,還是在具體的VPN實例網(wǎng)絡(luò)中創(chuàng)建,不同類型網(wǎng)絡(luò)中所允許攜帶的參數(shù)不同。 ![]() ![]() 二)配置靜態(tài)路由與靜態(tài)BFD聯(lián)動 在配置靜態(tài)路由與靜態(tài)BFD聯(lián)動之前,需要配置好對應的靜態(tài)BFD會話。 與BFD會話綁定僅可在公網(wǎng)(非特定VPN實例網(wǎng)絡(luò))靜態(tài)路由進行配置,配置的方法很簡單,在系統(tǒng)視圖下執(zhí)行ip route-staticip-address {mask|mask-length} {nexthop-address |interface-typeinterface-number [nexthop-address]}[preferencepreference |tag tag]* track bfd-sessioncfg-name[descriptiontext]命令即可。參數(shù)track bfd-session cfg-name就是要指定用來與所指定的公網(wǎng)靜態(tài)路由綁定的BFD會話名稱(所綁定的靜態(tài)BFD會話要事先配置好)。要確保BFD會話和靜態(tài)路由在同一鏈路上。 三)配置靜態(tài)路由與NQA聯(lián)動 如果互聯(lián)設(shè)備不支持BFD功能,可以配置靜態(tài)路由與NQA聯(lián)動,利用NQA測試例對鏈路狀態(tài)進行檢測,提高網(wǎng)絡(luò)可靠性。NQA把測試兩端稱為客戶端和目的端(或服務器端),并在客戶端發(fā)起測試,目的端接收報文后,返回給源端(客戶端)相應的回應信息。 下表為配置步驟,2~8步為NQA測試例的創(chuàng)建與配置,第10步為靜態(tài)路由與NQA測試例聯(lián)動。 ![]() ![]() ![]() 四)靜態(tài)路由管理 ①display iprouting-table:查看IPv4路由表摘要信息 ②display iprouting-table verbose:查看IPv4路由表詳細信息。 ③display bfdsession all 【verbose】:查看BFD會話信息 ④displaycurrent-configuration | include bfd:查看靜態(tài)路由與BFD聯(lián)動的配置 ⑤displaycurrent-configuration | include nqa:查看靜態(tài)路由與NQA聯(lián)動的配置 ⑥display nqaresults 【collection】【test-instance admin-name test-name】:查看NQA測試結(jié)果。NQA測試不會在終端自動顯示測試結(jié)果,必須使用本命令查看測試結(jié)果。 五)靜態(tài)路由配置示例 ![]() 上圖的網(wǎng)絡(luò)拓撲,要求通過配置靜態(tài)路由實現(xiàn)不同網(wǎng)段的任意兩臺主機之間互通。 1、基本配置思路 靜態(tài)路由配置主要是5個參數(shù):目的IP/子網(wǎng)掩碼、下一跳IP、出接口、優(yōu)先級。另外在配置靜態(tài)路由一定要注意單向性,也就是要使雙方能互相訪問,必須同時配置往返路徑的兩條靜態(tài)路由。 2、具體配置步驟 ①配置各路由器接口IP,以RouterA上的接口為例 ![]() ②配置靜態(tài)路由,這里可以在RouterA和RouterC上僅通過配置缺省路由來實現(xiàn)(當然也可以用具體的靜態(tài)路由),在RouterB上則分別配置到達PC1和PC3所在網(wǎng)段的兩條靜態(tài)路由。 ![]() ③配置主機PC1的缺省網(wǎng)關(guān)為1.1.1.1,主機PC2的缺省網(wǎng)關(guān)為1.1.2.1,主機PC3的缺省網(wǎng)關(guān)為1.1.3.1。 在各路由器上執(zhí)行displayip routing-table ![]() IP路由表中的“Flags”是路由標記,可以是R(表示該路由是迭代路由)和D(表示該路由已下發(fā)到FIB表)字母,或者是它們的組合。但IP路由表中的所有路由均有D標記,因為它們都下發(fā)到FIB中。 六)靜態(tài)路由與BFD聯(lián)動配置示例 ![]() 上圖拓撲,RouterA通過配置靜態(tài)路由,經(jīng)由RouterB與外部相連,要求在RouterA和RouterB之間實現(xiàn)毫秒級故障感知。 1、基本配置思路 實現(xiàn)毫秒級故障感知,只有通過與BFD會話進行綁定。在RouterA和RouterB上分別創(chuàng)建雙向BFD會話,并綁定ROuterA到達外部網(wǎng)絡(luò)的靜態(tài)路由(這種單一出口網(wǎng)絡(luò)中可直接使用靜態(tài)缺省路由)。 2、具體配置步驟 ①配置好各路由器接口IP。 [RouterA]interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0]ip address 1.1.1.1 24 ②在RouterA上配置與RouterB之間的BFD會話 ![]() ③在RouterB上配置與RouterA之間的BFD會話。 ![]() ④在RouterA上配置到外部網(wǎng)絡(luò)的靜態(tài)缺省路由,并綁定BFD會話 [RouterA]ip route-static0.0.0.0 0.0.0.0 1.1.1.2 track bfd-session aa 配置完后在RouterA和RouterB上執(zhí)行displaybfd session all,可看到BFD會話已經(jīng)建立且狀態(tài)為Up。在系統(tǒng)視圖下執(zhí)行display current-configuration | include bfd,可看到靜態(tài)路由已經(jīng)綁定BFD會話。 執(zhí)行display iprouting-table: ![]() 對RouterB的GE1/0/0接口執(zhí)行shutdown模擬故障,然后查看路由表,發(fā)現(xiàn)除了直連路由,靜態(tài)缺省路由0.0.0.0/0不存在了。因為靜態(tài)缺省路由綁定了BFD會話,當BFD檢測到故障,會迅速通知所綁定的靜態(tài)路由不可用。 ![]() 七)靜態(tài)路由與NQA聯(lián)動配置示例 ![]() 如上圖拓撲,在RouterB和RouterC上都配置了到用戶交換機的靜態(tài)路由,RouterB為主路由器,RouterC為備用路由器。正常情況下,SwitchA上的用戶業(yè)務用流量走主用鏈路RouterB-àswitchA,主用鏈路故障切換到備用鏈路RouterCàSwitchA。 1、基本配置思路 ①在各路由器上配置IP地址以及OSPF路由協(xié)議,并配置不同鏈路的路由開銷值,最終使得RouterB為主用路由器,RouterC為備用路由器。 ②在RouterB與SwitchA之間建立ICMP類型的NQA測試例,同時分別配置RouterB和RouterC到SwitchA上連接的用戶網(wǎng)絡(luò)的靜態(tài)路由,并將在RouterB配置的靜態(tài)路由與NQA測試例聯(lián)動。 2、配置步驟 ①配置各路由器的IP地址。 [RouterA]interfacegigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0]ipaddress 172.16.3.1 24 [RouterA-GigabitEthernet1/0/0]quit [RouterA]interfacegigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0]ipaddress 172.16.4.1 24 ②在RouterA、RouterB和RouterC上配置OSPF動態(tài)路由協(xié)議,使它們之間三層可達。(以RouterA為例) ![]() ③為了保證RouterA有到達用戶網(wǎng)絡(luò)的路由,需要在RouterB和RouterC上配置OSPF動態(tài)路由協(xié)議引入靜態(tài)路由,然后通告給RouterA。為了使RouterB成為主路由器,需要在RouterB引入靜態(tài)路由時開銷值更小。 ![]() ④在RouterB上配置RouterB和SwitchA之間的NQA ICMP測試例。 ![]() ⑤在RouterB和RouterC上分別配置到達SwitchA靜態(tài)路由(在廣播網(wǎng)絡(luò)中要同時指定出接口和下一跳IP),但在RouterB上配置靜態(tài)路由時要與配置的NQA ICMP測試例進行聯(lián)動。 [RouterB]ip route-static172.16.7.0 255.255.255.255.0 gigabitethernet 1/0/0 172.16.1.2 track nqa aa bb [RouterC]ip route-static172.16.7.0 255.255.255.0 gigabitethernet 3/0/0 172.16.6.2 配置完后,在RouterB的系統(tǒng)視圖下執(zhí)行displaycurrent-configuration | include nqa,可看到靜態(tài)路由已經(jīng)綁定NQA測試例;執(zhí)行displaynqa results命令可看到NQA測試例已經(jīng)建立。 ![]() 通過display iprouting-table查看RouterB上的IP路由表: 在RouterA上查看IP路由表: ![]() 從中可以看到有一條到172.16.7.0/24的路由,下一跳指向172.16.3.2,cost值為10,因此業(yè)務流量會優(yōu)先走鏈路RouterB—>SwitchA。 通過shutdown關(guān)閉RouterB的GE1/0/0,通過displaynqa results查看NQA測試結(jié)果: ![]() 此時在通過displayip routing-table查看RouterB上的IP路由表,發(fā)現(xiàn)原來的這條到達SwitchA的靜態(tài)路由消失了,因為NQA已通知路由模塊對應鏈路出現(xiàn)故障,所以路由模塊立即刪除這條靜態(tài)路由。在RouterA上查看IP路由表: 可以看到原來的路由消失了(Cost值為10,下一跳為172.16.3.2的路由),改為了通過SwitchC,因為RouterA僅能從RouterC處學習到通往172.16.7.0/24的路由了。 |
|