解析OSPF各區(qū)域的區(qū)別和作用
在進(jìn)行OSPF路由方案部署過(guò)程中,OSPF的各種區(qū)域是最難理解的。它們之間到底有什么區(qū)別和作用呢?本文將為大家一一解答。
Backbone(骨干)區(qū)域
在一個(gè)OSPF網(wǎng)絡(luò)中,可以包括多種區(qū)域,其中就有三種常見(jiàn)的特殊區(qū)域,即就是骨干區(qū)域(Backbone Area)、末梢區(qū)域(Stub Area)和非純Stub區(qū)域(No Stotal Stub area,NSSA),當(dāng)然還可以包括其它標(biāo)準(zhǔn)區(qū)域。OSPF網(wǎng)絡(luò)中的區(qū)域是以區(qū)域ID進(jìn)行標(biāo)識(shí)的,區(qū)域ID為0的區(qū)域規(guī)定為骨干區(qū)域。
OSPF主要區(qū)域類型示例
一個(gè)OSPF互聯(lián)網(wǎng)絡(luò),無(wú)論有沒(méi)有劃分區(qū)域,總是至少有一個(gè)骨干區(qū)域。骨干區(qū)域有一個(gè)ID 0.0.0.0,也稱之為區(qū)域0。另外,骨干區(qū)域必須是連續(xù)的(也就是中間不會(huì)越過(guò)其他區(qū)域),也要求其余區(qū)域必須與骨干區(qū)域直接相連(但事實(shí)上,有時(shí)并不一定會(huì)這樣,所以也就有了下面將要介紹的"虛擬鏈路"技術(shù))。骨干區(qū)域一般為區(qū)域0(Area 0),其主要工作是在其余區(qū)域間傳遞路由信息。
骨干區(qū)域作為區(qū)域間傳輸通信和分布路由信息的中心。區(qū)域間的通信先要被路由到骨干區(qū)域,然后再路由到目的區(qū)域,最后被路由到目的區(qū)域中的主機(jī)。在骨干區(qū)域中的路由器通告他們區(qū)域內(nèi)的匯總路由到骨干區(qū)域中的其他路由器。這些匯總通告在區(qū)域內(nèi)路由器泛洪,所以在區(qū)域中的每臺(tái)路由器有一個(gè)反映在它所在區(qū)域內(nèi)路由可用的路由表,這個(gè)路由與AS中其他區(qū)域的ABR匯總通告相對(duì)應(yīng)。
如在本章前面的圖8-1中,R1使用一個(gè)匯總通告向所有骨干路由器(R2和R3)通告Area 0.0.0.1中的所有路由。R1從R2和R3接收匯總通告。R1配置了Area 0.0.0.0中的匯總通告信息,通過(guò)泛洪,R1把這個(gè)匯總路由信息傳播到Area 0.0.0.1內(nèi)所有路由器上。在Area 0.0.0.1內(nèi)的每個(gè)路由器,來(lái)自Areas 0.0.0.0、0.0.0.2和0.0.0.3區(qū)域的匯總路由信息共同完成路由表的計(jì)算。
在實(shí)際網(wǎng)絡(luò)中,可能會(huì)存在骨干區(qū)域不連續(xù),或者某一個(gè)區(qū)域與骨干區(qū)域物理不相連的情況,此時(shí)系統(tǒng)管理員可以通過(guò)設(shè)置虛擬鏈路(Virtual Link)的方法來(lái)解決(參見(jiàn)圖8-4)。虛擬鏈路存在于兩個(gè)路由器之間,這兩個(gè)路由器都有一個(gè)端口與同一個(gè)非骨干區(qū)域(這個(gè)區(qū)域是處于骨干區(qū)域和某個(gè)不直接與骨干區(qū)域相連的區(qū)域之間)相連,虛擬鏈路使該區(qū)域與骨干區(qū)域間建立一個(gè)邏輯聯(lián)接點(diǎn)。虛擬鏈路被認(rèn)為是屬于骨干區(qū)域(相當(dāng)于骨干區(qū)域的延伸),在 OSPF路由協(xié)議看來(lái),虛擬鏈路兩端的兩個(gè)路由器被一個(gè)點(diǎn)對(duì)點(diǎn)的鏈路連在一起。而且,在OSPF路由協(xié)議中,通過(guò)虛擬鏈路的路由信息是作為域內(nèi)路由來(lái)看待的。該虛擬鏈路必須建立在兩個(gè)區(qū)域邊界路由器之間,并且其中一個(gè)區(qū)域邊界路由器必須屬于骨干區(qū)域。
Stub(末梢)區(qū)域
通過(guò)前面對(duì)OSPF區(qū)域概念的了解可以知道,在劃分了區(qū)域之后,OSPF網(wǎng)絡(luò)中的非骨干區(qū)域中的路由器對(duì)于到外部區(qū)域的路由,一定要通過(guò)ABR(區(qū)域邊界路由器)來(lái)轉(zhuǎn)發(fā),或者說(shuō)對(duì)于區(qū)域內(nèi)的路由器來(lái)說(shuō),ABR是一個(gè)通往外部世界的必經(jīng)之路。既然如此,對(duì)于區(qū)域內(nèi)的路由器來(lái)說(shuō),就沒(méi)有必要知道通往外部區(qū)域的詳細(xì)路由了,只要由ABR向該區(qū)域發(fā)布一條默認(rèn)路由來(lái)指導(dǎo)報(bào)文的發(fā)送路徑即可。這樣在區(qū)域內(nèi)的路由器中就只需要為數(shù)不多的區(qū)域內(nèi)路由和一條指向ABR的默認(rèn)路由(Default-Route),使區(qū)域內(nèi)的路由表簡(jiǎn)化。而且無(wú)論區(qū)域外的路由如何變化,都不會(huì)影響到區(qū)域內(nèi)路由器這個(gè)簡(jiǎn)單的路由表。這就是OSPF 路由協(xié)議中"Stub Area"(末梢區(qū)域)的設(shè)計(jì)理念。Stub區(qū)域的ABR不允許注入Type5 LSA(有關(guān)OSPF LSA類型將在本章后面具體介紹),在這些區(qū)域中路由器的路由表規(guī)模以及路由信息傳遞的數(shù)量都會(huì)大大減少,同時(shí)也使得該區(qū)域不受外部AS路由的影響。
一個(gè)Stub區(qū)域可以包含一個(gè)入口/出口(也就是一個(gè)ABR),或者在任一ABR可以被用于到達(dá)外部路由目標(biāo)時(shí),還可包含多個(gè)ABR。對(duì)于多ABR的 Stub區(qū)域,外部路由是通過(guò)一個(gè)區(qū)域外的ASBR進(jìn)行通告的。AS外部路由器不會(huì)被泛洪到,或者通過(guò)Stub區(qū)域。在一個(gè)Stub區(qū)域中的所有到達(dá)外部網(wǎng)絡(luò)的路由是通過(guò)一個(gè)默認(rèn)路由(0.0.0.0 0.0.0.0)來(lái)實(shí)現(xiàn)的。這樣,在一個(gè)Stub區(qū)域中的路由器的路由表中就只有一個(gè)路由到所有AS外部位置的入口。
為了創(chuàng)建默認(rèn)路由,Stub區(qū)域的ABR通行一個(gè)默認(rèn)路由到Stub區(qū)域。默認(rèn)路由被泛洪到這個(gè)Stub區(qū)域內(nèi)的所有路由器上,但是不會(huì)泛洪到Stub區(qū)域外。默認(rèn)路由是用于一個(gè)Stub區(qū)域中的路由器為任一不可到達(dá)AS內(nèi)部的目的IP地址提供路由。在Stub區(qū)域中的所有路由器必須被配置,以便它們不在 Stub區(qū)域內(nèi)導(dǎo)入或泛洪AS外部路由。所以,在一個(gè)Stub區(qū)域中的所有路由器接口上的所有區(qū)域配置必須配置Stub區(qū)域。例如,圖8-5中的Area 0.0.0.3被配置為一個(gè)Stub區(qū)域,因?yàn)樗型獠客ㄐ疟仨毸膯蝹€(gè)ABR——R3。R3通告一個(gè)默認(rèn)路由分布在內(nèi)部區(qū)域Area 0.0.0.3,而不是在區(qū)域內(nèi)泛洪AS外部網(wǎng)絡(luò)。
在 Stub區(qū)域中規(guī)定不接收外部AS的LSA,也不向外部AS發(fā)送區(qū)域內(nèi)部LSA,即Stub區(qū)域中不注入ASE(自治系統(tǒng)外部)路由。Stub區(qū)域一定是非骨干區(qū)域和非轉(zhuǎn)換區(qū)域(可以配置虛連接的區(qū)域),因?yàn)樗唤邮找膊话l(fā)送LSA。并且在Stub區(qū)域中不傳遞Type 5類型(AS外部LSA)的LSA(有關(guān)LSA類型將在本節(jié)后面介紹)。本節(jié)前面的圖8-4顯示了骨干區(qū)域、Stub區(qū)域,以及其他標(biāo)準(zhǔn)區(qū)域之間的關(guān)系。 Area 0為骨干區(qū)域,area 3是Stub區(qū)域,area 2為一個(gè)標(biāo)準(zhǔn)OSPF區(qū)域。同時(shí)在這個(gè)示例中Area 2區(qū)域并沒(méi)有與骨干區(qū)域Area 0直接相連,這時(shí)就通過(guò)在兩個(gè)區(qū)域的邊界路由器之間建立的虛擬鏈路進(jìn)行直接通信。Area 1是一個(gè)轉(zhuǎn)發(fā)區(qū)域。
由于Stub區(qū)域通常位于OSPF網(wǎng)絡(luò)末端,這些區(qū)域內(nèi)的路由器通常是由一些處理能力有限的低端路由器組成,所以處于Stub區(qū)域內(nèi)的這些低端設(shè)備既不需要保存龐大的路由表,也不需要經(jīng)常性的進(jìn)行路由計(jì)算。這樣做有利于減小Stub區(qū)域中內(nèi)部路由器上的鏈路狀態(tài)數(shù)據(jù)庫(kù)的大小及存儲(chǔ)器的使用,提高路由器計(jì)算路由表的速度。
當(dāng)一個(gè)OSPF的區(qū)域只存在一個(gè)區(qū)域出口點(diǎn)(只與一個(gè)其他區(qū)域連接)時(shí),我們可以將該區(qū)域配置成一個(gè)Stub區(qū)域。這時(shí),該區(qū)域的邊界路由器會(huì)對(duì)域內(nèi)通告默認(rèn)路由信息。需要注意的是,一個(gè)Stub區(qū)域中的所有路由器都必須知道自身屬于該區(qū)域,否則Stub區(qū)域的設(shè)置不會(huì)起作用。另外,針對(duì)Stub區(qū)域還有兩點(diǎn)需要注意:一是Stub區(qū)域中不允許存在虛擬鏈路,這樣就不會(huì)作為骨干區(qū)域的延伸;二是Stub區(qū)域中不允許存在ASBR,否則這個(gè)AS中的LSA無(wú)法傳播到另一個(gè)AS中。
Totally Stub(完全末梢)區(qū)域和NSSA(非純末梢)區(qū)域
上節(jié)介紹的Stub區(qū)域是一類特殊的OSPF區(qū)域,這類區(qū)域不接收或擴(kuò)散Type-5類型LSA(AS-external-LSAs),對(duì)于產(chǎn)生大量 Type-5 LSA(外部AS LSA)的網(wǎng)絡(luò),這種處理方式能夠有效減小Stub區(qū)域內(nèi)路由器的LSDB大小,并緩解SPF運(yùn)算對(duì)路由器資源的占用。通常情況下,Stub區(qū)域位于自治系統(tǒng)邊緣區(qū)域。為保證Stub區(qū)域去往自治系統(tǒng)外的報(bào)文能被正確轉(zhuǎn)發(fā),Stub區(qū)域的ABR(區(qū)域邊界路由器)將通過(guò)Summary-LSA(匯總鏈路狀態(tài)通告)向本區(qū)域內(nèi)發(fā)布一條默認(rèn)路由,并且只在本區(qū)域泛洪。為了進(jìn)一步減少Stub區(qū)域中路由器的路由表規(guī)模以及路由信息傳遞的數(shù)量,可以將該區(qū)域配置為 Totally Stub(完全末梢)區(qū)域,該區(qū)域的ABR不會(huì)將區(qū)域間的路由信息和外部路由信息傳遞到本區(qū)域。
1. 完全Stub區(qū)域
這里所說(shuō)的完全Stub區(qū)域(Totally Stub,或者Stub no-summary)是在Stub區(qū)域的基礎(chǔ)上(即阻止了Type 5 LSA包的基礎(chǔ)上)再對(duì)其他ABR通告的網(wǎng)絡(luò)匯總LSA(即Type 3類型LSA)也進(jìn)行了阻隔,不接收區(qū)域間路由通告。其ABR僅通過(guò)網(wǎng)絡(luò)匯總LSA通告一個(gè)默認(rèn)路由,使用這個(gè)默認(rèn)路由到達(dá)OSPF自治系統(tǒng)外部的目的地址。也就是說(shuō),完全Stub區(qū)域同時(shí)不允許Type 3、4或5三類LSA注入,但默認(rèn)匯總路由除外。
若要將一個(gè)區(qū)域定義為Stub區(qū)域,則在區(qū)域內(nèi)所有路由器中使用"area xx stub"命令;若要定義完全Stub區(qū)域,使用OSPF路由器配置命令"area xx stub no-summary"命令。
2. NSSA區(qū)域
Stub 區(qū)域雖然為合理的規(guī)劃網(wǎng)絡(luò)描繪了美好的前景,但在實(shí)際的組網(wǎng)中利用率并不高(Stub區(qū)域一般只存在于網(wǎng)絡(luò)邊緣),未免遺憾。但此時(shí)的OSPF協(xié)議已經(jīng)基本成型,不可能再做大的修改。為了彌補(bǔ)缺陷,協(xié)議設(shè)計(jì)者提出了一種新的概念NSSA(not-so-Stubby area,非純末梢區(qū)域),并且作為OSPF協(xié)議的一種擴(kuò)展屬性單獨(dú)在RFC 1587中描述。NSSA可以說(shuō)是對(duì)原來(lái)的Stub區(qū)域要求有所放寬,使它可以在更多網(wǎng)絡(luò)環(huán)境中得到應(yīng)用。
NSSA 區(qū)域規(guī)定,AS外的ASE路由不可以進(jìn)入到NSSA區(qū)域中,但是NSSA區(qū)域內(nèi)的路由器引入的ASE路由(NSSA區(qū)域中可以連接ASBR)可以在 NSSA中泛洪并發(fā)送到區(qū)域之外。這樣,在NSSA區(qū)域中取消了原來(lái)Stub區(qū)域中關(guān)于ASE的雙向傳播的限制(區(qū)域外的進(jìn)不來(lái),區(qū)域里的也出不去),改為單向限制(區(qū)域外的進(jìn)不來(lái),區(qū)域里的能出去)。若要定義NSSA區(qū)域,使用OSPF路由器配置命令"area xx nssa"命令。
為了解決ASE單向傳遞的問(wèn)題,NSSA中重新定義了一種LSA——Type 7類型的LSA(NSSA外部LSA),作為區(qū)域內(nèi)的路由器引入外部路由時(shí)使用。該類型的LSA除了類型標(biāo)識(shí)與Type 5不相同之外,其它內(nèi)容基本一樣。這樣區(qū)域內(nèi)的路由器就可以通過(guò)LSA的類型來(lái)判斷是否該路由來(lái)自本區(qū)域內(nèi)。但由于Type 7類的LSA是新定義的,對(duì)于不支持NSSA屬性的路由器無(wú)法識(shí)別,所以協(xié)議規(guī)定:在NSSA的ABR上將NSSA內(nèi)部產(chǎn)生的Type 7類型的LSA轉(zhuǎn)化為T(mén)ype 5類型的LSA再發(fā)布出去,并同時(shí)更改LSA的發(fā)布者為ABR自己。這樣NSSA區(qū)域外的路由器就可以完全不用支持該屬性。在NSSA區(qū)域內(nèi)的所有路由器(包括NSSA的ABR)必須支持Type 7類型的LSA屬性,而自治系統(tǒng)中的其他路由器則不需要。
總的來(lái)說(shuō),NSSA區(qū)域不允許Type 5 LSA,但在NSSA ABR上轉(zhuǎn)換為T(mén)ype 5的Type 7 LSA還是可以通過(guò)的。
NSSA所對(duì)應(yīng)的區(qū)域ID為1,它與骨干區(qū)域0相連,同時(shí)它又與另兩個(gè)自治系統(tǒng)的路由網(wǎng)絡(luò)(分別是運(yùn)行 IGRP和RIP路由協(xié)議的)相連。此時(shí),外部區(qū)域和外部AS的路由信息不能通告到NSSA區(qū)域中,但NSSA中的路由信息可以向外發(fā)布。
OSPF NSSA區(qū)域示例
原文博客:http://blog.163.com/hlz_2599/blog/static/142378474201261543555605/