06-OSPF配置
本章節下載: 06-OSPF配置 (1.01 MB)
目 錄
1.7.3 配置OSPF對通過接收到的LSA計算出來的路由信息進行過濾
1.7.12 配置允許設備將OSPF鏈路狀態信息發布到BGP
1.8.7 配置OSPF嚐試退出overflow狀態的定時器時間間隔
1.10.1 配置LSDB中External LSA的最大數量
1.16.7 配置OSPF快速重路由支持BFD檢測功能(Ctrl方式)
1.16.8 配置OSPF快速重路由支持BFD檢測功能(Echo方式)
OSPF(Open Shortest Path First,開放最短路徑優先)是IETF(Internet Engineering Task Force,互聯網工程任務組)組織開發的一個基於鏈路狀態的內部網關協議。目前針對IPv4協議使用的是OSPF Version 2。下文中所提到的OSPF均指OSPF Version 2。
OSPF具有如下特點:
· 適應範圍廣:支持各種規模的網絡,最多可支持幾百台路由器。
· 快速收斂:在網絡的拓撲結構發生變化後立即發送更新報文,使這一變化在自治係統中同步。
· 無自環:由於OSPF根據收集到的鏈路狀態用最短路徑樹算法計算路由,從算法本身保證了不會生成自環路由。
· 區域劃分:允許自治係統的網絡被劃分成區域來管理。路由器鏈路狀態數據庫的減小降低了內存的消耗和CPU的負擔;區域間傳送路由信息的減少降低了網絡帶寬的占用。
· 等價路由:支持到同一目的地址的多條等價路由。
· 路由分級:使用4類不同的路由,按優先順序來說分別是:區域內路由、區域間路由、第一類外部路由、第二類外部路由。
· 支持驗證:支持基於區域和接口的報文驗證,以保證報文交互和路由計算的安全性。
· 組播發送:在某些類型的鏈路上以組播地址發送協議報文,減少對其他設備的幹擾。
OSPF協議報文直接封裝為IP報文,協議號為89。
OSPF有五種類型的協議報文:
· Hello報文:周期性發送,用來發現和維持OSPF鄰居關係,以及進行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,備份指定路由器)的選舉。
· DD(Database Description,數據庫描述)報文:描述了本地LSDB(Link State DataBase,鏈路狀態數據庫)中每一條LSA(Link State Advertisement,鏈路狀態通告)的摘要信息,用於兩台路由器進行數據庫同步。
· LSR(Link State Request,鏈路狀態請求)報文:向對方請求所需的LSA。兩台路由器互相交換DD報文之後,得知對端的路由器有哪些LSA是本地的LSDB所缺少的,這時需要發送LSR報文向對方請求所需的LSA。
· LSU(Link State Update,鏈路狀態更新)報文:向對方發送其所需要的LSA。
· LSAck(Link State Acknowledgment,鏈路狀態確認)報文:用來對收到的LSA進行確認。
OSPF中對鏈路狀態信息的描述都是封裝在LSA中發布出去,常用的LSA有以下幾種類型:
· Router LSA(Type-1):由每個路由器產生,描述路由器的鏈路狀態和開銷,在其始發的區域內傳播。
· Network LSA(Type-2):由DR產生,描述本網段所有路由器的鏈路狀態,在其始發的區域內傳播。
· Network Summary LSA(Type-3):由ABR(Area Border Router,區域邊界路由器)產生,描述區域內某個網段的路由,並通告給其他區域。
· ASBR Summary LSA(Type-4):由ABR產生,描述到ASBR(Autonomous System Boundary Router,自治係統邊界路由器)的路由,通告給相關區域。
· AS External LSA(Type-5):由ASBR產生,描述到AS(Autonomous System,自治係統)外部的路由,通告到所有的區域(除了Stub區域和NSSA區域)。
· NSSA External LSA(Type-7):由NSSA(Not-So-Stubby Area)區域內的ASBR產生,描述到AS外部的路由,僅在NSSA區域內傳播。
· Opaque LSA:用於OSPF的擴展通用機製,目前有Type-9、Type-10和Type-11三種。其中,Type-9 LSA僅在本地鏈路範圍進行泛洪,用於支持GR(Graceful Restart,平滑重啟)的Grace LSA就是Type-9的一種類型;Type-11 LSA可以在一個自治係統範圍進行泛洪。
隨著網絡規模日益擴大,當一個大型網絡中的路由器都運行OSPF協議時,LSDB會占用大量的存儲空間,並使得運行SPF(Shortest Path First,最短路徑優先)算法的複雜度增加,導致CPU負擔加重。
在網絡規模增大之後,拓撲結構發生變化的概率也增大,網絡會經常處於“震蕩”之中,造成網絡中會有大量的OSPF協議報文在傳遞,降低了網絡的帶寬利用率。更為嚴重的是,每一次變化都會導致網絡中所有的路由器重新進行路由計算。
OSPF協議通過將自治係統劃分成不同的區域來解決上述問題。區域是從邏輯上將路由器劃分為不同的組,每個組用區域號來標識。如圖1-1所示。
圖1-1 OSPF區域劃分
區域的邊界是路由器,而不是鏈路。一個路由器可以屬於不同的區域,但是一個網段(鏈路)隻能屬於一個區域,或者說每個運行OSPF的接口必須指明屬於哪一個區域。劃分區域後,可以在區域邊界路由器上進行路由聚合,以減少通告到其他區域的LSA數量,還可以將網絡拓撲變化帶來的影響最小化。
OSPF劃分區域之後,並非所有的區域都是平等的關係。其中有一個區域是與眾不同的,它的區域號是0,通常被稱為骨幹區域。骨幹區域負責區域之間的路由,非骨幹區域之間的路由信息必須通過骨幹區域來轉發。對此,OSPF有兩個規定:
· 所有非骨幹區域必須與骨幹區域保持連通;
· 骨幹區域自身也必須保持連通。
在實際應用中,可能會因為各方麵條件的限製,無法滿足上麵的要求。這時可以通過配置OSPF虛連接予以解決。
虛連接是指在兩台ABR之間通過一個非骨幹區域建立的一條邏輯上的連接通道。它的兩端必須是ABR,而且必須在兩端同時配置方可生效。為虛連接兩端提供一條非骨幹區域內部路由的區域稱為傳輸區(Transit Area)。
在圖1-2中,Area2與骨幹區域之間沒有直接相連的物理鏈路,但可以在ABR上配置虛連接,使Area2通過一條邏輯鏈路與骨幹區域保持連通。
虛連接的另外一個應用是提供冗餘的備份鏈路,當骨幹區域因鏈路故障不能保持連通時,通過虛連接仍然可以保證骨幹區域在邏輯上的連通性。如圖1-3所示。
虛連接相當於在兩個ABR之間形成了一個點到點的連接,因此,在這個連接上,和物理接口一樣可以配置接口的各參數,如發送Hello報文間隔等。
兩台ABR之間直接傳遞OSPF報文信息,它們之間的OSPF路由器隻是起到一個轉發報文的作用。由於協議報文的目的地址不是中間這些路由器,所以這些報文對於它們而言是透明的,隻是當作普通的IP報文來轉發。
Stub區域是一些特定的區域,該區域的ABR會將區域間的路由信息傳遞到本區域,但不會引入自治係統外部路由,區域中路由器的路由表規模以及LSA數量都會大大減少。為保證到自治係統外的路由依舊可達,該區域的ABR將生成一條缺省路由Type-3 LSA,發布給本區域中的其他非ABR路由器。
為了進一步減少Stub區域中路由器的路由表規模以及LSA數量,可以將區域配置為Totally Stub(完全Stub)區域,該區域的ABR不會將區域間的路由信息和自治係統外部路由信息傳遞到本區域。為保證到本自治係統的其他區域和自治係統外的路由依舊可達,該區域的ABR將生成一條缺省路由Type-3 LSA,發布給本區域中的其他非ABR路由器。
NSSA(Not-So-Stubby Area)區域是Stub區域的變形,與Stub區域的區別在於NSSA區域允許引入自治係統外部路由,由ASBR發布Type-7 LSA通告給本區域。當Type-7 LSA到達NSSA的ABR時,由ABR將Type-7 LSA轉換成Type-5 LSA,傳播到其他區域。
可以將區域配置為Totally NSSA(完全NSSA)區域,該區域的ABR不會將區域間的路由信息傳遞到本區域。為保證到本自治係統的其他區域的路由依舊可達,該區域的ABR將生成一條缺省路由Type-3 LSA,發布給本區域中的其他非ABR路由器。
如圖1-4所示,運行OSPF協議的自治係統包括3個區域:區域0、區域1和區域2,另外兩個自治係統運行RIP協議。區域1被定義為NSSA區域,區域1接收的RIP路由傳播到NSSA ASBR後,由NSSA ASBR產生Type-7 LSA在區域1內傳播,當Type-7 LSA到達NSSA ABR後,轉換成Type-5 LSA傳播到區域0和區域2。
另一方麵,運行RIP的自治係統的RIP路由通過區域2的ASBR產生Type-5 LSA在OSPF自治係統中傳播。但由於區域1是NSSA區域,所以Type-5 LSA不會到達區域1。
OSPF路由器根據在AS中的不同位置,可以分為以下四類:
該類路由器的所有接口都屬於同一個OSPF區域。
該類路由器可以同時屬於兩個以上的區域,但其中一個必須是骨幹區域。ABR用來連接骨幹區域和非骨幹區域,它與骨幹區域之間既可以是物理連接,也可以是邏輯上的連接。
該類路由器至少有一個接口屬於骨幹區域。因此,所有的ABR和位於Area0的內部路由器都是骨幹路由器。
與其他AS交換路由信息的路由器稱為ASBR。ASBR並不一定位於AS的邊界,它有可能是區域內路由器,也有可能是ABR。隻要一台OSPF路由器引入了外部路由的信息,它就成為ASBR。
圖1-5 OSPF路由器的類型
OSPF將路由分為四類,按照優先級從高到低的順序依次為:
· 區域內路由(Intra Area)
· 區域間路由(Inter Area)
· 第一類外部路由(Type1 External):這類路由的可信程度較高,並且和OSPF自身路由的開銷具有可比性,所以到第一類外部路由的開銷等於本路由器到相應的ASBR的開銷與ASBR到該路由目的地址的開銷之和。
· 第二類外部路由(Type2 External):這類路由的可信度比較低,所以OSPF協議認為從ASBR到自治係統之外的開銷遠遠大於在自治係統之內到達ASBR的開銷。所以計算路由開銷時將主要考慮前者,即到第二類外部路由的開銷等於ASBR到該路由目的地址的開銷。如果計算出開銷值相等的兩條路由,再考慮本路由器到相應的ASBR的開銷。
區域內和區域間路由描述的是AS內部的網絡結構,外部路由則描述了應該如何選擇到AS以外目的地址的路由。
路由器ID——即Router ID,用來在一個自治係統中唯一地標識一台路由器,一台路由器如果要運行OSPF協議,則必須存在Router ID。Router ID的獲取方式有以下三種:
用戶可以在創建OSPF進程的時候指定Router ID,配置時,必須保證自治係統中任意兩台路由器的ID都不相同。通常的做法是將路由器的ID配置為與該路由器某個接口的IP地址一致。
如果在創建OSPF進程的時候選擇自動分配Router ID,則OSPF進程將根據如下規則自動獲取Router ID:
· OSPF進程啟動時,將選取第一個運行該進程的接口的主IPv4地址作為Router ID;
· 設備重啟時,OSPF進程將會選取第一個運行本進程的接口主IPv4地址作為Router ID;
· OSPF進程重啟時,將從運行了本進程的所有接口的主IPv4地址中重新獲取Router ID,具體規則如下:
¡ 如果存在配置IP地址的Loopback接口,則選擇Loopback接口地址中最大的作為Router ID。
¡ 否則,從其他接口的IP地址中選擇最大的作為Router ID(不考慮接口的up/down狀態)。
如果在創建OSPF進程的時候沒有指定Router ID,則缺省使用全局Router ID。建議用戶在創建OSPF進程的時候手工指定Router ID,或者選擇自動獲取Router ID。
同一個區域內,OSPF路由的計算過程可簡單描述如下:
· 每台OSPF路由器根據自己周圍的網絡拓撲結構生成LSA,並通過更新報文將LSA發送給網絡中的其它OSPF路由器。
· 每台OSPF路由器都會收集其它路由器通告的LSA,所有的LSA放在一起便組成了LSDB。LSA是對路由器周圍網絡拓撲結構的描述,LSDB則是對整個自治係統的網絡拓撲結構的描述。
· OSPF路由器將LSDB轉換成一張帶權的有向圖,這張圖便是對整個網絡拓撲結構的真實反映。各個路由器得到的有向圖是完全相同的。
· 每台路由器根據有向圖,使用SPF算法計算出一棵以自己為根的最短路徑樹,這棵樹給出了到自治係統中各節點的路由。
OSPF根據鏈路層協議類型將網絡分為下列四種類型:
· 廣播(Broadcast)類型:當鏈路層協議是Ethernet、FDDI時,缺省情況下,OSPF認為網絡類型是Broadcast。在該類型的網絡中,通常以組播形式(OSPF路由器的預留IP組播地址是224.0.0.5;OSPF DR/BDR的預留IP組播地址是224.0.0.6)發送Hello報文、LSU報文和LSAck報文;以單播形式發送DD報文和LSR報文。
· NBMA(Non-Broadcast Multi-Access,非廣播多路訪問)類型:當鏈路層協議是幀中繼、ATM或X.25時,缺省情況下,OSPF認為網絡類型是NBMA。在該類型的網絡中,以單播形式發送協議報文。
· P2MP(Point-to-MultiPoint,點到多點)類型:沒有一種鏈路層協議會被缺省的認為是P2MP類型。P2MP必須是由其他的網絡類型強製更改的,常用做法是將NBMA網絡改為P2MP網絡。在該類型的網絡中,缺省情況下,以組播形式(224.0.0.5)發送協議報文。可以根據用戶需要,以單播形式發送協議報文。
· P2P(Point-to-Point,點到點)類型:當鏈路層協議是PPP、HDLC時,缺省情況下,OSPF認為網絡類型是P2P。在該類型的網絡中,缺省情況下,以單播方式發送DD報文,以組播形式(224.0.0.5)發送其他類型的協議報文。
NBMA與P2MP網絡之間的區別如下:
· NBMA網絡是全連通的;P2MP網絡並不需要一定是全連通的。
· NBMA網絡中需要選舉DR與BDR;P2MP網絡中沒有DR與BDR。
· NBMA網絡采用單播發送報文,需要手工配置鄰居;P2MP網絡采用組播方式發送報文,通過配置也可以采用單播發送報文。
在廣播網和NBMA網絡中,任意兩台路由器之間都要交換路由信息。如果網絡中有n台路由器,則需要建立n(n-1)/2個鄰接關係。這使得任何一台路由器的路由變化都會導致多次傳遞,浪費了帶寬資源。為解決這一問題,OSPF提出了DR的概念,所有路由器隻將信息發送給DR,由DR將網絡鏈路狀態發送出去。
另外,OSPF提出了BDR的概念。BDR是對DR的一個備份,在選舉DR的同時也選舉BDR,BDR也和本網段內的所有路由器建立鄰接關係並交換路由信息。當DR失效後,BDR會立即成為新的DR。
OSPF網絡中,既不是DR也不是BDR的路由器為DR Other。DR Other僅與DR和BDR建立鄰接關係,DR Other之間不交換任何路由信息。這樣就減少了廣播網和NBMA網絡上各路由器之間鄰接關係的數量,同時減少網絡流量,節約了帶寬資源。
如圖1-6所示,進行DR/BDR選舉後,5台路由器之間隻需要建立7個鄰接關係就可以了。
圖1-6 DR和BDR示意圖
在OSPF中,鄰居(Neighbor)和鄰接(Adjacency)是兩個不同的概念。路由器啟動後,會通過接口向外發送Hello報文,收到Hello報文的路由器會檢查報文中所定義的參數,如果雙方一致就會形成鄰居關係。隻有當雙方成功交換DD報文,交換LSA並達到LSDB同步之後,才形成鄰接關係。
DR/BDR是由同一網段中所有的路由器根據路由器優先級和Router ID通過Hello報文選舉出來的,隻有優先級大於0的路由器才具有選舉資格。
進行DR/BDR選舉時每台路由器將自己選出的DR寫入Hello報文中,發給網段上每台運行OSPF協議的路由器。當處於同一網段的兩台路由器同時宣布自己是DR時,路由器優先級高者勝出。如果優先級相等,則Router ID大者勝出。
需要注意的是:
· 隻有在廣播或NBMA網絡中才會選舉DR;在P2P或P2MP網絡中不需要選舉DR。
· DR是某個網段中的概念,是針對路由器的接口而言的。某台路由器在一個接口上可能是DR,在另一個接口上有可能是BDR,或者是DR Other。
· DR/BDR選舉完畢後,即使網絡中加入一台具有更高優先級的路由器,也不會重新進行選舉,替換該網段中已經存在的DR/BDR成為新的DR/BDR。DR並不一定就是路由器優先級最高的路由器接口;同理,BDR也並不一定就是路由器優先級次高的路由器接口。
OSPF設備從接口獲取到鏈路狀態信息後,通過與相鄰設備建立鄰接關係,交互彼此的鏈路狀態信息。OSPF接口狀態表明了OSPF設備在對應鏈路中的作用,使得鄰居設備間能夠明確角色分工,從而正常建立連接。
OSPF接口共有以下七種狀態:
· Down:初始狀態。該狀態表明接口不可用,不能用於收發流量。
· Loopback:設備到網絡的接口處於環回狀態。環回接口不能用於正常的數據傳輸,但可能需要通過向環回接口發送ICMP ping報文、誤碼檢測等方式來獲取鏈路質量,因此設備會通過Router-LSA通告環回接口的狀態信息。
· Waiting:設備正在判定網絡上的DR和BDR。在設備參與DR和BDR選舉前,接口會啟動WaitTimer定時器。在WaitTimer定時器超時前,設備發送的Hello報文不包含DR和BDR信息,設備不能被選舉為DR或BDR。這樣可以避免DR和BDR的不必要更改。僅NBMA網絡、廣播網絡有此狀態。
· P-2-P:接口連接到物理點對點網絡或者虛擬鏈路。進入此狀態後,設備會與鏈路連接的另一端設備建立鄰接關係。僅P2P、P2MP網絡有此狀態。
· DR Other:設備沒有被選為DR或BDR,但連接到廣播網絡或者NBMA網絡上的其他設備被選舉為DR。DR Other會與DR、BDR建立鄰接關係。
· BDR:設備是自身所連接的網絡上的BDR,並將在當前DR失效時成為DR。BDR與自身連接的網絡上的其他所有設備建立鄰接關係。
· DR:設備是自身所連接的網絡上的DR。DR與自身連接的網絡上的其他所有設備建立鄰接關係。
OSPF接口根據不同的情況(即輸入事件)更改狀態,這樣就形成了如圖1-7所示的OSPF接口狀態機。
圖1-7 OSPF接口狀態機
觸發OSPF接口狀態變化的IE(InputEvent,輸入事件)如表1-1所示。
表1-1 OSPF接口狀態切換的IE
輸入事件 |
描述 |
IE1 |
InterfaceUp:底層協議表明接口是可操作的 |
IE2 |
WaitTimer:等待定時器超時,表明設備參與DR或BDR選舉需要等待的時間結束 |
IE3 |
BackupSeen:設備通過以下兩種方式之一檢測網絡中是否存在BDR · 接口收到鄰居發送的Hello報文,宣稱自己是BDR · 接口收到鄰居發送的Hello報文,宣稱自己是DR,但沒有指明BDR BackupSeen事件說明鄰居之間能夠進行雙向通信,可以結束Waiting狀態 |
IE4 |
接口被選舉為DR |
IE5 |
接口被選舉為BDR |
IE6 |
接口沒有被選舉為DR或BDR |
IE7 |
NeighborChange:與該接口相關的鄰居關係變化事件發生,表明需要重新選舉DR和BDR。如下鄰居關係變化可能會導致重新選舉DR和BDR: · 接口所在的設備和一個鄰居設備之間能夠進行雙向通信 · 接口所在的設備和一個鄰居設備之間不再能夠進行雙向通信 · 通過鄰居設備發送的Hello報文檢測到鄰居設備重新宣稱自己是DR或BDR · 通過鄰居設備發送的Hello報文再一次檢測到鄰居設備宣稱自己不再是DR或BDR · 通過鄰居設備發送的Hello報文再一次檢測到鄰居設備的DR優先級發生變化 |
IE8 |
UnloopInd:網管係統或者底層協議表明接口不再處於環回狀態 |
IE9 |
InterfaceDown:底層協議表明接口不可操作。無論接口當前處於何種狀態,都可能由此事件觸發切換到Down狀態 |
IE10 |
LoopInd:網管係統或者底層協議表明接口處於環回狀態。無論接口當前處於何種狀態,都可能由此事件觸發切換到Loopback狀態 |
在OSPF網絡中,相鄰設備間通過不同的鄰居狀態切換,最終可以達到LSDB同步並形成完全鄰接關係。
OSPF鄰居共有以下八種狀態:
· Down:鄰居會話的初始階段。表明在鄰居失效時間間隔內沒有收到來自鄰居設備的Hello報文。OSPF設備會每隔PollInterval時間間隔對外輪詢發送Hello報文,僅NBMA網絡的OSPF設備會向處於Down狀態的鄰居設備發送Hello報文,其他網絡類型中的OSPF設備不會向處於Down狀態的鄰居設備發送Hello報文。
· Attempt:本狀態僅對NBMA網絡上的鄰居有效。鄰居關係處於Attempt狀態時,OSPF設備會每隔HelloInterval時間間隔向自己手工指定的鄰居發送Hello報文,嚐試建立鄰居關係。
· Init:本狀態表示在鄰居失效時間內收到來自鄰居發送的Hello報文,但該Hello數據包內沒有包含自己的Router ID,雙向通信還沒有建立起來。
· 2-Way:本狀態表示雙方互相收到了彼此發送的Hello報文,並在收到的Hello報文中看到了自己的Router ID,由此建立鄰居關係。如果不形成鄰接關係(例如DRother之間),則鄰居狀態機停留在2-Way狀態,否則進入Exstart狀態。隻有鄰居狀態處於2-Way或者比2-Way更高的狀態,才會選舉DR和BDR。
· ExStart:協商主從關係。建立主從關係主要是為了確定初始DD報文的序列號,為後續有序交換DD報文做好準備。
· Exchange:交換DD報文。本端設備使用DD報文描述本地的LSDB,並發送給鄰居。
· Loading:正在同步LSDB。兩端設備發送LSR報文向鄰居請求對方的LSA,通過交互LSU、LSAck同步LSDB。
· Full:建立鄰接關係。兩端設備的LSDB已同步,本端設備和鄰居設備建立了完全的鄰接關係。
OSPF鄰居狀態的切換機製如圖1-8所示。
圖1-8 OSPF鄰居狀態機
觸發OSPF鄰居狀態變化的IE(InputEvent,輸入事件)如表1-2所示。
表1-2 OSPF接口狀態切換的IE
輸入事件 |
描述 |
IE1 |
Start:以HelloInterval時間間隔向鄰居設備發送Hello報文,嚐試建立鄰居關係。僅NBMA網絡適用 |
IE2 |
HelloReceived:從鄰居設備收到一個Hello報文 |
IE3 |
2-WayReceived:收到了鄰居設備發送的Hello報文,並在收到的Hello報文中看到了自己的Router ID,鄰居之間建立了雙向通信關係。接下來進行如下判斷: · IE3(Y):如果相鄰設備間應當建立鄰接關係,則將鄰居狀態切換為ExStart。 · IE3(N):如果相鄰設備間不應當建立鄰接關係,隻建立鄰居關係,則將鄰居狀態切換為2-Way。 |
IE4 |
NegotiationDone:鄰居間主從關係已協商完成,已確定初始DD報文的序列號 |
IE5 |
ExchangeDone:鄰居間成功交換了DD報文。接下來進行如下判斷: · IE5(Y):如果鏈路狀態請求列表為空,則將鄰居狀態切換為Full,表示LSDB已同步,鄰居間建立了完全鄰接關係。 · IE5(N):如果鏈路狀態請求列表不為空,則將鄰居狀態切換為Loading,開始或繼續向鄰居發送LSR報文,請求還沒有接收到的鏈路狀態信息。 |
IE6 |
LoadingDone:鏈路狀態請求列表為空 |
與OSPF相關的協議規範有:
· RFC 1245:OSPF protocol analysis
· RFC 1246:Experience with the OSPF protocol
· RFC 1370:Applicability Statement for OSPF
· RFC 1403:BGP OSPF Interaction
· RFC 1745:BGP4/IDRP for IP---OSPF Interaction
· RFC 1765:OSPF Database Overflow
· RFC 1793:Extending OSPF to Support Demand Circuits
· RFC 2154:OSPF with Digital Signatures
· RFC 2328:OSPF Version 2
· RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option
· RFC 3166:Request to Move RFC 1403 to Historic Status
· RFC 3509:Alternative Implementations of OSPF Area Border Routers
· RFC 4167:Graceful OSPF Restart Implementation Report
· RFC 4577:OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4750:OSPF Version 2 Management Information Base
· RFC 4811:OSPF Out-of-Band LSDB Resynchronization
· RFC 4812:OSPF Restart Signaling
· RFC 5088:OSPF Protocol Extensions for Path Computation Element (PCE) Discovery
· RFC 5250:The OSPF Opaque LSA Option
· RFC 5613:OSPF Link-Local Signaling
· RFC 5642:Dynamic Hostname Exchange Mechanism for OSPF
· RFC 5709:OSPFv2 HMAC-SHA Cryptographic Authentication
· RFC 5786:Advertising a Router's Local Addresses in OSPF Traffic Engineering (TE) Extensions
· RFC 6571:Loop-Free Alternate (LFA) Applicability in Service Provider (SP) Networks
· RFC 6860:Hiding Transit-Only Networks in OSPF
· RFC 6987:OSPF Stub Router Advertisement
無論是哪種類型的路由器,都必須先使能OSPF,否則OSPF協議將無法正常運行。在進行各項配置的時候應該先做好網絡規劃,錯誤的配置可能會導致相鄰路由器之間無法相互傳遞信息,甚至導致路由信息的阻塞或者產生路由環路。
OSPF配置任務如下:
(1) 配置OSPF基本功能
¡ 啟動OSPF進程
¡ 配置OSPF區域
¡ 使能OSPF功能
(2) (可選)配置OSPF特殊區域
¡ 配置Stub區域
¡ 配置NSSA區域
¡ 配置虛連接
(3) (可選)配置OSPF的網絡類型
(4) (可選)配置OSPF的路由信息控製
¡ 配置OSPF對通過接收到的LSA計算出來的路由信息進行過濾
(5) (可選)配置OSPF定時器
¡ 配置OSPF嚐試退出overflow狀態的定時器時間間隔
(6) (可選)配置OSPF報文相關功能
(7) (可選)控製LSA的生成、發布與接收
(8) (可選)加快OSPF路由收斂速度
¡ 配置ISPF
¡ 配置前綴抑製
¡ 配置PIC
(9) (可選)配置OSPF高級功能
(10) (可選)提高OSPF網絡的可靠性
(11) (可選)配置OSPF安全功能
¡ 配置OSPF驗證
(12) (可選)配置OSPF日誌和告警功能
system-view
(2) (可選)配置全局Router ID。
router id router-id
缺省情況下,未配置全局Router ID。
未配置全局路由器ID時,按照下麵的規則進行選擇:
¡ 如果存在配置IP地址的Loopback接口,則選擇Loopback接口地址中最大的作為Router ID。
¡ 如果沒有配置IP地址的Loopback接口,則從其他接口的IP地址中選擇最大的作為Router ID(不考慮接口的up/down狀態)。
(3) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select |router-id } | vpn-instance vpn-instance-name ] *
缺省情況下,係統沒有運行OSPF。
(4) (可選)配置OSPF進程描述。
description text
缺省情況下,未配置進程描述。
建議用戶為每個OSPF進程配置進程描述信息,幫助識別進程的用途,以便於記憶和管理。
(1) 進入係統視圖。
system-view
(2) (可選)配置全局Router ID。
router id router-id
缺省情況下,未配置全局Router ID。
(3) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select |router-id } | vpn-instance vpn-instance-name ] *
缺省情況下,係統沒有運行OSPF。
(4) (可選)配置OSPF進程描述。
description text
缺省情況下,未配置進程描述。
建議用戶為每個OSPF進程配置進程描述信息,幫助識別進程的用途,以便於記憶和管理。
(5) 創建OSPF區域,並進入OSPF區域視圖。
area area-id
(6) (可選)配置區域描述。
description text
缺省情況下,未配置區域描述。
建議用戶為每個區域配置區域描述信息,幫助識別區域的用途,以便於記憶和管理。
要在路由器上使能OSPF功能,必須先創建OSPF進程、指定該進程關聯的區域以及區域包括的網段;對於當前路由器來說,如果某個路由器的接口IP地址落在某個區域的網段內,則該接口屬於這個區域並使能了OSPF功能,OSPF將把這個接口的直連路由宣告出去。
OSPF支持多進程,即可以在一台路由器上通過為不同的OSPF進程指定不同的進程號來啟動多個OSPF進程。OSPF進程號是本地概念,不影響與其它路由器之間的報文交換。因此,不同的路由器之間,即使進程號不同也可以進行報文交換。
可以在指定接口上使能OSPF,或者在指定網段上使能OSPF。在指定接口上使能OSPF的優先級高於在指定網段上使能OSPF。
在接口上使能OSPF時,如果不存在進程和區域,則創建對應的進程和區域;在接口上關閉OSPF時,不刪除已經創建的進程和區域。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 創建OSPF區域,並進入OSPF區域視圖。
area area-id
(4) 配置區域所包含的網段並在指定網段的接口上使能OSPF。
network ip-address wildcard-mask
缺省情況下,接口不屬於任何區域且OSPF功能處於關閉狀態。
一個網段隻能屬於一個區域。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口使能OSPF。
ospf process-id area area-id [ exclude-subip ]
缺省情況下,未配置接口使能OSPF。
OSPF用Router ID來在一個自治係統中唯一地標識一台路由器,Router ID長度固定為4字節。當網絡管理員檢查OSPF鄰居關係的狀態、路由表以及LSDB中的內容時,使用點分十進製表示的Router ID不夠直觀,查看也不方便。
主機名映射提供了一種將Router ID映射到主機名的服務,運行OSPF的路由器維護一個主機名到Router ID的映射關係表,在維護和管理以及網絡故障診斷時,使用主機名比使用Router ID會更直觀,也更容易記憶。
OSPF使用Type-11 LSA攜帶動態主機名屬性信息,因此,使用該功能前,需要保證OSPF的Opaque LSA發布接收能力處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 啟動OSPF,進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能Opaque LSA發布接收能力。
opaque-capability enable
缺省情況下,OSPF的Opaque LSA發布接收能力處於開啟狀態。
(4) 使能OSPF動態主機名映射功能。
hostname [ host-name ]
缺省情況下,OSPF動態主機名映射功能處於關閉狀態。
網絡管理員對整個網絡劃分區域完畢後,可以根據組網需要進一步將區域配置成Stub區域或NSSA區域。
當非骨幹區域不能與骨幹區域保持連通,或者骨幹區域因為各方麵條件的限製無法保持連通時,可以通過配置OSPF虛連接予以解決。
對於位於AS邊緣的一些非骨幹區域,我們可以在該區域的所有路由器上配置stub命令,把該區域配置為Stub區域。這樣,描述自治係統外部路由的Type-5 LSA不會在Stub區域裏泛洪,減小了路由表的規模。ABR生成一條缺省路由,所有到達自治係統外部的報文都交給ABR進行轉發。
如果想進一步減少Stub區域路由表規模以及路由信息傳遞的數量,那麼在ABR上配置stub命令時指定no-summary參數,可以將該區域配置為Totally Stub區域。這樣,自治係統外部路由和區域間的路由信息都不會傳遞到本區域,所有目的地是自治係統外和區域外的報文都交給ABR進行轉發。
Stub區域和Totally Stub區域內不能存在ASBR,即自治係統外部的路由不能在本區域內傳播。
骨幹區域不能配置成Stub區域或Totally Stub區域。
如果要將一個區域配置成Stub區域,則該區域中的所有路由器必須都要配置stub命令。
如果要將一個區域配置成Totally Stub區域,該區域中的所有路由器必須配置stub命令,該區域的ABR路由器需要配置stub no-summary命令。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 進入OSPF區域視圖。
area area-id
(4) 配置當前區域為Stub區域。
stub [ default-route-advertise-always | no-summary ] *
缺省情況下,沒有區域被設置為Stub區域。
(5) (可選)配置ABR發送到Stub區域缺省路由的開銷。
default-cost cost-value
缺省情況下,ABR發送到Stub區域缺省路由的開銷為1。
本命令隻有在Stub區域和Totally Stub區域的ABR上配置才能生效。
Stub區域不能引入外部路由,為了在允許將自治係統外部路由通告到OSPF路由域內部的同時,保持其餘部分的Stub區域的特征,網絡管理員可以將區域配置為NSSA區域。NSSA區域也是位於AS邊緣的非骨幹區域。
配置nssa命令時指定no-summary參數可以將該區域配置為Totally NSSA區域,該區域的ABR不會將區域間的路由信息傳遞到本區域。
骨幹區域不能配置成NSSA區域或Totally NSSA區域。
如果要將一個區域配置成NSSA區域,則該區域中的所有路由器必須都要配置nssa命令。
如果要將一個區域配置成Totally NSSA區域,該區域中的所有路由器必須配置nssa命令,該區域的ABR路由器需要配置nssa no-summary命令。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 進入OSPF區域視圖。
area area-id
(4) 配置當前區域為NSSA區域。
nssa [ default-route-advertise [ cost cost-value | nssa-only | route-policy route-policy-name | type type ] * | no-import-route | no-summary | suppress-fa | [ [ [ translate-always ] [ translate-ignore-checking-backbone ] ] | translate-never ] | translator-stability-interval value ] *
缺省情況下,沒有區域被設置為NSSA區域。
(5) (可選)配置發送到NSSA區域缺省路由的開銷。
default-cost cost-value
缺省情況下,發送到NSSA區域的缺省路由的開銷為1。
本命令隻有在NSSA區域和Totally NSSA區域的ABR/ASBR上配置才能生效。
在劃分區域之後,非骨幹區域之間的OSPF路由更新是通過骨幹區域來完成交換的。對此,OSPF要求所有非骨幹區域必須與骨幹區域保持連通,並且骨幹區域自身也要保持連通。
但在實際應用中,可能會因為各方麵條件的限製,無法滿足這個要求。這時可以通過在ABR上配置OSPF虛連接予以解決。
虛連接不能穿過Stub區域和Totally Stub區域;虛連接不能穿過NSSA區域和Totally NSSA區域。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 創建OSPF區域,並進入OSPF區域視圖。
area area-id
(4) 創建並配置虛連接。
vlink-peer router-id [ dead seconds | hello seconds | { { hmac-md5 | hmac-sha-256 | md5 } key-id { cipher | plain } string | keychain keychain-name | simple { cipher | plain } string } | retransmit seconds | trans-delay seconds ] *
為使虛連接生效,在虛連接的兩端都需配置此命令,並且兩端配置的hello、dead參數必須一致。
OSPF的網絡類型有四種:廣播、NBMA、P2MP和P2P。用戶可以根據需要更改接口的網絡類型,例如:
· 當NBMA網絡通過配置地址映射成為全連通網絡時(即網絡中任意兩台路由器之間都存在一條虛電路而直接可達),可以將網絡類型更改為廣播,不需要手工配置鄰居,簡化配置。
· 當廣播網絡中有部分路由器不支持組播時,可以將網絡類型更改為NBMA。
· NBMA網絡要求必須是全連通的,即網絡中任意兩台路由器之間都必須有一條虛電路直接可達;如果NBMA網絡不是全連通而是部分連通時,可以將網絡類型更改為P2MP,達到簡化配置、節省網絡開銷的目的。
· 如果一網段內隻有兩台路由器運行OSPF協議,也可將接口類型配置為P2P,節省網絡開銷。
如果接口配置為廣播、NBMA或者P2MP網絡類型,隻有雙方接口在同一網段才能建立鄰居關係。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置OSPF接口網絡類型為廣播。
ospf network-type broadcast
缺省情況下,接口的網絡類型根據接口封裝的鏈路層協議而定。
當接口封裝的鏈路層協議是Ethernet、FDDI時,接口網絡類型缺省值為廣播。
(4) (可選)配置OSPF接口的路由器優先級。
ospf dr-priority priority
缺省情況下,接口的路由器優先級為1。
把接口類型配置為NBMA後,由於無法通過廣播Hello報文的形式動態發現相鄰路由器,必須手工為接口指定相鄰接口的IP地址、該相鄰接口是否有選舉權等(dr-priority參數的值僅表示路由器是否具有DR選舉權,為0表示不具有DR選舉權,大於0時表示具有DR選舉權)。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置OSPF接口的網絡類型為NBMA。
ospf network-type nbma
缺省情況下,接口的網絡類型根據物理接口而定。
(4) (可選)配置OSPF接口的路由器優先級。
ospf dr-priority priority
缺省情況下,接口的路由器優先級為1。
本命令設置的優先級用於實際的DR選舉。
(5) 退回係統視圖。
quit
(6) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(7) 配置NBMA網絡的鄰居。
peer ip-address [ dr-priority priority ]
缺省情況下,未配置鄰居。
如果在配置鄰居時將優先級指定為0,則本地路由器認為該鄰居不具備選舉權,不向該鄰居發送Hello報文。本地路由器是DR或BDR的情況除外。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置OSPF接口的網絡類型為P2MP。
ospf network-type p2mp [ unicast ]
缺省情況下,接口的網絡類型根據物理接口而定。
接口類型配置為P2MP單播後,OSPF協議在該接口上發送的報文均為單播報文。由於無法通過廣播Hello報文的形式動態發現相鄰路由器,必須手工為接口指定相鄰接口的IP地址。
(4) 退回係統視圖。
quit
(5) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(6) 配置P2MP單播網絡的鄰居。
peer ip-address [ cost cost-value ]
缺省情況下,未配置鄰居。
如果接口類型為P2MP單播,必須配置本命令。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置OSPF接口的網絡類型為P2P。
ospf network-type p2p [ peer-address-check ]
缺省情況下,接口的網絡類型根據物理接口而定。
當接口封裝的鏈路層協議是PPP時,接口網絡類型缺省值為P2P。
通過本節的配置,可以控製OSPF的路由信息的發布與接收,並引入路由信息。
OSPF區域間路由聚合是指ABR將具有相同前綴的路由信息聚合,隻發布一條路由到其它區域。
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就隻生成一條聚合後的Type-3 LSA,並發布給其它區域的路由器,這樣既可以減少其它區域中LSDB的規模,也減小了因為網絡拓撲變化帶來的影響。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 創建OSPF區域,並進入OSPF區域視圖。
area area-id
(4) 配置ABR路由聚合。
abr-summary ip-address { mask-length | mask } [ advertise | not-advertise ] [ cost cost-value ]
缺省情況下,ABR不對路由進行聚合。
ASBR引入外部路由後,每一條路由都會放在單獨的一條Type-5 LSA中向外宣告;通過配置路由聚合,路由器隻把聚合後的路由放在Type-5 LSA中向外宣告,減少了LSDB中LSA的數量。
在ASBR上配置路由聚合後,將對聚合地址範圍內的Type-5 LSA進行聚合;如果ASBR在NSSA區域裏麵,將對聚合地址範圍內的Type-7 LSA進行聚合。
如果本地路由器同時是ASBR和ABR,並且是NSSA區域的轉換路由器,將對由Type-7 LSA轉化成的Type-5 LSA進行聚合處理;如果不是NSSA區域的轉換路由器,則不進行聚合處理。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置ASBR路由聚合。
asbr-summary ip-address { mask-length | mask } [ cost cost-value | not-advertise | nssa-only | tag tag ] *
缺省情況下,ASBR不對路由進行聚合。
OSPF是基於鏈路狀態的動態路由協議,路由信息是根據接收到的LSA計算出來的,可以對通過接收到的LSA計算出來的OSPF路由信息進行過濾。
一共有四種過濾方式:
· 基於要加入到路由表的路由信息的目的地址進行過濾,可以通過配置訪問控製列表或IP地址前綴列表來指定過濾條件;
· 基於要加入到路由表的路由信息的下一跳進行過濾,可以通過在命令中配置gateway參數來指定過濾條件;
· 基於要加入到路由表的路由信息的目的地址和下一跳進行過濾,可以通過配置訪問控製列表或IP地址前綴列表指定過濾目的地址的條件,同時配置gateway參數來指定過濾下一跳的條件;
· 基於路由策略對要加入到路由表的路由信息進行過濾,可以通過在命令中配置route-policy參數來指定過濾條件。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF對通過接收到的LSA計算出來的路由信息進行過濾。
filter-policy { ipv4-acl-number [ gateway prefix-list-name ] | gateway prefix-list-name | prefix-list prefix-list-name [ gateway prefix-list-name ] | route-policy route-policy-name } import
缺省情況下,OSPF不對通過接收到的LSA計算出來的路由信息進行過濾。
通過在ABR上配置Type-3 LSA過濾,可以對進入ABR所在區域或ABR向其它區域發布的Type-3 LSA進行過濾。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 創建OSPF區域,並進入OSPF區域視圖。
area area-id
(4) 配置對Type-3 LSA進行過濾。
filter { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } { export | import }
缺省情況下,不對Type-3 LSA進行過濾。
OSPF有兩種方式來配置接口的開銷值:
· 在接口視圖下直接配置開銷值;
· 配置接口的帶寬參考值,OSPF根據帶寬參考值自動計算接口的開銷值,計算公式為:接口開銷=帶寬參考值÷接口期望帶寬(接口期望帶寬通過命令bandwidth進行配置,具體情況請參見接口分冊命令參考中的介紹)。當計算出來的開銷值大於65535時,開銷取最大值65535;當計算出來的開銷值小於1時,開銷取最小值1。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 設置OSPF接口的開銷值。
ospf cost cost-value
缺省情況下,接口按照當前的帶寬自動計算接口運行OSPF協議所需的開銷。對於Loopback接口,缺省值為0。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置帶寬參考值。
bandwidth-reference value
缺省情況下,帶寬參考值為100Mbps。
如果到一個目的地有幾條開銷相同的路徑,可以實現等價路由負載分擔,IP報文在這幾個鏈路上負載分擔,以提高鏈路利用率。該配置用以設置OSPF協議的最大等價路由條數。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF最大等價路由條數。
maximum load-balancing number
缺省情況下,OSPF支持的等價路由的最大條數與係統支持最大等價路由的條數相同。
由於路由器上可能同時運行多個動態路由協議,就存在各個路由協議之間路由信息共享和選擇的問題。係統為每一種路由協議設置一個優先級,在不同協議發現同一條路由時,優先級高的路由將被優先選擇。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF協議的路由優先級。
preference [ ase ] { preference | route-policy route-policy-name } *
缺省情況下,OSPF協議對自治係統內部路由的優先級為10,對自治係統外部路由的優先級為150。
本命令用來配置是否產生NULL0路由以及產生NULL0路由的優先級。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置NULL0路由以及NULL0路由的優先級。
discard-route { external { preference | suppression } | internal { preference | suppression } } *
缺省情況下,產生引入聚合NULL0路由和區域間聚合NULL0路由,且NULL0路由優先級為255。
如果在路由器上不僅運行OSPF,還運行著其它路由協議,可以配置OSPF引入其它協議生成的路由,將這些路由信息通過Type5 LSA或Type7 LSA向外宣告。
OSPF還可以對引入的路由進行過濾,隻將滿足過濾條件的外部路由轉換為Type5 LSA或Type7 LSA發布出去。
隻能引入路由表中狀態為active的路由,是否為active狀態可以通過display ip routing-table protocol命令來查看。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF引入外部路由。
import-route bgp [ as-number ] [ allow-ibgp ] [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
import-route { direct | guard | static } [ cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
import-route { isis | ospf | rip } [ process-id | all-processes ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] *
缺省情況下,不引入外部路由。
執行import-route命令引入BGP路由時,未指定allow-ibgp參數表示隻引入EBGP路由;指定allow-ibgp參數表示將IBGP路由也引入,容易引起路由環路,請慎用,本命令中allow-ibgp參數的支持情況與設備的型號有關,具體請參見命令參考。
(4) (可選)配置對引入的路由進行過濾。
filter-policy { ipv4-acl-number | prefix-list prefix-list-name } export [ bgp | direct | { isis | ospf | rip } [ process-id ] | static ]
缺省情況下,不對引入的路由信息進行過濾。
(5) 配置路由引入時的參數缺省值(開銷、標記、類型)。
default { cost cost-value | tag tag | type type } *
缺省情況下,OSPF引入的路由的度量值為1,引入的路由的標記為1,引入的路由類型為2。
OSPF不能通過import-route命令從其它協議引入缺省路由,如果想把缺省路由引入到OSPF路由區域,必須執行本配置。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF引入缺省路由。
default-route-advertise [ [always | permit-calculate-other ] | cost cost-value | route-policy route-policy-name | type type ] *
default-route-advertise [ summary cost cost-value ]
缺省情況下,不引入缺省路由。
default-route-advertise summary cost命令僅在VPN中應用,以Type-3 LSA引入缺省路由,PE路由器會將引入的缺省路由發布給CE路由器。
(4) 配置路由引入時的參數缺省值(開銷、標記、類型)。
default { cost cost-value | tag tag | type type } *
缺省情況下,OSPF引入的路由的度量值為1,引入的路由的標記為1,引入的路由類型為2。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 進入OSPF區域視圖。
area area-id
(4) 配置並發布一條主機路由。
host-advertise ip-address cost-value
缺省情況下,OSPF不發布所包含網段之外的主機路由。
本功能允許設備將鏈路狀態信息發布到BGP,由BGP向外發布,以滿足需要知道鏈路狀態信息的應用的需求。BGP LS的相關內容請參見“三層技術-IP路由配置指導”中的“BGP”。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置允許設備將OSPF鏈路狀態信息發布到BGP。
distribute bgp-ls [ instance-id id ] [ strict-link-checking ]
缺省情況下,不允許設備將OSPF鏈路狀態信息發布到BGP。
通過改變OSPF的報文定時器,可以調整OSPF網絡的收斂速度以及協議報文帶來的網絡負荷。在一些低速鏈路上,需要考慮接口傳送LSA的延遲時間。
用戶可以在接口上配置下列OSPF報文定時器:
· Hello定時器:接口向鄰居發送Hello報文的時間間隔,OSPF鄰居之間的Hello定時器的值要保持一致。
· Poll定時器:在NBMA網絡中,路由器向狀態為down的鄰居路由器發送輪詢Hello報文的時間間隔。
· 鄰居失效時間:在鄰居失效時間內,如果接口還沒有收到鄰居發送的Hello報文,路由器就會宣告該鄰居無效。
· 接口重傳LSA的時間間隔:路由器向它的鄰居通告一條LSA後,需要對方進行確認。若在重傳間隔時間內沒有收到對方的確認報文,就會向鄰居重傳這條LSA。
Hello報文中包含Hello定時器和鄰居失效時間,對於不同的網絡類型,Hello定時器和鄰居失效時間的缺省值不同。修改網絡類型時,Hello定時器和鄰居失效時間將恢複為對應網絡類型下的缺省值。請確保鄰居路由器兩端的Hello定時器和鄰居失效時間的值保持一致,否則將影響OSPF鄰居關係的建立。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置Hello定時器。
ospf timer hello seconds
缺省情況下,P2P、Broadcast類型接口發送Hello報文的時間間隔為10秒,P2MP、NBMA類型接口發送Hello報文的時間間隔為30秒。
(4) 配置Poll定時器。
ospf timer poll seconds
缺省情況下,發送輪詢Hello報文的時間間隔為120秒。
輪詢Hello報文的時間間隔至少應為Hello時間間隔的4倍。
(5) 配置鄰居失效時間。
ospf timer dead seconds
缺省情況下,P2P、Broadcast類型接口的OSPF鄰居失效時間為40秒,P2MP、NBMA類型接口的OSPF鄰居失效時間為120秒。
鄰居失效時間應至少為Hello時間間隔的4倍。
(6) 配置接口重傳LSA的時間間隔。
ospf timer retransmit seconds
缺省情況下,時間間隔為5秒。
相鄰路由器重傳LSA時間間隔的值不要設置得太小,否則將會引起不必要的重傳。通常應該大於一個報文在兩台路由器之間傳送一個來回的時間。
考慮到OSPF報文在鏈路上傳送時也需要花費時間,所以LSA的老化時間(age)在傳送之前要增加一定的延遲時間,在低速鏈路上需要對該項配置進行重點考慮。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口傳送LSA的延遲時間。
ospf trans-delay seconds
缺省情況下,接口傳送LSA的延遲時間為1秒。
當OSPF的LSDB發生改變時,需要重新計算最短路徑。如果網絡頻繁變化,且每次變化都立即計算最短路徑,將會占用大量係統資源,並影響路由器的效率。通過調節路由計算的時間間隔,可以抑製由於網絡頻繁變化帶來的影響。
本命令在網絡變化不頻繁的情況下將連續路由計算的時間間隔縮小到minimum-interval,而在網絡變化頻繁的情況下可以進行相應懲罰,將等待時間按照配置的懲罰增量延長,增加incremental-interval×2n-2(n為連續觸發路由計算的次數),最大不超過maximum-interval。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF路由計算的時間間隔。
spf-schedule-interval { maximum-interval [ minimum-interval [ incremental-interval ] ] | millisecond interval }
缺省情況下,OSPF路由計算的最大時間間隔為5秒,最小時間間隔為50毫秒,時間間隔懲罰增量為200毫秒。
如果在重複到達的最小時間間隔內連續收到一條LSA類型、LS ID、生成路由器ID均相同的LSA則直接丟棄,這樣就可以抑製網絡頻繁變化可能導致的帶寬資源和路由器資源被過多占用的問題。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置LSA重複到達的最小時間間隔。
lsa-arrival-interval interval
缺省情況下,OSPF LSA重複到達的最小時間間隔為1000毫秒。
通過調節LSA重新生成的時間間隔,可以抑製網絡頻繁變化可能導致的帶寬資源和路由器資源被過多占用的問題。
本命令在網絡變化不頻繁的情況下將LSA重新生成時間間隔縮小到minimum-interval,而在網絡變化頻繁的情況下可以進行相應懲罰,將等待時間按照配置的懲罰增量延長,增加incremental-interval×2n-2(n為連續觸發路由計算的次數),最大不超過maximum-interval。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置LSA重新生成的時間間隔。
lsa-generation-interval maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情況下,最大時間間隔為5秒,最小時間間隔為50毫秒,懲罰增量為200毫秒。
網絡中出現過多LSA,會占用大量係統資源。當設置的LSDB中External LSA的最大數量達到上限時,LSDB會進入overflow狀態,在overflow狀態中,不再接收External LSA,同時刪除自己生成的External LSA,對於已經收到的External LSA則不會刪除。這樣就可以減少LSA從而節省係統資源。
通過配置可以調整OSPF退出overflow狀態的時間。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF嚐試退出overflow狀態的定時器時間間隔。
lsdb-overflow-interval interval
缺省情況下,OSPF嚐試退出overflow定時器間隔是300秒,配置為0時,表示不退出Overflow狀態。
如果要使OSPF路由信息不被某一網絡中的路由器獲得,可以禁止接口收發OSPF報文。
將運行OSPF協議的接口指定為Silent狀態後,該接口的直連路由仍可以由同一路由器的其它接口通過Router LSA發布出去,但OSPF報文將被阻塞,接口上無法建立鄰居關係。這樣可以增強OSPF的組網適應能力,減少係統資源的消耗。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 禁止接口收發OSPF報文。
silent-interface { interface-type interface-number | all }
缺省情況下,允許接口收發OSPF報文。
不同的進程可以對同一接口禁止收發OSPF報文,但本命令隻對本進程已經使能的OSPF接口起作用,對其它進程的接口不起作用。
一般情況下,接口發送DD報文時不使用接口的實際MTU值,而是用0代替。進行此配置後,將使用接口的實際MTU值填寫DD報文Interface MTU字段。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置DD報文中MTU域的值為發送該報文接口的MTU值。
ospf mtu-enable
缺省情況下,接口發送的DD報文中MTU域的值為0。
DSCP優先級用來體現報文自身的優先等級,決定報文傳輸的優先程度。通過本配置可以指定OSPF發送協議報文的DSCP優先級。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF發送協議報文的DSCP優先級。
dscp dscp-value
缺省情況下,OSPF發送協議報文的DSCP優先級值為48。
在與鄰居進行LSDB同步的過程中,需要發送大量的LSU報文時,鄰居設備會在短時間內收到大量的LSU報文,處理這些突發的大量LSU報文時,可能會出現如下情況:
· 占用較多的係統資源,導致鄰居設備性能下降。
· 鄰居設備可能會將維持鄰居關係的Hello報文丟棄,導致鄰居關係斷開。重新建立鄰居關係的過程中,需要交互的LSU數量將會更大,從而加劇設備性能的下降。
配置本功能後,路由器將LSU報文分為多個批次進行發送,對OSPF接口每次允許發送的LSU報文的最大個數做出限製,盡可能避免上述情況的發生。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) (可選)配置接口發送LSU報文的時間間隔和一次發送LSU報文的最大個數。
transmit-pacing interval interval count count
缺省情況下,OSPF接口發送LSU報文的時間間隔為20毫秒,一次最多發送3個LSU報文。
用戶可根據需要配置OSPF接口發送LSU報文的時間間隔以及接口一次發送LSU報文的最大個數。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置LSDB中External LSA的最大數量。
lsdb-overflow-limit number
缺省情況下,不對LSDB中External LSA的最大條目數進行限製。
通過該功能,不希望讓鄰居接收到的LSA可在本端接口出方向上被過濾掉,從而減小鄰居LSDB的規模,並節省帶寬。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置過濾接口出方向的LSA。
ospf database-filter { all | { ase [ acl ipv4-acl-number ] | nssa [ acl ipv4-acl-number ] | summary [ acl ipv4-acl-number ] } * }
缺省情況下,不對接口出方向的LSA進行過濾。
在P2MP網絡中,一台路由器可以有多個接口的網絡類型為P2MP的OSPF鄰居。當兩台路由器之間存在多條P2MP鏈路時,不希望讓某個指定鄰居收到的LSA,通過該功能可在本地被過濾掉。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置過濾發送給接口的網絡類型為P2MP的鄰居的LSA。
database-filter peer ip-address { all | { ase [ acl ipv4-acl-number ] | nssa [ acl ipv4-acl-number ] | summary [ acl ipv4-acl-number ] } * }
缺省情況下,不對發送給接口的網絡類型為P2MP的鄰居的LSA進行過濾。
ISPF(Incremental Shortest Path First,增量最短路徑優先)是對OSPF中最短路徑樹的增量計算,當網絡的拓撲結構發生變化,即影響到最短路徑樹的結構時,隻對受影響的部分節點進行重新計算拓撲結構,隻對最短路徑樹中受影響的部分進行修正,而不需要重建整棵最短路徑樹。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 開啟增量SPF計算功能。
ispf enable
缺省情況下,增量SPF計算功能處於使能狀態。
OSPF使能網段時會將接口上匹配該網段的所有網段路由與主機路由都通過LSA發布,但有些時候主機路由或網段路由是不希望被發布的。通過前綴抑製配置,可以減少LSA中攜帶不需要的前綴,即不發布某些網段路由和主機路由,從而提高網絡安全性,加快路由收斂。
當使能前綴抑製時,具體情況如下:
· P2P或P2MP類型網絡:Type-1 LSA中不發布接口的主地址,即Type-1 LSA中鏈路類型為3的Stub鏈路被抑製,不生成接口路由,但其他路由信息可以正常計算,不會影響流量轉發。
· 廣播類型或者NBMA網絡:DR發布的Type-2 LSA的掩碼字段會填成32位,即不生成網段路由,但其他路由信息可以正常計算,不會影響流量轉發。另外,如果沒有鄰居,發布的Type-1 LSA中也不發布接口的主地址,即Type-1 LSA中鏈路類型為3的Stub鏈路被抑製。
如果需要抑製前綴發布,建議整個OSPF網絡都配置本命令。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置前綴抑製功能。
prefix-suppression
缺省情況下,不抑製OSPF進程進行前綴發布。
不能抑製從地址、LoopBack接口以及處於抑製狀態的接口對應的前綴。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口的前綴抑製功能。
ospf prefix-suppression [ disable ]
缺省情況下,不抑製接口進行前綴發布。
不能抑製從地址對應的前綴。
通過策略指定優先權,不同前綴按優先權順序下發,由高到低分為4個優先權(Critical、High、Medium和Low),如果一條路由符合多個收斂優先權的匹配規則,則這些收斂優先權中最高者當選為路由的收斂優先權。
OSPF路由的32位主機路由為Medium優先權,其它為Low優先權。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能OSPF的前綴按優先權快速收斂功能。
prefix-priority route-policy route-policy-name
缺省情況下,OSPF的前綴按優先權快速收斂功能處於關閉狀態。
PIC(Prefix Independent Convergence,前綴無關收斂),即收斂時間與前綴數量無關,該功能可以加快收斂速度。傳統的路由計算快速收斂都與前綴數量相關,收斂時間與前綴數量成正比。
PIC和OSPF快速重路由功能同時配置時,OSPF快速重路由功能生效。
目前隻支持區域間路由以及外部路由的PIC功能。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能PIC功能。
pic [ additional-path-always ]
缺省情況下,前綴無關收斂功能處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 使能OSPF協議中主用鏈路的BFD(Ctrl方式)檢測功能。
ospf primary-path-detect bfd ctrl
缺省情況下,OSPF協議中主用鏈路的BFD(Ctrl方式)檢測功能處於關閉狀態。
配置本功能後,可以加快OSPF協議的收斂速度。使用control報文雙向檢測方式時,需要建立OSPF鄰居的兩端設備均支持BFD配置。
(1) 進入係統視圖。
system-view
(2) 配置BFD Echo報文源地址。
bfd echo-source-ip ip-address
缺省情況下,未配置BFD Echo報文源地址。
echo報文的源IP地址用戶可以任意指定。建議配置echo報文的源IP地址不屬於該設備任何一個接口所在網段。
本命令的詳細情況請參見“網絡管理和監控命令參考”中的“BFD”。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 使能OSPF協議中主用鏈路的BFD(Echo方式)檢測功能。
ospf primary-path-detect bfd echo
缺省情況下,OSPF協議中主用鏈路的BFD(Echo方式)檢測功能處於關閉狀態。
配置本功能後,可以加快OSPF協議的收斂速度。使用echo報文單跳檢測方式時,僅需要一端設備支持BFD配置。
Stub路由器用來控製流量,它告知其他OSPF路由器不要使用這個Stub路由器來轉發數據,但可以擁有一個到Stub路由器的路由。
通過將當前路由器配置為Stub路由器,在該路由器發布的Router LSA中,當鏈路類型取值為3表示連接到Stub網絡時,鏈路度量值不變;當鏈路類型為1、2、4分別表示通過P2P鏈路與另一路由器相連、連接到傳送網絡、虛連接時,鏈路度量值將設置為最大值65535。通過增加include-stub參數可以將路由器發布的Router LSA中,鏈路類型為3的Stub鏈路度量值設置為最大值65535。這樣其鄰居計算出這條路由的開銷就會很大,如果鄰居上有到這個目的地址開銷更小的路由,則數據不會通過這個Stub路由器轉發。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置當前路由器為Stub路由器。
stub-router [ external-lsa [ max-metric-value ] | include-stub | on-startup { seconds | wait-for-bgp [ seconds ] } | summary-lsa [ max-metric-value ] ] *
缺省情況下,當前路由器沒有被配置為Stub路由器。
Stub路由器與Stub區域無關。
當有多條路徑可以到達同一個外部路由時,在選擇最優路由的問題上,RFC 2328中定義的選路規則與RFC 1583的有所不同,進行此配置可以兼容RFC 1583中定義的規則。
具體的選路規則如下:
(1) 當RFC 2328兼容RFC 1583時,所有到達ASBR的路由優先級相同。當RFC 2328不兼容RFC 1583時,非骨幹區的區域內路由優先級最高,區域間路由與骨幹區區域內路由優先級相同,優選非骨幹區的區域內路由,盡量減少骨幹區的負擔;
(2) 若存在多條優先級相同的路由時,按開銷值優選,優選開銷值小的路由;
(3) 若存在多條開銷值相同路由時,按路由來源區域的區域ID選擇,優選區域ID大的路由。
為了避免路由環路,同一路由域內的路由器建議統一配置相同選擇規則。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置兼容RFC 1583的外部路由選擇規則。
rfc1583 compatible
缺省情況下,兼容RFC 1583的路由選擇優先規則的功能處於開啟狀態。
當OSPF計算出等價路由時,將同一前綴的等價路由組合起來一次性下發給路由管理,從而避免逐條下發各條等價路由,加快收斂速度。
本功能適用於存在大量OSPF等價路由且不同前綴都具有相同的等價下一跳場景中。例如,OSPF學到了1萬條不同的路由前綴且每條前綴都具有1.1.1.1~1.1.1.16的16個下一跳。缺省情況下,OSPF會向路由管理分別下發各條等價路由,開啟本功能後,OSPF會將等價路由組合起來統一下發給路由管理,從而加快收斂速度。
等價路由下一跳出接口為TE隧道接口時,OSPF會直接將其組合下發給路由管理,不受ecmp-group enable命令控製。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF等價路由組。
ecmp-group enable
缺省情況下,OSPF等價路由組功能處於關閉狀態。
GR(Graceful Restart,平滑重啟)是一種通過備份OSPF配置信息,在協議重啟或主備倒換時OSPF進行平滑重啟,從鄰居那裏獲得鄰居關係,並對LSDB進行同步,從而保證轉發業務不中斷的機製。
GR有兩個角色:
· GR Restarter:發生協議重啟或主備倒換事件且具有GR能力的設備。
· GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。
目前有兩種方式實現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 NSR功能。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能Opaque LSA發布接收能力。
opaque-capability enable
缺省情況下,OSPF的Opaque LSA發布接收能力處於開啟狀態。
(4) 使能OSPF協議的IETF標準GR能力。
graceful-restart ietf [ global | planned-only ] *
缺省情況下,OSPF協議的IETF標準GR能力處於關閉狀態。
(5) (可選)配置OSPF協議的GR重啟間隔時間。
graceful-restart interval interval
缺省情況下,OSPF協議的GR重啟間隔時間為120秒。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能OSPF本地鏈路信令能力。
enable link-local-signaling
缺省情況下,OSPF本地鏈路信令能力處於關閉狀態。
(4) 使能OSPF帶外同步能力。
enable out-of-band-resynchronization
缺省情況下,OSPF帶外同步能力處於關閉狀態。
(5) 使能OSPF協議的非IETF標準GR能力。
graceful-restart [ nonstandard ] [ global | planned-only ] *
缺省情況下,OSPF協議的非IETF標準GR能力處於關閉狀態。
(6) (可選)配置OSPF協議的GR重啟間隔時間。
graceful-restart interval interval
缺省情況下,OSPF協議的GR重啟間隔時間為120秒。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能Opaque LSA發布接收能力。
opaque-capability enable
缺省情況下,OSPF的Opaque LSA發布接收能力處於開啟狀態。
(4) 使能GR Helper能力。
graceful-restart helper enable [ planned-only ]
缺省情況下,OSPF的GR Helper能力處於開啟狀態。
(5) (可選)配置GR Helper 嚴格檢查LSA能力。
graceful-restart helper strict-lsa-checking
缺省情況下,OSPF協議的GR Helper嚴格LSA檢查能力處於關閉狀態。
執行本配置後,當檢查到GR Helper設備的LSA發生變化時,Helper設備退出GR Helper模式。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能OSPF本地鏈路信令能力。
enable link-local-signaling
缺省情況下,OSPF本地鏈路信令能力處於關閉狀態。
(4) 使能OSPF帶外同步能力。
enable out-of-band-resynchronization
缺省情況下,OSPF帶外同步能力處於關閉狀態。
(5) 使能GR Helper能力。
graceful-restart helper enable
缺省情況下,OSPF的GR Helper能力處於開啟狀態。
(6) (可選)配置GR Helper 嚴格檢查LSA能力。
graceful-restart helper strict-lsa-checking
缺省情況下,OSPF協議的GR Helper嚴格LSA檢查能力處於關閉狀態。
執行本配置後,當檢查到GR Helper設備的LSA發生變化時,Helper設備退出GR Helper模式。
設備進行主備倒換或者進行如下操作均可以以GR方式重啟OSPF進程。
請在用戶視圖下執行本命令,以GR方式重啟OSPF進程。
reset ospf [ process-id ] process graceful-restart
NSR(Nonstop Routing,不間斷路由)通過將OSPF鏈路狀態信息從主進程備份到備進程,使設備在發生主備倒換時可以自行完成鏈路狀態的恢複和路由的重新生成,鄰接關係不會發生中斷,從而避免了主備倒換對轉發業務的影響。
GR特性需要周邊設備配合才能完成路由信息的恢複,在網絡應用中有一定的限製。NSR特性不需要周邊設備的配合,網絡應用更加廣泛。
設備配置了NSR功能後不能再充當GR Restarter。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 使能OSPF NSR功能。
non-stop-routing
缺省情況下,OSPF NSR功能處於關閉狀態。
各個進程的NSR功能是相互獨立的,隻對本進程生效。如果存在多個OSPF進程,建議在各個進程下使能OSPF NSR功能。
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)能夠為OSPF鄰居之間的鏈路提供快速檢測功能。當鄰居之間的鏈路出現故障時,加快OSPF協議的收斂速度。關於BFD的介紹和基本功能配置,請參見“網絡管理和監控配置指導”中的“BFD”。
OSPF使用BFD來進行快速故障檢測時,提供兩種檢測方式:
· control報文雙向檢測:需要建立OSPF鄰居的兩端設備均支持BFD配置。
· echo報文單跳檢測:僅需要一端設備支持BFD配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 使能OSPF的BFD功能。
ospf bfd enable
缺省情況下,OSPF的BFD功能處於關閉狀態。
創建BFD會話的通信雙方必須處於特定區域的同一網段。
(1) 進入係統視圖。
system-view
(2) 配置echo報文源地址。
bfd echo-source-ip ip-address
缺省情況下,未配置echo報文源地址。
echo報文的源IP地址用戶可以任意指定。建議配置echo報文的源IP地址不屬於該設備任何一個接口所在網段。
本命令的詳細情況請參見“網絡管理和監控命令參考”中的“BFD”。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 使能OSPF的BFD功能。
ospf bfd enable echo
缺省情況下,OSPF的BFD功能處於關閉狀態。
OSPF FRR(Fast Reroute,快速重路由)使用鏈路狀態數據庫預先計算出備份路徑或使用路由策略指定備份路徑,並將備份路徑保存到FIB表中,當主用路徑發生故障時,可以快速切換到備份路徑,從而降低路由收斂所需時間。
預先計算出備份路徑的FRR技術LFA(Loop Free Alternate) FRR:以可提供備份鏈路的鄰居為根節點,利用SPF算法計算出到目的節點的最短路徑樹。然後,按照LFA算法計算出一條開銷最小且無環的備份鏈路。
OSPF FRR流量保護類型分為:
· 鏈路保護:當需要保護的對象是經過特定鏈路的流量時,流量保護類型為鏈路保護。
· 節點保護:當需要保護的對象是經過特定設備的流量時,流量保護類型為節點保護。
節點保護優先級高於鏈路保護。
OSPF快速重路由功能和PIC同時配置時,OSPF快速重路由功能生效。
OSPF FRR配置任務如下:
(1) 配置OSPF備份路徑。請至少選擇其中一項任務進行配置:
(2) (可選)配置快速重路由備份路徑優選方案的優先級
(3) (可選)配置OSPF FRR支持BFD檢測功能
¡ 配置OSPF快速重路由支持BFD檢測功能(Ctrl方式)
¡ 配置OSPF快速重路由支持BFD檢測功能(Echo方式)
當OSPF網絡中的鏈路或某台路由器發生故障時,需要通過故障鏈路或故障路由器傳輸才能到達目的地的報文將會丟失,數據流量將會被中斷,直到OSPF根據新的拓撲網絡路由收斂完畢後,被中斷的流量才能恢複正常的傳輸。
為了盡可能縮短網絡故障導致的流量中斷時間,網絡管理員可以根據需要配置OSPF快速重路由功能。
圖1-9 OSPF快速重路由功能示意圖
如圖1-9所示,通過在Router B上使能快速重路由功能,OSPF將為路由計算或指定備份下一跳,當Router B檢測到網絡故障時,OSPF會使用事先獲取的備份下一跳替換失效下一跳,通過備份下一跳來指導報文的轉發,從而大大縮短了流量中斷時間。在使用備份下一跳指導報文轉發的同時,OSPF會根據變化後的網絡拓撲重新計算最短路徑,網絡收斂完畢後,使用新計算出來的最優路由來指導報文轉發。
網絡管理員可以配置給所有OSPF路由通過LFA(Loop Free Alternate)算法選取備份下一跳,也可以在路由策略中指定備份下一跳,為符合過濾條件的路由指定備份下一跳。
OSPF快速重路由功能(通過LFA算法選取備份下一跳信息)不能與vlink-peer命令同時使用。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) (可選)配置接口參與LFA計算。
ospf fast-reroute lfa-backup
缺省情況下,接口參與LFA計算,能夠被選為備份接口。
(4) 退回係統視圖。
quit
(5) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(6) 配置OSPF快速重路由功能(通過LFA算法選取備份下一跳信息)。
fast-reroute lfa [ abr-only ]
缺省情況下,OSPF快速重路由功能處於關閉狀態。
abr-only表示僅選取到ABR設備的路由作為備份下一跳。
網絡管理員可以通過apply fast-reroute backup-interface命令在路由策略中指定備份下一跳,為符合過濾條件的路由指定備份下一跳,關於apply fast-reroute backup-interface命令以及路由策略的相關配置,請參見“三層技術-IP路由配置指導”中的“路由策略”。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF快速重路由功能(通過路由策略指定備份下一跳)。
fast-reroute route-policy route-policy-name
缺省情況下,OSPF快速重路由功能處於關閉狀態。
缺省情況下,設備采用節點保護方式計算備份路徑。如圖1-10所示,主路徑為Device A->Device D->Device E->Device F,備份路徑有Device A->Device C->Device D->Device E和Device A->Device B->Device D->Device E兩種選擇。由於Device C設備的轉發能力比Device B強,則在節點保護方式下,備份路優選為Device A->Device C->Device E->Device F。
在實際組網中,由於接口數據能力或鏈路開銷等因素,備份路徑的優選方案可能需要調整為最小開銷路徑。如圖1-11所示,主路徑為Device A->Device D->Device E,備份路徑有Device A->Device C->Device D->Device E和Device A->Device B->Device D->Device E兩種選擇。缺省情況下,備份路優選為Device A->Device C->Device D->Device E。當備份路徑的優選方案需要調整為最小開銷路徑時,可以配置本功能進行調整,即優先選擇Device A->Device B->Device D->Device E作為備份路徑。
優先采用節點保護方式計算備份路徑時,如果不能計算出備份路徑,則再通過最小開銷路徑方式計算備份路徑。如果仍不能計算備份路徑,則主鏈路故障後無法保證可靠性。
優先采用最小開銷路徑方式計算備份路徑時,如果不能計算出備份路徑,則不會再通過節點保護方式計算備份路徑,主鏈路故障後無法保證可靠性。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置快速重路由備份路徑優選方案的優先級。
fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference
缺省情況下,最小開銷路徑優選方案的優先級是20,節點保護優選方案的優先級是40。
OSPF協議的快速重路由特性中,主用鏈路缺省不使用BFD進行鏈路故障檢測。配置本功能後,將使用BFD進行檢測,可以加快OSPF協議的收斂速度。使用control報文雙向檢測方式時,需要建立OSPF鄰居的兩端設備均支持BFD配置。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 使能OSPF協議中主用鏈路的BFD(Ctrl方式)檢測功能。
ospf primary-path-detect bfd ctrl
缺省情況下,OSPF協議中主用鏈路的BFD檢測功能(Ctrl方式)處於關閉狀態。
OSPF協議的快速重路由特性中,主用鏈路缺省不使用BFD進行鏈路故障檢測。配置本功能後,將使用BFD進行檢測,可以加快OSPF協議的收斂速度。使用echo報文單跳檢測方式時,僅需要一端設備支持BFD配置。
(1) 進入係統視圖。
system-view
(2) 配置BFD Echo報文源地址。
bfd echo-source-ip ip-address
缺省情況下,未配置BFD Echo報文源地址。
echo報文的源IP地址用戶可以任意指定。建議配置echo報文的源IP地址不屬於該設備任何一個接口所在網段。
本命令的詳細情況請參見“網絡管理和監控命令參考”中的“BFD”。
(3) 進入接口視圖。
interface interface-type interface-number
(4) 使能OSPF協議中主用鏈路的BFD(Echo方式)檢測功能。
ospf primary-path-detect bfd echo
缺省情況下,OSPF協議中主用鏈路的BFD(Echo方式)檢測功能處於關閉狀態。
從安全性角度來考慮,為了避免路由信息外泄或者OSPF路由器受到惡意攻擊,OSPF提供報文驗證功能。
OSPF路由器建立鄰居關係時,在發送的報文中會攜帶配置好的口令,接收報文時進行驗證,隻有通過驗證的報文才能接收,否則將不會接收報文,不能正常建立鄰居。
如果區域驗證和接口驗證都進行了配置,以接口驗證的配置為準。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 進入OSPF區域視圖。
area area-id
(4) 配置OSPF區域的驗證模式。請選擇其中一項進行配置。
¡ 配置OSPF區域使用HMAC-MD5/MD5驗證模式。
authentication-mode { hmac-md5 | hmac-sha-256 | md5 } key-id { cipher | plain } string
¡ 配置OSPF區域使用簡單驗證模式。
authentication-mode simple { cipher | plain } string
¡ 配置OSPF區域使用keychain驗證模式。
authentication-mode keychain keychain-name
關於keychain功能的介紹,請參見“安全配置指導”中的“keychain”。
缺省情況下,未配置區域驗證模式。
一個區域中所有路由器的驗證模式和驗證密鑰必須一致。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置OSPF接口的驗證模式。請選擇其中一項進行配置。
¡ 配置OSPF區域使用HMAC-MD5/MD5驗證模式。
ospf authentication-mode { hmac-md5 | hmac-sha-256 | md5 } key-id { cipher | plain } string
¡ 配置OSPF區域使用簡單驗證模式。
ospf authentication-mode simple { cipher | plain } string
¡ 配置OSPF區域使用keychain驗證模式。
ospf authentication-mode keychain keychain-name
關於keychain功能的介紹,請參見“安全配置指導”中的“keychain”。
缺省情況下,接口不對OSPF報文進行驗證。
鄰居路由器兩端接口的驗證模式和驗證密鑰必須一致。
GTSM(Generalized TTL Security Mechanism,通用TTL安全保護機製)是一種簡單易行的、對基於IP協議的上層業務進行保護的安全機製。開啟OSPF報文的GTSM功能後,當設備收到來自OSPF普通鄰居或虛連接鄰居的報文時,會判斷報文的TTL是否在255-“hop-count”+1到255之間。如果在,就上送報文;如果不在,則直接丟棄報文。以使設備避免受到CPU利用(CPU-utilization)等類型的攻擊(如CPU過載),增強係統的安全性。
開啟OSPF GTSM功能時,要求本設備和鄰居設備上同時配置本特性,指定的hop-count值可以不同,隻要能夠滿足合法性檢查即可。
如果接口上配置了OSPF GTSM功能,接口OSPF GTSM功能的狀態以接口的配置為準,不受接口所在區域OSPF GTSM功能的影響。如果接口上未配置OSPF GTSM功能,接口OSPF GTSM功能的狀態以區域的配置為準。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 進入OSPF區域視圖。
area area-id
(4) 開啟區域的OSPF GTSM功能。
ttl-security [ hops hop-count ]
缺省情況下,區域的OSPF GTSM功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口的OSPF GTSM功能。
¡ 開啟接口的OSPF GTSM功能。
ospf ttl-security [ hops hop-count ]
¡ 關閉接口的OSPF GTSM功能。
ospf ttl-security disable
區域OSPF GTSM功能處於開啟狀態時,如該區域內某個接口的鄰居不支持GTSM功能,需要關閉該接口的OSPF GTSM功能。
缺省情況下,接口的OSPF GTSM功能與其所在區域OSPF GTSM功能的狀態保持一致。
打開鄰居狀態變化的輸出開關後,OSPF鄰居狀態變化時會生成日誌信息發送到設備的信息中心,通過設置信息中心的參數,最終決定日誌信息的輸出規則(即是否允許輸出以及輸出方向)。(有關信息中心參數的配置請參見“網絡管理和監控配置指導”中的“信息中心”。)
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 打開鄰居狀態變化的輸出開關。
log-peer-change
缺省情況下,鄰居狀態變化的輸出開關處於打開狀態。
OSPF的日誌信息包括路由計算、鄰居、路由、LSA老化、生成和接收LSA的日誌信息。
(1) 進入係統視圖。
system-view
(2) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(3) 配置OSPF的日誌信息個數。
event-log { hello { received [ abnormal | dropped ] | sent [ abnormal | failed ] } | lsa-flush | peer | spf } size count
缺省情況下,接收Hello報文、接收異常Hello報文、丟棄接收到的Hello報文、發送Hello報文、發送異常Hello報文以及發送失敗的Hello報文、LSA老化、鄰居狀態變化、路由計算的日誌信息個數為100。
配置OSPF進程綁定MIB功能後,可以通過網管軟件對指定的OSPF進程進行管理。
開啟OSPF模塊的告警功能後,該模塊會生成告警信息,用於報告該模塊的重要事件。生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。(有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。)
通過調整OSPF在指定時間間隔內允許輸出的告警信息條數,可以避免網絡出現大量告警信息時對資源的消耗。
(1) 進入係統視圖。
system-view
(2) 配置OSPF進程綁定公有MIB。
ospf mib-binding process-id
缺省情況下,MIB綁定在進程號最小的OSPF進程上。
(3) 開啟OSPF的告警功能。
snmp-agent trap enable ospf [ authentication-failure | bad-packet | config-error | grhelper-status-change | grrestarter-status-change | if-state-change | lsa-maxage | lsa-originate | lsdb-approaching-overflow | lsdb-overflow | neighbor-state-change | nssatranslator-status-change | retransmit | virt-authentication-failure | virt-bad-packet | virt-config-error | virt-retransmit | virtgrhelper-status-change | virtif-state-change | virtneighbor-state-change ] *
缺省情況下,OSPF的告警功能處於開啟狀態。
(4) 進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } | vpn-instance vpn-instance-name ] *
(5) 配置OSPF在指定時間間隔內允許輸出的告警信息條數。
snmp trap rate-limit interval trap-interval count trap-number
缺省情況下,OSPF在10秒內允許輸出7條告警信息。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後OSPF的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除OSPF的統計信息、重啟OSPF進程或重新向OSPF引入外部路由。
表1-3 OSPF顯示和維護
操作 |
命令 |
顯示OSPF的ABR聚合信息 |
display ospf [ process-id ] [ area area-id ] abr-summary [ ip-address { mask-length | mask } ] [ verbose ] |
顯示區域中FRR備份下一跳候選列表 |
display ospf [ process-id ] [ area area-id ] fast-reroute lfa-candidate |
顯示OSPF區域的最短路徑樹信息 |
display ospf [ process-id ] [ area area-id ] spf-tree [ verbose ] |
顯示OSPF的進程信息 |
display ospf [ process-id ] [ verbose ] |
顯示OSPF ABR及ASBR信息 |
display ospf [ process-id ] abr-asbr [ verbose ] |
顯示OSPF的ASBR聚合信息 |
display ospf [ process-id ] asbr-summary [ ip-address { mask-length | mask } ] |
顯示OSPF的日誌信息 |
display ospf [ process-id ] event-log { lsa-flush | peer [ neighbor-id ] [ slot slot-number ] | spf } |
顯示OSPF接收或發送Hello報文的日誌信息 |
display ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent } [ neighbor-id ] [ slot slot-number ] display ospf [ process-id ] event-log hello sent { abnormal | failed } [ neighbor-address ] [ slot slot-number ] |
顯示OSPF進程的GR狀態信息 |
display ospf [ process-id ] graceful-restart [ verbose ] |
顯示Router ID到主機名稱的映射關係表 |
display ospf [ process-id ] hostname-table |
顯示OSPF接口信息 |
display ospf [ process-id ] interface [ interface-type interface-number | verbose ] |
顯示接口發送Hello報文的信息 |
display ospf [ process-id ] interface [ interface-type interface-number ] hello |
顯示OSPF的LSDB信息 |
display ospf [ process-id ] [ area area-id ] lsdb { asbr | network | nssa | opaque-link | router | summary } [ link-state-id ] [ originate-router advertising-router-id | self-originate ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] [ area area-id ] lsdb { asbr | network | nssa | opaque-link | router | summary } [ link-state-id ] hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] display ospf [ process-id ] lsdb [ brief | originate-router advertising-router-id | self-originate ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] lsdb hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] display ospf [ process-id ] lsdb { ase | opaque-as } [ link-state-id ] [ originate-router advertising-router-id | self-originate ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] lsdb { ase | opaque-as } [ link-state-id ] hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] |
顯示進程中的下一跳信息 |
display ospf [ process-id ] nexthop |
顯示OSPF的NSR階段信息 |
display ospf [ process-id ] non-stop-routing status |
顯示OSPF鄰居的信息 |
display ospf [ process-id ] peer [ hello | verbose ] [ interface-type interface-number ] [ [ neighbor-id ] [ resolve-hostname ] | hostname host-name ] |
顯示OSPF各區域鄰居的統計信息 |
display ospf [ process-id ] peer statistics |
顯示OSPF請求列表 |
display ospf [ process-id ] request-queue [ interface-type interface-number ] [ neighbor-id ] |
顯示OSPF重傳列表 |
display ospf [ process-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ] |
顯示OSPF路由表的信息 |
display ospf [ process-id ] routing [ ip-address { mask-length | mask } ] [ interface interface-type interface-number ] [ nexthop nexthop-address ] [ verbose ] |
顯示OSPF的統計信息 |
display ospf [ process-id ] statistics [ error | packet [ hello | interface-type interface-number ] ] |
顯示OSPF虛連接信息 |
display ospf [ process-id ] vlink |
顯示全局Router ID |
display router id |
清除OSPF的日誌信息 |
reset ospf [ process-id ] event-log [ lsa-flush | peer [ slot slot-number ] | spf ] |
清除OSPF接收或發送Hello報文的日誌信息 |
reset ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent [ abnormal | failed ] } [ slot slot-number ] |
重啟OSPF進程 |
reset ospf [ process-id ] process [ graceful-restart ] |
重新向OSPF引入外部路由 |
reset ospf [ process-id ] redistribution |
清除OSPF的統計信息 |
reset ospf [ process-id ] statistics |
· 所有的設備都運行OSPF,並將整個自治係統劃分為3個區域。
· 其中Device A和Device B作為ABR來轉發區域之間的路由。
· 配置完成後,每台路由器都應學到AS內的到所有網段的路由。
圖1-12 安全策略保證OSPF鄰接關係建立配置組網圖
(1) 配置接口IP地址
# 根據組網圖中規劃的信息,配置各接口的IP地址,具體配置步驟如下。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ip address 1.1.1.1 255.255.255.0
[DeviceA-GigabitEthernet1/0/1] quit
請參考以上步驟配置其他接口的IP地址,具體配置步驟略。
(2) 配置接口加入安全域
# 請根據組網圖中規劃的信息,將接口加入對應的安全域,具體配置步驟如下。
[DeviceA] security-zone name untrust
[DeviceA-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceA-security-zone-Untrust] quit
[DeviceA] security-zone name trust
[DeviceA-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceA-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust與Local安全域之間的流量,用於設備之間可以建立OSPF鄰居關係。
# 配置名稱為ospflocalin的安全策略規則,使Device A可以接收Device B發送的OSPF協議報文,具體配置步驟如下。
[DeviceA] security-policy ip
[DeviceA-security-policy-ip] rule name ospflocalin
[DeviceA-security-policy-ip-0-ospflocalin] source-zone untrust
[DeviceA-security-policy-ip-0-ospflocalin] destination-zone local
[DeviceA-security-policy-ip-0-ospflocalin] service ospf
[DeviceA-security-policy-ip-0-ospflocalin] action pass
[DeviceA-security-policy-ip-0-ospflocalin] quit
# 配置名稱為ospflocalout的安全策略規則,使Device A可以向Device B發送OSPF協議報文,具體配置步驟如下。
[DeviceA-security-policy-ip] rule name ospflocalout
[DeviceA-security-policy-ip-1-ospflocalout] source-zone local
[DeviceA-security-policy-ip-1-ospflocalout] destination-zone untrust
[DeviceA-security-policy-ip-1-ospflocalout] service ospf
[DeviceA-security-policy-ip-1-ospflocalout] action pass
[DeviceA-security-policy-ip-1-ospflocalout] quit
b. 配置安全策略放行Untrust與Trust安全域之間的流量,放行Area1與Area2之間的流量。
# 配置名稱為trust-untrust的安全策略規則,使Trust安全域到Untrust安全域的報文可通,具體配置步驟如下。
[DeviceA-security-policy-ip] rule name trust-untrust
[DeviceA-security-policy-ip-2-trust-untrust] source-zone trust
[DeviceA-security-policy-ip-2-trust-untrust] destination-zone untrust
[DeviceA-security-policy-ip-2-trust-untrust] source-ip-subnet 2.2.2.0 24
[DeviceA-security-policy-ip-2-trust-untrust] destination-ip-subnet 3.3.3.0 24
[DeviceA-security-policy-ip-2-trust-untrust] action pass
[DeviceA-security-policy-ip-2-trust-untrust] quit
# 配置名稱為untrust-trust的安全策略規則,使Untrust安全域到Trust安全域的報文可通,具體配置步驟如下。
[DeviceA-security-policy-ip] rule name untrust-trust
[DeviceA-security-policy-ip-3-untrust-trust] source-zone untrust
[DeviceA-security-policy-ip-3-untrust-trust] destination-zone trust
[DeviceA-security-policy-ip-3-untrust-trust] source-ip-subnet 3.3.3.0 24
[DeviceA-security-policy-ip-3-untrust-trust] destination-ip-subnet 2.2.2.0 24
[DeviceA-security-policy-ip-3-untrust-trust] action pass
[DeviceA-security-policy-ip-3-untrust-trust] quit
[DeviceA-security-policy-ip] quit
(4) 配置OSPF基本功能
[DeviceA] router id 2.2.2.1
[DeviceA] ospf
[DeviceA-ospf-1] area 0
[DeviceA-ospf-1-area-0.0.0.0] network 1.1.1.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.0] quit
[DeviceA-ospf-1] area 1
[DeviceA-ospf-1-area-0.0.0.1] network 2.2.2.0 0.0.0.255
[DeviceA-ospf-1-area-0.0.0.1] quit
[DeviceA-ospf-1] quit
(1) 配置接口IP地址
# 根據組網圖中規劃的信息,配置各接口的IP地址,具體配置步驟如下。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ip address 1.1.1.2 255.255.255.0
[DeviceB-GigabitEthernet1/0/1] quit
請參考以上步驟配置其他接口的IP地址,具體配置步驟略。
(2) 配置接口加入安全域
# 請根據組網圖中規劃的信息,將接口加入對應的安全域,具體配置步驟如下。
[DeviceB] security-zone name untrust
[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Untrust] quit
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust與Local安全域之間的流量,用於設備之間可以建立OSPF鄰居關係。
# 配置名稱為ospflocalin的安全策略規則,使Device B可以接收Device A發送的OSPF協議報文,具體配置步驟如下。
[DeviceB] security-policy ip
[DeviceB-security-policy-ip] rule name ospflocalin
[DeviceB-security-policy-ip-0-ospflocalin] source-zone untrust
[DeviceB-security-policy-ip-0-ospflocalin] destination-zone local
[DeviceB-security-policy-ip-0-ospflocalin] service ospf
[DeviceB-security-policy-ip-0-ospflocalin] action pass
[DeviceB-security-policy-ip-0-ospflocalin] quit
# 配置名稱為ospflocalout的安全策略規則,使Device B可以向Device A發送OSPF協議報文,具體配置步驟如下。
[DeviceB-security-policy-ip] rule name ospflocalout
[DeviceB-security-policy-ip-1-ospflocalout] source-zone local
[DeviceB-security-policy-ip-1-ospflocalout] destination-zone untrust
[DeviceB-security-policy-ip-1-ospflocalout] service ospf
[DeviceB-security-policy-ip-1-ospflocalout] action pass
[DeviceB-security-policy-ip-1-ospflocalout] quit
b. 配置安全策略放行Untrust與Trust安全域之間的流量,放行Area1與Area2之間的流量。
# 配置名稱為trust-untrust的安全策略規則,使Trust安全域和Untrust安全域之間的報文互通,具體配置步驟如下。
[DeviceB-security-policy-ip] rule name trust-untrust
[DeviceB-security-policy-ip-2-trust-untrust] source-zone trust
[DeviceB-security-policy-ip-2-trust-untrust] destination-zone untrust
[DeviceB-security-policy-ip-2-trust-untrust] source-ip-subnet 3.3.3.0 24
[DeviceB-security-policy-ip-2-trust-untrust] destination-ip-subnet 2.2.2.0 24
[DeviceB-security-policy-ip-2-trust-untrust] action pass
[DeviceB-security-policy-ip-2-trust-untrust] quit
# 配置名稱為untrust-trust的安全策略規則,使Untrust安全域到Trust安全域的報文可通,具體配置步驟如下。
[DeviceB-security-policy-ip] rule name untrust-trust
[DeviceB-security-policy-ip-3-untrust-trust] source-zone untrust
[DeviceB-security-policy-ip-3-untrust-trust] destination-zone trust
[DeviceB-security-policy-ip-3-untrust-trust] source-ip-subnet 2.2.2.0 24
[DeviceB-security-policy-ip-3-untrust-trust] destination-ip-subnet 3.3.3.0 24
[DeviceB-security-policy-ip-3-untrust-trust] action pass
[DeviceB-security-policy-ip-3-untrust-trust] quit
[DeviceB-security-policy-ip] quit
(4) 配置OSPF基本功能
[DeviceB] router id 3.3.3.1
[DeviceB] ospf
[DeviceB-ospf-1] area 0
[DeviceB-ospf-1-area-0.0.0.0] network 1.1.1.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.0] quit
[DeviceB-ospf-1] area 2
[DeviceB-ospf-1-area-0.0.0.2] network 3.3.3.0 0.0.0.255
[DeviceB-ospf-1-area-0.0.0.2] quit
[DeviceB-ospf-1] quit
# 查看Device A的OSPF鄰居詳細信息。
[DeviceA] display ospf peer verbose
OSPF Process 1 with Router ID 2.2.2.1
Neighbors
Area 0.0.0.0 interface 1.1.1.1(GigabitEthernet1/0/1)'s neighbors
Router ID: 3.3.3.1 Address: 1.1.1.2 GR State: Normal
State: Full Mode: Nbr is master Priority: 1
DR: 1.1.1.1 BDR: 1.1.1.2 MTU: 0
Options is 0x42 (-|O|-|-|-|-|E|-)
Dead timer due in 32 sec
Neighbor is up for 00:07:08
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
BFD status: Disabled
# 查看Device A的OSPF路由信息。
[DeviceA] display ospf routing
OSPF Process 1 with Router ID 2.2.2.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
3.3.3.0/24 2 Inter 1.1.1.2 3.3.3.1 0.0.0.0
2.2.2.0/24 1 Stub 0.0.0.0 2.2.2.1 0.0.0.1
1.1.1.0/24 1 Transit 0.0.0.0 2.2.2.1 0.0.0.0
Total nets: 3
Intra area: 2 Inter area: 1 ASE: 0 NSSA: 0
# Area 1中的主機與Area 2中的主機可以互相Ping通。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!