高海燕
(晉中職業(yè)技術(shù)學院 電子信息學院,山西 晉中 030600)
OSPF具有收斂速度快、無環(huán)路由等諸多特性,理論上支持單區(qū)域不超過200臺路由器、路由表條目數(shù)不超過3萬條的網(wǎng)絡(luò)部署,是大中型網(wǎng)絡(luò)構(gòu)建過程中首選的路由協(xié)議。OSPF是基于鏈路狀態(tài)的路由協(xié)議,通過各類協(xié)議報文維系著路由表的正常運行,工作機制異常復雜。隨著部署規(guī)模的擴大,OSPF協(xié)議報文流量及路由條目數(shù)會隨之增大,如果不加以優(yōu)化,會嚴重影響資源的利用率和網(wǎng)絡(luò)的穩(wěn)定性。因此,路由優(yōu)化是OSPF部署實施過程中必須考慮的應(yīng)用技術(shù)。
OSPF協(xié)議的基本思想是,路由器之間通過收集鏈路狀態(tài)通告信息(LSA),同步拓撲數(shù)據(jù)庫(LSDB),依據(jù)該數(shù)據(jù)庫,每臺路由器都列出以自己為根節(jié)點的到達其它各個子網(wǎng)的所有路徑,再通過最短路徑優(yōu)先算法(SPF),將到達每個子網(wǎng)的開銷最小的路徑加入到路由表中,最后構(gòu)建出完整的路由表。
OSPF基于區(qū)域劃分的層次式設(shè)計是其大規(guī)模部署的前提。區(qū)域劃分將一個OSPF路由域劃分成多個區(qū)域,包含一個主干區(qū)域(area 0)和若干個標準區(qū)域,并且標準區(qū)域必須通過區(qū)域邊界路由器(ABR)與主干區(qū)域相連。區(qū)域劃分一方面可以避免路由器中的拓撲數(shù)據(jù)庫規(guī)模太大,每臺路由器只同步其所在區(qū)域的LSDB,而不是整個路由域的LSDB,極大地縮小了LSDB的規(guī)模,進而減小SPF計算的復雜度;另一方面可以有效控制鏈路狀態(tài)通告的范圍,標準區(qū)域內(nèi)的路由器,只在其所在的區(qū)域內(nèi)泛洪鏈路狀態(tài)信息,而不會擴散到其它的區(qū)域,區(qū)域之間通過區(qū)域邊界路由器來交換路由信息,從而極大地減少了整個路由域中的協(xié)議報文流量。
OSPF路由器通過與鄰居交換鏈路狀態(tài)信息來同步LSDB,進而計算路由。在OSPF多區(qū)域環(huán)境下,存在多種類型的LSA。OSPF協(xié)議定義了11中LSA類型,下面從傳播范圍、通告者、傳遞內(nèi)容等三方面對常見的6種LSA來進行區(qū)分和描述,如表1所示。

表1 OSPF LSA類型Table 1 OSPF LSA type
從表1可以看出,1類、2類LSA是用來計算單個區(qū)域內(nèi)各個子網(wǎng)的最佳路由,3類LSA是用來計算區(qū)域間的最佳路由,4類、5類和7類LSA是用來計算重發(fā)布到OSPF路由域中的外部路由。其中7類LSA是一種特殊的LSA,由自制系統(tǒng)邊界路由器(ASBR)產(chǎn)生,只存在于次末節(jié)區(qū)域(NSSA)或完全次末節(jié)區(qū)域,當該LSA通過ABR傳遞到其他區(qū)域時,則會轉(zhuǎn)化成5類LSA[1]。結(jié)合OSPF區(qū)域劃分,各類LSA傳播過程如圖1所示。

圖1 LSA傳播示意圖Fig.1 LSA propagation diagram
路由優(yōu)化的思想就是在保證網(wǎng)絡(luò)通信的前提下,通過命令工具等技術(shù)手段對網(wǎng)絡(luò)中的路由信息進行控制,以減少協(xié)議報文流量和簡化路由表為出發(fā)點,盡可能地提升網(wǎng)絡(luò)的通信性能。常見的路由優(yōu)化技術(shù)主要有路由過濾、路由匯總。針對OSPF路由協(xié)議還存在一些特殊的優(yōu)化技術(shù),如默認路由、末節(jié)區(qū)域等。
OSPF路由過濾主要有兩種方式。一種是通過過濾LSA來控制路由的計算。此方式只能針對3類、5類(7類)LSA進行,因為單個區(qū)域內(nèi)的路由器必須知道該區(qū)域所有的1類、2類LSA,否則可能會導致路由環(huán)路。OSPF機制也不允許對1類、2類LSA 進行過濾。另一種是對SPF算法計算出的路由進行過濾。此方式采用分發(fā)列表過濾工具,對要加入路由表中的路由進行過濾。
2.1.1過濾3類LSA
3類LSA的通告者是ABR,因此針對3類LSA的過濾要在ABR上進行。ABR對其連接的每個區(qū)域內(nèi)的子網(wǎng),都通過創(chuàng)建3類LSA,泛洪到其它區(qū)域,以此來交換區(qū)域間的路由信息,并且遵循D-V邏輯。3類LSA的過濾,影響的范圍是該區(qū)域內(nèi)的所有路由器,其過濾過程如圖2所示。

圖2 3類LSA過濾示意圖Fig.2 Class 3 LSA filtering diagram
3類LSA的過濾通過以下配置命令來實現(xiàn)。
areanumberfilter-list prefixnamein/out
1)number:區(qū)域號(配置區(qū)域);
2)name:定義的前綴列表,用來匹配要過濾的3類LSA;
3)in:其它區(qū)域的3類LSA進入配置區(qū)域時進行過濾;
4)out:配置區(qū)域的3類LSA進入其它區(qū)域時進行過濾。
圖2中,區(qū)域1中要實現(xiàn)對10.1.4.0的過濾,在ABR上可以采用in或out兩種方式實現(xiàn)。首先定義前綴列表,名稱為filter。
ip prefix-listfilterseq 5 deny 10.1.4.0/24
ip prefix-listfilterseq 10 permit 0.0.0.0/0 le 32

圖3 5類LSA過濾示意圖Fig.3 Class 5 LSA filtering diagram
方式一:area 1 filter-list prefixfilterin
方式二:area 0 filter-list prefixfilterout
2.1.2過濾5類LSA
5類LSA的通告者是ASBR,因此針對5類LSA的過濾要在ASBR上進行。ASBR對引入的外部路由,創(chuàng)建5類、7類LSA,泛洪到整個OSPF路由域,并且遵循D-V邏輯。5類LSA的過濾,影響的范圍是整個路由域中的所有路由器,其過濾過程如圖3所示。
5類LSA的過濾可以通過分發(fā)列表(distribute-list)工具和路由重發(fā)布兩種方式來實現(xiàn)。
2.1.2.1 使用分發(fā)列表過濾
distribute-list {acl | prefix | route-map} out[interface]
1)acl | prefix | route-map:可以通過三種方式對要過濾的路由進行標識;
2)out:表示對離開路由表的外部路由進行過濾,只能使用out;
3)interface:對從指定接口接收的路由信息進行過濾,可選項。
2.1.2.2 路由重發(fā)布時,調(diào)用route-map來過濾
redistribute [源路由] route-mapname
1)源路由:包含直連路由、靜態(tài)路由及其它路由協(xié)議產(chǎn)生的路由;
2)name:定義的路由映射圖,需要調(diào)用acl或prefix-list來標識要被過濾的路由。
圖3中,要實現(xiàn)對外部路由20.1.2.0的過濾,在ASBR上的配置如下:
方式一:定義訪問控制列表filter來標識要過濾的路由。
ip access-list standardfilter
deny 20.1.2.0 0.0.0.255
permit any
distribute-listfilterout
方式二:定義路由映射圖filter-map,調(diào)用訪問控制列表filter(規(guī)則定義與方式一中filter相同)來標識要過濾的路由,假設(shè)外部路由為RIP。
route-mapfilter_mappermit 10
match ip addressfilter
redistribute rip route-mapfilter-map
2.1.3對SPF算法計算出的路由進行過濾
因為LSA是以泛洪的方式傳播,基于LSA的路由過濾,影響的范圍是區(qū)域內(nèi)的所有路由器,而實際環(huán)境中可能只要求區(qū)域內(nèi)的部分路由器對某些子網(wǎng)進行過濾。這時可以使用分發(fā)列表工具來實現(xiàn)。
distribute-list邏輯上置于SPF算法和路由表之間。它的啟用不會影響到LSA的泛洪,也不會影響SPF算法對最佳路由的選擇[2]。如果路由器啟用了distribute-list過濾功能,那么在將路由加入路由表之前要先進行匹配過濾如圖4 所示。

圖4 distribute-list路由過濾示意圖Fig.4 Distribute-list route filtering diagram
對SPF算法計算出的路由進行過濾,通過以下配置命令實現(xiàn):
distribute-list {acl | prefix | route-map} in [interface]
1)acl | prefix | route-map:可以通過三種方式對要過濾的路由進行標識;
2)in:對進入路由表的路由進行過濾,只能選擇in方向;
3)interface:對從指定接口接收的路由信息進行過濾,可選項。
圖4中,R1要對加入到路由表中的10.1.4.0路由進行過濾,同樣定義前綴列表filter來標識路由。在R1上配置如下:
ip prefix-listfilterdeny 10.1.4.0/24
ip prefix-listfilterpermit 0.0.0.0/0 le 32
distribute-list prefixfilterin
路由匯總是指將多個子網(wǎng)的路由條目用一條地址范圍較大的路由代表,既不影響連通性,同時也縮小了路由表的規(guī)模,提高了路由器數(shù)據(jù)轉(zhuǎn)發(fā)的效率。OSPF協(xié)議規(guī)定路由匯總只能在ABR或ASBR上進行,如果在區(qū)域內(nèi)的路由器上進行匯總,可能導致LSDB的不完整,造成路由環(huán)路。OSPF路由匯總的實施依賴于IP地址的合理規(guī)劃,以及路由域中ABR或ASBR的位置。
2.2.1域間路由匯總
在ABR上進行的路由匯總稱之為域間路由匯總。如果一個區(qū)域內(nèi)的所有子網(wǎng)都隸屬于一個大的地址范圍,并且其它區(qū)域中也沒有該范圍內(nèi)的子網(wǎng),那么就可以在連接該區(qū)域的ABR上創(chuàng)建一條匯總路由,通過3類LSA泛洪到其它區(qū)域。其它區(qū)域獲悉的路由僅僅是一條匯總路由,而不是子網(wǎng)路由。

圖5 域間路由匯總示意圖Fig.5 Inter-domain route summary diagram
ABR路由匯總命令如下:
areaarea-idrangeip-addressmask[costcost]
1)area-id:進行路由匯總的區(qū)域;
2)ip-addressmask:匯總路由,由前綴和掩碼確定匯總范圍;
3)cost:設(shè)置匯總路由的度量值。
域間路由匯總需要注意幾個問題。一是必須保證區(qū)域內(nèi)至少存在一個隸屬子網(wǎng),否則匯總不生效;二是指路由匯總生效后,ABR不再通告隸屬子網(wǎng)的3類LSA;三是可以手動設(shè)置匯總路由的度量值,若未設(shè)置,ABR會將隸屬子網(wǎng)中最小的度量值賦值給匯總路由。域間路由匯總原理如圖5 所示。
2.2.2自治系統(tǒng)間路由匯總
在ASBR上進行的路由匯總稱之為自治系統(tǒng)間路由匯總。ASBR路由匯總是針對外部路由進行的。ASBR通過路由重發(fā)布將其它路由源的路由引入到OSPF路由域中,如果外部子網(wǎng)路由可以隸屬于一個大的地址范圍,就可以進行路由匯總,ASBR會為匯總路由創(chuàng)建一個5類LSA,在整個OSPF路由域中泛洪。
ASBR路由匯總命令如下:
summary-addressip-addressmask
ip-addressmask:匯總路由,通過前綴和掩碼確定匯總范圍。
自治系統(tǒng)間路由匯總與域間路由匯總工作原理相似。ASBR匯總路由必須存在至少一個隸屬子網(wǎng),否則匯總不生效;路由匯總生效后,ASBR不再通告隸屬子網(wǎng)的5類LSA;ASBR匯總路由度量值為隸屬子網(wǎng)

圖6 自制系統(tǒng)間路由匯總示意圖Fig.6 Self-made system routing summary diagram
中最小的度量值,區(qū)別在于不能手動設(shè)置。自治系統(tǒng)間路由匯總原理如圖6 所示。
在連接互聯(lián)網(wǎng)的出口設(shè)備上,都會創(chuàng)建一條默認路由,下一跳指向運營商,以保證網(wǎng)絡(luò)內(nèi)部可以訪問互聯(lián)網(wǎng)。如果OSPF路由域足夠龐大,手動配置默認路由便成為一種負擔,并且不能根據(jù)網(wǎng)絡(luò)拓撲的變化進行動態(tài)調(diào)整。事實上,OSPF協(xié)議提供了一種便捷的方式,在連接Internet的路由器上,通過default-information originate命令可以為默認路由創(chuàng)建一個5類LSA,并在整個路由域中泛洪,這樣路由域中的所有路由器都會獲得一條默認路由,這些默認路由會將訪問外部網(wǎng)絡(luò)的數(shù)據(jù)逐步轉(zhuǎn)發(fā)到出口設(shè)備。
默認路由下發(fā)的配置命令如下:
default-information originate [always] [metric metric-value] [metric-typetype-value]
1)always:不管路由器中是否存在默認路由,都會通告默認路由;
2)metric:指定默認路由的度量值;
3)metric-type:指定默認路由為E1或E2類,默認為E2。E1計算內(nèi)部開銷,E2不計算。
默認路由的下發(fā)過程如圖7所示。

圖7 默認路由下發(fā)示意圖Fig.7 Default route delivery diagram
末節(jié)區(qū)域是OSPF協(xié)議定義的一種特殊區(qū)域。在末節(jié)區(qū)域中,ABR將默認路由的3類LSA泛洪到區(qū)域中,使得區(qū)域內(nèi)的所有分組都轉(zhuǎn)發(fā)到ABR。同時,基于末節(jié)區(qū)域的特性,可以過濾3類、4類和5類LSA,使得路由表更為簡化。因為末節(jié)區(qū)域路由器有指向ABR的默認路由,所以并不影響通信。
OSPF協(xié)議定義了四種類型的末節(jié)區(qū)域,分別是末節(jié)區(qū)域、次末節(jié)區(qū)域(NSSA)、完全末節(jié)區(qū)域和完全次末節(jié)區(qū)域。四種區(qū)域的主要區(qū)別在于對LAS的傳播限制[3]。末節(jié)區(qū)域配置及功能描述如表2所示,LSA過濾特性如圖8所示。

表2 末節(jié)區(qū)域配置及功能描述Table 2 Final section area configuration and function description

圖8 末節(jié)區(qū)域LSA過濾示意圖Fig.8 Filtered schematic stub area LSA
構(gòu)建如圖9所示拓撲,對OSPF網(wǎng)絡(luò)進行優(yōu)化配置。
3.1.1路由優(yōu)化描述
如圖9所示,骨干區(qū)域掛接兩個標準區(qū)域area1、area2和一個完全末節(jié)區(qū)域area3。外部路由域運行RIP協(xié)議,通過路由重發(fā)布將RIP路由引入到OSPF路由域中。采用路由優(yōu)化技術(shù)對OSPF路由域進行優(yōu)化,達到以下要求。

圖9 實驗拓撲圖Fig.9 Experimental topology
1)使用路由過濾技術(shù),使邊緣路由器(R1、R2)不獲取設(shè)備互連網(wǎng)段路由;
2)通過域間路由匯總,將區(qū)域1、2、3子網(wǎng)路由匯總發(fā)布;
3)通過自治系統(tǒng)間路由匯總,將外部路由匯總發(fā)布;
4)通過ASBR在OSPF路由域下自動下發(fā)默認路由,保證訪問外部的數(shù)據(jù)流量的傳輸。
3.1.2IP地址規(guī)劃
各區(qū)域及外部路由域的子網(wǎng)規(guī)劃如圖9所示,在實驗環(huán)境下采用環(huán)回接口(loopback)來模擬各個子網(wǎng)。設(shè)備互連接口及IP地址如表3所示。

表3 設(shè)備互連接口及地址Table 3 Device interconnection interface and address
采用GNS3模擬器作為實驗測試平臺。
1)路由過濾配置:
針對OSPF路由域內(nèi)的3類LSA過濾:
ABR2(config)#ip prefix-list filter deny 172.31.1.0/24 le 30
ABR2(config)#ip prefix-list filter permit 0.0.0.0/0 le 32
ABR2(config-router)#area 1 filter-list prefix filter in
ABR2(config-router)#area 2 filter-list prefix filter in
針對外部的5類LSA過濾:
ASBR(config)#access-list 1 deny 172.31.1.0 0.0.0.255
ASBR(config)#access-list 1 permit any
ASBR(config-router)#distribute-list 1 out
2)域間路由匯總配置:
ABR1(config-router)#area 3 range 10.1.0.0 255.255.252.0
ABR2(config-router)#area 1 range 172.16.0.0 255.255.252.0
ABR2(config-router)#area 2 range 172.17.0.0 255.255.252.0
3)自治系統(tǒng)管路由匯總配置:
ASBR(config-router)#summary-address 20.1.0.0 255.255.248.0
4)默認路由配置:
ASBR(config)#ip route 0.0.0.0 0.0.0.0 172.31.1.10
ASBR(config-router)#default-information originate
5)完全末節(jié)區(qū)域配置:
ABR1(config-router)#area 3 nssa no-summary
R3(config-router)#area 3 nssa
3.3.1路由表前后對比
R1優(yōu)化前的OSPF路由表如圖10所示。R2、R3與之類似。

圖10 R1優(yōu)化前的OSPF路由表Fig.10 R1 before optimizing OSPF routing table
R1優(yōu)化后,OSPF路由表大幅度簡化如圖11所示。R2與之類似。

圖11 R1優(yōu)化后的OSPF路由表Fig.11 R1 optimized OSPF routing table
R3優(yōu)化后,OSPF路由表只存在一條ABR1下發(fā)的默認路由,更為簡化如圖12所示。

圖12 R3優(yōu)化后的OSPF路由表Fig.12 R3 optimized OSPF routing table
3.3.2連通性測試
以R1的子網(wǎng)172.16.1.0/24為源,測試到達外部網(wǎng)絡(luò)和內(nèi)部區(qū)域的連通性如圖13所示。

圖13 R1的連通性測試Fig.13 R1 connectivity test
3.3.3測試分析
實施路由優(yōu)化后,OSPF路由域中的路由信息流量大幅度減少,路由表的規(guī)模也得到了極大的簡化。網(wǎng)絡(luò)的連通性非但沒有受到影響,而且IP分組轉(zhuǎn)發(fā)過程中路由匹配的時延更小,提升了設(shè)備的轉(zhuǎn)發(fā)效率,同時也節(jié)省了系統(tǒng)資源。
OSPF協(xié)議通常部署在大中型網(wǎng)絡(luò)中,雖然其層次化的設(shè)計在一定程度上緩解了系統(tǒng)資源的開銷,但是面對數(shù)量規(guī)模龐大的路由器,若不進行優(yōu)化,網(wǎng)絡(luò)也很快就達到了其通信能力的上限。OSPF協(xié)議提供了功能強大的路由優(yōu)化技術(shù),但是優(yōu)化技術(shù)的應(yīng)用在很大程度上依賴于網(wǎng)絡(luò)的合理規(guī)劃,一個糟糕的網(wǎng)絡(luò)設(shè)計很可能導致路由優(yōu)化技術(shù)的無法實施。在進行路由優(yōu)化的過程中,要結(jié)合實際情況和具體需求靈活應(yīng)用,不可盲目疊加套用,因為路由優(yōu)化技術(shù)的應(yīng)用本身也會占用系統(tǒng)的資源。