OSPF多區域原理與配置算法
n 生成OSPF多區域的緣由數據庫
1. 生成OSPF多區域的緣由網絡
? 改善網絡的可擴展性負載均衡
? 快速收斂ide
2. OSPF區域的容量oop
劃分多區域後,每一個OSPF區域裏到底能夠容納多少臺路由器?單個區域所支持的路由器數量的範圍大約是30-200。但在一個區域內實際加入的路由器數量要小於單個區域所能容納路由器的最大數量。這是由於還有更爲重要的一些因素影響着這個數量,諸如一個區域內鏈路的數量,網絡拓撲的穩定性、路由器的內存和CPU性能、路由彙總的有效使用和注入到這個區域的彙總LSA的數量等。正是因爲這些因素,有時在一些區域裏包含25臺路由器可能都已經顯得比較多了,而在另外一些區域內卻能夠容納多於500臺的路由器。性能
對於和區域相關的通訊量定義了下面的三種類型:學習
? 域內通訊量(Intar-Area Traffic):是指由單個區域內路由器之間交換的數據包構成的通訊量。spa
? 域間通訊量(Inter-Area Traffic):是指由不一樣區域的路由器之間交換的數據包構成的通訊量。debug
? 外部通訊量(External Traffic):是指由OSPF區域內的路由器與OSPF區域外或另外一個自治系統內的路由器之間交換的數據包構成的通訊量。
OSPF被分紅多區域的能力是依照分層路由實現的。當被劃分紅小區域之後,像從新計算拓撲數據庫這樣的操做就被限定在該小區域內,區域間則只須要通告一些彙總信息。例如:區域1內部發生了路由器的Up或者Down時,其餘區域內的路由器不須要運行SPF算法來從新計算路由信息,這是由於那些問題被隔離在區域1的內部。
具體來講,分層路由有如下優點:
? 下降了SPF運算的頻率。由於詳細的路由信息被保留在每一個區域的內部,無需泛洪所有鏈路狀態的改變給全部其餘區域。所以,只有那些受拓撲改變影響的路由器才須要從新運行SPF算法。
? 減小了路由表。當使用多區域時,每一個區域只保留本身區域的詳細路由條目,而且不會通告這些條目到區域外部,區域邊界路由器能夠彙總一條或多條路由信息,在OSPF域間進行通告,這樣既減小了LSA的數量,同時又保證了區域之間的連通性。
? 減少了鏈路狀態更新報文(LSU)的流量。LSU包含多種LSA類型,也包括鏈路狀態信息和彙總信息。分紅多區域後,再也不是發送每一個網絡的LSU,而是在區域間通告單個路徑或者幾個彙總路徑的更新,從而有效的減少了穿越多個區域的LSU流量。
n 路由器的類型
路由器也像通訊量同樣能夠被分紅和區域相關的幾種類型:
? 內部路由器(Internal Router):是指全部接口都屬於同一個區域的路由器。
? 區域邊界路由器(Area Border Routers,ABR):是指鏈接一個或多個區域到骨幹區域的路由器,而且這些路由器會做爲域間通訊量的路由網關。於是,ABR路由器至少有一個接口是屬於骨幹區域的,並且必須爲每個與之相連的區域維護不一樣的鏈路狀態數據庫。正由於這個緣由,ABR路由器一般須要比通常的內部路由器有更多的內存和更高性能的路由處理器。ABR路由器將會彙總與它相連區域的拓撲信息給骨幹區域,而後又將這些彙總信息傳送給其餘的區域。
? 自治系統邊界路由器(Autonomous System Boundary Router,ASBR):能夠認爲是OSPF域外部的通訊量進入OSPF域的網關路由器,也就是說,ASBR路由器是用來把其餘路由器協議學習到的路由器經過路由選擇重分配的方式注入到OSPF域的路由器。一個ASBR路由器能夠是位於OSPF域的自治系統內部的任何路由器,它能夠是一臺內部路由器或者ABR路由器。
n 區域的類型
OSPF路由協議將區域劃分爲不一樣類型,包括骨幹區域、標準區域、末梢區域、徹底末梢區域、非純末梢區域等。根據互連區域的類型和數量不一樣,OSPF提供了不一樣類型的路由更新。
運行OSPF的整個區域屬於一個自治系統(AS),除了AS的路由都屬於外部路由。Backone是鏈接衆區域的骨幹層,跨區域的流量都要在骨幹上經過,骨幹的穩定性、健壯性相當重要。骨幹上的路由器大都是區域邊界路由器ABR。
1. 骨幹區域Area 0
該區域的ID必定爲0,它是鏈接全部其餘區域的核心域,至關於交換網絡的匯聚層。
2. 標準區域
該區域能夠接收各類鏈路狀態信息和彙總的路由通告。沒有特殊定義的區域就是標準區域。
n 鏈路狀態數據庫
一臺運行OSPF路由協議的路由器中,全部有效的LSA通告都被存放在它的鏈路狀態數據庫當中,正確的LSA通告將能夠描述出一個OSPF區域網絡拓撲的結構。
n 鏈路狀態數據庫的組成
每臺路由器都建立了由每一個接口、對應的相鄰節點和接口速率組成的數據庫,鏈路狀態數據庫中的每一個條目都稱爲LSA(鏈路狀態通告),常見的LSA有六種類型。
n 鏈路狀態通告
常見的LSA有六種類型,分別是LSA一、LSA二、LSA三、LSA四、LSA五、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信息。
n OSPF多區域配置的驗證及OSPF路由表
1. 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 清空路由表
2. OSPF路由表
使用show ip route命令查看多區域OSPF實例中路由器的路由表。
在路由條目前的「O」表明OSPF區域內的路由,而「O IA」表明OSPF區域間的路由。
? 區域內路徑(Intra-area Path)是指在路由器所在的區域內就能夠到達目的地的路徑。
? 區域間路徑(Inter-area Path)是指在其餘區域但仍在OSPF自治系統內的目的地路徑。在路由表中,打上了IA標誌的條目就是區域間路徑,它老是至少經過一臺ABR路由器。
3. 路由器對路由條目的選擇
路由器在選擇路由條目並將其添加到路由表中時,使用兩個參數:Metrics(度量值)和Distance Metric(管理距離)。
? 度量值表明距離,由度量值來肯定尋路時的最優路由。
? 管理距離是指一種路由協議的路由可信度。
注意:
? OSPF路由協議中的度量值爲接口代價(Cost);RIP路由協議中度量值表明距離(跳數)。
? 在OSPF中一條路由的代價是指到達目的網絡的路由路徑上全部出站接口的代價之和。
當路由器收到相同目的地址的路由條目時,首先比較管理距離,選擇管理距離小的路由條目添加到路由表中。若是管理距離相同,則比較度量值,選擇度量值小的路由條目添加到路由表中。
當收到目的地址、度量值和管理距離值都相同的路由條目時,路由表中會造成負載均衡的路由條目。
須要注意的是,OSPF路由協議爲不一樣類型的路由規定了不一樣的優先級,即域內路由優先級高於域間路由。例如,若是一臺路由器經過OSPF的SPF算法獲得某一網段有度量值和管理距離相同的兩條路徑時,若是一條路徑是域內而另外一條路徑是域外,路由器會選擇域內路由添加到路由條目中。
注意:
? 靜態路由的管理距離默認是1,度量值是0。
? RIP協議的管理距離默認是120,度量值是跳數。
? OSPF協議的管理距離默認是110,度量值是接口代價。
在學習浮動路由時,就是對同一網段使用了不一樣的管理距離(一條路由管理距離大,另外一條管理距離小),再讓路由器選擇最優的路由(可信度高的路由)添加到路由表中。當線路出現故障時,管理距離小的路由失效,管理距離大的路由爲最佳路由,會被路由器選入路由表中。
須要注意的是,路由器轉發數據時選擇能夠和目的地址最精確匹配的路由。例如,若是路由表中存在路由條目172.19.64.0/1八、172.19.64.0/24和172.19.64.192/27,而目的地址是172.19.64.205,那麼最後一個路由條目將被選中。最精確的匹配應該老是最長匹配——擁有最長地址掩碼的路由。若是路由器沒有發現匹配的條目,它將發送一個ICMP目的不可達的消息給那個數據包的源地址,而且把這個數據包丟棄。若是最後匹配多條等價路由時,那麼將會負載分擔的利用多條等價路由。
n Stub區域及配置
除了骨幹區域和標準區域以外,還有末梢區域(Stub)、徹底末梢區域(Totally Stubby)和非純末梢區域(NSSA)。
n LSA4與LSA5
? LSA4:ASBR彙總LSA(ASBR Summary LSA)
? LSA5:自治系統外部LSA(Autonomous System External LSA)
1. LSA4
ASBR彙總LSA(ASBR Summary LSA):也是有ABR路由器始發的。ASBR彙總LSA除了所通告的目的地是一個ASBR路由器而不是一個網絡外,其餘的域網絡彙總LSA都是同樣的。使用命令show ip ospf database asbr-summary能夠查看ASBR彙總LSA的信息。
注意:目的地是一個主機地址,而且掩碼是0。一般ASBR彙總LSA通告的目的地老是一個主機地址,由於它是一條到達一臺路由器的路由。
2. LSA5
自治系統外部LSA(Autonomous System External LSA):也稱爲外部LSA(External LSA),始發於ASBR路由器,用來通告到達OSPF自治系統外部的目的地或者是到OSPF自治系統外部的默認路由的LSA。外部LSA通告將在整個自治系統中進行泛洪。使用命令show ip ospf database external能夠查看AS外部LSA的信息。
n 末梢區域和徹底末梢區域
在OSPF區域中,一些區域出口不多,對區域外的路由僅須要一條默認路由,爲了減小區域內路由器的路由條目,能夠把此區域配置爲末梢區域。在Stub區域中僅僅須要域內的路由條目和一條指向區域邊界路由器的默認路由就能實現全部的選路,因此在Stub區域中能夠減小沒必要要的LSA泛洪。
因爲從Stub區域內到其餘區域僅有一條默認路由,因此Stub區域有必定限制,即區域內不能有自治系統邊界路由器(ASBR),而且它們不能爲區域間的流量作轉發。
Stub區域並不限制必定只有一個做爲出口的區域邊界路由器。可以進入或存在Stub區域的鏈路狀態通告LSA的類型爲一、二、3型,禁止四、五、7型進入Stub區域。
當區域配置爲徹底末梢區域(Totally Stubby)時,在區域內除了域內路由外,只有一個默認路由。
知足如下四個條件的區域能夠被認定爲Stub或者Totally Stubby區域:
? 只有一個默認路由做爲其區域的出口
? 區域不能做爲虛鏈路的穿越區域
? Stub區域裏無自治系統邊界路由器ASBR
? 不是骨幹區域Area0
1. 末梢區域(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區域的路由器造成鄰接關係。
2. 徹底末梢區域(Totally Stubby Area)
若是經過阻塞類型5和類型4的LSA傳播的方法來節省內存的話,那麼要是可以把類型3的LSA也阻塞掉,不是能夠節省更多的內存嗎?對於這個問題,Cisco藉助於末梢區域的概念提出了徹底末梢區域的概念。
徹底末梢區域(Totally Stubby Area)不只使用默認路由到達OSPF自治系統外部的目的地址,並且使用默認路由到達這個區域外部的全部目的地址。一個徹底末梢區域的ABR將不只阻塞AS外部的LSA,並且阻塞全部的彙總LSA,除了通告默認路由的那一條類型3的LSA。
n 配置末梢區域和徹底末梢區域
1. 配置Stub Area
Router(config-router)# area area-id stub
其中,area-id標識Stub區域的ID,能夠是數字或者IP地址形式。此命令須要在Stub區域內的全部路由器上配置。
2. 配置Totally Stubby Area
Router(config-router)# area area-id stub no-summary
其中,area-id標識Stub區域的ID,能夠是數字或者IP地址形式。no-summary使用此參數來生成Totally Stubby區域,僅用於ABR,以阻止ABR發送彙總鏈路通告到徹底末梢區域內。
n OSPF多域配置實例
實驗環境
Benet公司有三家分公司,總公司和分公司之間使用專線鏈接,Benet公司要求配置路由器實現網絡互通。
如上圖所示爲Benet公司的路由器鏈接示意圖,經過配置路由器實現公司的內部全網互通,具體規劃狀況以下:
? 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。
具體步驟:
1. 配置路由器的接口地址、Loopback接口
2. 配置OSPF協議,實現內部網絡互通
3. 驗證網絡訪問是否正常
4. 若是將區域2設置爲末梢區域,那麼就要在R1和R4上分別作配置:
5. 若是將區域2設置爲徹底末梢區域,那麼就要在R1和R4上分別作配置: