目錄
3.OSPF 中既是 ABR 又是 ASBR 在生成什麼類型的 LSA?
10.ospf 卡在 init 狀態機,這樣的情況是怎麼引發的?
本篇文章承接網絡100問之路由技術(壹)
1.OSPF 中承載完整的鏈路狀態的包?
OSPF中一共有五種包,分別是Hello、DBD、LSR、LSU、Lsack,其中LSU包是攜帶了真正的LSA信息(鏈路狀態通告),用於答覆對端的LSR
2.OSPF 中 DBD 報文是如何進行確認的?
利用LSACK來進行DBD與LSU的確認
3.OSPF 中既是 ABR 又是 ASBR 在生成什麼類型的 LSA?
7類的LSA
nssa(非完全末梢區域):該區域拒絕其他區域的ASBR產生的4/5LSA;本地區域內ASBR產生的5類LSA,以7類在本區域傳播,從本區域進入骨幹區域時由ABR(新的ASBR)轉換爲5類;同時自動產生一條7類的缺省指向骨幹區域
4.OSPF 中 都有哪些LSA 類型 ?
LSA類型
1類LSA
產生原因:需要知道同一個區域內的拓撲信息
功能:在本地設備所在的區域內傳遞路由和拓撲信息
傳播範圍:在本地設備所在區域內,中止與ABR(連接不同區域的邊界路由器,即產生三類LSA信息的路由器)
特點:
- 在MA網絡中,1類LSA僅僅包含MA的接口以及metric值,掩碼和拓撲信息在2類出現
- Link ID = ADV router = 產生一類LSA的路由器的RID
2類LSA
產生原因:需要知道MA網絡的設備數量和連接情況,由MA網絡的DR設備產生
功能:描述MA網絡的網絡掩碼情況
傳播範圍:在本區域內傳播,終止於ABR
特點:
- Link-id:MA網絡的DR接口地址 ADV-router:DR接口所屬路由器的router-id
- 描述了MA網絡的掩碼與拓撲信息,即MA網絡連接了哪些路由器
3類LSA
產生原因:區域間傳遞路由
傳播範圍:在區域間傳遞,默認僅僅在某個區域間傳遞,進入其他區域必須由新的ABR重新產生
特點:
1.Link-id:路由網絡號 ADV-router:本區域的ABR路由器的RID,穿越不同區域發生改變
5類LSA
產生原因:將外部的路由引入OSPF域是中
傳播範圍:整個OSPF域
特點:
Link-id:外部路由的網絡號 ADV-router:ASBR的RID
4類LSA
功能:用於宣告ASBR的位置
傳播範圍:整個OSPF域
特點:
Linnk-id:ASBR的RID
ADV-router:ASBR所在區域的ABR的RID
NSSA區域
產生:
爲了優化網絡的負載與更新LSA的壓力,可以採用彙總或特殊區域的辦法來進行優化
特殊區域:
成爲條件
1.不能是骨幹區域
2.不能存在的虛鏈路(不規則區域,即不符合OSPF的區域劃分原則)
3.存在ASBR與否,取決於需要成爲什麼區域
分類:
1.不存在ASBR
stub(末梢區域):拒絕4/5類的LSA;生成一條3類的缺省路由指向骨幹區域
totally stub(完全末梢區域):在末梢區域的基礎上,進一步拒絕3的lsa,僅保留一條3類的缺省;先將該區域配置爲末梢區域,然後僅在ABR上定義完全即可
2.存在ASBR
nssa(非完全末梢區域):該區域拒絕其他區域的ASBR產生的4/5LSA;本地區域內ASBR產生的5類LSA,以7類在本區域傳播,從本區域進入骨幹區域時由ABR(新的ASBR)轉換爲5類;同時自動產生一條7類的缺省指向骨幹區域
totally nssa(完全的非完全末梢區域):在NSSA的基礎上,進一步拒絕3的LSA;生成一條3類缺省指向骨幹區域;先將該區域配置爲NSSA區域,然後僅在ABR上定義完全即可
5.LSA5 外部路由可以在 ABR 上做彙總嗎?
5類LSA的彙總叫做域外路由彙總,是在將外部路由引入的ASBR上做的,即不能在ABR上做
6.OSPF 有哪幾種協議包?作用分別是什麼?
協議包
OSPF一共有五種數據包
Hello包:發現、建立、維持、保活(週期保活)鄰居關係;存在全網唯一的RID
DBD包:本地數據庫的目錄。LSDB的目錄(所有LSA的集合)
LSR包:基於DBD包中的位置信息進行查詢
LSU包:攜帶了真正的LSA信息(鏈路狀態通告),用於答覆對端的LSR
LSACK包:確認DBD和LSU報文
7.OSPF 區域劃分的好處?
好處
區域間傳遞路由,區域內傳遞拓撲,而不用將路由與拓撲都進行更新造成路由器的負載壓力
區域劃分規則
星型結構:所有的非骨幹區域必須連接到的骨幹區域,否則不能進行區域間路由共享
ABR—區域邊界路由器:合法的ABR必須同時工作在骨幹區域
8.OSPF 的 1 類和 2 類外部路由之間的區別?
區別
一類是同一區域的拓撲,並不知道設備的連接情況與網絡掩碼,二類LSA就是用於描述設備的連接情況與網絡掩碼
9.在 OSPF 中爲什麼第三類 LSA 傳播超過一個區域?路由信息就會被修改呢?他不是使用 SPF 算法麼?如果這樣那麼他跟 RIP 的 DV 算法有啥區別?OSPF 沒有形成 FULL 狀態的原因?
爲什麼被修改
三類LSA是用於在OSPF的不同區域間傳遞路由信息的,三類LSA是由ABR產生的,在穿越不同的區域時,必須由新的ABR重新產生路由信息,試想,如果不由新的ABR重新產生的話,那麼3區域將不認識0區域的a1路由器,因爲3區域只認識0區域的a3路由器,所以a1區域的路由傳遞給a3區域時,其路由是由R3產生的,即是由R3這個ABR產生的,如下圖
區別
要理清鏈路狀態協議與距離矢量型協議的區別,即OSPF的SPF算法與RIP的貝爾曼—福特的區別的話,首先要明確二者的工作原理與特徵
鏈路狀態路由協議出現的目的是爲了克服距離矢量路由協議的缺點。鏈路狀態路由協議具有如下特徵
鏈路狀態路由器對LSDB應用Dijkstra算法(即SPF算法)以建立SPF樹。每臺路由器都從其SPF樹中選擇最佳路徑,並將其加入到路由表中。設備都更新其數據庫,然後更新路由表以反映新的拓撲。
可以將LSDB視爲一個城市的地圖,城市中的每幅地圖都相同,就像同一個區域內所有路由器的LSDB都相同一樣。我們在城市中各個地點,各幅地圖之間唯一的差別就是“當前位置”。根據當前位置,我們可以確定前往每個地點的最佳路線;前往特定地點的最佳路線隨着我們當前所處的位置而異。鏈路狀態路由器的功能與此類似,它們從自己的角度出發,使用LSDB計算前往區域內每個網絡的最佳路徑。
優點:
運行鏈路狀態路由協議的路由器從網絡或網絡的指定區域內的所有路由器那裏收集路由信息,然後每臺路由器都使用Dijkatar(SPF)算法分別計算其前往網絡中各個目的地的最佳路徑。來自某臺路由器的錯誤信息導致混亂的可能性較低,因爲每臺路由器都有其對網絡的認識。
爲確保網絡中所有的路由器都作出一致的路由選擇決策,每臺路由器都必須記錄下述信息。
OSPF記錄信息
1)直接相連的鄰接路由器:失去與鄰接路由器的關係後,路由器將在幾秒鐘之內將該鄰居提供的所有路徑作廢,並重新計算路徑。在OSPF中,有關鄰居的信息存儲在鄰居表中,這個表也被稱爲鄰接關係數據庫。
2)網絡或區域內的其他路由器及其連接的網路:路由器通過LSA來獲得其他路由器和網絡,LSA被擴散到整個網絡,它存儲在拓撲表或數據庫(即LSDB)中。
3)前往每個目的地的最佳路徑:每臺路由器都使用Dijkstra(SPF)算法獨立地計算前往網絡中心每個目的地的最佳路徑。所有路徑都存儲在LSDB中。最佳路徑被加入到路由表(也稱爲轉發數據庫)中。路由器收到分組後,將根據路由表中的信息對其進行轉發。
總結:
爲保存這些表,需要佔用內存資源,這是鏈路狀態協議的一個缺點。然而,在同一個區域內,所有OSPF路由器的拓撲表(LSDB)都相同,其中包含有關區域中所有路由器和鏈路的完整信息,因此每臺路由器都能根據開銷獨立地選擇前往區域中每個網絡的無環路高效路徑。還克服了距離矢量路由協議“根據流來選擇路由”的缺點。
運行距離矢量路由協議的路由器依賴於鄰居的路由抉擇。路由器並不完全知道網絡拓撲;而運行鏈路狀態路由協議的每臺路由器都完全瞭解網絡拓撲,能夠根據準確的網絡拓撲信息獨立地做出決策。
沒有形成FULL狀態的原因
OSPF一共有7種狀態
Down:本地一旦發出hello包,進入下一狀態 ;
Init(初始化):本地接收到的hello包中若存在本地的RID,進入下一狀態;
2way(雙向通信):鄰居關係建立標誌,條件匹配:點到點網絡直接進入下一狀態;MA網絡將進行DR/BDR選舉(40S),非DR/BDR間不能進入下一狀態;
Exstart(預啓動):使用類hello 的DBD包進行主從關係選舉,RID數值大爲主,主優先進入下一狀態;
Exchange(準交換):使用真正的DBD進行數據庫目錄的共享,需要ACK;
Loading(加載):使用LSR/LSU/LSack來獲取未知的LSA信息;
Full(轉發):鄰接關係建立的標誌;
卡在各個狀態的原因
卡在down狀態:OSPF沒有運行;
卡在init狀態:沒有收到對方的hello包;
卡在2-way狀態:MA網絡沒法選舉,即DR/BDR的選舉沒有正常進行
卡在exstart狀態:MTU不匹配;
卡在exchange狀態:包交互有問題,發出DBD後沒有收到ACK;
卡在loading狀態:LSA加載不完全、包交互有問題;
具體:
建立鄰居關係的條件
1.router-ID必須不同 唯一性
2.area-ID必須一致 區域統一
3.認證類型和認證型數據都一致
4.hello時間、dead時間都一致
5.特殊區域標識必須一致
6.若在MA網絡中,network mask必須一致;點對點可以不同
7.必須同時使用單播或組播
華爲設備中hello包的網絡掩碼必須相同
10.ospf 卡在 init 狀態機,這樣的情況是怎麼引發的?
沒有收到含有自己的RID的Hello包
如果幫助,請持續關注,持續更新中...
參考資料: