OSPF多區域原理與配置
楔子
其實網路算得上是底層的原理了 根據tcp/ip 七層協定就可以看出 系統原理和網絡是不可分割的一部分。
生成OSPF多區域的原因
- 改善網絡的可擴充性
- 快速收斂
- OSPF區域的容量
劃分多區域後,每個OSPF區域裡到底可以容納多少台路由器?單個區域所支援的路由器數量的範圍大約是30-200。但在一個區域内實際加入的路由器數量要小于單個區域所能容納路由器的最大數量。這是因為還有更為重要的一些因素影響着這個數量,諸如一個區域内鍊路的數量,網絡拓撲的穩定性、路由器的記憶體和CPU性能、路由彙總的有效使用和注入到這個區域的彙總LSA的數量等。正是由于這些因素,有時在一些區域裡包含25台路由器可能都已經顯得比較多了,而在另一些區域内卻可以容納多于500台的路由器。
對于和區域相關的通信量定義了下面的三種類型:
- 域内通信量(Intar-Area Traffic):是指由單個區域内路由器之間交換的資料包構成的通信量。
- 域間通信量(Inter-Area Traffic):是指由不同區域的路由器之間交換的資料包構成的通信量。
- 外部通信量(External Traffic):是指由OSPF區域内的路由器與OSPF區域外或另一個自治系統内的路由器之間交換的資料包構成的通信量。
OSPF被分成多區域的能力是依照分層路由實作的。當被劃分成小區域以後,像重新計算拓撲資料庫這樣的操作就被限定在該小區域内,區域間則隻需要通告一些彙總資訊。例如:區域1内部發生了路由器的Up或者Down時,其他區域内的路由器不需要運作SPF算法來重新計算路由資訊,這是因為那些問題被隔離在區域1的内部。
具體來說,分層路由有以下優勢:
- 降低了SPF運算的頻率。因為詳細的路由資訊被保留在每個區域的内部,無需泛洪全部鍊路狀态的改變給所有其他區域。是以,隻有那些受拓撲改變影響的路由器才需要重新運作SPF算法。
- 減少了路由表。當使用多區域時,每個區域隻保留自己區域的詳細路由條目,并且不會通告這些條目到區域外部,區域邊界路由器可以彙總一條或多條路由資訊,在OSPF域間進行通告,這樣既減少了LSA的數量,同時又保證了區域之間的連通性。
- 減小了鍊路狀态更新封包(LSU)的流量。LSU包含多種LSA類型,也包括鍊路狀态資訊和彙總資訊。分成多區域後,不再是發送每個網絡的LSU,而是在區域間通告單個路徑或者幾個彙總路徑的更新,進而有效的減小了穿越多個區域的LSU流量。
-
路由器的類型
路由器也像通信量一樣可以被分成和區域相關的幾種類型:
- 内部路由器(Internal Router):是指所有接口都屬于同一個區域的路由器。
- 區域邊界路由器(Area Border Routers,ABR):是指連接配接一個或多個區域到骨幹區域的路由器,并且這些路由器會作為域間通信量的路由網關。因而,ABR路由器至少有一個接口是屬于骨幹區域的,而且必須為每一個與之相連的區域維護不同的鍊路狀态資料庫。正因為這個原因,ABR路由器通常需要比一般的内部路由器有更多的記憶體和更高性能的路由處理器。ABR路由器将會彙總與它相連區域的拓撲資訊給骨幹區域,然後又将這些彙總資訊傳送給其他的區域。
- 自治系統邊界路由器(Autonomous System Boundary Router,ASBR):可以認為是OSPF域外部的通信量進入OSPF域的網關路由器,也就是說,ASBR路由器是用來把其他路由器協定學習到的路由器通過路由選擇重配置設定的方式注入到OSPF域的路由器。一個ASBR路由器可以是位于OSPF域的自治系統内部的任何路由器,它可以是一台内部路由器或者ABR路由器。
- 區域的類型
OSPF路由協定将區域劃分為不同類型,包括骨幹區域、标準區域、末梢區域、完全末梢區域、非純末梢區域等。根據互連區域的類型和數量不同,OSPF提供了不同類型的路由更新。
運作OSPF的整個區域屬于一個自治系統(AS),除了AS的路由都屬于外部路由。Backone是連接配接衆區域的骨幹層,跨區域的流量都要在骨幹上通過,骨幹的穩定性、健壯性至關重要。骨幹上的路由器大都是區域邊界路由器ABR。
- 骨幹區域Area 0
該區域的ID一定為0,它是連接配接所有其他區域的核心域,相當于交換網絡的彙聚層。
- 标準區域
該區域可以接收各種鍊路狀态資訊和彙總的路由通告。沒有特殊定義的區域就是标準區域。
- 鍊路狀态資料庫
一台運作OSPF路由協定的路由器中,所有有效的LSA通告都被存放在它的鍊路狀态資料庫當中,正确的LSA通告将可以描述出一個OSPF區域網絡拓撲的結構。
- 鍊路狀态資料庫的組成
每台路由器都建立了由每個接口、對應的相鄰節點和接口速率組成的資料庫,鍊路狀态資料庫中的每個條目都稱為LSA(鍊路狀态通告),常見的LSA有六種類型。
-
鍊路狀态通告
常見的LSA有六種類型,分别是LSA1、LSA2、LSA3、LSA4、LSA5、LSA7。
- LSA1:路由器LSA
- LSA2:網絡LSA
- LSA3:網絡彙總LSA
路由器LSA(Router LSA):每一台運作OSPF路由協定的路由器都會産生路由器LSA通告。這個最基本的LSA通告列出了路由器所有的鍊路或接口,并指明了它們的狀态和沿每條鍊路方向出站的代價。這些LSA通告隻會在始發它們的區域内部進行泛洪。通過指令“show ip ospf database router” 可以檢視資料庫中列出的所有路由器LSA通告。還可以在這條指令後加上一個參數以指定一個路由器ID,進而觀察到單個路由器LSA通告的詳細資訊。這些資訊顯示了記錄在鍊路狀态資料庫中的完整的LSA資訊。
網絡LSA(Network LSA):每一個多址網絡(廣播型和NBMA)中的指定路由器DR都将會産生網絡LSA通告。可将DR路由器看做一個“僞”節點或一個虛拟路由器,用來描繪一個多址通路網絡和與之相連的所有路由器。網絡LSA通告列出了所有與之相連的路由器,也包括DR路由器本身。向路由器LSA一樣,網絡LSA也僅僅在産生這條網絡LSA的區域内部進行泛洪。使用指令show ip ospf database network 可以檢視一條網絡LSA通告的資訊。
網絡彙總LSA(Network Summary LSA):是由ABR路由器始發的。ABR路由器将發送網絡彙總LSA到一個區域,用來通告該區域外部的目的位址。實際上,這些網絡彙總LSA就是ABR路由器告訴在自己所屬區域内的内部路由器它所能到達的目的位址的一種方法。一台ABR路由器也可以通過網絡彙總LSA向骨幹區域通告與它相連的區域内部的目的位址。在一個區域外部,且仍然在一個OSPF自治系統内部的預設路由,也可以通過這種LSA來通告。使用指令show ip ospf database summary可以顯示鍊路狀态資料庫中的網絡彙總LSA資訊。
- OSPF多區域配置的驗證及OSPF路由表
- OSPF常用的檢查指令
指令說明
show ip route 檢視路由表資訊(直連/學習)
show ip route ospf隻檢視OSPF學習到的路由
show ip protocol檢視OSPF協定配置資訊
show ip ospf檢視在路由器上OSPF是如何配置的以及ABR的資訊
show ip ospf database檢視LSDB内的所有LSA資料資訊
show ip ospf interface檢視接口上OSPF配置的資訊(程序ID、RouterID、Cost、Priority、鄰居的數量)
show ip ospf neighbor檢視OSPF鄰居和鄰接的狀态(Full表示鄰居狀态正常)
show ip ospf neighbor detail檢視OSPF鄰居的詳細資訊(包括DR/BDR)
debug ip ospf adj檢視路由器“鄰接”的整個過程
debug ip ospf packet檢視每個OSPF資料包的資訊(包括OSPF版本、RouterID、AreaID)
clear ip route清空路由表
- OSPF路由表
使用show ip route指令檢視多區域OSPF執行個體中路由器的路由表。
在路由條目前的“O”代表OSPF區域内的路由,而“O IA”代表OSPF區域間的路由。
- 區域内路徑(Intra-area Path)是指在路由器所在的區域内就可以到達目的地的路徑。
- 區域間路徑(Inter-area Path)是指在其他區域但仍在OSPF自治系統内的目的地路徑。在路由表中,打上了IA标志的條目就是區域間路徑,它總是至少通過一台ABR路由器。
- 路由器對路由條目的選擇
路由器在選擇路由條目并将其添加到路由表中時,使用兩個參數:Metrics(路徑成本)和Distance Metric(管理距離)。
- 路徑成本代表距離,由路徑成本來确定尋路時的最優路由。
- 管理距離是指一種路由協定的路由可信度。
注意:
- OSPF路由協定中的路徑成本為接口代價(Cost);RIP路由協定中路徑成本代表距離(跳數)。
- 在OSPF中一條路由的代價是指到達目的網絡的路由路徑上所有出站接口的代價之和。
當路由器收到相同目的位址的路由條目時,首先比較管理距離,選擇管理距離小的路由條目添加到路由表中。如果管理距離相同,則比較路徑成本,選擇路徑成本小的路由條目添加到路由表中。
當收到目的位址、路徑成本和管理距離值都相同的路由條目時,路由表中會形成負載均衡的路由條目。
需要注意的是,OSPF路由協定為不同類型的路由規定了不同的優先級,即域内路由優先級高于域間路由。例如,如果一台路由器通過OSPF的SPF算法得到某一網段有路徑成本和管理距離相同的兩條路徑時,如果一條路徑是域内而另一條路徑是域外,路由器會選擇域内路由添加到路由條目中。
- 靜态路由的管理距離預設是1,路徑成本是0。
- RIP協定的管理距離預設是120,路徑成本是跳數。
- OSPF協定的管理距離預設是110,路徑成本是接口代價。
在學習浮動路由時,就是對同一網段使用了不同的管理距離(一條路由管理距離大,另一條管理距離小),再讓路由器選擇最優的路由(可信度高的路由)添加到路由表中。當線路出現故障時,管理距離小的路由失效,管理距離大的路由為最佳路由,會被路由器選入路由表中。
需要注意的是,路由器轉發資料時選擇可以和目的位址最精确比對的路由。例如,如果路由表中存在路由條目172.19.64.0/18、172.19.64.0/24和172.19.64.192/27,而目的位址是172.19.64.205,那麼最後一個路由條目将被選中。最精确的比對應該總是最長比對——擁有最長位址掩碼的路由。如果路由器沒有發現比對的條目,它将發送一個ICMP目的不可達的消息給那個資料包的源位址,并且把這個資料包丢棄。如果最後比對多條等價路由時,那麼将會負載分擔的利用多條等價路由。
- Stub區域及配置
除了骨幹區域和标準區域之外,還有末梢區域(Stub)、完全末梢區域(Totally Stubby)和非純末梢區域(NSSA)。
- LSA4與LSA5
- LSA4:ASBR彙總LSA(ASBR Summary LSA)
- LSA5:自治系統外部LSA(Autonomous System External LSA)
- LSA4
ASBR彙總LSA(ASBR Summary LSA):也是有ABR路由器始發的。ASBR彙總LSA除了所通告的目的地是一個ASBR路由器而不是一個網絡外,其他的域網絡彙總LSA都是一樣的。使用指令show ip ospf database asbr-summary可以檢視ASBR彙總LSA的資訊。
注意:目的地是一個主機位址,并且掩碼是0。通常ASBR彙總LSA通告的目的地總是一個主機位址,因為它是一條到達一台路由器的路由。
- LSA5
自治系統外部LSA(Autonomous System External LSA):也稱為外部LSA(External LSA),始發于ASBR路由器,用來通告到達OSPF自治系統外部的目的地或者是到OSPF自治系統外部的預設路由的LSA。外部LSA通告将在整個自治系統中進行泛洪。使用指令show ip ospf database external可以檢視AS外部LSA的資訊。
- 末梢區域和完全末梢區域
在OSPF區域中,一些區域出口很少,對區域外的路由僅需要一條預設路由,為了減少區域内路由器的路由條目,可以把此區域配置為末梢區域。在Stub區域中僅僅需要域内的路由條目和一條指向區域邊界路由器的預設路由就能實作所有的選路,是以在Stub區域中可以減少不必要的LSA泛洪。
由于從Stub區域内到其他區域僅有一條預設路由,是以Stub區域有一定限制,即區域内不能有自治系統邊界路由器(ASBR),并且它們不能為區域間的流量做轉發。
Stub區域并不限制一定隻有一個作為出口的區域邊界路由器。能夠進入或存在Stub區域的鍊路狀态通告LSA的類型為1、2、3型,禁止4、5、7型進入Stub區域。
當區域配置為完全末梢區域(Totally Stubby)時,在區域内除了域内路由外,隻有一個預設路由。
滿足以下四個條件的區域可以被認定為Stub或者Totally Stubby區域:
- 隻有一個預設路由作為其區域的出口
- 區域不能作為虛鍊路的穿越區域
- Stub區域裡無自治系統邊界路由器ASBR
- 不是骨幹區域Area0
- 末梢區域(Stub Area)
末梢區域是一個不允許自治系統外部LSA通告在去内部進行泛洪的區域。如果在一個區域裡沒有學到類型5的LSA通告,那麼類型4的LSA通告也是不必要的了,因為這些LSA通告也将被阻塞。位于末梢區域邊界的ABR路由器将使用網絡會中LSA向這個區域通告一個簡單的預設路由(目的位址是0.0.0.0)。在區域内部路由器上,所有和域内或域間路由不能比對的目的位址都将最終比對這條預設路由。由于預設路由是由類型3的LSA通告傳送的,是以它将不會被通告到這個區域的外部去。
由于在一個末梢區域裡,路由器的鍊路狀态資料被減小了,是以,這些路由器的性能将得到提高,并且記憶體也得到節省。當然,在一個含有大量類型5的LSA通告的OSPF區域裡,這種改進将更加顯著。
- 和所有的區域一樣,一個末梢區域内部的所有路由器也必須擁有相同的鍊路狀态資料庫。為了確定滿足這個條件,所有末梢區域内的路由器都會在它們的Hello封包中設定一個标志E-bit,并将它設定為0。這樣,這些末梢區域路由器将不接受其他路由器發送的任何E-bit為1的Hello封包。結果,末梢區域路由器将不能和其他非末梢區域的路由器建立鄰接關系。
- 虛連接配接不能再一個末梢區域内進行配置,也不能穿過一個末梢區域。
- 末梢區域内的路由器不能是ASBR路由器。這個限制條件是很容易直覺的了解的,因為ASBR路由器會産生類型5的LSA通告,而在一個末梢區域内不能存在類型5的LSA通告。
- 一個末梢區域可以擁有多台ABR路由器,但是因為預設路由的原因,區域内部路由器将不能确定哪一台路由器才是到達ASBR路由器的最優網關。
注意:配置成NSSA區域的路由器也不能和其他非NSSA區域的路由器形成鄰接關系。
- 完全末梢區域(Totally Stubby Area)
如果通過阻塞類型5和類型4的LSA傳播的方法來節省記憶體的話,那麼要是能夠把類型3的LSA也阻塞掉,不是可以節省更多的記憶體嗎?對于這個問題,Cisco借助于末梢區域的概念提出了完全末梢區域的概念。
完全末梢區域(Totally Stubby Area)不僅使用預設路由到達OSPF自治系統外部的目的位址,而且使用預設路由到達這個區域外部的所有目的位址。一個完全末梢區域的ABR将不僅阻塞AS外部的LSA,而且阻塞所有的彙總LSA,除了通告預設路由的那一條類型3的LSA。
- 配置末梢區域和完全末梢區域
- 配置Stub Area
Router(config-router)# area area-id stub
其中,area-id辨別Stub區域的ID,可以是數字或者IP位址形式。此指令需要在Stub區域内的所有路由器上配置。
- 配置Totally Stubby Area
Router(config-router)# area area-id stub no-summary
其中,area-id辨別Stub區域的ID,可以是數字或者IP位址形式。no-summary使用此參數來生成Totally Stubby區域,僅用于ABR,以阻止ABR發送彙總鍊路通告到完全末梢區域内。
OSPF多域配置執行個體

實驗環境
huawei公司有三家分公司,總公司和分公司之間使用專線連接配接,huawei公司要求配置路由器實作網絡互通。
如上圖所示為huawei公司的路由器連接配接示意圖,通過配置路由器實作公司的内部全網互通,具體規劃情況如下:
- R1和R2的互聯位址:10.0.0.0/30,R1和R3的互聯位址:10.0.0.4/30,R1和R4的互聯位址:10.0.0.8/30.
- 使用路由器的Loopback接口位址作為Router ID,R1的Loopback0:1.1.1.1/32,R2的Loopback0:2.2.2.2/32,R3的Loopback0:3.3.3.3/32,R4的Loopback0:4.4.4.4/32。
- 使用Loopback接口模拟下帶主機的位址網段,R1的Loopback1:192.168.1.0/24,R2的Loopback1:192.168.2.0/24,R3的Loopback1:192.168.3.0/24,R4的Loopback1:192.168.4.0/24。
具體步驟:
- 配置路由器的接口位址、Loopback接口
- 配置OSPF協定,實作内部網絡互通
- 驗證網絡通路是否正常
- 如果将區域2設定為末梢區域,那麼就要在R1和R4上分别做配置:
- 如果将區域2設定為完全末梢區域,那麼就要在R1和R4上分别做配置:
總結 越努力越幸運