Ospf STUB totally stub NSSA ,totally NSSA
在上一節筆記中,已經知道OSPF的多域,是在什么情況下要進行划分,
划分完區域后,問題也隨之而來,對於OSPF的諸多區域,是不是都要知道所有的網絡拓撲呢?
全都要更新LSA嗎?
當然不是,
之所以要對OSPF划分區域,除了方便進行管理,其最大的好處就是針對於某一個區域進行優化。
這里指的優化有很多種,
今天咱們提到的特殊區域,就是針對於設備性能進行優化,假設一個OSPF的自制系統中有兩個區域,每個區域中有10台router ,其中共有500條LSA,如果有一個改動,那就要改變全部,顯然這不是我們想要的,
處於一個網絡拓撲的末梢,可以為的將其定義為末梢區域,也叫末節區域STUB
STUB的特性
1 不允許類型4-5的信息傳播
2 stub區域不可以有ASBR
3 虛擬鏈路不可以穿過STUB區域
4 STUB區域的路由器和其它區域的路由器無法建立鄰居 hello包中的E=0,常規為1(這個后面的抓包分析)
STUB區域不會傳播 4類5類的LSA,
如圖
在此圖中,
R1為ASBR
連接着 10.0.0.1 20.0.0.1 30.0.0.1 模擬rip協議,所以他的角色為ASBR
R2-R3為ABR,
正常情況下,不設置任何特殊區域,R4上可以看到O E2的路由條目,並且在鏈路狀態數據庫中也能夠看到5類的LSA更新
這是R4上查看的結果,有三條,正是RIP進來的
現在根據 需求,將AREA2 配置成STUB區域,拒絕類型5的LSA
配置:
配置STUB區域,要在STUB區域的ABR,以及域內所有設備上都配置
r4(config)#router ospf 1
r4(config-router)#area 2 stub
r3(config)#router ospf 1
r3(config-router)#area 2 stub
就只有這兩條命令,確切的說是一條,命令不難,最主要的是你要理解這里面的原理,邏輯
現在來驗證一下,看在R4上還能不能持到類型5的LSA 以及路由表
果然沒有了,O E2,但是好像多了些什么
是的沒錯 O*IA 這個是3類的匯總默認路由,其目標指向的是這個STUB區域的ABR,
因為不管怎么樣,只要是走出該區域就必然要經過這個ABR ,所以系統自動生成一個缺省路由 並以O*IA顯示。
那在鏈路狀態數據庫中呢?
當然也是看不到5類的LSA了
這就是STUB區域,它可以減少該區域路由表的條目,並且不去更新外部區域的網絡拓撲,把所有的重任都交給了這個區域的ABR路由器,(這也再次證明了為什么在ABR選擇的時候要找一些性能優的,至少要比域內路由器性能強)
因為在它上面,肯定是什么都有的,照單全收
Totally stub 完全末梢區域
這個比末梢還狠,連域間通信的3類LSA也阻擋掉,只留一條默認給stub區域內的路由器
我們來看一下
配置:
在stub配置的基礎上,將ABR再進行一下配置升級,
r3(config)#router ospf 1
r3(config-router)#area 2 stub no-summary
此時再查看一下數據庫,只有類型2 的了,而3類只有一個特殊,就是0.0.0.0,全都被擬擋在外面了,
查看路由表看一下
除了直連的,真的剩下一個3類的缺省路由了,
需要注意的是,這里的干凈,阻擋,並不是不讓它通,
而只是為了讓STUB區域更加的安靜,更加瘦,不受外界因素的干擾。
NSSA區域 非純末梢區域
前面提到過,STUB區域是不可以有ASBR的,但是一些特殊情況肯定還是會發生的,
比如 就真的引入了外部路由,怎么辦呢?那這個區域就得設置成NSSA區域,
NSSA,非純末梢區域(可以允許ASBR的區域)
這是一個真的很特別的區域,他不會學習其它外部系統的協議,
5類LSA不可以在NSSA中傳播
NSSA區域內泛洪的只有1.2.3.4.7 類LSA
自己區域的7類LSA是不會傳到其它區域的,如果想要傳遞那必須經過 ABR進行轉換成5類的LSA,才可以,
如圖
Area1現在將他配置成NSSA區域
在R1上引入外部協議rip ,
AREA2 請注意,這時不是stub區域,
配置,和STUB區域相同,要在本區域內所有設備上進行配置,包括最主要的ABR
r1(config)#router ospf 1
r1(config-router)#area 1 nssa
r2(config)#router ospf 1
r2(config-router)#area 1 nssa
鄰居會斷開,然后再重新建立
驗證一下
在R1上看路由表,數據庫表,以及摘要
明細
分別是 10.0.0.0 20.0.0.0 30.0.0.0 他們都是7類的,也就是外部協議的
配置好以后,就要到NSSA區域的ABR上看一下
同樣在ABR上看也能看到這三條LSA,但是要注意的是AREA 1 ,是在為個區域中
那在area 0 中還有嗎?
Area 0 里是沒有7類的,因為不可能傳播出去的
之前提到過,NSSA區域的條目如果想要被傳出去的話,就必然要經過轉換, 7轉5
這就是NSSA區域中R1進引入的外部協議,三個網段
在R3上看一下,能看到什么路由條目呢~
同樣是可以看到這三個條目的,說明被轉換出來了,顯示為O E2
具體是幾類的呢~?
還是5類的,
那NSSA區域,為非純末梢區域,只是加入了ASBR,但是其STUB區域的特性應該還在,
我們來驗證一下,在R4 上引入了RIP協議 40.0.0.0 50.0.0.0 兩個網段
看NSSA 的ABR,和NSSA的域內路由器顯示的是否一樣
NSSA-ABR
在R2上是可以看到這兩個條目的,
而在R1上則什么都看不到的
那有沒有默認路由呢?
同樣也是沒有的,
注意,注意,注意,這里特別注意一下
不知道是官方文檔問題還是其它什么原因,你用剛才的方式去配置NSSA,就是沒有默認路由,這是不對的,
應該是這樣,在NSSA區域的ABR設備上做
r2(config-router)#area 1 nssa default-information originate
只有這樣,才會為NSSA區域后的設備一並下放默認路由
totally nssa
還有一種情況totally nssa
完全非純末梢區域
配置方法和totally stub相同,只要在ABR上配置即可
r2(config-router)#area 1 nssa no-summary
此時的R1上再查看路由表,這時這條缺省出來了
那再去ping 40.0.0.1的外部路由呢?肯定是有的了
OSPF在鄰居重建的過程中會有一個標識選項,這個標識為N(NSSA)
=0時代表不是NSSA區域, =1時,代表是NSSA區域,如果兩端一致就可以建立鄰居關系
如果兩端 不一樣,那么對不起,建立不起來
普通區域
NSSA區域
STUB區域也是同樣的道理,只不過是標記的地方不一樣,
起初已經建立好了鄰接關系,但是由於設置了stub區域,被強制中斷,然后再重新建立
STUB區域是標記在hello包中的,
Option中E=0為stub區域
E=1為常規區域,
同樣的道理,兩側不一樣,也是無法建立關系的,正因為如此,stub區域的設備無法和其它常規區域的接口建立鄰接關系。
在常規情況下是什么樣的呢? 這個時候E=1,
以上就是末梢,完全末梢,非純末梢,完全非純末梢區域
----------------------------------------------------------
CCIE成長之路 --- 梅利