一劍開天門系列-OSPF路由協議基礎

<p>
</p><blockquote><p><span style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";"><b>一、OSPF路由協議</b></span></p></blockquote><p>
</p><p>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-f82130c9d9ce5a90.jpeg" img-data="{"format":"jpeg","size":40673,"height":437,"width":1080}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span>
</span></p><p>
</p><p><b>開放式最短路徑優先OSPF(Open Shortest Path First)是IETF組織開發的一個基于鏈路狀態的內部網關協議(Interior Gateway Protocol)。</b>
</p><p><b>
</b></p><p><span><strong><span style="font-size:14px">兩個版本:</span></strong>
</span></p><p><b>IPv4協議使用的是OSPF Version 2(RFC2328);針對IPv6協議使用OSPF Version 3(RFC2740)</b></p><p><b>
</b></p><p><b>在這里估計你要打三個問號了???什么是基于鏈路狀態的內部網關協議,什么又是開放式最短路徑樹,為什么會出現OSPF呢?接下來就讓我娓娓道來!</b></p><p><b>
</b></p><p><b>首先來展開第一個疑問:為什么會出現OSPF呢?</b></p><p><b>肯定就有人說,出現任何??技術都是為了解決某個領域的難題,不錯,OSPF的出現正是解決日益龐大的網絡如何選路并到達目的地的難題,因特網最開始出現的時候是局限在某個區域中,而隨著因特網的普及,越來越多的地區和區域都加入進來,到如今更是與我們生活融為一體,不可分割。早期的時候可能就是幾個人互聯的網絡,或者是一個小型的區域網絡,而隨著組織和企業的加入,一個組織越來越多的人機開始交互,日益龐大,導致網絡互聯的成本和難度日益提高,一個數據包的選路越來越復雜,靠人手工維護陷入困境(靜態路由),相應的出現了自動學習的方法(動態路由)。
</b></p><p><b>
</b></p><p><b>最開始的RIP協議,在早期解決了部分問題,但隨著時間的推移,RIP的短板也越來凸顯:
</b></p><p><b>RIP:</b><b><strong><span style="font-weight:bold">RIP是一種基于距離矢量算法的路由協議</span></strong></b></p><p><b><strong><span style="font-weight:bold">
</span></strong></b></p><ol><li><p><b><strong><span style="font-weight:bold">收斂慢;</span></strong></b></p></li><li><p><b><strong><span style="font-weight:bold">易產生路由環路;</span></strong></b></p></li><li><p><b><strong><span style="font-weight:bold">可擴展性差,只支持最大16跳,大規模網絡不合適;</span></strong></b></p></li><li><p><b><strong><span style="font-weight:bold">不支持VLSM</span></strong></b></p></li></ol><p>
</p><p><span style="font-size:14px"><strong><span>OSPF能更好的解決RIP無法解決的問題
</span></strong></span></p><p><span style="font-size:14px">歷史就是如此相似,混亂的時代總能產生英雄;而在網絡江湖中,OSPF也應運而生。</span>
</p><p><strong><span style="font-size:14px">OSPF就是為RIP的短板而生,集大成者得天下,而現在網絡江湖中,OSPF已霸占主流;RIP也就退出歷史潮流,OSPF在IGP中如魚得水,那到底是如何做到的呢?請繼續動動手指</span></strong>
</p><p>
</p><blockquote><p><b>二、OSPF關鍵要素</b>
</p></blockquote><p>
</p><p><b>OSPF是基于鏈路狀態的路由協議,那什么是鏈路狀態呢?
</b></p><p><b>RIP是距離矢量路由協議,是跳躍點來作為路由選路,并不構建全局的面,簡單理解可以說RIP是點,OSPF是以點構建成面,也就是每個OSPF上都有一套全局的地圖可供選路。</b></p><p><span style="font-size:14px"><strong>每個運行OSPF的路由器都有一張全局的地圖庫進行查詢,RIP沒法做到,那具體都有哪些因素影響呢?</strong></span></p><p><span style="font-size:14px"><strong>
</strong></span></p><p><strong><b>OSPF關鍵要素--五種報文</b></strong></p><p><b>
</b></p><p><b>OSPF是運行在網絡層協議,IP協議號 89,其實在我理解OSPF是跨層封裝,OSPF將協議包封裝在IP包中,可以看如下圖所示:</b></p><p><b>
</b></p><p><b><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-b0848517cc7abefa.jpeg" img-data="{"format":"jpeg","size":8360,"height":241,"width":321}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div></b></p><p/><p><b>
</b></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-fc9bde66816a7b11.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":33994,"height":422,"width":1392}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><p><strong><span style="font-size:14px">如下圖所示:</span></strong>
</p><p>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-676222a0b5b47eba.jpeg" img-data="{"format":"jpeg","size":17959,"height":342,"width":543}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span style="font-size:14px"><strong>OSPF報文類型說明:</strong></span>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-e8d0f323c7d1ce4b.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":74776,"height":498,"width":1378}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><strong><span style="font-size:14px">故OSPF是劃分在IP層中,但是在整個TCP/IP協議簇中,很多協議其實并不能確定是屬于</span></strong><span><strong><span style="font-size:14px">那</span></strong></span><strong><span style="font-size:14px">個協議,有些是跨協議,有些協議在灰色地帶,最主要的還是看具體解決什么問題,我可以說OSPF是在傳輸層,BGP屬于應用層,所以不能很粗略的定義在哪一層,OSPF是基于IP的,BGP基于TCP的,報文封裝在下層,而解決的問題是網絡層問題,看計算機網絡自頂向下方法一書可以看出,故不要太局限嚴格定義在哪一層的協議。</span></strong></p><p>
</p><p><span style="font-size:14px"><strong><b>OSPF數據包首部邏輯結構:</b>
</strong></span></p><p><span style="font-size:14px"><strong>
</strong></span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-521c58eaa8eb34f0.jpeg" img-data="{"format":"jpeg","size":74547,"height":645,"width":1077}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><strong><span style="font-size:14px">抓包結構:</span></strong></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-7db40962cba751d3.jpeg" img-data="{"format":"jpeg","size":34909,"height":511,"width":1080}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-13645ee22a836eb3.jpeg" contenteditable="false" img-data="{"format":"jpeg","size":108761,"height":796,"width":1382}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><p><strong/><strong><b>OSPF關鍵要素--三張表</b></strong></p><p>
</p><p><span style="font-size:14px"><strong>OSPF協議的運行需要三張表,鄰居表、鏈路狀態數據庫、OSPF路由表。如下以華為示例:</strong></span></p><p><b>鄰居表:display ospf peer</b></p><ol><li><p><span style="font-size:12px">通過Hello報文形成鄰居</span></p></li><li><p><span style="font-size:12px">用鄰居機制來維持路由</span></p></li><li><p><span style="font-size:12px">鄰居表存儲雙向通信的OSPF路由器列表信息</span></p></li></ol><p>
</p><p><b>鏈路狀態數據庫(LSDB):display ospf peer</b></p><ol><li><p><span style="font-size:12px">通過LSU報文更新LSDB</span></p></li><li><p><span style="font-size:12px">描述拓撲信息的LSA存儲在LSDB中</span></p></li></ol><p>
</p><p><b>路由表:display ospf routing</b></p><ol><li><p><span style="font-size:12px">OSPF計算出來的路由將會加載到路由表</span></p></li><li><p><b>路由優先級 域內>域間>域外 1/2 >NSS區域 1/2</b></p></li></ol><p>
</p><blockquote><p><b>三、OSPF協議原理</b>
</p></blockquote><p>
</p><p>
</p><p><span style="font-size:15px"><strong>啟動OSPF,發送hello包,建立鄰居關系,泛洪LSA,每臺路由器匯總LSA,形成LSDB,鏈路狀態數據庫生成帶權有向圖,每臺運行OSPF路由器以自己為根節點計算最小路徑樹,最終形成每臺路由器的路由表加載到路由器內存中。</strong></span></p><p>
</p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-f9969e717adadfcf.jpeg" img-data="{"format":"jpeg","size":36645,"height":361,"width":755}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><p><span style="font-size:14px"><strong><span>LSA泛洪:</span></strong></span></p><p><span style="font-size:14px"><strong>運行鏈路狀態路由協議的路由器都會進行鏈路狀態公告LSA (Link State Advertisement)泛洪,</strong>LSA中包含了路由器已知的接口狀態、接口IP地址、掩碼、開銷、網絡類型、宣告路由ID和等信息。</span></p><p><span style="font-size:14px">
</span></p><p><span style="font-size:14px"><strong>通俗點講就是LSA把路由器鄰居相互之間的路由信息和拓撲信息進行握手交換。</strong></span></p><p>
</p><p><span style="font-size:14px"><strong><span>建立LSDB:</span></strong></span></p><p><span style="font-size:14px">收到LSA的路由器都可以根據LSA提供的信息建立自己的鏈路狀態數據庫LSDB(Link State Database)。</span></p><p>
</p><p><span style="font-size:14px">通俗點講就是每臺路由器都會收到網絡中其他的路由器發送過來的LSA信息,這些所有的LSA信息構成了LSDB。這里需要注意的是當網絡穩定后,網絡中的所有設備應該是有相同的LSDB的。</span></p><p>
</p><p><strong><span style="font-size:14px">建立最短路徑樹:</span></strong></p><p><span style="font-size:14px"><span><span>運行OSPF協議的路由器在LSDB的基礎上使用</span>SPF算法<span>進行運算,建立起到達每個網絡的</span>最短路徑樹<span>。</span></span></span></p><p><span style="font-size:14px"><span><span>
</span></span></span></p><p><span style="font-size:14px"><strong><span style="font-size:14px">路由計算:</span></strong></span></p><p><span style="font-size:14px">通過最短路徑樹得出到達目的網絡的最優路由,并將其加入到IP路由表中。</span></p><p>
</p><p><span style="font-size:14px"><strong>OSPF從最開始的鄰居建立到最終路由表的加載是有一個過程的,整個過程分7個狀態,分別都是不同的OSPF數據報文交互的結果。如下圖:</strong></span></p><p><span style="font-size:14px"><strong>
</strong></span></p><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/2084007-e5f5f9e14083dee5.jpeg" img-data="{"format":"jpeg","size":47488,"height":651,"width":779}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>
</p><p><span style="font-size:15px"><strong>關于OSPF協議狀態機下文講結合實際抓包和圖文著重分解。</strong></span></p><p><span style="font-size:15px"><strong>更多文章請關注微信公眾號:網絡小斐</strong></span></p><p><span style="font-size:15px"/>
</p>

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內容