CCNP5:OSPF的【不規則、末梢、NSSA】區域、【1、2、3、4、5、7】類LSA、【3、5、7】缺省

CCNP5:OSPF的【不規則、末梢、NSSA】區域、【1、2、3、4、5、7】類LSA、【3、5、7】缺省

一、OSPF的不規則區域:

1、不規則區域:

當我們把一個OSPF的拓撲設計好後,如果有一天又需要加入一個新的區域,而且該區域比較遠,扯一條線過去太貴,將兩個區域合併爲一個區域又太大,會導致網絡卡頓。

因此可以向下面這樣構造不規則區域:
在這裏插入圖片描述
因此要能夠實現OSPF不規則區域的信息傳遞,我們就需要配置不規則區域。
OSPF的不規則區域有兩種:
(1)遠離骨幹的非骨幹區域:
這種區域ABR必須同時工作於區域0,才能進行區域間的路由共享。
在這裏插入圖片描述
(2)不連續骨幹:
從x區域獲取到的路由信息不得發往編號爲x的區域,即便x區域連接了本區域不同的ABR(水平分割)。
在這裏插入圖片描述

2、解決方案:

(1)普通tunnel:

我之前的這篇文章CCNP2:二層技術、PPP、HDLC、GRE(Tunnel)、MGRE技術提到過GRE的技術。

這裏的 tunnel 是在兩臺ABR上建立隧道,然後將 tunnel 宣告在OSPF中。

正常情況下,我們是將 tunnel 宣告在0區域中,但是我們知道,這個tunnel只是虛構的,實際上控制方面的流量走的都是1區域,OSPF本來就是一個佔用資源大的協議,這就導致了area1中的區域會十分卡頓。

缺點:
①佔用資源:週期的保活和更新,觸發的信息均需要通過中間的穿越區域,對中間區域影響較大。
②選路不佳:由於 tunnel 被宣告在了區域0中,那麼area0和area1之間的ABR在選路的時候會優選 tunnel 口,裹報頭就會佔用資源特別大

在這裏插入圖片描述
OSPF隱性規則:OSPF協議若通過不同的區域學習到的相同的路由,優選區域0,若均爲非骨幹,則比較度量值,這就會導致選路不佳。

如果按下面這種方式,左邊的ABR便不會再像上面一樣去糾結是選擇走 area0(tunnel) 還是走area1,因爲兩個均爲非骨幹。但是這樣帶來的問題更爲嚴重,
在這裏插入圖片描述
將tunnel宣告到區域2中,右邊的ABR將不再擁有路由共享資格,就會形成下面這樣:
在這裏插入圖片描述
此時,area1中的設備學習路由時,area2中的網段就會通過 tunnel 然後再經過左邊的ABR,最後才能讓area1學到,但是 tunnel的實際流量還是在area1中,這就更卡了,選路也不佳。

總之這種解決方案很差勁。

(2)虛擬鏈路:

OSPF虛擬鏈路:非骨幹區域間的ABR到骨幹區域的ABR處授權,建立一條虛鏈路。

兩臺ABR都要配置:
R1(config)#router ospf 1 
R1(config-router)#area 1 virtual-link 4.4.4.4

area1:中間穿越的區域
4.4.4.4:對端的ABR的RID

因爲沒有新的網段出現,故選路正常,爲了避免週期的信息對中間區域的影響,故停止虛鏈路間的所有周期行爲(保活機制)。這就導致兩臺ABR之間的虛鏈路之間沒有dead time ,這就很不可靠。
在這裏插入圖片描述
DNA:無老化時間,表示去掉 更新時間hello 時間。
因此也不建議去使用。

(3)多進程雙向重發布:

一臺設備上若同時運行多個進程,那麼不同進程擁有不同的RID,生成各自的數據庫,但數據庫不共享。僅將各自計算所得路由加載於同一張路由表內。

若多個進程工作於同一個接口上,僅最早的進程生效(一個接口只能工作一個進程,誰先來誰先工作)

在解決不規則區域時,讓連接兩個非骨幹區域的ABR設備,將不同區域宣告到本地的不同進程下,之後使用重發布技術,進行路由共享即可。

總結:

多進程雙向重發布 選路佳、共享路由條目
tunnel 選路不佳、佔用資源大
虛鏈路 選路佳、佔用資源大、不可靠

二、減少LSA的更新量:

看到特殊區域時,如果沒有底子,可能會比較混亂需要知道各類LSA,但是先講LSA又不知道什麼是特殊區域。可以將文章前後結合起來看。

1、手工彙總:

例如下面這樣將area1、area2、area3各匯成一條給area0,它是減少骨幹區域的LSA量
在這裏插入圖片描述

(1)域間路由彙總(3類):

假設R1是ABR,它有兩個環回,1.1.5.5/24、1.1.6.5/24,彙總之後便是5.5.4.0/22,其所在區域爲area2,area2爲需要彙總的區域。只能在ABR上彙總,彙總之後它會自動產生空接口防環路由。

R1(config)#router ospf 1 
R1(config-router)#area 2 range 1.1.4.0 255.255.252.0

注:彙總時是通過該區域的1、2類LSA計算所得路由才能彙總成功

(2)域外路由彙總(5類):

假設R2是ASBR,它有兩個環回,2.1.1.1/24、2.1.2.1/24,彙總之後便是2.1.0.0/22,彙總之後也會自動產生空接口防環路由。。

R2(config)#router ospf 1 
R2(config-router)#summary-address 2.1.0.0 255.255.252.0

2、設置特殊區域:

特殊區域不可以爲骨幹區域、設置的區域不能存在虛鏈路

比如說將area1設置爲特殊區域,那麼它就只會學本區域的路由,對於其它區域的,它不會去學習,而是缺省指向與area0相連的ABR,這樣就可以減少非骨幹區域的更新量
在這裏插入圖片描述
特殊區域分爲兩大類:一類是不存在ASBR,另一類是存在ASBR。
我們先說第一類:不存在ASBR

(1)末梢區域:

要既不是骨幹區域、也不能存在虛鏈路,還不存在ASBR,因此滿足這些條件的只有區域1了。

將area1設置爲末梢區域後,該區域將拒絕4、5類LSA進入,4類是ASBR的位置,5類是域外路由(圖中爲EIGRP),拒絕之後ABR將會自動產生3類缺省發向該區域

R1(config)#router ospf 1 
R1(config-router)#area 1 stub
該區域所有的設備均需要配置,否則鄰居關係就會斷開

(2)完全末梢區域:

上面我們說到,設置爲末梢區域的區域會拒絕4、5類LSA進入,然後自動產生3類缺省,那爲什麼不乾脆進一步拒絕3類LSA,然後保留一條去往區域0的缺省呢?因此這就是完全末梢區域:在末梢區域的基礎上,進一步拒絕3類的LSA,僅保留一條3類的缺省。

配置規則:
先將該區域配置爲末梢區域,然後僅在ABR上定義完全即可

ABR(config-router)#area 1 stub no-summary

接下來要說的是第二類存在ASBR:

(3)NSSA(非完全末梢區域):

圖中的area2就是一個NSSA非完全末梢區域
在這裏插入圖片描述
什麼是非完全?圖中的area2它是一個OSPF的一個末梢,但是它後面又跟了個EIGRP,雖然跟OSPF沒有多大關係,但是這樣area2就不算是完全末梢區域了,因此它就是非完全的了。

該區域拒絕4、5類LSA,不自動產生3類缺省,本地的5類LSA基於7類轉發,通過NSSA區域後轉回5類。
在這裏插入圖片描述
我們知道將area2設置爲非完全NSSA區域後,可以爲骨幹區域減少一條4類LSA,但是4類LSA很少啊,它攜帶的是ASBR的位置,能有很多個ASBR嗎,它的意義是在這嗎?

現在我們回想一下我們的初心,減少骨幹區域的LSA靠的是區域間手工彙總,因此設置NSSA非完全末梢區域的並不在於減少骨幹區域的LSA,它的意義在於它能夠拒絕區域ASBR產生的4、5類LSA,爲了避免環路的出現,默認不自動產生缺省路由,導致無法訪問其他的的域外網段,故在管理員確定無環的情況下,可以手工添加缺省路由

R4(config)#router ospf 1 
R4(config-router)#area 2 nssa   
該區域所有設備配置

(4)完全NSSA:

原理:該區域是在NSSA的基礎上進一步拒絕3類LSA,自動產生3類缺省
在這裏插入圖片描述
這個比較好理解,之前是拒絕4、5類LSA,但是沒有拒絕area0的LSA。那麼完全NSSA就是拒絕其它全部區域的LSA,然後產生一條3類缺省。背後的EIGRP,通過7類轉爲5類穿過area2。

配置規則:先將該區域配置爲NSSA,然後僅在ABR上定義完全即可。

R4(config)#router ospf 1 
R4(config-router)#area 2 nssa no-summary 

接下來我們聊一下出環的事情,這個環是怎麼出的?
我們知道一般末梢區域是不會連ISP的,連接ISP的是區域0,但是當末梢區域要訪問運營商時,會使用缺省指向區域0,由區域0通過缺省發給運營商。因此環也是這樣出的,如果把一個末梢區域連接了ISP,然後區域0訪問ISP時缺省指向該末梢區域,但是該末梢區域由於自動產生了3類缺省又會指向區域0,這樣就出環了。

注:
①ISP所在位置的非骨幹區域不得配置爲任何的特殊區域。
②若ISP連接在其它的協議時,連接該協議的非骨幹區域也不得配置爲任何特殊區域。

三、OSPF的數據庫表:

首先我們知道OSPF協議基於LSU(包、相當於打包在一起)來共享LSA信息。
LSA:描述了路由器所有的鏈路、接口、路由器的鄰居以及鏈路狀態信息。
OSPF會在不同的條件下發出不同類別的LSA

詳細查看某條LSA
R1#show ip ospf database router 1.1.1.1

router:類別名
1.1.1.1:link-id

接下來我要說明的是各種LSA,LSA總共有11種,這裏我只介紹1、2、3、4、5、7類LSA。
我們先宏觀的講:無論哪種類別的LSA必攜帶**以下參數:

參數 註解 詳細
LS Age 老化時間 週期爲1800歸0,也可觸發歸0,最大老化時間3609秒
Option 選項 這裏不做介紹
LS Type 類別名 標註此類LSA是屬於哪種LSA
Link State ID 在目錄中的編號 這個編號是方便我們去打開它
Advertising Router 通告者的RID
LS Seq Number 序列號 使用棒棒糖規則,杆和圈(循環階段)
Checksum 校驗和
Length 長度
Number of links 包含的信息條數

LSA1:路由器

首先,我會以下面這張圖爲基礎講解各種LSA。
在這裏插入圖片描述
我們查看一下R1的路由器的LSA,圖中顯示它的通告者就是自己,等信息。 在這裏插入圖片描述
下面這張圖是它攜帶的信息:我們發現都是直連的拓撲。它的傳播範圍是本區域,Link-ID爲通過者的RID,且本區域的所有設備均爲通告者。
在這裏插入圖片描述

LSA2:網絡

這張圖是目錄信息,我們一會兒打開第一個看看。
在這裏插入圖片描述
下圖是R1的網絡LSA,裏面包含了掩碼和這個MA網段所包含的設備的RID。當收到這條LSA的設備,便知道這個MA網段中都包含了哪些設備,它的傳播範圍也是本區域。

除此之外顯示通告者爲2.2.2.2,通過顯示鄰居表發現,R2就是DR,Link-ID爲DR的接口IP地址。
在這裏插入圖片描述

LSA3:網絡彙總LSA

要想出現3類LSA,就需要在上圖添加一個路由器,然後把它劃到區域1
在這裏插入圖片描述
R1上show ip ospf database,我們可以看到出現了3類LSA
在這裏插入圖片描述
我們把它打開其中一條詳細查看一下:
在這裏插入圖片描述
我們發現這其實就是一條路由,裏面包含目標網絡號,還有度量值,傳播的範圍爲整個OSPF域。

這條LSA攜帶的是O IA域間路由,就是去往OSPF其它區域中的網段,通告者是ABR,至於如何到ABR,就用LSA1、2進行計算,在之後其它的ABR收到該條3類LSA之後,便會將通告者修改爲本地。

LSA5:自治系統外部LSA

先將5類LSA,之後引出4類。

我們將上圖再稍加修改,爲R4添加一個環回,然後讓R4運行EIGRP宣告該環回,再通過重發布技術把它發進OSPF域中。
在這裏插入圖片描述
之後R1上就會出現下面這條O E2域外路由
在這裏插入圖片描述
接着我們查看一下OSPF的數據庫表,發現了產生了一個5類的LSA:
在這裏插入圖片描述
我們打開這個目錄,進行詳細的查看:
在這裏插入圖片描述
因此,該類LSA它的傳播範圍爲整個OSPF域,通告者爲ASBR 4.4.4.4,攜帶的信息是 O E 域外路由,Link-ID爲99.0.0.0(目標網絡號)。

注:我們發現它的通告者是4.4.4.4,而不是2.2.2.2,這個不像我們之前提到的LSA3,在經過下一跳ABR的時候會將通告者修改爲本地,它沒有發生改變,這就違背了拓撲算路由。那麼R1、R2是如何找到ASBR 4.4.4.4的位置呢?這就是我接下來要講的LSA4

LSA4:ASBR彙總LSA

將上述環回重發布的時候,4、5類LSA均會同時產生,因此我們直接查看OSPF的數據庫表就會發現4類LSA:
在這裏插入圖片描述
我們解開這條目錄:
在這裏插入圖片描述
它的傳播範圍是除了ASBR所在區域外的整個OSPF域,上面這張圖就說明了Link-ID爲4.4.4.4,通告者爲3.3.3.3,意思就是說要想去4.4.4.4這個網段找3.3.3.3,此時R1、R2、就知道了ASBR的位置了,接着利用LSA5就可以找到目標了。

如果還有其它ABR,那麼在經過下一跳ABR時,也需要將通告者修改爲本地。

LSA7:NSSA外部LSA

在這裏插入圖片描述
7類LSA是指在非完全末梢區域內(not-so-stubby area)由ASBR(由ABR2充當)發出的通告外部區域的LSA,因此圖中的ABR2路由器將把與NSSA區域相連的接口收到的類型7的LSA轉換成類型5的LSA洪泛到整個骨幹區域中去,從而也洪泛擴散到其他的區域中去。.

而這些原本的7類LSA其實就是5類,只不過將區域2設置爲NSSA後,把5類變成了7類,7類透過area2,到達ABR2時,向OSPF其它域通告時,在將它從7類轉爲5類。(這裏可以看文章前面,更詳細)

這張圖與我畫的所有的拓撲都沒關係,看看7類LSA長什麼樣好。
在這裏插入圖片描述

LSA總結:

類別 類別名 傳播範圍 通告者 攜帶信息 Link-ID 通告者
LSA1 router
路由器
本區域 本地區域所有設備 本地直連拓撲 通告者的RID 本地區域所有設備
LSA2 network
網絡
本區域 DR MA網段部分的拓撲 DR的接口IP地址 DR
LSA3 Summary Network
網絡彙總
整個OSPF域 ABR O IA域間路由 O IA路由
目標網絡號
ABR,在經過下一跳ABR時,修改爲本地
LSA4 asbr-summary
ASBR彙總LSA
除ASBR所在區域外的整個OSPF域 ABR ASBR位置 ASBR的RID ABR,在經過下一跳ABR時,修改爲本地
LSA5 External
自治系統外部LSA
整個OSPF域 ASBR O E域外路由 O E路由,目標網絡號 ASBR(不修改)
LSA7 NSSA外部LSA NSSA區域內
(離開該區域後轉回5類)
ASBR O N域外路由 O N路由,目標網絡號 ASBR(不修改)

四、擴展配置:

1、認證:

(1)接口認證:

①接口明文:

//連接鄰居的接口上配置
R1(config)#interface s1/1              
// 開啓接口明文認證需要,開啓後本地hello包中認證類型字段被修改,若鄰居間不一致,將無法建立鄰居關係
R1(config-if)#ip ospf authentication  
//定義明文認證的祕鑰
R1(config-if)#ip ospf authentication-key cisco  

②接口密文

R2(config)#interface s1/1
//開啓密文認證需要
R2(config-if)#ip ospf authentication message-digest  
//配置祕鑰及編號
R2(config-if)#ip ospf message-digest-key 1 md5 cisco123  

(2)區域認證:

例:在R1上開啓關於區域0的明文或密文認證,實際就是在R1上所有的區域0接口配置了明文或密文的認證需求,修改了認證類型字段而已。

接口的祕鑰還需要到各個接口上逐一匹配

R2(config)#router ospf 1 
//區域明文
R2(config-router)#area 1 authentication
//區域密文
R2(config-router)#area 1 authentication  message-digest 

(3)虛鏈路認證:

明文認證

//開啓明文認證需求
R2(config-router)#area 1 virtual-link 4.4.4.4 authentication  
//在配明文認證密碼:cisco
R2(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco 

密文認證

r2(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest
r2(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123 

2、被動接口:

被動接口:只接收不發送路由協議信息,僅用於連接用戶的接口,不得用於連接鄰居的接口

R2(config)#router ospf 1 
R2(config-router)#passive-interface f0/0

3、加快收斂:

R2(config)#interface s1/1
//修改hello time
R2(config-if)#ip ospf hello-interval 10  
//修改dead time
R2(config-if)#ip ospf dead-interval 40  

切記:修改本端的hello time,本端的dead time將自動4倍關係匹配,且鄰居間hello 和 dead time必須一致。

4、缺省路由:

OSPF的缺省有3種:分別是3、5、7類缺省,其中5類比較重要。

(1)3類缺省:

3類缺省特殊區域(末梢、完全末梢、完全NSSA)中連接骨幹區域的ABR自動產生3類缺省

普通的NSSA區域不產生缺省,需要人工添加

(2)5類缺省:

將area1設置爲特殊區域後,ABR會自動下放3類缺省給area1中的設備,此時ASBR也會學到一個3類缺省。接着我們讓該ASBR做重發布,該ASBR會將這條3類缺省發放給area2中的設備。
在這裏插入圖片描述
5類缺省是由重發布產生,前提是本地(ASBR)路由表中已經擁有缺省路由(任何方式獲取均可),滿足前提後,需要專用的重發布命令

ASBR(config)#router ospf 1
ASBR(config-router)#default-information originate

當把該條命令一敲,它就會把自己路由表中的缺省路由重發布到area2區域內,這樣area2中就會存在一個 O*E2的5類缺省。
默認導入的路由爲類型2(O*E2),不疊加內部度量,種子度量1。

//修改種子度量和類型
R1(config-router)#default-information originate ?
metric       OSPF default metric
metric-type  OSPF metric type for default routes

如果本地路由表中還沒有缺省路由,又希望強制向area2域內發放缺省路由。

R1(config-router)#default-information originate always
默認導入的路由爲類型2,種子度量1

修改種子度量和類型:

R1(config-router)#default-information originate always ?
  metric       OSPF default metric
  metric-type  OSPF metric type for default routes

(3)7類缺省:

這類缺省比較少見,我們知道7類是隻有NSSA區域產生之後纔會出現的缺省。
在這裏插入圖片描述
7類缺省產生的條件是:正常僅在普通的NSSA環境配置,因爲普通的NSSA不自動產生缺省路由,故需要在區域0和NSSA區域間的ABR上,向NSSA區域發佈一條缺省路由。

R1(config-router)#area 1 nssa default-information-originate
默認進入路由爲類型2,種子度量爲1

修改種子度量和類型:

R1(config-router)#area 1 nssa default-information-originate ?
  metric             OSPF default metric
  metric-type        OSPF metric type for default routes

切記:一旦本地爲完全NSSA區域,若再導入7類缺省必然產生環路,只有普通的NSSA區域可以導入。

若一臺設備同時學習到不同類別的缺省路由規則:
內部優於外部:3類優於5、7類
若5、7類相遇,先比管理距離再比較度量,越小越優選;若度量一致,5類優於7類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章