29-OSPF配置
本章節下載: 29-OSPF配置 (566.74 KB)
目 錄
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-10 LSA僅在區域範圍進行泛洪,用於支持MPLS TE的LSA就是Type-10的一種類型;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報文,以組播方式發送其他類型的協議報文。
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協議將無法正常運行。在進行各項配置的時候應該先做好網絡規劃,錯誤的配置可能會導致相鄰路由器之間無法相互傳遞信息,甚至導致路由信息的阻塞或者產生路由環路。
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 } ] *
缺省情況下,係統沒有運行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 } ] *
缺省情況下,係統沒有運行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 } ] *
(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-10 LSA或Type-11 LSA攜帶動態主機名屬性信息,因此,使用該功能前,需要保證OSPF的Opaque LSA發布接收能力處於開啟狀態。
(1) 進入係統視圖。
system-view
(2) 啟動OSPF,進入OSPF視圖。
ospf [ process-id | router-id { auto-select | router-id } ] *
(3) 使能Opaque LSA發布接收能力。
opaque-capability enable
缺省情況下,OSPF的Opaque LSA發布接收能力處於開啟狀態。
(4) 使能OSPF動態主機名映射功能。
hostname [ host-name ]
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後OSPF的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除OSPF的統計信息、重啟OSPF進程。
表1-3 OSPF顯示和維護
操作 |
命令 |
顯示OSPF的ABR聚合信息 |
display ospf [ process-id ] [ area area-id ] abr-summary [ ip-address { mask-length | mask } ] [ verbose ] |
顯示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的日誌信息 |
display ospf [ process-id ] event-log { lsa-flush | peer | spf } |
顯示OSPF接收或發送Hello報文的日誌信息 |
display ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent } [ neighbor-id ] display ospf [ process-id ] event-log hello sent { abnormal | failed } [ neighbor-address ] |
顯示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-area | 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 ] nexthop |
顯示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 ] ] |
顯示全局Router ID |
display router id |
清除OSPF的日誌信息 |
reset ospf [ process-id ] event-log [ lsa-flush | peer | spf ] |
清除OSPF接收或發送Hello報文的日誌信息 |
reset ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent [ abnormal | failed ] } |
重啟OSPF進程 |
reset ospf [ process-id ] process |
清除OSPF的統計信息 |
reset ospf [ process-id ] statistics |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!