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