04-OSPF配置
本章節下載: 04-OSPF配置 (1.1 MB)
· 本文所指的路由器代表運行了路由協議的三層設備。
· S5500-SI係列交換機不支持OSPF功能。
OSPF(Open Shortest Path First,開放最短路徑優先)是IETF(Internet Engineering Task Force,互聯網工程任務組)組織開發的一個基於鏈路狀態的內部網關協議。目前針對IPv4協議使用的是OSPF Version 2(RFC 2328)。
本章若沒有特別說明,下文中所提到的OSPF均指OSPFv2。
OSPF具有如下特點:
· 適應範圍廣
支持各種規模的網絡,最多可支持幾百台路由器。
· 快速收斂
在網絡的拓撲結構發生變化後立即發送更新報文,使這一變化在自治係統中同步。
· 無自環
由於OSPF根據收集到的鏈路狀態用最短路徑樹算法計算路由,從算法本身保證了不會生成自環路由。
· 區域劃分
允許自治係統的網絡被劃分成區域來管理,區域間傳送的路由信息被進一步抽象,從而減少了占用的網絡帶寬。
· 等價路由
支持到同一目的地址的多條等價路由。
· 路由分級
使用4類不同的路由,按優先順序來說分別是:區域內路由、區域間路由、第一類外部路由、第二類外部路由。
· 支持驗證
支持基於區域和接口的報文驗證,以保證報文交互和路由計算的安全性。
· 組播發送
在某些類型的鏈路上以組播地址發送協議報文,減少對其他設備的幹擾。
一組使用相同路由協議交換路由信息的路由器,縮寫為AS。
同一個區域內,OSPF協議路由的計算過程可簡單描述如下:
· 每台OSPF路由器根據自己周圍的網絡拓撲結構生成LSA(Link State Advertisement,鏈路狀態通告),並通過更新報文將LSA發送給網絡中的其它OSPF路由器。
· 每台OSPF路由器都會收集其它路由器通告的LSA,所有的LSA放在一起便組成了LSDB(Link State Database,鏈路狀態數據庫)。LSA是對路由器周圍網絡拓撲結構的描述,LSDB則是對整個自治係統的網絡拓撲結構的描述。
· OSPF路由器將LSDB轉換成一張帶權的有向圖,這張圖便是對整個網絡拓撲結構的真實反映。各個路由器得到的有向圖是完全相同的。
· 每台路由器根據有向圖,使用SPF算法計算出一棵以自己為根的最短路徑樹,這棵樹給出了到自治係統中各節點的路由。
一台運行OSPF協議路由器,每一個OSPF進程必須存在自己的Router ID(路由器ID)。Router ID是一個32比特無符號整數,可以在一個自治係統中唯一的標識一台路由器。
OSPF有五種類型的協議報文:
· Hello報文:周期性發送,用來發現和維持OSPF鄰居關係。內容包括一些定時器的數值、DR(Designated Router,指定路由器)、BDR(Backup Designated Router,備份指定路由器)以及自己已知的鄰居。
· DD(Database Description,數據庫描述)報文:描述了本地LSDB中每一條LSA的摘要信息,用於兩台路由器進行數據庫同步。
· LSR(Link State Request,鏈路狀態請求)報文:向對方請求所需的LSA。兩台路由器互相交換DD報文之後,得知對端的路由器有哪些LSA是本地的LSDB所缺少的,這時需要發送LSR報文向對方請求所需的LSA。內容包括所需要的LSA的摘要。
· LSU(Link State Update,鏈路狀態更新)報文:向對方發送其所需要的LSA。
· LSAck(Link State Acknowledgment,鏈路狀態確認)報文:用來對收到的LSA進行確認。內容是需要確認的LSA的Header(一個報文可對多個LSA進行確認)。
OSPF中對鏈路狀態信息的描述都是封裝在LSA中發布出去,常用的LSA有以下幾種類型:
· Router LSA(Type1):由每個路由器產生,描述路由器的鏈路狀態和開銷,在其始發的區域內傳播。
· Network LSA(Type2):由DR產生,描述本網段所有路由器的鏈路狀態,在其始發的區域內傳播。
· Network Summary LSA(Type3):由ABR(Area Border Router,區域邊界路由器)產生,描述區域內某個網段的路由,並通告給其他區域。
· ASBR Summary LSA(Type4):由ABR產生,描述到ASBR(Autonomous System Boundary Router,自治係統邊界路由器)的路由,通告給相關區域。
· AS External LSA(Type5):由ASBR產生,描述到AS(Autonomous System,自治係統)外部的路由,通告到所有的區域(除了Stub區域和NSSA區域)。
· NSSA External LSA(Type7):由NSSA(Not-So-Stubby Area)區域內的ASBR產生,描述到AS外部的路由,僅在NSSA區域內傳播。
· Opaque LSA:是一個被提議的LSA類別,由標準的LSA頭部後麵跟隨特殊應用的信息組成,可以直接由OSPF協議使用,或者由其它應用分發信息到整個OSPF域間接使用。Opaque LSA分為Type9、Type10、Type11三種類型,泛洪區域不同;其中,Type9的Opaque LSA僅在本地鏈路範圍進行泛洪,Type10的Opaque LSA僅在本地區域範圍進行泛洪,Type11的LSA可以在一個自治係統範圍進行泛洪。
在OSPF中,鄰居(Neighbor)和鄰接(Adjacency)是兩個不同的概念。
OSPF路由器啟動後,便會通過OSPF接口向外發送Hello報文。收到Hello報文的OSPF路由器會檢查報文中所定義的參數,如果雙方一致就會形成鄰居關係。
形成鄰居關係的雙方不一定都能形成鄰接關係,這要根據網絡類型而定。隻有當雙方成功交換DD報文,交換LSA並達到LSDB的同步之後,才形成真正意義上的鄰接關係。
隨著網絡規模日益擴大,當一個大型網絡中的路由器都運行OSPF路由協議時,路由器數量的增多會導致LSDB非常龐大,占用大量的存儲空間,並使得運行SPF算法的複雜度增加,導致CPU負擔很重。
在網絡規模增大之後,拓撲結構發生變化的概率也增大,網絡會經常處於“振蕩”之中,造成網絡中會有大量的OSPF協議報文在傳遞,降低了網絡的帶寬利用率。更為嚴重的是,每一次變化都會導致網絡中所有的路由器重新進行路由計算。
OSPF協議通過將自治係統劃分成不同的區域(Area)來解決上述問題。區域是從邏輯上將路由器劃分為不同的組,每個組用區域號(Area ID)來標識。如圖1-1所示。
圖1-1 OSPF區域劃分
區域的邊界是路由器,而不是鏈路。一個路由器可以屬於不同的區域,但是一個網段(鏈路)隻能屬於一個區域,或者說每個運行OSPF的接口必須指明屬於哪一個區域。劃分區域後,可以在區域邊界路由器上進行路由聚合,以減少通告到其他區域的LSA數量,還可以將網絡拓撲變化帶來的影響最小化。
(1) 骨幹區域(Backbone Area)
OSPF劃分區域之後,並非所有的區域都是平等的關係。其中有一個區域是與眾不同的,它的區域號(Area ID)是0,通常被稱為骨幹區域。骨幹區域負責區域之間的路由,非骨幹區域之間的路由信息必須通過骨幹區域來轉發。對此,OSPF有兩個規定:
· 所有非骨幹區域必須與骨幹區域保持連通;
· 骨幹區域自身也必須保持連通。
但在實際應用中,可能會因為各方麵條件的限製,無法滿足這個要求。這時可以通過配置OSPF虛連接(Virtual Link)予以解決。
(2) 虛連接(Virtual Link)
虛連接是指在兩台ABR之間通過一個非骨幹區域而建立的一條邏輯上的連接通道。它的兩端必須是ABR,而且必須在兩端同時配置方可生效。為虛連接兩端提供一條非骨幹區域內部路由的區域稱為傳輸區(Transit Area)。
在圖1-2中,Area2與骨幹區域之間沒有直接相連的物理鏈路,但可以在ABR上配置虛連接,使Area2通過一條邏輯鏈路與骨幹區域保持連通。
虛連接的另外一個應用是提供冗餘的備份鏈路,當骨幹區域因鏈路故障不能保持連通時,通過虛連接仍然可以保證骨幹區域在邏輯上的連通性。如圖1-3所示。
虛連接相當於在兩個ABR之間形成了一個點到點的連接,因此,在這個連接上,和物理接口一樣可以配置接口的各參數,如發送Hello報文間隔等。
兩台ABR之間直接傳遞OSPF報文信息,它們之間的OSPF路由器隻是起到一個轉發報文的作用。由於協議報文的目的地址不是中間這些路由器,所以這些報文對於它們而言是透明的,隻是當作普通的IP報文來轉發。
Stub區域是一些特定的區域,Stub區域不允許注入Type5 LSA,在這些區域中路由器的路由表規模以及路由信息傳遞的數量都會大大減少。
為了進一步減少Stub區域中路由器的路由表規模以及路由信息傳遞的數量,可以將該區域配置為Totally Stub(完全Stub)區域,該區域的ABR不會將區域間的路由信息和外部路由信息傳遞到本區域。
(Totally)Stub區域是一種可選的配置屬性,但並不是每個區域都符合配置的條件。通常來說,(Totally)Stub區域位於自治係統的邊界。
為保證到本自治係統的其他區域或者自治係統外的路由依舊可達,該區域的ABR將生成一條缺省路由,並發布給本區域中的其他非ABR路由器。
配置(Totally)Stub區域時需要注意下列幾點:
· 骨幹區域不能配置成(Totally)Stub區域。
· 如果要將一個區域配置成Stub區域,則該區域中的所有路由器必須都要配置stub命令。
· 如果要將一個區域配置成Totally Stub區域,該區域中的所有路由器必須配置stub命令,該區域的ABR路由器需要配置stub [ no-summary ]命令。
· (Totally)Stub區域內不能存在ASBR,即自治係統外部的路由不能在本區域內傳播。
· 虛連接不能穿過(Totally)Stub區域。
NSSA(Not-So-Stubby Area)區域是Stub區域的變形,與Stub區域有許多相似的地方。NSSA區域也不允許Type5 LSA注入,但可以允許Type7 LSA注入。Type7 LSA由NSSA區域的ASBR產生,在NSSA區域內傳播。當Type7 LSA到達NSSA的ABR時,由ABR將Type7 LSA轉換成Type5 LSA,傳播到其他區域。
如圖1-4所示,運行OSPF協議的自治係統包括3個區域:區域1、區域2和區域0,另外兩個自治係統運行RIP協議。區域1被定義為NSSA區域,區域1接收的RIP路由傳播到NSSA ASBR後,由NSSA ASBR產生Type7 LSA在區域1內傳播,當Type7 LSA到達NSSA ABR後,轉換成Type5 LSA傳播到區域0和區域2。
另一方麵,運行RIP的自治係統的RIP路由通過區域2的ASBR產生Type5 LSA在OSPF自治係統中傳播。但由於區域1是NSSA區域,所以Type5 LSA不會到達區域1。
與Stub區域一樣,虛連接也不能穿過NSSA區域。
如圖1-5所示,列出了各個區域之間的區別。
各區域特性:
· Totally Stub區域:允許ABR發布的Type3缺省路由,不允許自治係統外部路由和區域間的路由;
· Stub區域:和Totally Stub區域不同在於該區域允許區域間路由;
· NSSA區域:和Stub區域不同在於該區域允許自治係統外部路由的引入,由ASBR發布Type7 LSA通告給本區域;
· Totally NSSA區域:和NSSA區域不同在於該區域不允許區域間路由。
OSPF路由器根據在AS中的不同位置,可以分為以下四類:
(1) 區域內路由器(Internal Router)
該類路由器的所有接口都屬於同一個OSPF區域。
(2) 區域邊界路由器ABR(Area Border Router)
該類路由器可以同時屬於兩個以上的區域,但其中一個必須是骨幹區域(骨幹區域的介紹請參見下一小節)。ABR用來連接骨幹區域和非骨幹區域,它與骨幹區域之間既可以是物理連接,也可以是邏輯上的連接。
(3) 骨幹路由器(Backbone Router)
該類路由器至少有一個接口屬於骨幹區域。因此,所有的ABR和位於Area0的內部路由器都是骨幹路由器。
(4) 自治係統邊界路由器ASBR
與其他AS交換路由信息的路由器稱為ASBR。ASBR並不一定位於AS的邊界,它有可能是區域內路由器,也有可能是ABR。隻要一台OSPF路由器引入了外部路由的信息,它就成為ASBR。
圖1-6 OSPF路由器的類型
OSPF將路由分為四類,按照優先級從高到低的順序依次為:
· 區域內路由(Intra Area)
· 區域間路由(Inter Area)
· 第一類外部路由(Type1 External)
· 第二類外部路由(Type2 External)
區域內和區域間路由描述的是AS內部的網絡結構,外部路由則描述了應該如何選擇到AS以外目的地址的路由。OSPF將引入的AS外部路由分為兩類:Type1和Type2。
第一類外部路由:這類路由的可信程度較高,並且和OSPF自身路由的開銷具有可比性,所以到第一類外部路由的開銷等於本路由器到相應的ASBR的開銷與ASBR到該路由目的地址的開銷之和。
第二類外部路由:這類路由的可信度比較低,所以OSPF協議認為從ASBR到自治係統之外的開銷遠遠大於在自治係統之內到達ASBR的開銷。所以計算路由開銷時將主要考慮前者,即到第二類外部路由的開銷等於ASBR到該路由目的地址的開銷。如果計算出開銷值相等的兩條路由,再考慮本路由器到相應的ASBR的開銷。
OSPF根據鏈路層協議類型將網絡分為下列四種類型:
· 廣播(Broadcast)類型:當鏈路層協議是Ethernet、FDDI時,OSPF缺省認為網絡類型是Broadcast。在該類型的網絡中,通常以組播形式(224.0.0.5:含義是OSPF路由器的預留IP組播地址;224.0.0.6:含義是OSPF DR的預留IP組播地址)發送Hello報文、LSU報文和LSAck報文;以單播形式發送DD報文和LSR報文。
· NBMA(Non-Broadcast Multi-Access,非廣播多路訪問)類型:當鏈路層協議是幀中繼、ATM或X.25時,OSPF缺省認為網絡類型是NBMA。在該類型的網絡中,以單播形式發送協議報文。
· P2MP(Point-to-MultiPoint,點到多點)類型:沒有一種鏈路層協議會被缺省的認為是P2MP類型。點到多點必須是由其他的網絡類型強製更改的。常用做法是將NBMA改為點到多點的網絡。在該類型的網絡中,缺省情況下,以組播形式(224.0.0.5)發送協議報文。可以根據用戶需要,以單播形式發送協議報文。
· P2P(Point-to-Point,點到點)類型:當鏈路層協議是PPP、HDLC時,OSPF缺省認為網絡類型是P2P。在該類型的網絡中,以組播形式(224.0.0.5)發送協議報文。
NBMA網絡是指非廣播、多點可達的網絡,比較典型的有ATM和幀中繼網絡。
對於接口的網絡類型為NBMA的網絡需要進行一些特殊的配置。由於無法通過廣播Hello報文的形式發現相鄰路由器,必須手工為該接口指定相鄰路由器的IP地址,以及該相鄰路由器是否有DR選舉權等。
NBMA網絡必須是全連通的,即網絡中任意兩台路由器之間都必須有一條虛電路直接可達。如果部分路由器之間沒有直接可達的鏈路時,應將接口配置成P2MP類型。如果路由器在NBMA網絡中隻有一個對端,也可將接口類型配置為P2P類型。
NBMA與P2MP網絡之間的區別如下:
· NBMA網絡是指那些全連通的、非廣播、多點可達網絡。而P2MP網絡,則並不需要一定是全連通的。
· 在NBMA網絡中需要選舉DR與BDR,而在P2MP網絡中沒有DR與BDR。
· NBMA是一種缺省的網絡類型,而P2MP網絡必須是由其它的網絡強製更改的。最常見的做法是將NBMA網絡改為P2MP網絡。
· NBMA網絡采用單播發送報文,需要手工配置鄰居。P2MP網絡采用組播方式發送報文。
在廣播網和NBMA網絡中,任意兩台路由器之間都要交換路由信息。如果網絡中有n台路由器,則需要建立n(n-1)/2個鄰接關係。這使得任何一台路由器的路由變化都會導致多次傳遞,浪費了帶寬資源。為解決這一問題,OSPF協議定義了指定路由器DR(Designated Router),所有路由器都隻將信息發送給DR,由DR將網絡鏈路狀態發送出去。
如果DR由於某種故障而失效,則網絡中的路由器必須重新選舉DR,再與新的DR同步。這需要較長的時間,在這段時間內,路由的計算是不正確的。為了能夠縮短這個過程,OSPF提出了BDR(Backup Designated Router,備份指定路由器)的概念。
BDR是對DR的一個備份,在選舉DR的同時也選舉出BDR,BDR也和本網段內的所有路由器建立鄰接關係並交換路由信息。當DR失效後,BDR會立即成為DR。由於不需要重新選舉,並且鄰接關係之前已建立,所以這個過程是非常短暫的。當然這時還需要再重新選舉出一個新的BDR,雖然需要較長的時間,但並不會影響路由的計算。
運行OSPF進程的網絡中,既不是DR也不是BDR的路由器為DR Other。DR Other僅與DR和BDR之間建立鄰接關係,DR Other之間不交換任何路由信息。這樣就減少了廣播網和NBMA網絡上各路由器之間鄰接關係的數量,同時減少網絡流量,節約了帶寬資源。
如圖1-7所示,用實線代表以太網物理連接,虛線代表建立的鄰接關係。可以看到,采用DR/BDR機製後,5台路由器之間隻需要建立7個鄰接關係就可以了。
圖1-7 DR和BDR示意圖
DR和BDR是由同一網段中所有的路由器根據路由器優先級、Router ID通過Hello報文選舉出來的,隻有優先級大於0的路由器才具有選舉資格。
進行DR/BDR選舉時每台路由器將自己選出的DR寫入Hello報文中,發給網段上的每台運行OSPF協議的路由器。當處於同一網段的兩台路由器同時宣布自己是DR時,路由器優先級高者勝出。如果優先級相等,則Router ID大者勝出。如果一台路由器的優先級為0,則它不會被選舉為DR或BDR。
需要注意的是:
· 隻有在廣播或NBMA類型接口才會選舉DR,在點到點或點到多點類型的接口上不需要選舉DR。
· DR是某個網段中的概念,是針對路由器的接口而言的。某台路由器在一個接口上可能是DR,在另一個接口上有可能是BDR,或者是DR Other。
· 路由器的優先級可以影響DR/BDR的選舉過程,但是當DR/BDR已經選舉完畢,就算一台具有更高優先級的路由器變為有效,也不會替換該網段中已經存在的DR/BDR成為新的DR/BDR。
· DR並不一定就是路由器優先級最高的路由器接口;同理,BDR也並不一定就是路由器優先級次高的路由器接口。
OSPF報文直接封裝為IP報文協議報文,協議號為89。一個比較完整的OSPF報文(以LSU報文為例)結構如圖1-8所示。
圖1-8 OSPF報文結構
OSPF有五種報文類型,它們有相同的報文頭。如圖1-9所示。
圖1-9 OSPF報文頭格式
主要字段的解釋如下:
· Version:OSPF的版本號。對於OSPFv2來說,其值為2。
· Type:OSPF報文的類型。數值從1到5,分別對應Hello報文、DD報文、LSR報文、LSU報文和LSAck報文。
· Packet length:OSPF報文的總長度,包括報文頭在內,單位為字節。
· Router ID:始發該LSA的路由器的ID。
· Area ID:始發LSA的路由器所在的區域ID。
· Checksum:對整個報文的校驗和。
· AuType:驗證類型。可分為不驗證、簡單(明文)口令驗證和MD5驗證,其值分別為0、1、2。
· Authentication:其數值根據驗證類型而定。當驗證類型為0時未作定義,為1時此字段為密碼信息,類型為2時此字段包括Key ID、MD5驗證數據長度和序列號的信息。
MD5驗證數據添加在OSPF報文後麵,不包含在Authenticaiton字段中。
最常用的一種報文,周期性的發送給鄰居路由器用來維持鄰居關係以及DR/BDR的選舉,內容包括一些定時器的數值、DR、BDR以及自己已知的鄰居。Hello報文格式如圖1-10所示。
圖1-10 Hello報文格式
主要字段解釋如下:
· Network mask:發送Hello報文的接口所在網絡的掩碼,如果相鄰兩台路由器的網絡掩碼不同,則不能建立鄰居關係。
· HelloInterval:發送Hello報文的時間間隔。如果相鄰兩台路由器的Hello間隔時間不同,則不能建立鄰居關係。
· Rtr Pri:路由器優先級。如果設置為0,則該路由器接口不能成為DR/BDR。
· RouterDeadInterval:失效時間。如果在此時間內未收到鄰居發來的Hello報文,則認為鄰居失效。如果相鄰兩台路由器的失效時間不同,則不能建立鄰居關係。
· Designated router:指定路由器的接口的IP地址。
· Backup designated router:備份指定路由器的接口的IP地址。
· Neighbor:鄰居路由器的Router ID。
兩台路由器進行數據庫同步時,用DD報文來描述自己的LSDB,內容包括LSDB中每一條LSA的摘要(摘要是指LSA的Header,通過該Header可以唯一標識一條LSA)。這樣做是為了減少路由器之間傳遞信息的量,因為LSA的Header隻占一條LSA的整個數據量的一小部分,根據Header,對端路由器就可以判斷出是否已有這條LSA。
DD報文格式如圖1-11所示。
圖1-11 DD報文格式
主要字段的解釋如下:
· Interface MTU:在不分片的情況下,此接口最大可發出的IP報文長度。
· I(Initial):當發送連續多個DD報文時,如果這是第一個DD報文,則置為1,否則置為0。
· M(More):當連續發送多個DD報文時,如果這是最後一個DD報文,則置為0。否則置為1,表示後麵還有其他的DD報文。
· MS(Master/Slave):當兩台OSPF路由器交換DD報文時,首先需要確定雙方的主(Master)從(Slave)關係,Router ID大的一方會成為Master。當值為1時表示發送方為Master。
· DD Sequence Number:DD報文序列號,由Master方規定起始序列號,每發送一個DD報文序列號加1,Slave方使用Master的序列號作為確認。主從雙方利用序列號來保證DD報文傳輸的可靠性和完整性。
兩台路由器互相交換過DD報文之後,知道對端的路由器有哪些LSA是本地的LSDB所缺少的,這時需要發送LSR報文向對方請求所需的LSA。內容包括所需要的LSA的摘要。LSR報文格式如圖1-12所示。
圖1-12 LSR報文格式
主要字段解釋如下:
· LS type:LSA的類型號。例如Type1表示Router LSA。
· Link State ID:鏈路狀態標識,根據LSA的類型而定。
· Advertising Router:產生此LSA的路由器的Router ID。
LSU報文用來向對端路由器發送它所需要的LSA,內容是多條LSA(全部內容)的集合。LSU報文格式如圖1-13所示。
圖1-13 LSU報文格式
主要字段解釋如下:
· Number of LSAs:該報文包含的LSA的數量。
· LSA:該報文包含的LSA。
LSAck報文用來對接收到的LSU報文進行確認,內容是需要確認的LSA的Header。一個LSAck報文可對多個LSA進行確認。報文格式如圖1-14所示。
圖1-14 LSAck報文格式
主要字段解釋如下:
LSA Headers:該報文包含的LSA頭部。
所有的LSA都有相同的報文頭,其格式如圖1-15所示。
圖1-15 LSA的頭格式
主要字段的解釋如下:
· LS age:LSA產生後所經過的時間,以秒為單位。LSA在本路由器的鏈路狀態數據庫(LSDB)中會隨時間老化(每秒鍾加1),但在網絡的傳輸過程中卻不會。
· LS type:LSA的類型。
· Link State ID:具體數值根據LSA的類型而定。
· Advertising Router:始發LSA的路由器的ID。
· LS sequence number:LSA的序列號,其他路由器根據這個值可以判斷哪個LSA是最新的。
· LS checksum:除了LS age字段外,關於LSA的全部信息的校驗和。
· length:LSA的總長度,包括LSA Header,以字節為單位。
(1) Router LSA
主要字段的解釋如下:
· Link State ID:產生此LSA的路由器的Router ID。
· V(Virtual Link):如果產生此LSA的路由器是虛連接的端點,則置為1。
· E(External):如果產生此LSA的路由器是ASBR,則置為1。
· B(Border):如果產生此LSA的路由器是ABR,則置為1。
· # Links:LSA中所描述的鏈路信息的數量,包括路由器上處於某區域中的所有鏈路和接口。
· Link ID:鏈路標識,具體的數值根據鏈路類型而定。
· Link data:鏈路數據,具體的數值根據鏈路類型而定。
· Type:鏈路類型,取值為1表示通過點對點鏈路與另一路由器相連,取值為2表示連接到傳送網絡,取值為3表示連接到Stub網絡,取值為4表示虛連接。
· #TOS:描述鏈路不同TOS開銷的數量。如果沒有TOS開銷和當前鏈路關聯,那麼這個字段就設置為0。RFC 2328已經不再支持TOS,保留該字段主要是為了兼容早期的OSPF版本。
· Metric:鏈路的開銷。
· TOS:服務類型。
· TOS metric:指定服務類型的鏈路的開銷。
(2) Network LSA
Network LSA由廣播網或NBMA網絡中的DR發出,LSA中記錄了這一網段上所有路由器的Router ID。
圖1-17 Network LSA格式
主要字段的解釋如下:
· Link State ID:DR的IP地址。
· Network mask:廣播網或NBMA網絡地址的掩碼。
· Attached router:連接在同一個網段上的所有與DR形成了完全鄰接關係的路由器的Router ID,也包括DR自身的Router ID。
(3) Summary LSA
Network Summary LSA(Type3 LSA)和ASBR Summary LSA(Type4 LSA)除Link State ID字段有所不同外,有著相同的格式,它們都是由ABR產生。
主要字段的解釋如下:
· Link State ID:對於Type3 LSA來說,它是所通告的區域外的網絡地址;對於Type4來說,它是所通告區域外的ASBR的Router ID。
· Network mask:Type3 LSA的網絡地址掩碼。對於Type4 LSA來說沒有意義,設置為0.0.0.0。
· Metric:到目的地址的路由開銷。
Type3的LSA可以用來通告缺省路由,此時Link State ID和Network Mask都設置為0.0.0.0。
(4) AS External LSA
由ASBR產生,描述到AS外部的路由信息。
主要字段的解釋如下:
· Link State ID:所要通告的其他外部AS的目的地址,如果通告的是一條缺省路由,那麼鏈路狀態ID(Link State ID)和網絡掩碼(Network Mask)字段都將設置為0.0.0.0。
· Network mask:所通告的目的地址的掩碼。
· E(External Metric):外部度量值的類型。如果是第2類外部路由就設置為1,如果是第1類外部路由則設置為0。關於外部路由類型的詳細描述請參見1.1.3 2. 路由類型部分。
· Metirc:路由開銷。
· Forwarding Address:到所通告的目的地址的報文將被轉發到的地址。
· External Route Tag:添加到外部路由上的標記。OSPF本身並不使用這個字段,它可以用來對外部路由進行管理。
(5) NSSA External LSA
由NSSA區域內的ASBR產生,且隻能在NSSA區域內傳播。其格式與AS External LSA相同,如圖1-20所示。
OSPF支持多進程,在同一台路由器上可以運行多個不同的OSPF進程,它們之間互不影響,彼此獨立。不同OSPF進程之間的路由交互相當於不同路由協議之間的路由交互。支持多個OSPF進程共用一個RID。
路由器的一個接口隻能屬於某一個OSPF進程。
OSPF支持報文驗證功能,隻有通過驗證的OSPF報文才能接收,否則將不能正常建立鄰居關係。
一個區域中所有的接口的驗證類型(不支持驗證、支持明文驗證或者支持MD5密文驗證)必須一致。一個網段中所有接口的驗證字口令必須一致。
GR是一種在協議重啟或主備切換時保證轉發業務不中斷的機製。GR有兩個角色:
· GR Restarter:發生協議重啟或主備倒換事件且具有GR能力的設備。
· GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。
基於OSPF的GR Restarter進行協議重啟後,為了與其OSPF鄰居重新同步鏈路狀態數據庫,它必須完成下列兩項任務:
· 在不改變鄰接關係的前提下,重新獲取網絡中的有效OSPF鄰居信息;
· 重新獲取網絡鏈路狀態數據庫的內容。
在OSPF協議重啟前,GR Restarter與GR Helper協商GR能力,如果GR Restarter發生重啟,在重啟過程中,GR Helper宣告與GR Restarter的鄰接狀態不變。
OSPF協議重啟完畢後,GR Restarter會立即向鄰接的GR Helper發送一個OSPF GR信號。這樣,OSPF鄰居就不會複位與GR Restarter的鄰居關係。在收到OSPF鄰居的響應後,GR Restarter會重新恢複與GR Helper的鄰居關係列表。
鄰居關係重新建立後,GR Restarter與所有具備GR能力的OSPF鄰居之間同步數據庫,並交換路由信息。交換完成後,GR Restarter根據新的路由轉發信息更新路由表和轉發表,刪除失效的路由,完成OSPF協議收斂。
關於BFD的介紹和基本功能配置,請參見“可靠性配置指導”中的“BFD”。
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)能夠為OSPF鄰居之間的鏈路提供快速檢測功能。當鄰居之間的鏈路出現故障時,加快OSPF協議的收斂速度。
與OSPF相關的協議規範有:
· RFC 1765:OSPF Database Overflow
· RFC 2328:OSPF Version 2
· RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option
· RFC 3137:OSPF Stub Router Advertisement
· RFC 3630:Traffic Engineering Extensions to OSPF Version 2
· RFC 4811:OSPF Out-of-Band LSDB Resynchronization
· RFC 4812:OSPF Restart Signaling
· RFC 4813:OSPF Link-Local Signaling
在一個運行OSPF的路由域裏,有各種類型的路由器,區域內路由器、ABR、ASBR等。
無論是哪種類型的路由器,都必須先使能OSPF,否則OSPF協議將無法正常運行;使能OSPF功能後,路由器可以使用一些缺省配置,如OSPF各種協議報文的發送時間間隔、LSA延遲時間、SPF計算時間間隔等,也可以根據需要修改缺省配置。
在OSPF路由器上進行各項配置的時候都應該先做好網絡規劃,在配置同一區域內的路由器時,配置時應該以區域為基礎來統一考慮,錯誤的配置可能會導致相鄰路由器之間無法相互傳遞信息,甚至導致路由信息的阻塞或者產生路由環。
表1-1 OSPF配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
使能OSPF功能 |
必選 |
||
配置OSPF區域 |
配置Stub區域 |
可選 |
|
配置NSSA區域 |
可選 |
||
配置虛連接 |
可選 |
||
配置OSPF的網絡類型 |
配置OSPF接口網絡類型為廣播 |
可選 |
|
配置OSPF接口網絡類型為NBMA |
可選 |
||
配置OSPF接口網絡類型為P2MP |
可選 |
||
配置OSPF接口網絡類型為P2P |
可選 |
||
配置OSPF的路由信息控製 |
配置OSPF路由聚合 |
可選 |
|
配置OSPF對通過接收到的LSA計算出來的路由信息進行過濾 |
可選 |
||
配置對Type-3 LSA進行過濾 |
可選 |
||
配置OSPF接口的開銷值 |
可選 |
||
配置OSPF支持的路由最大數目 |
可選 |
||
配置OSPF最大等價路由條數 |
可選 |
||
配置OSPF協議的優先級 |
可選 |
||
配置OSPF引入外部路由 |
可選 |
||
配置發布一條主機路由 |
可選 |
||
調整和優化OSPF網絡 |
配置OSPF報文定時器 |
可選 |
|
配置接口傳送LSA的延遲時間 |
可選 |
||
配置SPF計算時間間隔 |
可選 |
||
配置LSA重複到達的最小時間間隔 |
可選 |
||
配置LSA重新生成的時間間隔 |
可選 |
||
禁止接口收發OSPF報文 |
可選 |
||
配置Stub路由器 |
可選 |
||
配置OSPF驗證 |
可選 |
||
配置DD報文中的MTU |
可選 |
||
配置LSDB中External LSA的最大數量 |
可選 |
||
配置兼容RFC 1583的外部路由選擇規則 |
可選 |
||
配置鄰接狀態輸出 |
可選 |
||
配置OSPF網管功能 |
可選 |
||
使能日誌功能 |
可選 |
||
使能Opaque LSA發布接收能力 |
可選 |
||
配置OSPF優先處理Hello報文功能 |
可選 |
||
配置OSPF發送更新報文的速度 |
可選 |
||
配置OSPF報文的DSCP優先級 |
可選 |
||
配置OSPF ISPF |
可選 |
||
配置OSPF快速重路由 |
可選 |
||
配置OSPF GR |
配置GR Restarter |
可選 |
|
配置GR Helper |
可選 |
||
重啟OSPF GR進程 |
可選 |
||
配置OSPF與BFD聯動 |
可選 |
在OSPF的各項配置任務中,必須先使能OSPF功能,其它功能特性的配置才能生效。
在配置OSPF之前,需完成以下任務:
· 配置鏈路層協議,保證鏈路層通信正常。
· 配置接口的網絡層地址,使各相鄰節點網絡層可達。
要在路由器上使能OSPF功能,必須先創建OSPF進程、指定該進程關聯的區域以及區域包括的網段;對於當前路由器來說,如果某個路由器的接口IP地址落在某個區域的網段內,則該接口屬於這個區域並使能了OSPF功能,OSPF將把這個接口的直連路由宣告出去。
Router ID用來在一個自治係統中唯一的標識一台路由器,一台路由器如果要運行OSPF協議,則必須存在Router ID。
· 用戶可以在創建OSPF進程的時候指定Router ID,配置時,必須保證自治係統中任意兩台路由器的ID都不相同。通常的做法是將路由器的ID配置為與該路由器某個接口的IP地址一致。
· 如果在創建OSPF進程的時候沒有指定Router ID,則缺省使用全局Router ID。建議用戶在創建OSPF進程的時候指定Router ID。
目前,係統支持OSPF多進程和OSPF多實例:
· 當在一台路由器上啟動多個OSPF進程時,需要指定不同的進程號。OSPF進程號是本地概念,不影響與其它路由器之間的報文交換。因此,不同的路由器之間,即使進程號不同也可以進行報文交換。
· 可以配置OSPF在VPN實例中運行。如果指定了VPN實例,那麼此OSPF進程屬於指定的VPN實例。
表1-2 使能OSPF功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置全局Router ID |
router id router-id |
可選 缺省情況下,未配置全局Router ID 如果沒有配置全局Router ID,則按照下麵的規則進行選擇: (1) 如果存在配置IP地址的Loopback接口,則選擇Loopback接口地址中最大的作為Router ID (2) 如果沒有配置IP地址的Loopback接口,則從其他接口的IP地址中選擇最大的作為Router ID(不考慮接口的up/down狀態) |
創建OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必選 缺省情況下,係統不運行OSPF |
配置OSPF進程描述 |
description description |
可選 缺省情況下,沒有配置進程描述 |
配置OSPF區域,進入OSPF區域視圖 |
area area-id |
必選 缺省情況下,沒有配置OSPF區域 |
配置區域描述 |
description description |
可選 缺省情況下,沒有配置區域描述 |
配置區域所包含的網段並在指定網段的接口上使能OSPF |
network ip-address wildcard-mask |
必選 缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態 |
· 一個網段隻能屬於一個區域。
· 建議用戶為每個OSPF進程配置進程描述信息,幫助識別進程的用途,以便於記憶和管理。
· 建議用戶為每個區域配置區域描述信息,幫助識別區域的用途,以便於記憶和管理。
網絡管理員對整個網絡劃分區域完畢後,可以根據組網需要進一步將區域配置成Stub區域或NSSA區域。
當非骨幹區域不能與骨幹區域保持連通,或者骨幹區域因為各方麵條件的限製無法保持連通時,可以通過配置OSPF虛連接予以解決。
在配置OSPF的區域特性之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點網絡層可達
· 使能OSPF功能
對於位於AS邊緣的一些非骨幹區域,我們可以在該區域的所有路由器上配置stub命令,把該區域配置為Stub區域。這樣,Type5 LSA不會在Stub區域裏泛洪,減小了路由表的規模。ABR生成一條缺省路由,所有到達自治係統外部的報文都交給ABR進行轉發。
如果想進一步減少Stub區域路由表規模以及路由信息傳遞的數量,那麼在ABR上配置stub命令時指定no-summary參數,可以將該區域配置為Totally Stub(完全Stub)區域。這樣,自治係統外部路由和區域間的路由信息都不會傳遞到本區域,所有目的地是自治係統外和區域外的報文都交給ABR進行轉發。
表1-3 配置Stub區域
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置當前區域為Stub區域 |
stub [ default-route-advertise-always | no-summary ] * |
必選 缺省情況下,沒有區域被設置為Stub區域 |
配置ABR發送到Stub區域缺省路由的開銷 |
default-cost cost |
可選 缺省情況下,ABR發送到Stub區域缺省路由的開銷為1 |
· Stub區域內的所有路由器必須使用stub命令將該區域配置成Stub屬性。
· default-cost命令隻有在Stub區域的ABR上配置才能生效。
· 骨幹區域不能配置成(Totally)Stub區域。
· (Totally)Stub區域內不能存在ASBR,即自治係統外部的路由不能在本區域內傳播。
· 虛連接不能穿過(Totally)Stub區域。
Stub區域不能引入外部路由,為了在允許將外部路由通告到OSPF路由域內部的同時,保持其餘部分的Stub區域的特征;網絡管理員可以將區域配置為NSSA區域。
表1-4 配置NSSA區域
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置當前區域為NSSA區域 |
nssa [ default-route-advertise | no-import-route | no-summary | translate-always | translator-stability-interval value ] * |
必選 缺省情況下,沒有區域被設置為NSSA區域 |
配置發送到NSSA區域缺省路由的開銷 |
default-cost cost |
可選 缺省情況下,發送到NSSA區域的缺省路由的開銷為1 |
· NSSA區域內的所有路由器必須使用nssa命令將該區域配置成NSSA屬性。
· default-cost命令隻有在NSSA區域的ABR/ASBR上配置才能生效。
在劃分區域之後,非骨幹區域之間的OSPF路由更新是通過骨幹區域來完成交換的。對此,OSPF要求所有非骨幹區域必須與骨幹區域保持連通,並且骨幹區域自身也要保持連通。
但在實際應用中,可能會因為各方麵條件的限製,無法滿足這個要求。這時可以通過在ABR上配置OSPF虛連接予以解決。
表1-5 配置虛連接
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
創建並配置虛連接 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | simple [ plain | cipher ] password | { md5 | hmac-md5 } key-id [ plain | cipher ] password ] * |
必選 為使虛連接生效,在虛連接的兩端都需配置此命令,並且兩端配置的hello、dead參數必須一致 |
OSPF的網絡類型有四種:廣播、NBMA、P2MP和P2P。
當接口封裝的鏈路層協議不同時,OSPF接口網絡類型的缺省值也不同:
· 廣播:當接口封裝的鏈路層協議是Ethernet、FDDI時,接口網絡類型缺省值為廣播;
· NBMA:當接口封裝的鏈路層協議是ATM、幀中繼或X.25時,接口網絡類型缺省值為NBMA;
· 點對點:當接口封裝的鏈路層協議是PPP、LAPB、HDLC時,接口網絡類型缺省值為點對點。
用戶可以根據需要更改接口的網絡類型,例如:
· 當NBMA網絡通過配置地址映射成為全連通網絡時(即網絡中任意兩台路由器之間都存在一條虛電路而直接可達),可以將網絡類型更改為廣播,不需要手工配置鄰居,簡化配置。
· 當廣播網絡中有部分路由器不支持組播時,那麼可以將網絡類型更改為NBMA。
· NBMA網絡要求必須是全連通的,即網絡中任意兩台路由器之間都必須有一條虛電路直接可達;如果NBMA網絡不是全連通而是部分連通時,可以將網絡類型更改為點對多點,達到簡化配置、節省網絡開銷的目的。
· 如果路由器在NBMA網絡中隻有一個對端,也可將接口類型配置為P2P,節省網絡開銷。
如果接口配置為廣播、NBMA或者P2MP網絡類型,隻有雙方接口在同一網段才能建立鄰居關係。
在配置OSPF的網絡類型之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點之間網絡層可達
· 使能OSPF功能
表1-6 配置OSPF接口網絡類型為廣播
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPF接口網絡類型為廣播 |
ospf network-type broadcast |
必選 缺省情況下,接口的網絡類型根據接口封裝的鏈路層協議而定 |
配置OSPF接口的路由器優先級 |
ospf dr-priority priority |
可選 缺省情況下,接口的路由器優先級為1 |
把接口類型配置為NBMA後,需要進行一些特殊的配置。
由於無法通過廣播Hello報文的形式動態發現相鄰路由器,必須手工為接口指定相鄰接口的IP地址、該相鄰接口是否有選舉權等(dr-priority參數的值僅表示路由器是否具有DR選舉權,為0表示不具有DR選舉權,大於0時表示具有DR選舉權)。
表1-7 配置OSPF接口網絡類型為NBMA
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPF接口的網絡類型為NBMA |
ospf network-type nbma |
必選 缺省情況下,接口的網絡類型根據物理接口而定 |
配置OSPF接口的路由器優先級 |
ospf dr-priority priority |
可選 缺省情況下,接口的路由器優先級為1 |
退回係統視圖 |
quit |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置NBMA網絡的鄰居 |
peer ip-address [ cost value | dr-priority dr-priority ] |
必選 |
使用peer命令和使用ospf dr-priority命令設置的優先級具有不同的用途:
· peer命令設置的優先級用於表示鄰居是否具有選舉權。如果在配置鄰居時將優先級指定為0,則本地路由器認為該鄰居不具備選舉權,不向該鄰居發送Hello報文,這種配置可以減少在DR和BDR選舉過程中網絡上的Hello報文數量。但如果本地路由器是DR或BDR,它也會向優先級為0的鄰居發送Hello報文,以建立鄰居關係。
· ospf dr-priority命令設置的優先級用於實際的DR選舉。
表1-8 配置OSPF接口網絡類型為P2MP
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPF接口的網絡類型為P2MP |
ospf network-type p2mp [ unicast ] |
必選 缺省情況下,接口的網絡類型根據物理接口而定 當把接口類型配置為P2MP單播後,OSPF協議在該接口上發送的報文均為單播報文。由於無法通過廣播Hello報文的形式動態發現相鄰路由器,必須手工為接口指定相鄰接口的IP地址 |
退回係統視圖 |
quit |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置P2MP單播網絡的鄰居 |
peer ip-address [ cost value | dr-priority dr-priority ] |
如果接口類型為P2MP單播,必選 |
表1-9 配置OSPF接口網絡類型為P2P
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPF接口的網絡類型為P2P |
ospf network-type p2p |
必選 缺省情況下,接口的網絡類型根據物理接口而定 |
通過本節的配置,可以控製OSPF的路由信息的發布與接收,並引入其他協議的路由。
在配置OSPF路由信息控製之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點之間網絡層可達
· 使能OSPF功能
· 如果對路由信息進行過濾,則需要配置對應的過濾列表
路由聚合是指ABR或ASBR將具有相同前綴的路由信息聚合,隻發布一條路由到其它區域。
AS被劃分成不同的區域後,每一個區域通過OSPF邊界路由器(ABR)相連,區域間可以通過路由聚合來減少路由信息,減小路由表的規模,提高路由器的運算速度。
ABR在計算出一個區域的區域內路由之後,根據聚合相關設置,將其中多條OSPF路由聚合成一條發送到區域之外。例如,某個區域內有三條區域內路由19.1.1.0/24,19.1.2.0/24,19.1.3.0/24,如果在ABR上配置了路由聚合,將三條路由聚合成一條19.1.0.0/16,則ABR就隻生成一條聚合後的LSA,並發布給其它區域的路由器。
如果區域裏存在一些連續的網段,則可以在ABR上配置路由聚合,將這些連續的網段聚合成一個網段,ABR向其它區域發送路由信息時,以網段為單位生成Type3 LSA。
這樣ABR隻發送一條聚合後的LSA,所有屬於聚合網段範圍的LSA將不再會被單獨發送出去,既可以減少其它區域中LSDB的規模,也減小了因為網絡拓撲變化帶來的影響。
表1-10 配置ABR路由聚合
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置OSPF的ABR路由聚合 |
abr-summary ip-address { mask | mask-length } [ advertise | not-advertise ] [ cost cost ] |
必選 此命令隻有在ABR上配置才會有效 缺省情況下,ABR不會對路由進行聚合 |
ASBR引入外部路由後,每一條路由都會放在單獨的一條ASE LSA中向外宣告;通過配置路由聚合,路由器隻把聚合後的路由放在ASE LSA中向外宣告,減少了LSDB中LSA的數量。
在ASBR上配置路由聚合後,將對聚合地址範圍內的Type5 LSA進行聚合。
如果ASBR在NSSA區域裏麵,將對聚合地址範圍內的Type7 LSA進行聚合,當本地路由器同時是ASBR和ABR時,將對由Type7 LSA轉化成的Type5 LSA進行聚合處理。
表1-11 配置ASBR路由聚合
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF的ASBR路由聚合 |
asbr-summary ip-address { mask | mask-length } [ tag tag | not-advertise | cost cost ] * |
必選 此命令隻有在ASBR上配置才會有效 缺省情況下,ASBR不會對引入的路由進行聚合 |
· 關於地址前綴列表的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
· 關於路由策略的詳細介紹,請參見“三層技術-IP路由配置指導”中的“路由策略”。
OSPF是基於鏈路狀態的動態路由協議,路由信息是根據接收到的LSA計算出來的,可以對通過接收到的LSA計算出來的OSPF路由信息進行過濾。
一共有四種過濾方式:
· 基於要加入到路由表的路由信息的目的地址進行過濾,可以通過配置訪問控製列表或IP地址前綴列表來指定過濾條件;
· 基於要加入到路由表的路由信息的下一跳進行過濾,可以通過在命令中配置gateway參數來指定過濾條件;
· 基於要加入到路由表的路由信息的目的地址和下一跳進行過濾,可以通過配置訪問控製列表或IP地址前綴列表指定過濾目的地址的條件,同時配置gateway參數來指定過濾下一跳的條件;
· 基於路由策略對要加入到路由表的路由信息進行過濾,可以通過在命令中配置route-policy參數來指定過濾條件。
表1-12 配置OSPF對通過接收到的LSA計算出來的路由信息進行過濾
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置對接收的路由進行過濾 |
filter-policy { acl-number [ gateway ip-prefix-name ] | gateway ip-prefix-name | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] | route-policy route-policy-name } import |
必選 缺省情況下,不對接收到的路由信息進行過濾 |
通過在ABR上配置Type-3 LSA過濾,可以對進入ABR所在區域或ABR向其它區域發布的Type-3 LSA進行過濾。
表1-13 配置過濾Type-3 LSA
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置對Type-3 LSA進行過濾 |
filter { acl-number | ip-prefix ip-prefix-name } { import | export } |
必選 缺省情況下,沒有對Type-3 LSA進行過濾 |
OSPF有兩種方式來配置接口的開銷值:
· 在接口視圖下直接配置開銷值;
· 配置接口的帶寬參考值,OSPF根據帶寬參考值自動計算接口的開銷值,計算公式為:接口開銷=帶寬參考值(100Mbps)÷接口帶寬(Mbps)。當計算出來的開銷值大於65535時,開銷取最大值65535;當計算出來的開銷值小於1時,開銷取最小值1。
如果沒有在接口下配置接口的開銷值,OSPF會根據該接口的帶寬自動計算其開銷值。
表1-14 配置OSPF接口的開銷值
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
設置OSPF接口的開銷值 |
ospf cost value |
可選 缺省情況下,VLAN接口的缺省值為1;Loopback接口的缺省值為0;其他接口按照當前的帶寬自動計算接口運行OSPF協議所需的開銷 |
表1-15 配置帶寬參考值
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置帶寬參考值 |
bandwidth-reference value |
可選 缺省情況下,帶寬參考值為100Mbps |
表1-16 配置OSPF支持的路由最大數目
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF支持的路由最大數目 |
maximum-routes { external | inter | intra } number |
可選 本命令的缺省值與設備的型號有關,請以設備的實際情況為準 |
如果到一個目的地有幾條開銷相同的路徑,可以實現等價路由負載分擔,IP報文在這幾個鏈路上負載分擔,以提高鏈路利用率。該配置用以設置OSPF協議的最大等價路由條數。
表1-17 配置OSPF最大等價路由條數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF最大等價路由條數 |
maximum load-balancing maximum |
可選 缺省值為8 |
由於路由器上可能同時運行多個動態路由協議,就存在各個路由協議之間路由信息共享和選擇的問題。係統為每一種路由協議設置一個優先級,在不同協議發現同一條路由時,優先級高的路由將被優先選擇。
表1-18 配置OSPF協議的優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF協議的路由優先級 |
preference [ ase ] [ route-policy route-policy-name ] value |
可選 缺省情況下,OSPF內部路由的優先級為10,OSPF外部路由的優先級為150 |
如果在路由器上不僅運行OSPF,還運行著其它路由協議,可以配置OSPF引入其它協議生成的路由,如RIP、IS-IS、BGP、靜態路由或者直連路由,將這些路由信息通過Type5 LSA或Type7 LSA向外宣告。
OSPF還可以對引入的路由進行過濾,隻將滿足過濾條件的外部路由轉換為Type5 LSA或Type7 LSA發布出去。
表1-19 配置OSPF引入其它協議的路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF引入其它協議的路由 |
import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * |
必選 缺省情況下,沒有引入其他協議的路由信息 |
配置對引入的路由進行過濾 |
filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ process-id ] ] |
可選 缺省情況下,沒有對引入的路由信息進行過濾 |
隻能引入路由表中狀態為active的路由,是否為active狀態可以通過display ip routing-table protocol命令來查看。
OSPF不能通過import-route命令從其它協議引入缺省路由,如果想把缺省路由引入到OSPF路由區域,必須要使用下麵命令配置OSPF引入缺省路由。
表1-20 配置OSPF引入缺省路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF引入缺省路由 |
default-route-advertise [ [ [ always | permit-calculate-other ] | cost cost | route-policy route-policy-name | type type ] * | summary cost cost ] |
必選 缺省情況下,沒有引入缺省路由 |
default-route-advertise summary cost命令僅在VPN中應用,以Type-3 LSA引入缺省路由,PE路由器會將引入的缺省路由發布給CE路由器。
當OSPF引入外部路由時,還可以配置一些開銷、路由上限、標記和類型等參數的缺省值。路由標記可以用來標識協議相關的信息,如OSPF從BGP引入路由時,可以用來標記自治係統的編號。
表1-21 配置引入路由時的相關參數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置引入外部路由時的參數缺省值(開銷、路由上限、標記、類型) |
default { cost cost | limit limit | tag tag | type type } * |
可選 缺省情況下,OSPF引入外部路由的缺省值如下: · 路由度量值為1 · 單位時間內引入外部路由數量的上限為1000 · 外部路由標記值為1 · 引入的外部路由類型為Type2 |
表1-22 配置發布一條主機路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置並發布一條主機路由 |
host-advertise ip-address cost |
必選 缺省情況下,OSPF不發布所包含網段之外的主機路由 |
用戶可以從以下幾個方麵來調整和優化OSPF網絡:
· 通過改變OSPF的報文定時器,可以調整OSPF網絡的收斂速度以及協議報文帶來的網絡負荷。在一些低速鏈路上,需要考慮接口傳送LSA的延遲時間。
· 通過調整SPF計算間隔時間,可以抑製由於網絡頻繁變化帶來的資源消耗問題。
· 在安全性要求較高的網絡中,可以通過配置OSPF驗證特性,來提高OSPF網絡的安全性。
· OSPF同時支持網管功能,可以配置OSPF MIB與某一進程綁定,以及發送Trap消息和日誌功能。
在調整和優化OSPF網絡之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點之間網絡層可達
· 使能OSPF功能
用戶可以在接口上配置下列OSPF報文定時器:
· Hello定時器:接口向鄰居發送Hello報文的時間間隔,OSPF鄰居之間的Hello定時器的值要保持一致。
· Poll定時器:在NBMA網絡中,路由器向狀態為down的鄰居路由器發送輪詢Hello報文的時間間隔。
· 鄰居失效時間:在鄰居失效時間內,如果接口還沒有收到鄰居發送的Hello報文,路由器就會宣告該鄰居無效。
· 接口重傳LSA的時間間隔:路由器向它的鄰居通告一條LSA後,需要對方進行確認。若在重傳間隔時間內沒有收到對方的確認報文,就會向鄰居重傳這條LSA。
表1-23 配置OSPF報文定時器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置Hello定時器 |
ospf timer hello seconds |
可選 缺省情況下,P2P、Broadcast類型接口發送Hello報文的時間間隔為10秒,P2MP、NBMA類型接口發送Hello報文的時間間隔為30秒 |
配置Poll定時器 |
ospf timer poll seconds |
可選 缺省情況下,發送輪詢Hello報文的時間間隔為120秒 |
配置鄰居失效時間 |
ospf timer dead seconds |
可選 缺省情況下,P2P、Broadcast類型接口的OSPF鄰居失效時間為40秒,P2MP、NBMA類型接口的OSPF鄰居失效時間為120秒 |
配置接口重傳LSA的時間間隔 |
ospf timer retransmit interval |
可選 缺省情況下,時間間隔為5秒 |
· 修改了網絡類型後,Hello定時器與鄰居失效時間都將恢複缺省值。
· 在同一接口上鄰居失效時間應至少為Hello時間間隔的4倍。
· 輪詢Hello報文的時間間隔至少應為Hello時間間隔的4倍。
· 相鄰路由器重傳LSA時間間隔的值不要設置得太小,否則將會引起不必要的重傳。通常應該大於一個報文在兩台路由器之間傳送一個來回的時間。
考慮到OSPF報文在鏈路上傳送時也需要花費時間,所以LSA的老化時間(age)在傳送之前要增加一定的延遲時間,在低速鏈路上需要對該項配置進行重點考慮。
表1-24 配置接口傳送LSA的延遲時間
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口傳送LSA的延遲時間 |
ospf trans-delay seconds |
可選 缺省情況下,接口傳送LSA的延遲時間為1秒 |
當OSPF的鏈路狀態數據庫(LSDB)發生改變時,需要重新計算最短路徑。如果網絡頻繁變化,且每次變化都立即計算最短路徑,將會占用大量係統資源,並影響路由器的效率。通過調節SPF計算時間間隔,可以抑製由於網絡頻繁變化帶來的影響。
表1-25 配置SPF計算時間間隔
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置SPF計算時間間隔 |
spf-schedule-interval maximum-interval [ minimum-interval [ incremental-interval ] ] |
可選 缺省情況下,SPF計算的時間間隔為5秒 |
本命令在網絡變化不頻繁的情況下將連續路由計算的時間間隔縮小到minimum-interval,而在網絡變化頻繁的情況下可以進行相應懲罰,增加incremental-interval×2n-2(n為連續觸發路由計算的次數),將等待時間按照配置的懲罰增量延長,最大不超過maximum-interval。
如果在重複到達的最小時間間隔內連續收到一條LSA類型、LS ID、生成路由器ID均相同的LSA則直接丟棄,這樣就可以抑製網絡頻繁變化可能導致的占用過多帶寬資源和路由器資源。
表1-26 配置LSA的重複接收最小間隔
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSA重複到達的最小時間間隔 |
lsa-arrival-interval interval |
可選 缺省情況下,LSA重複到達的最小時間間隔為1000毫秒 |
建議lsa-arrival-interval命令配置的interval小於或等於lsa-generation-interval命令所配置的minimum-interval。
通過調節LSA重新生成的時間間隔,可以抑製網絡頻繁變化可能導致的占用過多帶寬資源和路由器資源。
表1-27 配置LSA發送間隔
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSA重新生成的時間間隔 |
lsa-generation-interval maximum-interval [ initial-interval [ incremental-interval ] ] |
可選 缺省情況下,最大時間間隔為5秒,最小時間間隔為0毫秒,懲罰增量為5000毫秒 |
本命令在網絡變化不頻繁的情況下將LSA重新生成時間間隔縮小到minimum-interval,而在網絡變化頻繁的情況下可以進行相應懲罰,增加incremental-interval×2n-2(n為連續觸發路由計算的次數),將等待時間按照配置的懲罰增量延長,最大不超過maximum-interval。
如果要使OSPF路由信息不被某一網絡中的路由器獲得,可以禁止接口收發OSPF報文。
表1-28 禁止接口收發OSPF報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
禁止接口收發OSPF報文 |
silent-interface { interface-type interface-number | all } |
可選 缺省情況下,允許接口收發OSPF報文 |
· 不同的進程可以對同一接口禁止收發OSPF報文,但silent-interface命令隻對本進程已經使能的OSPF接口起作用,對其它進程的接口不起作用。
· 將運行OSPF協議的接口指定為Silent狀態後,該接口的直連路由仍可以由同一路由器的其它接口通過Router-LSA發布出去,但OSPF報文將被阻塞,接口上無法建立鄰居關係。這樣可以增強OSPF的組網適應能力,減少係統資源的消耗。
Stub路由器用來控製流量,它告知其他OSPF路由器不要使用這個Stub路由器來轉發數據,但可以擁有一個到Stub路由器的路由。
通過將當前路由器配置為Stub路由器,在該路由器發布的Router-LSA中,當鏈路類型取值為3表示連接到Stub網絡時,鏈路度量值不變;當鏈路類型為1、2、4分別表示通過點對點鏈路與另一路由器相連、連接到傳送網絡、虛連接時,鏈路度量值將設置為最大值65535。
這樣其鄰居計算出這條路由的開銷就會很大,如果鄰居上有到這個目的地址開銷更小的路由,則數據不會通過這個Stub路由器轉發。
表1-29 配置Stub路由器
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置Stub路由器 |
stub-router |
必選 缺省情況下,沒有路由器被配置為Stub路由器 |
Stub路由器與Stub區域無關。
從安全性角度來考慮,為了避免路由信息外泄或者對OSPF路由器進行惡意攻擊,OSPF提供報文驗證功能。
OSPF路由器建立鄰居關係時,在發送的報文中會攜帶配置好的口令,接收報文時進行密碼驗證,隻有通過驗證的報文才能接收,否則將不會接收報文,不能正常建立鄰居。
要配置OSPF報文驗證,同一個區域的所有路由器上都需要配置區域驗證模式,且配置的驗證模式必須相同,同一個網段內的路由器需要配置相同的接口驗證模式和口令。
表1-30 配置OSPF驗證
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置OSPF區域的驗證模式 |
authentication-mode { md5 | simple } |
必選 缺省情況下,沒有配置區域驗證模式 |
退回OSPF視圖 |
quit |
- |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPF接口的驗證模式(簡單驗證) |
ospf authentication-mode simple [ cipher | plain ] password |
二者必選其一 缺省情況下,接口不對OSPF報文進行驗證 |
配置OSPF接口的驗證模式(MD5驗證) |
ospf authentication-mode { hmac-md5 | md5 } key-id [ cipher | plain ] password |
一般情況下,接口發送DD報文時不使用接口的實際MTU值,而是用0代替。進行此配置後,將使用接口的實際MTU值填寫DD報文Interface MTU字段。
表1-31 配置DD報文中的MTU
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置DD報文中MTU域的值為發送該報文接口的MTU值 |
ospf mtu-enable |
可選 缺省情況下,接口發送的DD報文中MTU域的值為0 |
表1-32 配置LSDB中External LSA的最大數量
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSDB中External LSA的最大數量 |
lsdb-overflow-limit number |
可選 缺省情況下,不對LSDB中External LSA的最大條目數進行限製 |
當通過多條LSA計算出同一條外部路由時,在RFC 2328中定義的選路規則與RFC 1583的有所不同,進行此配置可以兼容RFC 1583中定義的方式。當RFC 2328兼容RFC 1583時,優選骨幹區的區域內路由;當RFC 2328不兼容RFC 1583時,優選非骨幹區的區域內路由,這樣做的目的是盡量減少骨幹區的負擔。
表1-33 配置兼容RFC 1583的外部路由選擇規則
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置兼容RFC 1583的外部路由選擇規則 |
rfc1583 compatible |
可選 缺省情況下,使能兼容RFC 1583的選路規則 |
為了避免路由環路,對於是否兼容RFC 1583的外部路由選擇規則,同一路由域內的路由器建議配置相同,即要麼配置所有路由器都兼容RFC 1583的外部路由選擇規則,要麼配置所有路由器都不兼容RFC 1583的外部路由選擇規則。
表1-34 配置鄰居狀態變化的輸出開關
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF日誌記錄功能,記錄鄰居關係連接以及斷開事件的日誌信息 |
log-peer-change |
可選 缺省情況下,使能OSPF日誌記錄功能 |
開啟OSPF模塊的Trap功能後,該模塊會生成Trap報文,用於報告該模塊的重要事件。Trap報文的級別如下:
· 錯誤級別Trap報文,級別為level3;
· 警告級別Trap報文,級別為level4;
· 正常出現但是重要信息級別Trap報文,級別為level5;
· 通知信息級別Trap報文,級別為level6。
生成的Trap報文將被發送到設備的信息中心,通過設置信息中心的參數,最終決定Trap報文的輸出規則(即是否允許輸出以及輸出方向)。(有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。)
表1-35 配置OSPF網管功能
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
配置OSPF MIB綁定 |
ospf mib-binding process-id |
可選 缺省情況下,MIB綁定在進程號最小的OSPF進程上 |
使能OSPF的TRAP功能 |
snmp-agent trap enable ospf [ process-id ] [ ifauthfail | ifcfgerror | ifrxbadpkt | ifstatechange | iftxretransmit | lsdbapproachoverflow | lsdboverflow | maxagelsa | nbrstatechange | originatelsa | vifcfgerror | virifauthfail | virifrxbadpkt | virifstatechange | viriftxretransmit | virnbrstatechange ] * |
可選 缺省情況下,OSPF的TRAP功能處於使能狀態 |
表1-36 使能日誌功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能日誌功能 |
enable log [ config | error | state ] |
必選 缺省情況下,日誌功能處於關閉狀態 |
通過使能Opaque LSA發布接收能力,OSPF可以接收和發布Type9、Type10和Type11的Opaque LSA。
表1-37 使能Opaque LSA發布接收能力
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能Opaque LSA發布接收能力 |
opaque-capability enable |
可選 缺省情況下,Opaque LSA發布接收能力處於關閉狀態 |
為了保證協議的正常運行,路由器要同時接收和處理Hello報文和其它類型的協議報文,當路由器與多個鄰居路由器同時建立鄰居關係並且路由表中的路由條數比較多時,需要路由器接收和處理的報文數量會很大,可以通過配置OSPF優先接收和處理Hello報文,來確保鄰居關係的穩定性。
表1-38 配置OSPF優先接收和處理Hello報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置OSPF優先接收和處理Hello報文 |
ospf packet-process prioritized-treatment |
必選 缺省情況下,OSPF不優先接收和處理Hello報文 |
如果路由器路由表裏的路由條目很多,在與鄰居進行LSDB同步時,可能需要發送大量LSU,有可能會對當前設備和網絡帶寬帶來影響;因此,路由器將LSU報文分為多個批次進行發送,並且對OSPF接口每次允許發送的LSU報文的最大個數做出限製。
用戶可根據需要配置OSPF接口發送LSU報文的時間間隔以及接口一次發送LSU報文的最大個數。
表1-39 配置LSU報文的發送速率
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSU報文的發送速率 |
transmit-pacing interval interval count count |
可選 缺省情況下,OSPF接口發送LSU報文的時間間隔為20毫秒,一次最多發送3個LSU報文 |
在IPv4報文頭中,包含一個8bit的ToS字段,用於標識IP報文的服務類型。RFC 2474對這8個bit進行了定義,將前6個bit定義為DSCP優先級,最後2個bit作為保留位。在報文傳輸的過程中,DSCP優先級可以被網絡設備識別,並作為報文傳輸優先程度的參考。
用戶可以對OSPF報文的DSCP優先級進行配置。
表1-40 配置OSPF報文的DSCP優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
必選 缺省情況下,係統不運行OSPF |
配置OSPF報文的DSCP優先級 |
dscp dscp-value |
可選 缺省情況下,OSPF報文的DSCP優先級為48 |
ISPF(Incremental Shortest Path First,增量最短路徑優先)計算是對OSPF中最短路徑樹的增量計算,當網絡的拓撲結構發生變化,即影響到最短路徑樹的結構時,隻對受影響的部分節點進行重新計算拓撲結構,對最短路徑樹中受影響的部分進行修正,而不需要重建整棵最短路徑樹。
表1-41 配置OSPF ISPF
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance instance-name ] * |
- |
使能OSPF ISPF功能,即增量SPF計算功能 |
ispf enable |
可選 缺省情況下,OSPF ISPF功能處於關閉狀態 |
· OSPF支持快速重路由功能不能與OSPF支持BFD監測同時使用,否則可能導致快速重路由功能失效。
· OSPF支持快速重路由功能(自動計算備份下一跳)不能與vlink-peer命令同時使用。
當OSPF網絡中的鏈路或某台路由器發生故障時,需要通過故障鏈路或故障路由器傳輸才能到達目的地的報文將會丟失或產生路由環路,數據流量將會被中斷,直到OSPF根據新的拓撲網絡路由收斂完畢後,被中斷的流量才能恢複正常的傳輸。
為了盡可能縮短網絡故障導致的流量中斷時間,網絡管理員可以根據需要配置OSPF快速重路由功能。
圖1-21 OSPF快速重路由功能示意圖
如圖1-21所示,通過在Router B上使能快速重路由功能,OSPF將為路由計算或指定備份下一跳,當Router B探測到網絡故障時,OSPF會使用事先獲取的備份下一跳替換失效下一跳,通過備份下一跳來指導報文的轉發,從而大大縮短了流量中斷時間。在使用備份下一跳指導報文轉發的同時,OSPF會根據變化後的網絡拓撲重新計算最短路徑,網絡收斂完畢後,使用新計算出來的最優路由來指導報文轉發。
網絡管理員可以配置給所有OSPF路由自動計算備份下一跳,也可以在路由策略中指定備份下一跳,為符合過濾條件的路由指定備份下一跳。
在配置OSPF快速重路由特性之前,需完成以下任務:
· 配置接口的網絡層地址,使相鄰節點網絡層可達
· 使能OSPF功能
表1-42 配置OSPF支持快速重路由功能(自動計算備份下一跳)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置BFD Echo報文源地址 |
bfd echo-source-ip ip-address |
必選 缺省情況下,沒有配置BFD Echo報文源地址 |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF支持快速重路由功能(自動計算備份下一跳) |
fast-reroute auto [ abr-only ] |
必選 缺省情況下,沒有配置OSPF快速重路由功能 abr-only表示僅選取到ABR設備的路由作為備份下一跳 |
網絡管理員可以通過apply fast-reroute backup-interface命令在路由策略中指定備份下一跳,為符合過濾條件的路由指定備份下一跳,關於apply fast-reroute backup-interface命令以及路由策略的相關配置,請參見“三層技術-IP路由配置指導”中的“路由策略”。
表1-43 配置OSPF支持快速重路由功能(通過路由策略指定備份下一跳)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置BFD Echo報文源地址 |
bfd echo-source-ip ip-address |
必選 缺省情況下,沒有配置BFD Echo報文源地址 |
進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF支持快速重路由功能(通過路由策略指定備份下一跳) |
fast-reroute route-policy route-policy-name |
必選 缺省情況下,沒有配置OSPF快速重路由功能 |
目前有兩種方式實現OSPF GR技術:
· 一種是基於IETF標準,GR Restarter通過向GR Helper發送一種稱為Grace LSA的9類Opaque LSA來控製GR的交互過程。
· 另外一種是非IETF標準,GR Restarter與GR Helper之間是通過相互發送攜帶LLS與OOB擴展信息的OSPF報文來完成GR的交互過程。
一台設備可以同時充當GR Restarter和GR Helper。
可以在GR Restarter上配置基於OSPF的IETF標準或非IETF標準的GR能力。在作為GR Restarter的設備上進行如下配置:
表1-44 配置IETF標準GR Restarter
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
啟動OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能Opaque LSA發布接收能力 |
opaque-capability enable |
必選 缺省情況下,Opaque LSA發布接收能力處於關閉狀態 |
使能OSPF協議的IETF標準GR能力 |
graceful-restart ietf |
必選 缺省情況下,OSPF協議的IETF標準GR能力處於關閉狀態 |
配置OSPF協議的GR重啟間隔時間 |
graceful-restart interval timer |
可選 缺省情況下,OSPF協議的GR重啟間隔時間為120秒 |
表1-45 配置非IETF標準GR Restarter
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
啟動OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF本地鏈路信令能力 |
enable link-local-signaling |
必選 缺省情況下,OSPF本地鏈路信令能力處於關閉狀態 |
使能OSPF帶外同步能力 |
enable out-of-band-resynchronization |
必選 缺省情況下,OSPF帶外同步能力處於關閉狀態 |
使能OSPF協議的非IETF標準GR能力 |
graceful-restart [ nonstandard ] |
必選 缺省情況下,OSPF協議的非IETF標準GR能力處於關閉狀態 |
配置OSPF協議的GR重啟間隔時間 |
graceful-restart interval timer |
可選 缺省情況下,OSPF協議的GR重啟間隔時間為120秒 |
可以在作為GR Helper的設備上配置基於OSPF的IETF標準或非IETF標準的GR Helper能力。在作為GR Helper的設備上進行如下配置:
表1-46 配置IETF標準GR Helper
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
啟動OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能Opaque LSA發布接收能力 |
opaque-capability enable |
必選 缺省情況下,Opaque LSA發布接收能力處於關閉狀態 |
配置允許設備可以作哪些OSPF鄰居的GR Helper |
graceful-restart help { acl-number | prefix prefix-list } |
可選 缺省情況下,設備可以作任一OSPF鄰居的GR Helper |
表1-47 配置非IETF標準GR Helper
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
啟動OSPF,進入OSPF視圖 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF本地鏈路信令能力 |
enable link-local-signaling |
必選 缺省情況下,OSPF本地鏈路信令能力處於關閉狀態 |
使能OSPF帶外同步能力 |
enable out-of-band-resynchronization |
必選 缺省情況下,OSPF帶外同步能力處於關閉狀態 |
配置允許設備可以作哪些OSPF鄰居的GR Helper |
graceful-restart help { acl-number | prefix prefix-list } |
可選 缺省情況下,設備可以作任一OSPF鄰居的GR Helper |
發生Master/Slave切換或者路由器上進行如下操作均可以以GR方式重啟OSPF進程。
表1-48 以GR方式重啟OSPF進程
操作 |
命令 |
說明 |
以GR方式重啟OSPF進程 |
reset ospf [ process-id ] process graceful-restart |
必選 請在用戶視圖下執行該命令 |
OSPF使用BFD來進行快速故障檢測時,提供兩種檢測方式:
· control報文雙向檢測:需要建立OSPF鄰居的兩端設備均支持BFD配置。
· echo報文單跳檢測:僅需要一端設備支持BFD配置。
表1-49 配置OSPF與BFD聯動(control報文雙向檢測)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
指定接口上使能BFD |
ospf bfd enable |
必選 缺省情況下,運行OSPF的接口未使能BFD提供的鏈路檢測功能 |
表1-50 配置OSPF與BFD聯動(echo報文單跳檢測)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置echo報文源地址 |
bfd echo-source-ip ip-address |
必選 缺省情況下,沒有配置echo報文源地址 |
進入接口視圖 |
interface interface-type interface-number |
- |
指定接口上使能BFD功能 |
ospf bfd enable echo |
必選 缺省情況下,運行OSPF的接口未使能BFD提供的鏈路檢測功能 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後OSPF的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以複位OSPF計數器或連接。
表1-51 OSPF顯示和維護
操作 |
命令 |
顯示OSPF的概要信息 |
display ospf [ process-id ] brief [ | { begin | exclude | include } regular-expression ] |
顯示OSPF的統計信息 |
display ospf [ process-id ] cumulative [ | { begin | exclude | include } regular-expression ] |
顯示OSPF的LSDB信息 |
display ospf [ process-id ] lsdb [ brief | [ { ase | router | network | summary | asbr | nssa | opaque-link | opaque-area | opaque-as } [ link-state-id ] ] [ originate-router advertising-router-id | self-originate ] ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF鄰居的信息 |
display ospf [ process-id ] peer [ verbose ] [ interface-type interface-number ] [ neighbor-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF各區域鄰居的統計信息 |
display ospf [ process-id ] peer statistics [ | { begin | exclude | include } regular-expression ] |
顯示OSPF下一跳信息 |
display ospf [ process-id ] nexthop [ | { begin | exclude | include } regular-expression ] |
顯示OSPF路由表的信息 |
display ospf [ process-id ] routing [ interface interface-type interface-number ] [ nexthop nexthop-address ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF虛連接信息 |
display ospf [ process-id ] vlink [ | { begin | exclude | include } regular-expression ] |
顯示OSPF請求列表 |
display ospf [ process-id ] request-queue [ interface-type interface-number ] [ neighbor-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF重傳列表 |
display ospf [ process-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF ABR及ASBR信息 |
display ospf [ process-id ] abr-asbr [ | { begin | exclude | include } regular-expression ] |
顯示OSPF接口信息 |
display ospf [ process-id ] interface [ all | interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPF錯誤信息 |
display ospf [ process-id ] error [ | { begin | exclude | include } regular-expression ] |
顯示OSPF ASBR聚合信息 |
display ospf [ process-id ] asbr-summary [ ip-address { mask | mask-length } ] [ | { begin | exclude | include } regular-expression ] |
顯示全局Router ID |
display router id [ | { begin | exclude | include } regular-expression ] |
清除OSPF計數器 |
reset ospf [ process-id ] counters [ neighbor [ interface-type interface-number ] [ router-id ] ] |
重啟OSPF進程 |
reset ospf [ process-id ] process [ graceful-restart ] |
重新向OSPF引入外部路由 |
reset ospf [ process-id ] redistribution |
在配置舉例中,隻列出了與OSPF配置相關的命令。
· 所有的交換機都運行OSPF,並將整個自治係統劃分為3個區域。
· 其中Switch A和Switch B作為ABR來轉發區域之間的路由。
· 配置完成後,每台交換機都應學到AS內的到所有網段的路由。
圖1-22 OSPF基本配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本配置
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.1] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] area 2
[SwitchB-ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.2] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] network 10.4.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ospf
[SwitchD-ospf-1] area 2
[SwitchD-ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.2] network 10.5.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.2] quit
[SwitchD-ospf-1] quit
(3) 檢驗配置結果
# 查看Switch A的OSPF鄰居。
[SwitchA] display ospf peer verbose
OSPF Process 1 with Router ID 10.2.1.1
Neighbors
Area 0.0.0.0 interface 10.1.1.1(Vlan-interface100)'s neighbors
Router ID: 10.3.1.1 Address: 10.1.1.2 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 10.1.1.1 BDR: 10.1.1.2 MTU: 0
Dead timer due in 37 sec
Neighbor is up for 06:03:59
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
Neighbors
Area 0.0.0.1 interface 10.2.1.1(Vlan-interface200)'s neighbors
Router ID: 10.4.1.1 Address: 10.2.1.2 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 10.2.1.1 BDR: 10.2.1.2 MTU: 0
Dead timer due in 32 sec
Neighbor is up for 06:03:12
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
# 顯示Switch A的OSPF路由信息。
[SwitchA] display ospf routing
OSPF Process 1 with Router ID 10.2.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 10 Transit 10.2.1.1 10.2.1.1 0.0.0.1
10.3.1.0/24 4 Inter 10.1.1.2 10.3.1.1 0.0.0.0
10.4.1.0/24 13 Stub 10.2.1.2 10.4.1.1 0.0.0.1
10.5.1.0/24 14 Inter 10.1.1.2 10.3.1.1 0.0.0.0
10.1.1.0/24 2 Transit 10.1.1.1 10.2.1.1 0.0.0.0
Total Nets: 5
Intra Area: 3 Inter Area: 2 ASE: 0 NSSA: 0
# 顯示Switch A的LSDB。
[SwitchA] display ospf lsdb
OSPF Process 1 with Router ID 10.2.1.1
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.1.1 10.2.1.1 1069 36 80000012 0
Router 10.3.1.1 10.3.1.1 780 36 80000011 0
Network 10.1.1.1 10.2.1.1 1069 32 80000010 0
Sum-Net 10.5.1.0 10.3.1.1 780 28 80000003 12
Sum-Net 10.2.1.0 10.2.1.1 1069 28 8000000F 10
Sum-Net 10.3.1.0 10.3.1.1 780 28 80000014 2
Sum-Net 10.4.1.0 10.2.1.1 769 28 8000000F 13
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.2.1.1 10.2.1.1 769 36 80000012 0
Router 10.4.1.1 10.4.1.1 1663 48 80000012 0
Network 10.2.1.1 10.2.1.1 769 32 80000010 0
Sum-Net 10.5.1.0 10.2.1.1 769 28 80000003 14
Sum-Net 10.3.1.0 10.2.1.1 1069 28 8000000F 4
Sum-Net 10.1.1.0 10.2.1.1 1069 28 8000000F 2
Sum-Asbr 10.3.1.1 10.2.1.1 1069 28 8000000F 2
# 查看Switch D的路由表。
[SwitchD] display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 22 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.3.1.0/24 10 Transit 10.3.1.2 10.3.1.1 0.0.0.2
10.4.1.0/24 25 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.5.1.0/24 10 Stub 10.5.1.1 10.5.1.1 0.0.0.2
10.1.1.0/24 12 Inter 10.3.1.1 10.3.1.1 0.0.0.2
Total Nets: 5
Intra Area: 2 Inter Area: 3 ASE: 0 NSSA: 0
# 在Switch D上使用Ping進行測試連通性。
[SwitchD] ping 10.4.1.1
PING 10.4.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.4.1.1: bytes=56 Sequence=2 ttl=253 time=2 ms
Reply from 10.4.1.1: bytes=56 Sequence=2 ttl=253 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=3 ttl=253 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=4 ttl=253 time=1 ms
Reply from 10.4.1.1: bytes=56 Sequence=5 ttl=253 time=1 ms
--- 10.4.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/2 ms
· 所有的交換機都運行OSPF,整個自治係統劃分為3個區域。
· 其中Switch A和Switch B作為ABR來轉發區域之間的路由。
· 在Switch C上配置為ASBR引入外部路由(靜態路由),且路由信息可正確的在AS內傳播。
圖1-23 配置OSPF引入自治係統外部路由
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能(同前例1.12.1 )
(3) 配置引入自治係統外部路由
# 在Switch C上配置一條到目的網段3.1.2.0/24的靜態路由。
<SwitchC> system-view
[SwitchC] ip route-static 3.1.2.1 24 10.4.1.2
# 在Switch C上配置OSPF引入靜態路由。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route static
(4) 檢驗配置效果
# 查看Switch D的ABR/ASBR信息。
<SwitchD> display ospf abr-asbr
OSPF Process 1 with Router ID 10.5.1.1
Routing Table to ABR and ASBR
Type Destination Area Cost Nexthop RtType
Intra 10.3.1.1 0.0.0.2 10 10.3.1.1 ABR
Inter 10.4.1.1 0.0.0.2 22 10.3.1.1 ASBR
# 查看Switch D的OSPF路由表。
<SwitchD> display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 22 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.3.1.0/24 10 Transit 10.3.1.2 10.3.1.1 0.0.0.2
10.4.1.0/24 25 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.5.1.0/24 10 Stub 10.5.1.1 10.5.1.1 0.0.0.2
10.1.1.0/24 12 Inter 10.3.1.1 10.3.1.1 0.0.0.2
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.2.0/24 1 Type2 1 10.3.1.1 10.4.1.1
Total Nets: 6
Intra Area: 2 Inter Area: 3 ASE: 1 NSSA: 0
· Switch A和Switch B位於AS 200內,AS 200內使用OSPF作為IGP協議。
· Switch C、Switch D和Switch E位於AS 100內,AS 100內使用OSPF作為IGP協議。
· Switch B和Switch C之間建立EBGP連接,配置BGP引入OSPF和直連路由,配置OSPF進程引入BGP路由。
· 為了減小Switch A的路由表規模,在Switch B上配置路由聚合,隻發布聚合後的路由10.0.0.0/8。
圖1-24 配置OSPF發布聚合路由
(1) 配置接口的IP地址(略)
(2) 配置OSPF
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 11.2.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 11.2.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ospf
[SwitchD-ospf-1] area 0
[SwitchD-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] quit
# 配置Switch E。
<SwitchE> system-view
[SwitchE] ospf
[SwitchE-ospf-1] area 0
[SwitchE-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchE-ospf-1-area-0.0.0.0] network 10.4.1.0 0.0.0.255
[SwitchE-ospf-1-area-0.0.0.0] quit
[SwitchE-ospf-1] quit
(3) 配置BGP,引入OSPF和直連路由
# 配置Switch B。
[SwitchB] bgp 200
[SwitchB-bgp] peer 11.1.1.2 as 100
[SwitchB-bgp] import-route ospf
[SwitchB-bgp] import-route direct
[SwitchB-bgp] quit
# 配置Switch C。
[SwitchC] bgp 100
[SwitchC-bgp] peer 11.1.1.1 as 200
[SwitchC-bgp] import-route ospf
[SwitchC-bgp] import-route direct
[SwitchC-bgp] quit
(4) 在Switch B和Switch C上配置OSPF引入BGP路由
# 在Switch B上配置OSPF引入BGP路由。
[SwitchB] ospf
[SwitchB-ospf-1] import-route bgp
# 在Switch C上配置OSPF引入BGP路由。
[SwitchC] ospf
[SwitchC-ospf-1] import-route bgp
# 查看SwitchA的路由表信息。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 O_ASE 150 1 11.2.1.1 Vlan100
10.2.1.0/24 O_ASE 150 1 11.2.1.1 Vlan100
10.3.1.0/24 O_ASE 150 1 11.2.1.1 Vlan100
10.4.1.0/24 O_ASE 150 1 11.2.1.1 Vlan100
11.2.1.0/24 Direct 0 0 11.2.1.2 Vlan100
11.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(5) 在Switch B上配置路由聚合,隻發布聚合路由10.0.0.0/8。
[SwitchB-ospf-1] asbr-summary 10.0.0.0 8
# 查看Switch A的路由表信息。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.0.0.0/8 O_ASE 150 2 11.2.1.1 Vlan100
11.2.1.0/24 Direct 0 0 11.2.1.2 Vlan100
11.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看出,路由10.1.1.0/24、10.2.1.0/24、10.3.1.0/24、10.4.1.0/24已經聚合為一條路由10.0.0.0/8。
· 所有的交換機都運行OSPF,整個自治係統劃分為3個區域。
· 其中Switch A和Switch B作為ABR來轉發區域之間的路由,Switch D作為ASBR引入了外部路由(靜態路由)。
· 要求將Area1配置為Stub區域,減少通告到此區域內的LSA數量,但不影響路由的可達性。
圖1-25 配置OSPF Stub區域組網圖
(1) 配置接口的IP地址(略)
(2) 配置OSPF基本功能(同前例1.12.1 )
(3) 配置Switch D引入靜態路由
<SwitchD> system-view
[SwitchD] ip route-static 3.1.2.1 24 10.5.1.2
[SwitchD] ospf
[SwitchD-ospf-1] import-route static
[SwitchD-ospf-1] quit
# 查看Switch C的ABR/ASBR信息。
<SwitchC> display ospf abr-asbr
OSPF Process 1 with Router ID 10.4.1.1
Routing Table to ABR and ASBR
Type Destination Area Cost Nexthop RtType
Intra 10.2.1.1 0.0.0.1 3 10.2.1.1 ABR
Inter 10.3.1.1 0.0.0.1 5 10.2.1.1 ABR
Inter 10.5.1.1 0.0.0.1 7 10.2.1.1 ASBR
# 查看Switch C的OSPF路由表。
<SwitchC> display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 3 Transit 10.2.1.2 10.2.1.1 0.0.0.1
10.3.1.0/24 7 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
10.5.1.0/24 17 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.1.1.0/24 5 Inter 10.2.1.1 10.2.1.1 0.0.0.1
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.2.0/24 1 Type2 1 10.2.1.1 10.5.1.1
Total Nets: 6
Intra Area: 2 Inter Area: 3 ASE: 1 NSSA: 0
當Switch C所在區域為普通區域時,可以看到路由表中存在AS外部的路由。
(4) 配置Area1為Stub區域
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] stub
[SwitchA-ospf-1-area-0.0.0.1] quit
[SwitchA-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] stub
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
# 顯示Switch C的OSPF路由表。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
0.0.0.0/0 4 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.2.1.0/24 3 Transit 10.2.1.2 10.2.1.1 0.0.0.1
10.3.1.0/24 7 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
10.5.1.0/24 17 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.1.1.0/24 5 Inter 10.2.1.1 10.2.1.1 0.0.0.1
Total Nets: 6
Intra Area: 2 Inter Area: 4 ASE: 0 NSSA: 0
當把Switch C所在區域配置為Stub區域時,已經看不到AS外部的路由,取而代之的是一條缺省路由。
# 配置禁止向Stub區域通告Type3 LSA。
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] stub no-summary
[SwitchA-ospf-1-area-0.0.0.1] quit
# 查看Switch C的OSPF路由表。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
0.0.0.0/0 4 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.2.1.0/24 3 Transit 10.2.1.2 10.4.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
Total Nets: 3
Intra Area: 2 Inter Area: 1 ASE: 0 NSSA: 0
禁止向Stub區域通告Summary LSA後,Stub路由器的路由表項進一步減少,隻保留了一條通往區域外部的缺省路由。
· 所有的交換機都運行OSPF,整個自治係統劃分為3個區域。
· 其中Switch A和Switch B作為ABR來轉發區域之間的路由。
· 要求將Area1配置為NSSA區域,同時將Switch C配置為ASBR引入外部路由(靜態路由),且路由信息可正確的在AS內傳播。
圖1-26 配置OSPF NSSA區域組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能(同前例1.12.1 )
(3) 配置Area1區域為NSSA區域
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] nssa default-route-advertise no-summary
[SwitchA-ospf-1-area-0.0.0.1] quit
[SwitchA-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] nssa
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
· 如果NSSA區域內路由器(Switch C)需要獲取通往AS內其他區域的路由,ABR(Switch A)上必須配置default-route-advertise參數,這樣Switch C才可以獲取到缺省路由。
· 建議在ABR(Switch A)上配置no-summary參數,這樣可以減少NSSA路由器的路由表數量。其他NSSA路由器隻需配置nssa命令就可以。
# 查看Switch C的OSPF路由表。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
0.0.0.0/0 65536 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.2.1.0/24 65535 Transit 10.2.1.2 10.4.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
Total Nets: 3
Intra Area: 2 Inter Area: 1 ASE: 0 NSSA: 0
(4) 配置Switch C引入靜態路由
[SwitchC] ip route-static 3.1.3.1 24 10.4.1.2
[SwitchC] ospf
[SwitchC-ospf-1] import-route static
[SwitchC-ospf-1] quit
# 查看Switch D的OSPF路由表。
<SwitchD> display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 22 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.3.1.0/24 10 Transit 10.3.1.2 10.3.1.1 0.0.0.2
10.4.1.0/24 25 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.5.1.0/24 10 Stub 10.5.1.1 10.5.1.1 0.0.0.2
10.1.1.0/24 12 Inter 10.3.1.1 10.3.1.1 0.0.0.2
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.3.0/24 1 Type2 1 10.3.1.1 10.2.1.1
Total Nets: 6
Intra Area: 2 Inter Area: 3 ASE: 1 NSSA: 0
在Switch D上可以看到NSSA區域引入的一條AS外部的路由。
Switch A、Switch B、Switch C、Switch D在同一網段,運行OSPF協議;
配置Switch A為DR,Switch C為BDR。
圖1-27 配置OSPF優先級的DR選擇組網圖
(1) 配置各接口的IP地址
(2) 配置OSPF基本功能
(3) 改變交換機接口的路由器優先級使Switch A成為DR,Switch C成為BDR。
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 1.1.1.1
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] router id 2.2.2.2
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] router id 3.3.3.3
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] router id 4.4.4.4
[SwitchD] ospf
[SwitchD-ospf-1] area 0
[SwitchD-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] quit
[SwitchD-ospf-1] return
# 查看Switch A的鄰居信息。
[SwitchA] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 192.168.1.1(Vlan-interface1)'s neighbors
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: 2-Way Mode: None Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 38 sec
Neighbor is up for 00:01:31
Authentication Sequence: [ 0 ]
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 31 sec
Neighbor is up for 00:01:28
Authentication Sequence: [ 0 ]
Router ID: 4.4.4.4 Address: 192.168.1.4 GR State: Normal
State: Full Mode: Nbr is Master Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 31 sec
Neighbor is up for 00:01:28
Authentication Sequence: [ 0 ]
可以看到Switch D為DR,Switch C為BDR。
(3) 配置接口上的路由器優先級
# 配置Switch A。
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ospf dr-priority 100
[SwitchA-Vlan-interface1] quit
# 配置Switch B。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ospf dr-priority 0
[SwitchB-Vlan-interface1] quit
# 配置Switch C。
[SwitchC] interface vlan-interface 1
[SwitchC-Vlan-interface1] ospf dr-priority 2
[SwitchC-Vlan-interface1] quit
# 查看Switch D的鄰居信息。
<SwitchD> display ospf peer verbose
OSPF Process 1 with Router ID 4.4.4.4
Neighbors
Area 0.0.0.0 interface 192.168.1.4(Vlan-interface1)'s neighbors
Router ID: 1.1.1.1 Address: 192.168.1.1 GR State: Normal
State: Full Mode:Nbr is Slave Priority: 100
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 31 sec
Neighbor is up for 00:11:17
Authentication Sequence: [ 0 ]
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: Full Mode:Nbr is Slave Priority: 0
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 35 sec
Neighbor is up for 00:11:19
Authentication Sequence: [ 0 ]
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode:Nbr is Slave Priority: 2
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Dead timer due in 33 sec
Neighbor is up for 00:11:15
Authentication Sequence: [ 0 ]
可以看到,網絡中DR/BDR並沒有改變。
網絡中DR/BDR已經存在的情況下,接口上的路由器優先級的配置並不會立即生效。
(4) 重啟OSPF進程
# 重啟Switch D的進程。
<SwitchD> reset ospf 1 process
Warning : Reset OSPF process? [Y/N]:y
# 查看Switch D的鄰居信息。
<SwitchD> display ospf peer verbose
OSPF Process 1 with Router ID 4.4.4.4
Neighbors
Area 0.0.0.0 interface 192.168.1.4(Vlan-interface1)'s neighbors
Router ID: 1.1.1.1 Address: 192.168.1.1 GR State: Normal
State: Full Mode: Nbr is Slave Priority: 100
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Dead timer due in 39 sec
Neighbor is up for 00:01:40
Authentication Sequence: [ 0 ]
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: 2-Way Mode: None Priority: 0
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Dead timer due in 35 sec
Neighbor is up for 00:01:44
Authentication Sequence: [ 0 ]
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode: Nbr is Slave Priority: 2
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Dead timer due in 39 sec
Neighbor is up for 00:01:41
Authentication Sequence: [ 0 ]
可以看到Switch A成為DR,Switch C為BDR。
· 如果鄰居的狀態是Full,這說明它和鄰居之間形成了鄰接關係;
· 如果鄰居的狀態是2-Way,則說明它們都不是DR或BDR,兩者之間不需要交換LSA。
# 查看OSPF接口的狀態。
[SwitchA] display ospf interface
OSPF Process 1 with Router ID 1.1.1.1
Interfaces
Area: 0.0.0.0
IP Address Type State Cost Pri DR BDR
192.168.1.1 Broadcast DR 1 100 192.168.1.1 192.168.1.3
[SwitchB] display ospf interface
OSPF Process 1 with Router ID 2.2.2.2
Interfaces
Area: 0.0.0.0
IP Address Type State Cost Pri DR BDR
192.168.1.2 Broadcast DROther 1 0 192.168.1.1 192.168.1.3
如果OSPF接口的狀態是DROther,則說明它既不是DR,也不是BDR。
· Area 2與Area 0沒有直接相連。Area 1被用作傳輸區域(Transit Area)來連接Area 2和Area 0。Switch B和Switch C之間配置一條虛連接。
· 配置完成後,Switch B能夠學到Area 2中的路由。
圖1-28 配置OSPF虛鏈路組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf 1 router-id 1.1.1.1
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf 1 router-id 2.2.2.2
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] area 1
[SwitchB–ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255
[SwitchB–ospf-1-area-0.0.0.1] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf 1 router-id 3.3.3.3
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] area 2
[SwitchC–ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255
[SwitchC–ospf-1-area-0.0.0.2] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ospf 1 router-id 4.4.4.4
[SwitchD-ospf-1] area 2
[SwitchD-ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.2] quit
# 查看Switch B的OSPF路由表。
[SwitchB] display ospf routing
OSPF Process 1 with Router ID 2.2.2.2
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 2 Transit 10.2.1.1 3.3.3.3 0.0.0.1
10.1.1.0/24 2 Transit 10.1.1.2 2.2.2.2 0.0.0.0
Total Nets: 2
Intra Area: 2 Inter Area: 0 ASE: 0 NSSA: 0
由於Area 0沒有與Area 2直接相連,所以Switch B的路由表中沒有Area 2的路由。
(3) 配置虛連接
# 配置Switch B。
[SwitchB] ospf
[SwitchB-ospf-1] area 1
[SwitchB-ospf-1-area-0.0.0.1] vlink-peer 3.3.3.3
[SwitchB-ospf-1-area-0.0.0.1] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
[SwitchC] ospf 1
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] vlink-peer 2.2.2.2
[SwitchC-ospf-1-area-0.0.0.1] quit
# 查看Switch B的OSPF路由表。
[SwitchB] display ospf routing
OSPF Process 1 with Router ID 2.2.2.2
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 2 Transit 10.2.1.1 3.3.3.3 0.0.0.1
10.3.1.0/24 5 Inter 10.2.1.2 3.3.3.3 0.0.0.0
10.1.1.0/24 2 Transit 10.1.1.2 2.2.2.2 0.0.0.0
Total Nets: 3
Intra Area: 2 Inter Area: 1 ASE: 0 NSSA: 0
可以看到,Switch B已經學到了Area 2的路由10.3.1.0/24。
· Switch A、Switch B和Switch C既屬於同一自治係統,也屬於同一OSPF域,通過OSPF協議實現網絡互連,並提供GR機製。
· Switch A作為非IETF標準GR Restarter,Switch B和Switch C作為GR Helper並且通過GR機製與Switch A保持帶外同步。
圖1-29 OSPF GR配置組網圖
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 1.1.1.1
[SwitchA] ospf 100
[SwitchA-ospf-100] area 0
[SwitchA-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchA-ospf-100-area-0.0.0.0] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] router id 2.2.2.2
[SwitchB] ospf 100
[SwitchB-ospf-100] area 0
[SwitchB-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchB-ospf-100-area-0.0.0.0] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] router id 3.3.3.3
[SwitchC] ospf 100
[SwitchC-ospf-100] area 0
[SwitchC-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchC-ospf-100-area-0.0.0.0] quit
(3) 配置OSPF GR
# 配置Switch A作為非IETF標準GR Restarter,即使能OSPF進程100的本地鏈路信令能力、OSPF帶外同步能力和非IETF標準GR能力。
[SwitchA-ospf-100] enable link-local-signaling
[SwitchA-ospf-100] enable out-of-band-resynchronization
[SwitchA-ospf-100] graceful-restart
[SwitchA-ospf-100] return
# 配置Switch B作為GR Helper,即使能OSPF進程100的本地鏈路信令能力和OSPF帶外同步能力。
[SwitchB-ospf-100] enable link-local-signaling
[SwitchB-ospf-100] enable out-of-band-resynchronization
# 配置Switch C作為GR Helper,即使能OSPF進程100的本地鏈路信令能力和OSPF帶外同步能力。
[SwitchC-ospf-100] enable link-local-signaling
[SwitchC-ospf-100] enable out-of-band-resynchronization
(4) 檢驗配置效果
# 運行穩定後,打開Switch A的OSPF平滑啟動事件調試信息開關。在Switch A上以GR方式重啟OSPF進程。
<SwitchA> debugging ospf event graceful-restart
<SwitchA> terminal monitor
<SwitchA> terminal debugging
<SwitchA> reset ospf 100 process graceful-restart
Warning : Reset OSPF process? [Y/N]:y
%Dec 12 09:36:12:500 2006 SwitchA RM/3/RMLOG:OSPF-NBRCHANGE: Process 100, Neighbour
192.1.1.1(Vlan100) from Full to Down
OSPF 100: Intf 192.1.1.1 Rcv InterfaceDown State BackupDR -> Down.
OSPF 100 nonstandard GR Started for OSPF Router
OSPF 100 notify RM that OSPF process will enter GR.
OSPF 100 created GR wait timer, timeout interval is 40(s).
OSPF 100 created GR Interval timer,timeout interval is 120(s).
OSPF 100: Intf 192.1.1.1 Rcv InterfaceUp State Down -> Waiting.
OSPF 100: Intf 192.1.1.1 Rcv BackupSeen State Waiting -> BackupDR.
OSPF 100 created OOB Progress timer for neighbor 192.1.1.2.
OSPF 100 restarted OOB Progress timer for neighbor 192.1.1.2.
OSPF 100 restarted OOB Progress timer for neighbor 192.1.1.2.
%Oct 22 09:36:12:566 2008 SwitchA RM/3/RMLOG:OSPF-NBRCHANGE: Process 100, Neighbour
192.1.1.2(Vlan100) from Loading to Full
OSPF 100 restarted OOB Progress timer for neighbor 192.1.1.2.
OSPF 100 deleted OOB Progress timer for neighbor 192.1.1.2.
OSPF 100 Gr Wait Timeout timer fired.
OSPF 100 deleted GR wait timer.
OSPF 100 deleted GR Interval timer.
OSPF 100 GR Completed for OSPF Router
OSPF 100 notified RM that OSPF process left GR.
RM notified that all protocol left GR.
OSPF 100 started flushing STALE LSA after all protocol left GR.
OSPF 100: Flush Stale Area LSAs
OSPF 100: Start Flush Stale ASE + NSSA LSAs
OSPF 100: End Flush Stale ASE + NSSA LSAs
從上麵的信息可以看出Switch A在Switch B的協助下完成了GR。
· 所有的交換機都運行OSPF,整個自治係統劃分為3個區域。
· 其中Switch A和Switch B作為ABR來轉發區域之間的路由。
· 在Switch C上配置為ASBR引入外部路由(靜態路由),並在Switch C上配置過濾策略,對引入的一條路由(3.1.3.0/24)進行過濾。
· 在Switch A上配置路由策略,對路由(10.5.1.0/24)進行過濾。
圖1-30 配置路由過濾
(1) 配置各接口的IP地址(略)
(2) 配置OSPF(同前例1.12.1 )
(3) 配置引入自治係統外部路由
# 在Switch C上配置一條到目的網段3.1.1.0/24的靜態路由。
<SwitchC> system-view
[SwitchC] ip route-static 3.1.1.0 24 10.4.1.2
# 在Switch C上配置一條到目的網段3.1.2.0/24的靜態路由。
[SwitchC] ip route-static 3.1.2.0 24 10.4.1.2
# 在Switch C上配置一條到目的網段3.1.3.0/24的靜態路由。
[SwitchC] ip route-static 3.1.3.0 24 10.4.1.2
# 在Switch C上配置OSPF引入靜態路由。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route static
[SwitchC-ospf-1] quit
# 在Switch A上查看路由信息。
<SwitchA> display ip routing-table
Routing Tables: Public
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.3.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan200
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
10.5.1.0/24 OSPF 10 14 10.1.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
(4) 在Switch C配置對路由3.1.3.0/24進行過濾
# 配置IPv4地址前綴列表。
[SwitchC] ip ip-prefix prefix1 index 1 deny 3.1.3.0 24
[SwitchC] ip ip-prefix prefix1 index 2 permit 3.1.1.0 24
[SwitchC] ip ip-prefix prefix1 index 3 permit 3.1.2.0 24
# 配置對引入的靜態路由信息進行過濾,過濾掉路由3.1.3.0/24。
[SwitchC] ospf 1
[SwitchC-ospf-1] filter-policy ip-prefix prefix1 export static
# 在Switch A上查看路由信息。
<SwitchA> display ip routing-table
Routing Tables: Public
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan100
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
10.5.1.0/24 OSPF 10 14 10.1.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,到目的網段3.1.3.0/24的路由被過濾掉了。
(5) 在Switch A上配置對路由10.5.1.0/24進行過濾
# 在Switch A上配置訪問控製列表。
<SwitchA> system-veiw
[SwitchA] acl number 2000
[SwitchA-acl-basic-2000] rule 0 deny source 10.5.1.0 0.0.0.255
[SwitchA-acl-basic-2000] rule 1 permit source any
[SwitchA-acl-basic-2000] quit
# 配置對通過LSA計算出來的路由信息10.5.1.0/24進行過濾。
[SwitchA] ospf 1
[SwitchA-ospf-1] filter-policy 2000 import
[SwitchA-ospf-1] quit
# 在Switch A上查看路由信息。
[SwitchA] display ip routing-table
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost NextHop Interface
3.1.1.0/24 O_ASE 150 1 10.2.1.2 Vlan200
3.1.2.0/24 O_ASE 150 1 10.2.1.2 Vlan200
10.1.1.0/24 Direct 0 0 10.1.1.1 Vlan100
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.2.1.0/24 Direct 0 0 10.2.1.1 Vlan200
10.2.1.1/32 Direct 0 0 127.0.0.1 InLoop0
10.3.1.0/24 OSPF 10 4 10.1.1.2 Vlan100
10.4.1.0/24 OSPF 10 13 10.2.1.2 Vlan200
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
可以看到,到10.5.1.0/24的路由被過濾掉了。
如圖1-31所示,Switch S 、Switch A和Switch D屬於同一OSPF區域,通過OSPF協議實現網絡互連。要求當Switch S和Switch D之間的鏈路出現故障時,業務可以快速切換到鏈路B上。
圖1-31 OSPF快速重路由配置舉例
(1) 配置各交換機接口的IP地址和OSPF協議
請按照上麵組網圖配置各接口的IP地址和子網掩碼,具體配置過程略。
配置各交換機之間采用OSPF協議進行互連,確保Switch S、Switch A和Switch D之間能夠在網絡層互通,並且各交換機之間能夠借助OSPF協議實現動態路由更新。
具體配置過程略。
(2) 配置OSPF 快速重路由
OSPF支持快速重路由配置有兩種配置方法,一種是自動計算,另一種是通過策略指定,兩種方法任選一種。
方法一:使能Switch S和Switch D的OSPF協議的自動計算快速重路由能力
# 配置Switch S。
<SwitchS> system-view
[SwitchS] bfd echo-source-ip 1.1.1.1
[SwitchS] ospf 1
[SwitchS-ospf-1] fast-reroute auto
[SwitchS-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] bfd echo-source-ip 4.4.4.4
[SwitchD] ospf 1
[SwitchD-ospf-1] fast-reroute auto
[SwitchD-ospf-1] quit
方法二:使能Switch S的OSPF協議的指定路由策略快速重路由能力
# 配置Switch S。
<SwitchS> system-view
[SwitchS] bfd echo-source-ip 1.1.1.1
[SwitchS] ip ip-prefix abc index 10 permit 4.4.4.4 32
[SwitchS] route-policy frr permit node 10
[SwitchS-route-policy] if-match ip-prefix abc
[SwitchS-route-policy] apply fast-reroute backup-interface vlan-interface 100 backup-nexthop 12.12.12.2
[SwitchS-route-policy] quit
[SwitchS] ospf 1
[SwitchS-ospf-1] fast-reroute route-policy frr
[SwitchS-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] bfd echo-source-ip 4.4.4.4
[SwitchD] ip ip-prefix abc index 10 permit 1.1.1.1 32
[SwitchD] route-policy frr permit node 10
[SwitchD-route-policy] if-match ip-prefix abc
[SwitchD-route-policy] apply fast-reroute backup-interface vlan-interface 101 backup-nexthop 24.24.24.2
[SwitchD-route-policy] quit
[SwitchD] ospf 1
[SwitchD-ospf-1] fast-reroute route-policy frr
[SwitchD-ospf-1] quit
(3) 檢驗配置效果
# 在Switch S上查看4.4.4.4/32網段路由,可以看到備份下一跳信息。
[SwitchS] display ip routing-table 4.4.4.4 verbose
Routing Table : Public
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: OSPF Process ID: 1
Preference: 10 Cost: 1
IpPrecedence: QosLcId:
NextHop: 13.13.13.2 Interface: Vlan-interface200
BkNextHop: 12.12.12.2 BkInterface: Vlan-interface100
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h01m27s
Tag: 0
# 在Switch D上查看1.1.1.1/32網段路由,可以看到備份下一跳信息。
[SwitchD] display ip routing-table 1.1.1.1 verbose
Routing Table : Public
Summary Count : 1
Destination: 1.1.1.1/32
Protocol: OSPF Process ID: 1
Preference: 10 Cost: 1
IpPrecedence: QosLcId:
NextHop: 13.13.13.1 Interface: Vlan-interface200
BkNextHop: 24.24.24.2 BkInterface: Vlan-interface101
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h01m27s
Tag: 0
· Switch A、Switch B和Switch C上運行OSPF,網絡層相互可達。
· 當Switch A和Switch B通過L2 Switch通信的鏈路出現故障時BFD能夠快速感知通告OSPF協議,並且切換到Switch C進行通信。
圖1-32 OSPF與BFD聯動配置組網圖
設備 |
接口 |
IP地址 |
設備 |
接口 |
IP地址 |
Switch A |
Vlan-int10 |
10.1.0.102/24 |
Switch B |
Vlan-int10 |
10.1.0.100/24 |
|
Vlan-int11 |
11.1.1.1/24 |
|
Vlan-int13 |
13.1.1.1/24 |
Switch C |
Vlan-int11 |
11.1.1.2/24 |
|
|
|
|
Vlan-int13 |
13.1.1.2/24 |
|
|
|
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 10.1.0.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] network 121.1.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
[SwitchA] interface vlan 11
[SwitchA-Vlan-interface11] ospf cost 2
[SwitchA-Vlan-interface11] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 10.1.0.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 120.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
[SwitchB] interface vlan-interface 13
[SwitchB-Vlan-interface13] ospf cost 2
[SwitchA-Vlan-interface13] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
(3) 配置BFD功能
# 在Switch A上使能BFD檢測功能,並配置BFD參數。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospf bfd enable
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] quit
[SwitchA] quit
# 在Switch B上使能BFD檢測功能,並配置BFD參數。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospf bfd enable
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 6
(4) 檢查配置結果
下麵以Switch A為例,Switch B和Switch A類似,不再贅述。
# 顯示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
Session Working Under Ctrl Mode:
LD/RD SourceAddr DestAddr State Holdtime Interface
3/1 10.1.0.102 10.1.0.100 Up 1700ms vlan10
# 在Switch A上查看120.1.1.0/24的路由信息,可以看出Switch A和Switch B是通過L2 Switch進行通信的。
<SwitchA> display ip routing-table 120.1.1.0 verbose
Routing Table : Public
Summary Count : 1
Destination: 120.1.1.0/24
Protocol: OSPF Process ID: 0
Preference: 0 Cost: 2
IpPrecedence: QosLcId:
NextHop: 10.1.0.100 Interface: Vlan-interface10
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h58m10s
Tag: 0
當Switch A和Switch B通過L2 Switch通信的鏈路出現故障時, Switch A能夠快速感知Switch B的變化。
# 查看Switch A的BFD信息。此時Switch A和Switch B的BFD會話已經被刪除,沒有任何輸出信息。
<SwitchA> display bfd session
# 在Switch A上查看120.1.1.0/24的路由信息,可以看出Switch A和Switch B已經切換到Switch C進行通信。
<SwitchA> display ip routing-table 120.1.1.0 verbose
Routing Table : Public
Summary Count : 1
Destination: 120.1.1.0/24
Protocol: OSPF Process ID: 1
Preference: 10 Cost: 4
IpPrecedence: QosLcId:
NextHop: 11.1.1.2 Interface: Vlan-interface11
BkNextHop: 0.0.0.0 BkInterface:
RelyNextHop: 0.0.0.0 Neighbor : 0.0.0.0
Tunnel ID: 0x0 Label: NULL
BKTunnel ID: 0x0 BKLabel: NULL
State: Active Adv Age: 00h58m10s
Tag: 0
OSPF鄰居無法建立。
如果物理連接和下層協議正常,則檢查接口上配置的OSPF參數,必須保證與相鄰路由器的參數一致,區域號相同,網段與掩碼也必須一致(點到點與虛連接的網段與掩碼可以不同)。
(1) 使用display ospf peer命令查看OSPF鄰居狀態。
(2) 使用display ospf interface命令查看OSPF接口的信息。
(3) 檢查物理連接及下層協議是否正常運行,可通過ping命令測試。若從本地路由器Ping對端路由器不通,則表明物理連接和下層協議有問題。
(4) 檢查OSPF定時器,在同一接口上鄰居失效時間應至少為Hello報文發送時間間隔的4倍。
(5) 如果是NBMA網絡,則應該使用peer ip-address命令手工指定鄰居。
(6) 如果網絡類型為廣播網或NBMA,則至少有一個接口的路由器優先級大於零。
OSPF不能發現其他區域的路由。
應保證骨幹區域與所有的區域相連接。若一台路由器配置了兩個以上的區域,則至少有一個區域應與骨幹區域相連。骨幹區域不能配置成Stub區域。
在Stub區域內的路由器不能接收外部AS的路由。如果一個區域配置成Stub區域,則與這個區域相連的所有路由器都應將此區域配置成Stub區域。
(1) 使用display ospf peer命令查看OSPF鄰居狀態。
(2) 使用display ospf interface命令查看OSPF接口的信息。
(3) 使用display ospf lsdb查看LSDB的信息是否完整。
(4) 使用display current-configuration configuration ospf命令查看區域是否配置正確。若配置了兩個以上的區域,則至少有一個區域與骨幹區域相連。
(5) 如果某區域是Stub區域,則該區域中的所有路由器都要配置stub命令;如果某區域是NSSA區域,則該區域中的所有路由器都要配置nssa命令。
(6) 如果配置了虛連接,使用display ospf vlink命令查看OSPF虛連接是否正常。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!