1. 程式人生 > >OSPF 多區域原理與配置

OSPF 多區域原理與配置

變化 很多 信息 交換路由 路由選擇協議 更新 負載均衡 路由器配置 大數

今天給大家簡單介紹一下如何在OSPF區域中劃分成多個小區域,和劃分小區域的必要性。
在大型網絡中,使用OSPF路由協議經常遇到以下問題:
1.在大型網絡中,網絡結構的變化是時常發生的,因此OSPF路由器就會經常運行SPF算法來重新計算路由信息,大量消耗路由器的CPU和內存資源;
2.在OSPF網絡中,隨著多條路徑的增加,路由表會變得越來越龐大,每一次路徑的改變都使路由器不得不花大量的時間和資源去重新計算路由表,路由器會變得越來越低效;
3.包含完整網絡結構信息的鏈路狀態數據庫也會變得越來越大,這將有可能使路由器的CPU和內存資源徹底耗盡,從而導致路由器的崩潰。
為了解決這個問題,OSPF允許把大型區域劃分成多個小區域,這些小區域可以交換路由匯總信息,而不是每個路由器的詳細信息;也更容易管理;OSPF的工作也會更加流暢。
生成OSPF多區域的原因
改善網絡的可擴展性;
快速收斂。
想要達到上面兩個要求的關鍵就是把網絡分成更小的區域。比如
技術分享圖片
劃分區域之後,每個OSPF區域中支持的最多路由器的個數30——200。但是一個區域中實際加入的路由器的數量要小於單個區域所能容納路由器的最大數量。因為有很多原因影響,比如:一個區域內鏈路的數量、網絡拓補穩定性、路由器的內存和CPU等等。
對於和區域相關的通信量定義了三種類型,如:
1.域內通信量:指由單個區域內的路由器之間交換的數據包構成的通信量;
2.域間通信量:指由不同區域的路由器之間交換的數據包構成的通信量;
3.外部通信量:指由OSPF區域內的路由器與OSPF區域外或兩一個AS(自治系統)內的路由器之間交換的數據包構成的通信量。
OSPF被分為多區域的能力是依照分層路由實現的。當劃分成小區域以後,像重新計算拓補數據庫這樣的操作就被限定在該小區域內,區域間則只需通告一些匯總信息。
分層路由的優勢:
1.降低了SPF運算的頻率;
2.減小了路由表;
3.減小了鏈路狀態更新報文(LSU)的流量。
如圖:路由器也像通信量一樣可以分成和區域相關的幾種類型:
技術分享圖片
內部路由器:指所有接口都屬於同一個區域的路由器;
區域邊界路由器(ABR):指連接一個或多個區域到骨幹區域的路由器並且這些路由器會作為域間通信量的網關。物理上至少連接兩個區域。
自治系統邊界路由器(ASBR):ASBR路由器是用來把其他路由選擇協議學習到的路由通過路由選擇重分配的方式註入OSPF域的路由器。至少配置兩種路由協議。
OSPF根據能夠學習到的路由種類將區域分為不同的類型,包括骨幹區域、標準區域、末梢區域、完全末梢區域、非純末梢區域等。
運行OSPF的整個區域屬於一個AS,AS範圍外的路由都屬於外部路由。骨幹區域用於連接其他區域,骨幹區域中的路由器大都是ABR。
骨幹區域Area 0該區域的ID一定是0,它是連接所有其他區域的核心,在不同的區域間傳遞路由信息,其他區域必須跟骨幹區域直連。
標準區域能夠學習到其他區域的路由;也能學習到外部路由就稱為標準區域。
每個路由器都創建了由每個接口、對應的相鄰節點和接口速度組成的數據庫,稱為鏈路狀態數據庫。
鏈路狀態數據庫中每個條目稱為LSA(鏈路狀態通告),常見的有六種LSA類型, 接下來我們通過表格的方式簡單認識前五種,第六種我們下次再介紹
技術分享圖片
配置多區域OSPF步驟,我們結合一個小型的拓補圖看一下
技術分享圖片
接下來我們簡單的配置一下R1,R1是一臺內部路由器,相對來說簡單許多
r1(config)#int loopback 0 #給路由器配置loopback接口(虛擬接口),建議大家盡量都配置虛擬接口<br/>r1(config-if)#ip add 1.1.1.1 255.255.255.255 #地址的子網掩碼盡量是32位的<br/>r1(config-if)#int f0/0 #給物理接口配置IP地址<br/>r1(config-if)#ip add 192.168.1.1 255.255.255.0<br/>r1(config-if)#no sh<br/>r1(config-if)#int f0/1<br/>r1(config-if)#ip add 192.168.3.1 255.255.255.0<br/>r1(config-if)#no sh<br/>r1(config)#router ospf 1 #啟動OSPF進程(進程號是1)<br/>r1(config-router)#router-id 1.1.1.1 #指定的Router ID是loopback口的地址(在現實環境中,盡量手工指定)<br/>r1(config-router)#net 1.1.1.1 0.0.0.0 area 0 #把網段放到區域中<br/>r1(config-router)#net 192.168.1.0 0.0.0.255 area 0<br/>r1(config-router)#net 192.168.3.0 0.0.0.255 area 0<br/>
R1配置完成,接下來我們配置R2,R2是一臺區域邊界路由器(步驟大致一樣,不一樣的會做說明)
r2(config)#int loopback 0<br/>r2(config-if)#ip add 2.2.2.2 255.255.255.255<br/>r2(config-if)#int f0/0<br/>r2(config-if)#ip add 192.168.1.2 255.255.255.0<br/>r2(config-if)#no sh<br/>r2(config-if)#int f0/1<br/>r2(config-if)#ip add 192.168.2.1 255.255.255.0<br/>r2(config-if)#no sh<br/>r2(config)#router ospf 1<br/>r2(config-router)#router-id 2.2.2.2<br/>r2(config-router)#net 2.2.2.2 0.0.0.0 area 0 #因為loopback接口是虛擬的,所以分到那個區域也行<br/>r2(config-router)#net 192.168.1.0 0.0.0.255 area 0<br/>r2(config-router)#net 192.168.2.0 0.0.0.255 area 1 #給網段分配區域的時候看好,省得出現錯誤<br/>
剩下兩臺的配置方法給這兩臺一樣,這裏就不示範了
配置完成之後,我們查看一下路由表,發現
技術分享圖片
區域內路由:指在路由器所在的區域就可以到達目的地區域;
區域間路由:指在其他區域但仍在OSPF AS內的目的地路徑。至少要通過一個ABR路由器。
路由器只把最優的路由條目添加到路由表中,選擇路由條目的依據:管理距離和度量值;
如果管理距離和度量值一樣的話,路由器則會把兩條路由都添加到路由表中,實現負載均衡。
但是OSPF協議規定區域內路由要高於區域間路由。
常用的命令(主要用於排錯)有:
技術分享圖片
還有一條非常重要
router #clear ip ospf process #重新加載OSPF進程信息
接下來我們介紹一下末梢區域和完全末梢區域。
滿足一下條件的可以被認定為末梢區域和完全末梢區域
1.只有一個默認路由作為其區域的出口;
2.區域不能作為虛鏈路的穿越區域;
3.Stub區域裏無自治系統邊界路由器ASBR;
4.不能使骨幹區域Area 0。
末梢區域減少了LSA的數量,減少了路由器資源的浪費,不允許有LSA4、LSA5、LSA7通告,ABR會向末梢區域發送一條默認路由。
完全末梢區域只接受一條由LSA3提供的默認路由,沒有LSA3、LSA4、LSA5、LSA7通告。
這樣大大減少了路由器中的路由條目,因此,這些路由器的性能將得到大大的提升,並且內存也得到了節省。
下面我們結合一個簡單拓補來了解一下如何配置末梢區域和完全末梢區域。
技術分享圖片
前提是把接口和分到不同的區域中,配置好IP地址、啟動OSPF路由進程(這些就不演示了,跟上面的小型拓補實驗一樣)
我們把area1配置成末梢區域

r1(config)#router ospf 1
r1(config-router)#area 1 stub           #把area1配置成末梢區域
r2(config)#router ospf 1
r2(config-router)#area 1 stub            #r2有接口屬於area1,所以也得在r2 上配置一下

現在查看r1的路由表就回產生一條默認路由
技術分享圖片
接下來我們配置area2為完全末梢區域
先查看一下r4的路由表
技術分享圖片
接下來我們進行配置

r3(config)#router ospf 1
r3(config-router)#area 2 stub no-summary  #吧area2配置成完全末梢區域
r4(config)#router ospf 1
r4(config-router)#area 2 stub     #把area2配置成末梢區域

配置完全末梢區域:只需在骨幹區域配置聲明“area 2 stub no-summary”;標準區域聲明“area 2 stub”即可
接下裏我們查看一下r4的路由表
技術分享圖片
當然這樣小型的拓補圖看不來任何效果,如果有幾十臺、幾百臺路由器就能看出來效果了。
實驗完成!
願我們共同學習,共同進步!

OSPF 多區域原理與配置