百科解釋
眾所周知,OSPF路由協(xié)議是目前因特網(wǎng)中應用最為廣泛一種IGP,而NSSA則是在該協(xié)議發(fā)展過程中產(chǎn)生的一種新的屬性,她的英文全稱是"not-so-stubby" area,一個充滿了幽默味道的名字。要想了解該屬性的特征,我們先從路由協(xié)議的發(fā)展歷程講起。
1.2 從D-V算法到鏈路狀態(tài)算法
RIP作為最古老的動態(tài)路由協(xié)議,使用D-V算法來計算路由。由于當時的網(wǎng)絡環(huán)境非常簡單,所以RIP協(xié)議的設計思想也是簡潔為本,只求完成最基本的功能。這樣在RIP應用于大型拓撲復雜的網(wǎng)絡時,就會出現(xiàn)效率不高、收斂慢、路由自環(huán)等問題。其中尤以路由自環(huán)的危害最大。此時必須有新的路由協(xié)議來適應日益復雜的網(wǎng)絡,而且新的路由協(xié)議必須要解決RIP遇到的所有問題。由于D-V算法對網(wǎng)絡的理解是基于“平面的”——在運行RIP協(xié)議的路由器眼中,網(wǎng)絡僅僅是由一個個直連的鄰居和一條條由鄰居通告的路由組成。這樣在網(wǎng)絡拓撲變化時難免會導致計算錯誤,產(chǎn)生自環(huán)。為了徹底解決這個問題,一種全新的算法——鏈路狀態(tài)算法應運而生。該算法從“立體”的角度來看待網(wǎng)絡,每一臺路由器都理解全局網(wǎng)絡的拓撲結構,并依據(jù)此來計算路由,由于每臺路由器對網(wǎng)絡的整體情況“一切盡在掌握”,所以自環(huán)的問題被這徹底的解決。
1.3 OSPF協(xié)議與區(qū)域
基于鏈路狀態(tài)算法的OSPF協(xié)議雖然徹底的解決了路由自環(huán)問題,但這種算法本身也有很多固有的缺陷:
耗費更多內(nèi)存資源:每臺路由器都必須保存整個網(wǎng)絡的拓撲結構(以LSDB的形態(tài))
耗費更多CPU資源:該算法的路由計算使用SPF算法,較D-V算法要復雜的多。
計算更為頻繁:只要網(wǎng)絡中有任何一臺路由器的拓撲方生變化,會導致網(wǎng)絡中所有的路由器進行SPF計算,而且每臺路由器都是將SPF算法重新執(zhí)行一遍,以便找出變化的路由。
而且,無論是D-V算法還是鏈路狀態(tài)的路由協(xié)議都存在如下缺陷:
沒有從協(xié)議本身反映出網(wǎng)絡的層次結構。因為實際應用中的一個網(wǎng)絡是由各種級別的路由器組成的,有核心層的骨干路由器、匯聚層的高端路由器、接入層的低端路由器。這些路由器承擔的任務不同,處理性能也不一樣。但在路由協(xié)議中,所有的路由器都要完成幾乎是相同的工作:發(fā)送已知的路由給鄰居路由器,根據(jù)從鄰居路由器獲得的路由信息計算本地路由表。雖然每臺路由器的接口數(shù)量不同,但最終計算得來的路由表的規(guī)模基本是一樣的。
為了徹底解決上述問題,OSPF提出了區(qū)域的概念(AREA),區(qū)域是將所有運行OSPF 的路由器人為的分成不同的組,以區(qū)域id來標示。在區(qū)域內(nèi)路由計算的方法不變,由于劃分區(qū)域之后,每個區(qū)域內(nèi)的路由器不會很多,所有上述缺陷表現(xiàn)得并不嚴重,帶來的后果可以忽略不計。而在區(qū)域之間計算路由時采用D-V算法,這樣三個缺點就被成功的規(guī)避了。實際上區(qū)域概念的提出意義遠不只這些,在劃分為區(qū)域之后:
網(wǎng)絡的拓撲結構就與路由協(xié)議之間存在了一種對應關系,核心和高端的路由器由于處理能力強,可以規(guī)劃在骨干區(qū)域之中。因為骨干區(qū)域的路由器要承擔更多的路由計算任務。
每個單獨的區(qū)域?qū)嶋H上就是一個獨立于網(wǎng)絡中其他區(qū)域的系統(tǒng),可以在不同的區(qū)域中試行不同的路由策略,使組網(wǎng)規(guī)劃更為靈活方便。
實際上OSPF 協(xié)議在當今的網(wǎng)絡中廣為流行,不是因為她使用了無環(huán)路的鏈路狀態(tài)算法,而是因為她提出了區(qū)域的概念!
1.4 STUB區(qū)域
STUB區(qū)域就是一個對區(qū)域概念的最典型的應用。STUB區(qū)域的設計思想在于:在劃分了區(qū)域之后,非骨干區(qū)域中的路由器對于區(qū)域外的路由,一定要通過ABR(區(qū)域邊界路由器)來轉(zhuǎn)發(fā),或者說對于區(qū)域內(nèi)的路由器來說ABR是一個通往外部世界的必經(jīng)之路。既然如此,對于區(qū)域內(nèi)的路由器來說,就沒有必要知道通往外部世界的詳細的路由了,代之以由ABR向該區(qū)域發(fā)布一條缺省路由來指導報文的發(fā)送。這樣在區(qū)域內(nèi)的路由器中就只有為數(shù)不多的區(qū)域內(nèi)路由和一條指向ABR的缺省路由。而且無論區(qū)域外的路由如何變化,都不會影響到區(qū)域內(nèi)路由器的路由表。由于區(qū)域內(nèi)的路由器通常是由一些處理能力有限的低端路由器組成,所以處于STUB區(qū)域內(nèi)的這些低端設備既不需要保存龐大的路由表,也不需要經(jīng)常性的進行路由計算。有了STUB屬性之后,網(wǎng)絡的規(guī)劃更符合實際的設備特點。
以上描述的只是STUB區(qū)域的設計思想,在協(xié)議文本中,對STUB區(qū)域的精確定義是:STUB區(qū)域一定是非骨干區(qū)域和非轉(zhuǎn)換區(qū)域(可以配置虛連接的區(qū)域),并且在該區(qū)域中不可傳遞Type 5類型的LSA。 因為協(xié)議的設計者認為路由表中的絕大部分路由均是來自自治系統(tǒng)外部的引入的路由。(由于OSPF是鏈路狀態(tài)算法的路由協(xié)議,LSA就是用來描述網(wǎng)絡拓撲結構的一種數(shù)據(jù)結構。在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)中,并不是所有的設備都會運行OSPF協(xié)議。例如:用戶撥號上網(wǎng)時使用的接入服務器就需要連接路由器上因特網(wǎng),但通常接入服務器上并不支持(也不需要)OSPF協(xié)議,而是通過配置靜態(tài)路由實現(xiàn)路由功能。很多時候ISP為了保密或易于管理的需要,在連接用戶側的路由器時使用靜態(tài)路由?傊涸谝粋網(wǎng)絡中所有的路由器上都配置OSPF,而不使用靜態(tài)路由的情況幾乎是不存在的!簿褪钦fSTUB區(qū)域的適用條件也是不存在的。
1.5 NSSA區(qū)域
STUB區(qū)域雖然為合理的規(guī)劃網(wǎng)絡描繪了美好的前景,但她在實際的組網(wǎng)中又不具備可操作性,未免遺憾。但此時的OSPF協(xié)議已經(jīng)基本成型,不可能再做大的修改。為了彌補缺陷,協(xié)議設計者提出了一種新的概念NSSA,并且作為OSPF協(xié)議的一種擴展屬性單獨在RFC 1587中描述。
NSSA需要完成如下任務:
自治系統(tǒng)外的ASE路由不可以進入到NSSA區(qū)域中,但是NSSA區(qū)域內(nèi)的路由器引入的ASE路由可以在NSSA中傳播并發(fā)送到區(qū)域之外。即:取消了STUB關于ASE的雙向傳播的限制(區(qū)域外的進不來,區(qū)域里的也出不去),改為單向限制(區(qū)域外的進不來,區(qū)域里的能出去)。
由于是作為OSPF標準協(xié)議的一種擴展屬性,應盡量減少與不支持該屬性的路由器協(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ū)域。
第2章 NSSA相關配置
NSSA的原理不復雜,配置更簡單,相關命令只有一條:
[Router-ospf]
area area-id nssa [ default-route-advertise ] [ no-import-route ] [ no-summary ]
area-id:是需要配置成NSSA的區(qū)域的區(qū)域號!癧]”內(nèi)的參數(shù)只有在該路由器是ABR時才會生效。
關鍵字default-route-advertise用來產(chǎn)生缺省的Type-7 LSA,應用了該參數(shù)后,在ABR上無論路由表中是否存在缺省路由0.0.0.0,都會產(chǎn)生Type-7 LSA缺省路由;而在ASBR上當路由表中存在缺省路由0.0.0.0,才會產(chǎn)生Type-7 LSA缺省路由。
關鍵字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ù)。
文字