OSPF路由協(xié)議在因特網(wǎng)的發(fā)展歷程上正起著越來越重大的作用。而NSSA則是在該協(xié)議發(fā)展過程中產(chǎn)生的一種新的屬性。而關(guān)于NSSA區(qū)域的理解,一直是廣大網(wǎng)絡(luò)愛好者的心頭之癢。這篇文章,從NSSA區(qū)域的產(chǎn)生、基本原理和配置實例三個方面,對這個特殊的OSPF區(qū)域做以簡要的介紹。
一:OSPF協(xié)議與區(qū)域
大家知道,路由協(xié)議推崇的鏈路狀態(tài)算法,雖然徹底的解決了路由自環(huán)問題,但這種算法本身也有很多固有的缺陷:每臺路由器都必須保存整個網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。這樣,一旦出現(xiàn)拓撲變化,就要進行新的SPF計算。這種復(fù)雜的SPF算法,對CPU和內(nèi)存的占用是相當大的。
而且,以前流行過的大多數(shù)路由協(xié)議都存在如下缺陷:
沒有從協(xié)議本身反映出網(wǎng)絡(luò)的層次結(jié)構(gòu)。因為實際應(yīng)用中的一個網(wǎng)絡(luò)是由各種級別的路由器組成的,有核心層的骨干路由器、匯聚層的高端路由器、接入層的低端路由器。這些路由器承擔的任務(wù)不同,處理性能也不一樣。但在路由協(xié)議中,所有的路由器都要完成幾乎是相同的工作:發(fā)送已知的路由給鄰居路由器,根據(jù)從鄰居路由器獲得的路由信息計算本地路由表。雖然每臺路由器的接口數(shù)量不同,但最終計算得來的路由表的規(guī)模基本是一樣的。
為了徹底解決上述問題,OSPF提出了區(qū)域的概念(AREA),區(qū)域是將所有運行OSPF 的路由器人為的分成不同的組,以區(qū)域ID來標示。在區(qū)域內(nèi)路由計算的方法不變,由于劃分區(qū)域之后,每個區(qū)域內(nèi)的路由器不會很多,所有上述缺陷表現(xiàn)得并不嚴重,帶來的后果可以忽略不計。這樣,上述的缺點就被成功的規(guī)避了。實際上,區(qū)域概念的提出意義遠不只這些,在劃分為區(qū)域之后,網(wǎng)絡(luò)的拓撲結(jié)構(gòu)就與路由協(xié)議之間存在了一種對應(yīng)關(guān)系,核心和高端的路由器由于處理能力強,可以規(guī)劃在骨干區(qū)域之中。因為骨干區(qū)域的路由器要承擔更多的路由計算任務(wù)。
每個單獨的區(qū)域?qū)嶋H上就是一個獨立于網(wǎng)絡(luò)中其他區(qū)域的系統(tǒng),可以在不同的區(qū)域中試行不同的路由策略,使組網(wǎng)規(guī)劃更為靈活方便。
實際上OSPF 協(xié)議在當今的網(wǎng)絡(luò)中廣為流行,不是因為它使用了無環(huán)路的鏈路狀態(tài)算法,而是因為它提出了區(qū)域的概念。
二:OSPF的STUB區(qū)域
STUB區(qū)域就是一個對區(qū)域概念的最典型的應(yīng)用。STUB區(qū)域的設(shè)計思想在于:在劃分了區(qū)域之后,非骨干區(qū)域中的路由器對于區(qū)域外的路由,一定要通過ABR(區(qū)域邊界路由器)來轉(zhuǎn)發(fā),或者說對于區(qū)域內(nèi)的路由器來說ABR是一個通往外部世界的必經(jīng)之路。既然如此,對于區(qū)域內(nèi)的路由器來說,就沒有必要知道通往外部世界的詳細的路由了,代之以由ABR向該區(qū)域發(fā)布一條缺省路由來指導(dǎo)報文的發(fā)送。這樣在區(qū)域內(nèi)的路由器中就只有為數(shù)不多的區(qū)域內(nèi)路由和一條指向ABR的缺省路由。而且無論區(qū)域外的路由如何變化,都不會影響到區(qū)域內(nèi)路由器的路由表。由于區(qū)域內(nèi)的路由器通常是由一些處理能力有限的低端路由器組成,所以處于STUB區(qū)域內(nèi)的這些低端設(shè)備既不需要保存龐大的路由表,也不需要經(jīng)常性的進行路由計算。有了 STUB屬性之后,網(wǎng)絡(luò)的規(guī)劃更符合實際的設(shè)備特點。
以上描述的只是STUB區(qū)域的設(shè)計思想,在協(xié)議文本中,對STUB區(qū)域的精確定義是:STUB 區(qū)域一定是非骨干區(qū)域和非轉(zhuǎn)換區(qū)域(可以配置虛連接的區(qū)域),并且在該區(qū)域中不可傳遞Type 5類型的LSA。因為協(xié)議的設(shè)計者認為路由表中的絕大部分路由均是來自自治系統(tǒng)外部的引入的路由。(由于OSPF是鏈路狀態(tài)算法的路由協(xié)議,LSA就是用來描述網(wǎng)絡(luò)拓撲結(jié)構(gòu)的一種數(shù)據(jù)結(jié)構(gòu)。在OSPF 中將LSA分為5類:type1、2兩種用來描述區(qū)域內(nèi)的路由信息;type3用來描述區(qū)域間的路由信息;type4、5用來描述自治系統(tǒng)外部的路由信息。)
需要注意的是定義中對于過濾TYPE5類型的LSA使用的描述語言是“不可傳遞”,這就意味著不僅區(qū)域外的ASE(自治系統(tǒng)外部)路由無法傳遞到STUB 區(qū)域中,同時STUB區(qū)域內(nèi)部的ASE路由也無法傳遞到本區(qū)域之外。換一句更通俗的話來描述:STUB區(qū)域內(nèi)的路由器都不可引入任何外部的路由(包括靜態(tài)路由)。
這樣的定義未免太過嚴厲了。因為在實際的組網(wǎng)中,并不是所有的設(shè)備都會運行OSPF協(xié)議。例如:用戶撥號上網(wǎng)時使用的接入服務(wù)器就需要連接路由器上因特網(wǎng),但通常接入服務(wù)器上并不支持(也不需要)OSPF協(xié)議,而是通過配置靜態(tài)路由實現(xiàn)路由功能。很多時候ISP為了保密或易于管理的需要,在連接用戶側(cè)的路由器時使用靜態(tài)路由。總之:在一個網(wǎng)絡(luò)中所有的路由器上都配置OSPF,而不使用靜態(tài)路由的情況幾乎是不存在的。——也就是說STUB區(qū)域的適用條件也是不存在的。
三:特殊的STUB-- NSSA區(qū)域
STUB區(qū)域雖然為合理的規(guī)劃網(wǎng)絡(luò)描繪了美好的前景,但她在實際的組網(wǎng)中又不具備可操作性,未免遺憾。但此時的OSPF協(xié)議已經(jīng)基本成型,不可能再做大的修改。為了彌補缺陷,協(xié)議設(shè)計者提出了一種新的概念NSSA,并且作為OSPF協(xié)議的一種擴展屬性單獨在RFC 1587中描述。
NSSA需要完成如下任務(wù):
自治系統(tǒng)外的ASE路由不可以進入到NSSA區(qū)域中,但是NSSA區(qū)域內(nèi)的路由器引入的ASE 路由可以在NSSA中傳播并發(fā)送到區(qū)域之外。即:取消了STUB關(guān)于ASE的雙向傳播的限制(區(qū)域外的進不來,區(qū)域里的也出不去),改為單向限制(區(qū)域外的進不來,區(qū)域里的能出去)。
由于是作為OSPF標準協(xié)議的一種擴展屬性,應(yīng)盡量減少與不支持該屬性的路由器協(xié)調(diào)工作時的沖突和兼容性問題。
為了解決ASE單向傳遞的問題,NSSA中重新定義了一種LSA——Type 7類型的LSA,作為區(qū)域內(nèi)的路由器引入外部路由時使用,該類型的LSA除了類型標識與Type 5不相同之外,其它內(nèi)容基本一樣。這樣區(qū)域內(nèi)的路由器就可以通過LSA的類型來判斷是否該路由來自本區(qū)域內(nèi)。但由于Type 7類的LSA是新定義的,對于不支持NSSA屬性的路由器無法識別,所以協(xié)議規(guī)定:在NSSA的ABR上將NSSA內(nèi)部產(chǎn)生的Type 7類型的LSA轉(zhuǎn)化為Type 5類型的LSA再發(fā)布出去,并同時更改LSA的發(fā)布者為ABR自己。這樣NSSA區(qū)域外的路由器就可以完全不用支持該屬性。
從上述描述可以看出:在NSSA區(qū)域內(nèi)的所有路由器必須支持該屬性(包括NSSA的ABR),而自治系統(tǒng)中的其他路由器則不需要。
由于NSSA是由STUB區(qū)域的概念改進得來,所以她的名字叫做: "not-so-stubby" area ,本意是:不是那么STUB的區(qū)域。
四:STUB區(qū)域的相關(guān)配置
NSSA的原理不復(fù)雜,配置更簡單,相關(guān)命令只有一條:
[Router-ospf]
area area-id nssa [ default-route-advertise ] [ no-import-route ] [ no-summary ]
area-id:是需要配置成NSSA的區(qū)域的區(qū)域號。“[]”內(nèi)的參數(shù)只有在該路由器是ABR時才會生效。
關(guān)鍵字default-route-advertise用來產(chǎn)生缺省的Type-7 LSA,應(yīng)用了該參數(shù)后,在ABR上無論路由表中是否存在缺省路由0.0.0.0,都會產(chǎn)生Type-7 LSA缺省路由;而在ASBR上當路由表中存在缺省路由0.0.0.0,才會產(chǎn)生Type-7 LSA缺省路由。
關(guān)鍵字no-import-route用在ASBR上,使得OSPF通過import-route命令引入的路由不被通告到NSSA區(qū)域。如果NSSA的路由器既是ASBR也是ABR,一般選用該參數(shù)選項。
為了進一步減少發(fā)送到NSSA區(qū)域中的鏈路狀態(tài)發(fā)布(LSA)的數(shù)量,可以在ABR上配置no -summary屬性,禁止ABR向NSSA區(qū)域內(nèi)發(fā)送summary_net LSAs(Type-3 LSA)。配置該參數(shù)后,ABR會將Type3類型的LSA也過濾掉,即:NSSA區(qū)域中也不會出現(xiàn)區(qū)域間路由,路由表進一步精簡。既然有缺省路由,那么其他指向區(qū)域外的具體路由都是沒有必要的了。該參數(shù)推薦配置。
即:如果路由器只是一臺區(qū)域內(nèi)路由器,只需配置area area-id nssa即可。如果是ABR,根據(jù)實際需要,選擇添加三個可選參數(shù)。
五:STUB區(qū)域配置實例
先看一下實驗拓撲圖:
實驗之前,先做好五個路由器的預(yù)配置,這是必不可少的。
第一步 R1的預(yù)配置
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#int s2/1
R1(config-if)#ip add 12.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int s2/2
R1(config-if)#ip add 15.0.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
第二步 R2的預(yù)配置
R2(config)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#int s2/1
R2(config-if)#ip add 12.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#int s2/2
R2(config-if)#ip add 23.0.0.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
第三步 R3的預(yù)配置
R3(config)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#int s2/1
R3(config-if)#ip add 23.0.0.3 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
第四步 R4的預(yù)配置
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.0
R4(config-if)#int s2/2
R4(config-if)#ip add 45.0.0.4 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
第五步 R5的預(yù)配置
R5(config)#int lo0
R5(config-if)#ip add 5.5.5.5 255.255.255.0
R5(config-if)#int s2/1
R5(config-if)#ip add 15.0.0.5 255.255.255.0
R5(config-if)#no sh
R5(config-if)#int s2/2
R5(config-if)#ip add 45.0.0.5 255.255.255.0
R5(config-if)#no sh
好了,可以開始OSPF的相關(guān)配置了:
第一步 配置R1、R2、R3、R4、R5的OSPF協(xié)議
R1(config)#router ospf 100
R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 12.0.0.1 0.0.0.0 area 0
R1(config-router)#network 15.0.0.1 0.0.0.0 area 0
R1(config-router)#exit
R2(config)#router ospf 100
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#network 12.0.0.2 0.0.0.0 area 0
R2(config-router)#network 23.0.0.2 0.0.0.0 area 32
R2(config-router)#exit
R3(config)#router ospf 100
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 3.3.3.3 0.0.0.0 area 32
R3(config-router)#network 23.0.0.3 0.0.0.0 area 32
R3(config-router)#exit
R4(config)#router ospf 100
R4(config-router)#router-id 4.4.4.4
R4(config-router)#network 4.4.4.4 0.0.0.0 area 54
R4(config-router)#network 45.0.0.4 0.0.0.0 area 54
R4(config-router)#exit
R5(config)#router ospf 100
R5(config-router)#network 5.5.5.5 0.0.0.0 area 0
R5(config-router)#network 15.0.0.5 0.0.0.0 area 0
R5(config-router)#network 45.0.0.5 0.0.0.0 area 54
R5(config-router)#exit
第二步 配置Area 32為NSSA區(qū)域
R2(config)#router ospf 100
R2(config-router)#area 32 nssa
R2(config-router)#exit
R3(config)#router ospf 100
R3(config-router)#area 32 nssa
R3(config-router)#exit
第三步 到R3上配置重分布直連,讓一些外部路由進入OSPF,這樣,R3就成了一個ASBR
R3(config)#int lo11
R3(config-if)#ip ad 199.172.1.1 255.255.255.0
R3(config-if)#int lo12
R3(config-if)#ip ad 199.172.2.2 255.255.255.0
R3(config-if)#int lo13
R3(config-if)#ip ad 199.172.3.3 255.255.255.0
R3(config-if)#int lo14
R3(config-if)#ip ad 199.172.4.4 255.255.255.0
R3(config-if)#int lo15
R3(config-if)#ip ad 199.172.5.5 255.255.255.0
R3(config-if)#int lo16
R3(config-if)#ip ad 199.172.6.6 255.255.255.0
R3(config-if)#int lo17
R3(config-if)#ip ad 199.172.7.7 255.255.255.0
R3(config-if)#int lo18
R3(config-if)#ip ad 199.172.8.8 255.255.255.0
R3(config-if)#int lo19
R3(config-if)#ip ad 199.172.9.9 255.255.255.0
R3(config-if)#int lo20
R3(config-if)#ip ad 199.172.10.10 255.255.255.0
R3(config-if)#int lo21
R3(config-if)#ip ad 199.172.11.11 255.255.255.0
R3(config-if)#int lo22
R3(config-if)#ip ad 199.172.12.12 255.255.255.0
R3(config-if)#int lo23
R3(config-if)#ip ad 199.172.13.13 255.255.255.0
R3(config-if)#int lo24
R3(config-if)#ip ad 199.172.14.14 255.255.255.0
R3(config-if)#int lo25
R3(config-if)#ip ad 199.172.15.15 255.255.255.0
R3(config-if)#exit
R3(config)#router ospf 100
R3(config-router)#redistribute connected subnets
R3(config-router)#^Z
第四步 查看R3的OSPF數(shù)據(jù)庫
R3#show ip ospf database
OSPF Router with ID (3.3.3.3) (Process ID 100)
Router Link States (Area 32)
Link ID ADV Router Age Seq# Checksum Link count
2.2.2.2 2.2.2.2 146 0x80000006 0x0089C0 2
3.3.3.3 3.3.3.3 31 0x80000004 0x006FBB 3
Summary Net Link States (Area 32)
Link ID ADV Router Age Seq# Checksum
1.1.1.1 2.2.2.2 162 0x80000002 0x004F99
2.2.2.2 2.2.2.2 162 0x80000002 0x009E86
4.4.4.4 2.2.2.2 162 0x80000002 0x00C992
5.5.5.5 2.2.2.2 162 0x80000002 0x00197F
12.0.0.0 2.2.2.2 162 0x80000002 0x00D60B
15.0.0.0 2.2.2.2 162 0x80000002 0x00326C
45.0.0.0 2.2.2.2 162 0x80000002 0x002D13
Type-7 AS External Link States (Area 32)
//可以看到,R3上重發(fā)布的路由成了LSA-7型
Link ID ADV Router Age Seq# Checksum Tag
199.172.1.0 3.3.3.3 30 0x80000001 0x0047C1 0
199.172.2.0 3.3.3.3 31 0x80000001 0x003CCB 0
199.172.3.0 3.3.3.3 31 0x80000001 0x0031D5 0
199.172.4.0 3.3.3.3 31 0x80000001 0x0026DF 0
199.172.5.0 3.3.3.3 31 0x80000001 0x001BE9 0
199.172.6.0 3.3.3.3 32 0x80000001 0x0010F3 0
199.172.7.0 3.3.3.3 32 0x80000001 0x0005FD 0
199.172.8.0 3.3.3.3 32 0x80000001 0x00F908 0
199.172.9.0 3.3.3.3 32 0x80000001 0x00EE12 0
199.172.10.0 3.3.3.3 32 0x80000001 0x00E31C 0
199.172.11.0 3.3.3.3 32 0x80000001 0x00D826 0
199.172.12.0 3.3.3.3 32 0x80000001 0x00CD30 0
199.172.13.0 3.3.3.3 32 0x80000001 0x00C23A 0
199.172.14.0 3.3.3.3 32 0x80000001 0x00B744 0
199.172.15.0 3.3.3.3 32 0x80000001 0x00AC4E 0
第五步 查看R2的路由表與數(shù)據(jù)庫。可以看到,通過類型7的LSA算出的路由條目,是用“O N2”開頭的。
R2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
O N2 199.172.11.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/65] via 12.0.0.1, 00:04:26, Serial2/1
O N2 199.172.10.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
O N2 199.172.9.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/65] via 23.0.0.3, 00:02:15, Serial2/2
O N2 199.172.8.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
O N2 199.172.15.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
4.0.0.0/32 is subnetted, 1 subnets
O IA 4.4.4.4 [110/193] via 12.0.0.1, 00:02:15, Serial2/1
O N2 199.172.14.0/24 [110/20] via 23.0.0.3, 00:02:15, Serial2/2
5.0.0.0/32 is subnetted, 1 subnets
O 5.5.5.5 [110/129] via 12.0.0.1, 00:04:27, Serial2/1
O N2 199.172.13.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
23.0.0.0/24 is subnetted, 1 subnets
C 23.0.0.0 is directly connected, Serial2/2
O N2 199.172.12.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
O N2 199.172.3.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
O N2 199.172.2.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
O N2 199.172.1.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
O N2 199.172.7.0/24 [110/20] via 23.0.0.3, 00:02:16, Serial2/2
12.0.0.0/24 is subnetted, 1 subnets
C 12.0.0.0 is directly connected, Serial2/1
O N2 199.172.6.0/24 [110/20] via 23.0.0.3, 00:02:17, Serial2/2
O N2 199.172.5.0/24 [110/20] via 23.0.0.3, 00:02:17, Serial2/2
O N2 199.172.4.0/24 [110/20] via 23.0.0.3, 00:02:17, Serial2/2
45.0.0.0/24 is subnetted, 1 subnets
O IA 45.0.0.0 [110/192] via 12.0.0.1, 00:02:17, Serial2/1
15.0.0.0/24 is subnetted, 1 subnets
O 15.0.0.0 [110/128] via 12.0.0.1, 00:04:28, Serial2/1
以上就是網(wǎng)絡(luò)協(xié)議中OSPF的NSSA區(qū)域原理與配置,謝謝閱讀,希望能幫到大家,請繼續(xù)關(guān)注武林網(wǎng),我們會努力分享更多優(yōu)秀的文章。
新聞熱點
疑難解答
圖片精選