孫光懿
(天津音樂學(xué)院 圖書與信息中心,天津 300171)
OSPF是由IETF于1998年開發(fā)的一種開放式鏈路狀態(tài)路由協(xié)議[1-3],通常在單一自治系統(tǒng)內(nèi)使用,屬于內(nèi)部網(wǎng)關(guān)協(xié)議。其設(shè)計初衷是用來克服距離矢量路由協(xié)議(如RIP協(xié)議)在功能上的不足,進(jìn)而為大型網(wǎng)絡(luò)中數(shù)據(jù)包的路由選擇提供更好的解決方案。OSPF的運(yùn)行既不依賴TCP協(xié)議又不依賴UDP協(xié)議,它工作在IP上層,發(fā)送消息時采用組播和單播的方式。相同OSPF區(qū)域中的路由器擁有的鏈路狀態(tài)數(shù)據(jù)庫(用于存放鏈路狀態(tài)信息)一致,并基于此庫進(jìn)行SPF算法運(yùn)算,最終計算出OSPF路由表。與距離矢量路由協(xié)議相比,OSPF具有收斂速度快、擴(kuò)展性強(qiáng)、支持明文及MD5認(rèn)證、支持路由匯總、支持負(fù)載均衡、可快速適應(yīng)網(wǎng)絡(luò)變化等特點,它依靠在網(wǎng)絡(luò)中傳播LSA來進(jìn)行路由選擇,而不是周期性的廣播路由表。目前,OSPF已成為網(wǎng)絡(luò)中使用最為廣泛的一種路由協(xié)議。為了對OSPF路由協(xié)議進(jìn)行深入細(xì)致的研究,文章以GNS3網(wǎng)絡(luò)仿真軟件為實驗平臺,對單區(qū)域OSPF、多區(qū)域OSPF、OSPF虛鏈路、OSPF身份驗證、OSPF路由匯總、路由重分布等進(jìn)行了設(shè)計分析,并給出詳細(xì)的配置過程。
OSPF路由器通過完成以下幾個工作過程來創(chuàng)建并維護(hù)路由表中的路由信息,從而實現(xiàn)數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。
(1)確立鄰接關(guān)系:區(qū)域中的OSPF路由器通過發(fā)送Hello數(shù)據(jù)包(通常使用多播地址作為Hello數(shù)據(jù)包的目的地址)來確定鏈路上是否有其它OSPF鄰居路由器存在,如存在則嘗試與其建立鄰接關(guān)系。
(2)交換LSA:雙方鄰接關(guān)系一旦確立,兩臺OSPF路由器之間將交換LSA。當(dāng)鄰接OSPF路由器收到LSA后,將其范洪給其他直連的鄰居OSPF路由器,直到區(qū)域中所有OSPF路由器均擁有一致的LSA。需要明確的一點是,OSPF路由器每條直連鏈路的狀態(tài)信息及開銷均包含在LSA內(nèi)。
(3)構(gòu)建鏈路狀態(tài)數(shù)據(jù)庫:OSPF路由器收到LSA后,會基于此LSA構(gòu)建鏈路狀態(tài)數(shù)據(jù)庫。相同區(qū)域中的所有OSPF路由器,鏈路狀態(tài)數(shù)據(jù)庫中的信息一定是相同的。
(4)構(gòu)建SPF樹:區(qū)域中的每個OSPF路由器,以自身鏈路狀態(tài)數(shù)據(jù)庫中的信息為依據(jù),通過運(yùn)行SPF算法構(gòu)建SPF樹。
(5)創(chuàng)建拓?fù)浔恚篛SPF路由器將SPF樹中的最優(yōu)路徑加到自身路由表中,并基于此路由表進(jìn)行數(shù)據(jù)包的路徑選擇。
兩臺相鄰的OSPF路由器只有在相同區(qū)域內(nèi),才可以建立鄰接關(guān)系。二者之間不需要擁有相同的OSPF進(jìn)程ID(范圍在1-65535之間),此ID是一種只對本地有效的OSPF路由進(jìn)程標(biāo)識參數(shù)。需要注意:在一臺路由器上可以配置多個OSPF進(jìn)程,只是這樣做會增加路由器內(nèi)存和CPU的占用率,影響工作效率。另外,為了保證OSPF進(jìn)程能夠正常啟動,不僅需要保證路由器至少有一個接口是處于UP狀態(tài),而且還需要為每臺運(yùn)行OSPF的路由器指定唯一的RID。如果沒有指定RID,則以O(shè)SPF路由器上LOOPBACK接口中最大的IP地址作為RID。如果OSPF路由器不存在LOOPBACK接口,則以擁有最大IP地址的活動物理接口的IP地址作為RID。
在GNS3下,通過兩臺思科3725路由器R1、R2構(gòu)建了單區(qū)域OSPF網(wǎng)絡(luò)。網(wǎng)絡(luò)拓?fù)淙鐖D1所示。各路由器具體配置過程如下:
圖1 單區(qū)域OSPF網(wǎng)絡(luò)拓?fù)?/p>
R1(config)#int s2/0//進(jìn)入串行接口s2/0
R1(config-if)#ip add 172.16.1.1 255.255.255.0
R1(config)#int loopback 1//建立loopback 1接口
R1(config-if)#ip add 192.168.20.1 255.255.255.0
R1(config)#router ospf 2
R1(config-router)#router-id 1.1.1.1//設(shè)置路由器ID
R1(config-router)#network 172.16.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.20.0 0.0.0.255 area 0
R2(config)#int s2/0//進(jìn)入串行接口s2/0
R2(config-if)#ip add 172.16.1.2 255.255.255.0//設(shè)置此接口IP地址
R2(config)#int loopback 1//建立loopback 1接口
R2(config-if)#ip add 192.168.21.1 255.255.255.0//設(shè)置此接口IP地址
R2(config)#router ospf 2
R2(config-router)#router-id 2.2.2.2//設(shè)置路由器ID
R2(config-router)#network 172.16.1.0 0.0.0.255 area 0
R2(config-router)#network 192.168.21.0 0.0.0.255 area 0
為了驗證OSPF路由協(xié)議是否正常運(yùn)行,以路由器R1為例,使用sh ip protocols命令查看路由器R1上的OSPF進(jìn)程。如圖2所示,可看到OSPF路由協(xié)議(版本號為:OSPF V2)已在路由器R1上部署成功,默認(rèn)可支持4條負(fù)載均衡鏈路,管理距離為110;路由器R1的RID為1.1.1.1,網(wǎng)關(guān)地址為2.2.2.2(路由器R2的RID)。
路由器R1與R2建立OSPF鄰接關(guān)系后,利用Wireshark網(wǎng)絡(luò)分析軟件[4-5],捕獲了R1發(fā)往R2的數(shù)據(jù)包。如圖3所示。路由器R1的RID為1.1.1.1,優(yōu)先級為1,工作在OSPF骨干區(qū)域;鄰居路由器為R2(RID為2.2.2.2);路由器的失效時間為40s,在此時間內(nèi)路由器R1如未收到路由器R2的OSPF Hello數(shù)據(jù)包,則認(rèn)為已建立的OSPF鄰接關(guān)系失效。另外,由于沒有啟用接口驗證功能,OSPF Hello數(shù)據(jù)包會每10s發(fā)送一次。特別注意:OSPF Hello數(shù)據(jù)包在傳輸時被封裝在IP數(shù)據(jù)包中,源地址為172.16.1.1,目的地址為單播地址224.0.0.5,而不是路由器R2與R1相連的接口地址。
圖2 路由器R1上的OSPF進(jìn)程
圖3 路由器R1發(fā)往R2的數(shù)據(jù)包
大型網(wǎng)絡(luò)中往往擁有眾多數(shù)量的路由器,網(wǎng)絡(luò)結(jié)構(gòu)也相對復(fù)雜且時常發(fā)生改變。如不進(jìn)行OSPF區(qū)域劃分,必將造成一系列的問題。其一,有可能導(dǎo)致SPF進(jìn)行頻繁的運(yùn)算,增加路由器CPU的占用率。其二,由于OSPF協(xié)議不支持自動路由匯總,有可能造成路由表過于龐大,消耗路由器大量內(nèi)存資源。其三,有可能造成LSDB過于龐大,這樣勢必增加OSPF路由器構(gòu)建SPF樹的時間。因此,為了減少OSPF的計算頻率,加快收斂速度,減小路由表規(guī)模,往往將網(wǎng)絡(luò)中運(yùn)行OSPF的路由器基于接口劃分為多個區(qū)域(每個區(qū)域中的路由器以50臺為上限)。常見的OSPF區(qū)域有骨干區(qū)域和常規(guī)區(qū)域兩種:其中,骨干區(qū)域(AREA 0)為網(wǎng)絡(luò)核心且不可分割,該區(qū)域中通常沒有終端用戶的存在,其他區(qū)域需要與其相連才可以交換路由信息;常規(guī)區(qū)域必須與骨干區(qū)域相連接,區(qū)域間傳遞數(shù)據(jù)流也必須通過骨干區(qū)域來進(jìn)行。按照地理位置與具體職能的不同,常規(guī)區(qū)域又可進(jìn)一步劃分為以下四類區(qū)域:末節(jié)區(qū)域、完全末節(jié)區(qū)域、非純末節(jié)區(qū)域(NSSA)、完全非純末節(jié)區(qū)域。末節(jié)區(qū)域不允許自治系統(tǒng)外部路由進(jìn)入,在遇到路由器需要提供到自治系統(tǒng)外部網(wǎng)絡(luò)的路由時,則使用默認(rèn)路由技術(shù)來實現(xiàn)。完全末節(jié)區(qū)域?qū)儆谒伎扑接袇^(qū)域,它不允許自治系統(tǒng)外部路由和自治系統(tǒng)內(nèi)其他區(qū)域路由進(jìn)入。NSSA區(qū)域從某種意義上講是對末節(jié)區(qū)域的一種擴(kuò)展,它不允許接受5類LSA,但是它可以包含ASBR并允許區(qū)域間路由進(jìn)入。當(dāng)自治系統(tǒng)外部路由重分布到該區(qū)域時,首先由NSSA ASBR生成7類LSA(在路由表中通常用O N2來表示),而后再由NSSA ABR將其轉(zhuǎn)換為5類LSA并在自治系統(tǒng)內(nèi)傳播。兩類LSA具有相同的格式,只是7類LSA報頭中存在一個用于避免在AREA 0和NSSA區(qū)域之間循環(huán)傳播此類報文的傳播(P)位。
在GNS3下,通過八臺思科3725路由器構(gòu)建了兩個自治系統(tǒng)(OSPF自治系統(tǒng)與RIP自治系統(tǒng)),網(wǎng)絡(luò)拓?fù)淙鐖D4所示。OSPF自治系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)較為復(fù)雜,包括AREA 0至AREA 5等六個區(qū)域。其中,AREA 0為骨干區(qū)域,由路由器R1、R2構(gòu)成;AREA 1與AREA 2為標(biāo)準(zhǔn)常規(guī)區(qū)域,AREA 1由路由器R3、R1構(gòu)成,AREA 2由路由器R6、R3構(gòu)成;AREA 3為末節(jié)區(qū)域,由路由器R4、R1構(gòu)成;AREA 4為完全末節(jié)區(qū)域,由路由器R7、R2構(gòu)成;AREA 5為NSSA區(qū)域,由路由器R5、R2構(gòu)成。RIP自治系統(tǒng)由路由器R5、R8構(gòu)成。需要注意:由于AREA 2未直連到骨干區(qū)域,因此需要穿越AREA 1,在區(qū)域邊界路由器R3、R1之間建立虛鏈路,從而使AREA 2與骨干區(qū)域在邏輯上相連。為了方便讀者更好地理解并掌握多區(qū)域OSPF的配置方法,給出了相關(guān)路由器的詳細(xì)配置過程,具體如圖4所示。
圖4 多區(qū)域OSPF網(wǎng)絡(luò)拓?fù)?/p>
R1(config)#int s2/0//進(jìn)入串行接口s2/0
R1(config-if)#ip add 172.17.1.1 255.255.255.0
R1(config)#int s2/1//進(jìn)入串行接口s2/1
R1(config-if)#ip add 172.17.2.1 255.255.255.0
R1(config)#int s2/2//進(jìn)入串行接口s2/2
R1(config-if)#ip add 172.17.3.1 255.255.255.0
R1(config)#router ospf 6
R1(config-router)#router-id 1.1.1.1//設(shè)置路由器ID
R1(config-router)#area 1 virtual-link 3.3.3.3//啟用虛鏈路
R1(config-router)#network 172.17.1.0 0.0.0.255 area 0
R1(config-router)#network 172.17.2.0 0.0.0.255 area 1
R1(config-router)#network 172.17.3.0 0.0.0.255 area 3
R1(config-router)#area 3 stub//將area 3設(shè)置成末節(jié)區(qū)域
R2(config)#int s2/0//進(jìn)入串行接口s2/0
R2(config-if)#ip add 172.17.1.2 255.255.255.0
R2(config)#int s2/1//進(jìn)入串行接口s2/1
R2(config-if)#ip add 172.17.6.1 255.255.255.0
R2(config)#int s2/2//進(jìn)入串行接口s2/2
R2(config-if)#ip add 172.17.5.1 255.255.255.0
R2(config)#router ospf 6
R2(config-router)#router-id 2.2.2.2//設(shè)置路由器ID
R2(config-router)#network 172.17.1.0 0.0.0.255 area 0
R2(config-router)#network 172.17.5.0 0.0.0.255 area 4
R2(config-router)#network 172.17.6.0 0.0.0.255 area 5
R2(config-router)#area 5 nssa//將area 5設(shè)置成NSSA區(qū)域
R2(config-router)#area 4 stub no-summary//將area 4設(shè)置成完全末節(jié)區(qū)域
R3(config)#int s2/0//進(jìn)入串行接口s2/0
R3(config-if)#ip add 172.17.2.2 255.255.255.0
R3(config)#int s2/1//進(jìn)入串行接口s2/1
R3(config-if)#ip add 172.17.4.2 255.255.255.0
R3(config)#router ospf 6
R3(config-router)#router-id 3.3.3.3//設(shè)置路由器ID
R3(config-router)#area 1 virtual-link 1.1.1.1//啟用虛鏈路
R3(config-router)#network 172.17.2.0 0.0.0.255 area 1
R3(config-router)#network 172.17.4.0 0.0.0.255 area 2
R4(config)#int s2/0//進(jìn)入串行接口s2/0
R4(config-if)#ip add 172.17.3.2 255.255.255.0
R4(config)#router ospf 6
R4(config-router)#router-id 4.4.4.4//設(shè)置路由器ID
R4(config-router)#network 172.17.3.0 0.0.0.255 area 3
R4(config-router)#area 3 stub//將area 3設(shè)置成末節(jié)區(qū)域
R5(config)#int s2/0//進(jìn)入串行接口s2/0
R5(config-if)#ip add 172.17.6.2 255.255.255.0
R5(config)#int s2/1//進(jìn)入串行接口s2/1
R5(config-if)#ip add 192.168.10.1 255.255.255.0
R5(config)#router ospf 6
R5(config-router)#router-id 5.5.5.5//設(shè)置路由器ID
R5(config-router)#network 172.17.6.0 0.0.0.255 area 5
R5(config-router)#area 5 nssa//將area 5設(shè)置成NSSA區(qū)域
R5(config-router)#redist rip subnets//將RIP路由重分布到OSPF域中,初始度量值為默認(rèn)值20
R5(config)#router rip
R5(config-router)#vers 2
R5(config-router)#network 192.18.10.0
R5(config-router)#redist ospf 6 metic 12//將OSPF路由重分布到RIP域中,指定初始度量值設(shè)置為12
R6(config)#int s2/0//進(jìn)入串行接口s2/0
R6(config-if)#ip add 172.17.4.1 255.255.255.0
R6(config)#router ospf 6
R6(config-router)#router-id 6.6.6.6//設(shè)置路由器ID
R6(config-router)#network 172.17.4.0 0.0.0.255 area 2
R7(config)#int s2/0//進(jìn)入串行接口s2/0
R7(config-if)#ip add 172.17.5.2 255.255.255.0
R7(config)#router ospf 6
R7(config-router)#router-id 7.7.7.7//設(shè)置路由器ID
R7(config-router)#network 172.17.5.0 0.0.0.255 area 4
R7(config-router)#area 4 stub
R8(config)#int s2/0//進(jìn)入串行接口s2/0
R8(config-if)#ip add 192.168.10.2 255.255.255.0
R8(config)#router rip
R8(config-router)#vers 2
R8(config-router)#network 192.168.10.0
為了驗證OSPF虛鏈路是否正常運(yùn)行,以路由器R3為例,使用sh ip ospf virtual-links命令查看路由器R3上OSPF虛鏈路的運(yùn)行狀態(tài)。如圖5所示,路由器R3到R1的OSPF虛鏈路已成功建立,虛鏈路穿過的中轉(zhuǎn)區(qū)域為AREA 1,二者之間OSPF鄰居狀態(tài)為點到點的類型,且已處于完全鄰接狀態(tài)。
圖5 R3上OSPF虛鏈路的運(yùn)行狀態(tài)
上述配置完成后,將能夠?qū)崿F(xiàn)全網(wǎng)互聯(lián)互通。以路由器R2、R4、R5、R6、R7、R8為例,使用sh ip route命令分別查看以上各路由器的路由表,結(jié)果如下:(1)路由器R2的路由表R2#sh ip route
O N2 192.168.10.0/24[110/20]via 172.17.6.2,01:19:41,Serial2/1
172.1 7.0.0/24 is subnetted,6 subnets
C 172.17.5.0 is directly connected,Serial2/2
O IA 172.17.4.0[110/192]via 172.17.1.1,01:19:41,Serial2/0 C 172.17.6.0 is directly connected,Serial2/1 C 172.17.1.0 is directly connected,Serial2/0
O IA 172.17.3.0[110/128]via 172.17.1.1,01:19:41,Serial2/0 O IA 172.17.2.0[110/128]via 172.17.1.1,01:19:41,Serial2/0(2)路由器R4的路由表R4#sh ip route
O IA 172.17.5.0[110/192]via 172.17.3.1,01:18:46,Serial2/0 O IA 172.17.4.0[110/192]via 172.17.3.1,01:18:16,Serial2/0 O IA 172.17.6.0[110/192]via 172.17.3.1,01:18:46,Serial2/0 O IA 172.17.1.0[110/128]via 172.17.3.1,01:18:46,Serial2/0 C 172.17.3.0 is directly connected,Serial2/0
O IA 172.17.2.0[110/128]via 172.17.3.1,01:18:46,Serial2/0
O*IA 0.0.0.0/0[110/65]via 172.17.3.1,01:18:46,Serial2/0
(3)路由器R5的路由表
R5#sh ip route
C 192.168.10.0/24 is directly connected,Serial2/1
172.1 7.0.0/24 is subnetted,6 subnets O IA 172.17.5.0[110/128]via 172.17.6.1,00:07:44,Serial2/0 O IA 172.17.4.0[110/256]via 172.17.6.1,00:07:19,Serial2/0 C 172.17.6.0 is directly connected,Serial2/0 O IA 172.17.1.0[110/128]via 172.17.6.1,00:07:44,Serial2/0 O IA 172.17.3.0[110/192]via 172.17.6.1,00:07:44,Serial2/0 O IA 172.17.2.0[110/192]via 172.17.6.1,00:07:44,Serial2/0
(4)路由器R6的路由表
R6#sh ip route
O E2 192.168.10.0/24[110/20]via 172.17.4.2,01:04:49,Serial2/0
172.1 7.0.0/24 is subnetted,6 subnets
O IA 172.17.5.0[110/256]via 172.17.4.2,01:04:53,Serial2/0
C 172.17.4.0 is directly connected,Serial2/0
O IA 172.17.6.0[110/256]via 172.17.4.2,01:04:53,Serial2/0
O IA 172.17.1.0[110/192]via 172.17.4.2,01:04:53,Serial2/0
O IA 172.17.3.0[110/192]via 172.17.4.2,01:04:53,Serial2/0
O IA 172.17.2.0[110/128]via 172.17.4.2,01:04:59,Serial2/0
(5)路由器R7的路由表
R7#sh ip route
C 172.17.5.0 is directly connected,Serial2/0
O*IA 0.0.0.0/0[110/65]via 172.17.5.1,01:24:06,Serial2/0
(6)路由器R8的路由表
R8#sh ip route
C 192.168.10.0/24 is directly connected,Serial2/0
R 172.17.0.0/16[120/12]via 192.168.10.1,00:00:19,Serial2/0
以上各路由器的路由表中均存在可達(dá)到全網(wǎng)各網(wǎng)段的路由,路由器之間可以實現(xiàn)互聯(lián)互通。路由器R4所屬區(qū)域AREA 3為末節(jié)區(qū)域,R4路由表中除直連路由外,只存在標(biāo)識符為“O IA”的域間路由和一條默認(rèn)路由(由AREA 3中的邊界路由器R1產(chǎn)生);路由器R7所屬區(qū)域AREA 4為完全末節(jié)區(qū)域,R7路由表中除直連路由外,只存在一條默認(rèn)路由;AREA 5為NSSA區(qū)域,通過在路由器R5上應(yīng)用路由重分布技術(shù),將RIP域中的路由重分布到OSPF域中,使得路由器R2路由表中存在一條到OSPF自治系統(tǒng)外部網(wǎng)段192.168.10.0/24,標(biāo)識符為“O N2”的路由。另外,路由器R6路由表中也存在一條到OSPF自治系統(tǒng)外部網(wǎng)段192.168.10.0/24的路由,但是標(biāo)識符為“O E2”,這充分說明NSSA區(qū)域中的ABR路由器R2已成功地將7類LSA轉(zhuǎn)換為5類LSA并在自治系統(tǒng)內(nèi)傳播。
為提高網(wǎng)絡(luò)的可靠性與安全性,避免偽造的路由更新被路由器接收,OSPF提供了以下三種身份驗證方式:NULL身份驗證(不對網(wǎng)絡(luò)中的路由交換信息進(jìn)行身份驗證)、明文身份驗證、MD5身份驗證。在實際應(yīng)用中多使用MD5身份驗證,這是因為它具有比明文身份驗證更高的安全性。MD5身份驗證傳輸?shù)氖沁M(jìn)行加密過后的口令,而明文身份驗證傳輸?shù)闹皇羌兾谋究诹?。鄰接路由器之間啟用身份驗證后,路由更新分組接收路由器就會對信源進(jìn)行身份驗證。默認(rèn)情況下,OSPF的身份驗證既可在區(qū)域內(nèi)進(jìn)行,又可在鏈路上進(jìn)行。
在GNS3下,通過兩臺思科3725路由器R1、R2構(gòu)建OSPF網(wǎng)絡(luò)并在骨干區(qū)域內(nèi)分別啟用明文身份驗證與MD5身份驗證,網(wǎng)絡(luò)拓?fù)淙鐖D6所示。為了方便讀者更好地理解并掌握OSPF身份驗證的配置方法,給出了相關(guān)路由器的詳細(xì)配置過程,具體如下所示。
圖6 OSPF區(qū)域驗證網(wǎng)絡(luò)拓?fù)?/p>
同一網(wǎng)絡(luò)中的鄰接路由器啟用身份驗證后,必須使用相同的密碼,只有這樣才能保證OSPF信息在網(wǎng)絡(luò)中的正常交換。
(1)路由器R1的配置
R1(config)#router ospf 5
R1(config-router)#area 0 auth
R1(config)#int s0/1
R1(config-if)#ip ospf authentication-key sgy
(2)路由器R2的配置
R2(config)#router ospf 5
R2(config-router)#area 0 auth
R2(config)#int s0/1
R2(config-if)#ip ospf authentication-key sgy
(1)路由器R1的配置
R1(config)#router ospf 5
R1(config-router)#area 0 authentication message-digest
R1(config)#int s0/1
R1(config-if)#ip ospf message-digest-key sgy
(2)路由器R2的配置
R2(config)#router ospf 5
R2(config-router)#area 0 authentication message-digest
R2(config)#int s0/1
R2(config-if)#ip ospf message-digest-key sgy上述配置完成后,將實現(xiàn)OSPF骨干區(qū)域身份驗證。以路由器R1為例,通過show ip ospf命令查看骨干區(qū)域身份驗證是否設(shè)置成功,結(jié)果如下:
R1#sh ip ospf
Area BACKBONE(0)
Number of interfaces in this area is 2(1 loopback)
Area has simple password authentication
輸出結(jié)果的最后一行證實了骨干區(qū)域已成功采用了明文身份驗證。
通常情況下,每個OSPF區(qū)域中的1類LSA與2類LSA都會被轉(zhuǎn)為3類LSA并傳播到OSPF其他區(qū)域。這不僅會導(dǎo)致網(wǎng)絡(luò)流量的增加,而且也會加大路由器的開銷。通過路由匯總,可以將多條路由匯總為一條路由,且只有匯總后的路由會被傳播到骨干區(qū)域。常見的OSPF路由匯總有以下兩種方式:域間路由匯總和外部路由匯總。域間路由匯總在區(qū)域邊界路由器上進(jìn)行,這種路由匯總只負(fù)責(zé)對區(qū)域內(nèi)的路由進(jìn)行匯總。而對重分布到OSPF域中外部路由的匯總則由外部路由匯總來負(fù)責(zé),這種路由匯總只在自治系統(tǒng)邊界路由器上進(jìn)行。綜上所述,應(yīng)用OSPF路由匯總具有以下幾點好處:第一,有助于減少路由條目,縮小路由表規(guī)模;第二,有助于減少3類LSA和5類LSA在自治系統(tǒng)中的范洪,提高網(wǎng)絡(luò)的穩(wěn)定性。即使網(wǎng)絡(luò)拓?fù)浒l(fā)生變化,相關(guān)信息也不會傳播到骨干區(qū)域;第三,有助于降低OSPF進(jìn)程所占用的網(wǎng)絡(luò)帶寬;第四,有助于減小OSPF LSDB的大??;第五,有助于降低OSPF路由器CPU與內(nèi)存占用率;第六,有助于提高OSPF網(wǎng)絡(luò)的可擴(kuò)展性。特別注意:匯總后的3類LSA與5類LSA不會再被匯總。另外,如果自治系統(tǒng)中存在多個ASBR或一個區(qū)域中存在多個ABR,一旦路由匯總不正確則可能造成次優(yōu)路由選擇。
在GNS3下,通過四臺思科3725路由器R1、R2、R3、R4構(gòu)建如圖7所示的網(wǎng)絡(luò)拓?fù)洹F渲?,路由器R1為OSPF自治系統(tǒng)邊界路由器,R2為區(qū)域邊界路由器,R4為OSPF自治系統(tǒng)外部路由器。由于路由器R3、R4均連接了多個連續(xù)的網(wǎng)段,因此需要分別在路由器R2上做域間路由匯總,在路由器R1上做外部路由匯總。下面給出相關(guān)路由器的詳細(xì)配置過程,具體如下所示。
圖7 OSPF路由匯總網(wǎng)絡(luò)拓?fù)?/p>
路由器R2的配置
R2(config)#router ospf 4
R2(config-router)#network 172.18.0.0 0.0.0.255 area 1
R2(config-router)#network 172.18.1.0 0.0.0.255 area 0
R2(config-router)#area 1 range 192.168.8.0 255.255.248.0//將區(qū)域 1 中的 192.168.10.0、192.168.11.0、192.168.12.0、192.168.13.0、192.168.14.0、192.168.15.0六個網(wǎng)段匯總為192.168.8.0/21。
為了驗證OSPF域間路由匯總是否配置成功,使用sh ip route命令查看路由器R2的路由表。如圖8所示。
圖8 路由器R2的路由信息
可看到:R2的路由表中存在一條下一跳指向NULL0口的路由(由于NULL0口永遠(yuǎn)處于UP狀態(tài),因此該條路由永久有效),這充分說明區(qū)域邊界路由器R2已成功地對OSPF區(qū)域1中的路由進(jìn)行了匯總,匯總后的路由將會以3類LSA的方式傳播給骨干區(qū)域。
路由器R1的配置
R2(config)#router ospf 4
R2(config-router)#network 172.18.1.0 0.0.0.255 area 0
R2(config-router)#summary-address 192.168.0.0 255.255.252.0//將外 部 自治系 統(tǒng) 中的 192.168.0.0、192.168.1.0、192.168.2.0三個網(wǎng)段匯總為192.168.0.0/22。
為了驗證OSPF外部路由匯總是否配置成功,使用sh ip route命令查看路由器R1的路由表。如圖9所示。
圖9 路由器R1的路由信息
OSPF自治系統(tǒng)邊界路由器R1對路由器R4 LOOPBACK接口所在的EIGRP網(wǎng)絡(luò)進(jìn)行路由匯總后,在R1的路由表中產(chǎn)生了一條路由代碼為“O”,下一跳指向NULL0口的路由。與此同時,R1也收到了一條經(jīng)R2匯總的OSPF域間路由,路由代碼為“O IA”,目的地址為192.168.8.0/21。
大型網(wǎng)絡(luò)中往往運(yùn)行著多種路由協(xié)議,為了實現(xiàn)不同路由協(xié)議之間可以相互交換路由信息,有必要在自治系統(tǒng)邊界路由器上應(yīng)用路由重分布技術(shù)。在執(zhí)行路由重分布時,網(wǎng)絡(luò)技術(shù)人員必須為重分布的路由設(shè)置初始度量值[15-16](不同路由協(xié)議,初始度量值設(shè)置的依據(jù)也不盡相同),以便接收協(xié)議能夠正常理解。例如:自治系統(tǒng)邊界路由器需要將OSPF路由重分布到RIP域中,由于OSPF路由使用開銷作為度量,而RIP路由使用跳數(shù)作為度量,因此必須將開銷轉(zhuǎn)換為跳數(shù)度量,RIP域中的路由器才能識別OSPF路由。需要明確:第一,路由重分布的方向總是對外的,并且執(zhí)行路由重分布的路由器并不會改變自己的路由表,只有接收路由重分布的路由器才會將路由加到自己的路由表中;第二,自治系統(tǒng)邊界路由器在執(zhí)行路由重分布時,所傳播的路由必須在自身路由表中存在;第三,網(wǎng)絡(luò)技術(shù)人員在配置路由重分布時,一定要提前周密規(guī)劃,否則將造成路由環(huán)路。
以如圖7所示的網(wǎng)絡(luò)拓?fù)錇槔F渲?,OSPF自治系統(tǒng)由R1、R2、R3三臺路由器組成,R4為OSPF自治系統(tǒng)外部路由器,邊界路由器R1與R4之間運(yùn)行EIGRP協(xié)議。為了能夠?qū)崿F(xiàn)全網(wǎng)的互聯(lián)互通,在邊界路由器R1上實施雙向路由重分布技術(shù),即把OSPF路由重分布到EIGRP域中,又把EIGRP路由重分布到OSPF域中。下面給出相關(guān)路由器的詳細(xì)配置過程,具體如下所示。
路由器R1的配置
R1(config)#router ospf 4
R1(config-router)#redistribute eigrp3 subnets//將EIGRP協(xié)議重分布到OSPF域,默認(rèn)初始度量值為20。
R1(config)#router eigrp 3
R1(config-router)#redistribute ospf 4 metric 10 99 99 254 254//將OSPF路由重分布到EIGRP域中。為了保證重分布到EIGRP域中路由能夠正常傳播,EIGRP協(xié)議必須指定初始度量值。
為了驗證在邊界路由器R1上實施的雙向路由重分布技術(shù)是否配置成功,使用sh ip route命令查看路由器R3及R4的路由表。如圖10、11所示。
圖10 路由器R3的路由信息
圖11 路由器R4的路由信息
不僅OSPF自治系統(tǒng)中的路由器R3學(xué)習(xí)到了EIGRP域中的路由(R3路由表中有兩條路由代碼為“O E2”,管理距離為110,開銷值為20的路由),而且自治系統(tǒng)外部路由器R4也學(xué)習(xí)到了OSPF域中的路由(R4路由表中有四條路由代碼為“D EX”,管理距離為170的路由)。這充分說明在邊界路由器R1上已成功地實施了雙向路由重分布技術(shù)。
OSPF是一種由多種協(xié)議握手機(jī)制所構(gòu)成的復(fù)雜協(xié)議,依靠其自身優(yōu)點,目前已成為在自治系統(tǒng)內(nèi)部應(yīng)用最為廣泛的路由協(xié)議。但是OSPF也存在著配置過程過于復(fù)雜(非專業(yè)人士難以掌握),負(fù)載均衡能力較差(接口路由只有在優(yōu)先級相同的情況下,才可以實現(xiàn)負(fù)載均衡)等缺點。如何優(yōu)化OSPF的性能,以彌補(bǔ)上述缺點是需要我們在今后的工作中進(jìn)一步考慮的。