計算機網絡:LS協議與OSPF協議


Link-state Protocol

SPF

最短路徑優先算法,比如dijsktra算法

鏈路狀態

鏈路是路由器上的一個接口。

鏈路狀態路由協議也需要下列條件才能了解鏈路:正確配置接口的 IP 地址和子網掩碼並將鏈路設置為 up 狀態。

1589804505572

過程

  1. 每台路由器了解其自身的鏈路(即與其直連的網絡)。這通過檢測哪些接口處於工作狀態來完成。

  2. 每台路由器負責“問候”直連網絡中的相鄰路由器。與 EIGRP 路由器相似,鏈路狀態路由器通過直連網絡中的其它鏈路狀態路由器互換 Hello 數據包來達到此目的。

  3. 每台路由器創建一個鏈路狀態數據包 (LSP),其中包含與該路由器直連的每條鏈路的狀態。這通過記錄每個鄰居的所有相關信息(包括鄰居 ID、鏈路類型和帶寬)來完成。

  4. 每台路由器將 LSP 泛洪到所有鄰居,然后鄰居將收到的所有 LSP 存儲到數據庫中。接着,各個鄰居將 LSP 泛洪給自己的鄰居,直到區域中的所有路由器均收到那些 LSP 為止。每台路由器會在本地數據庫中存儲鄰居發來的 LSP 的副本。

    LSP類似如下

    1589804614226

    LSP 並不需要定期發送,而僅在下列情況下才需要發送:

    • 在路由器初始啟動期間,或在該路由器上的路由協議進程啟動期間
    • 每次拓撲發生更改時,包括鏈路接通或斷開,或是相鄰關系建立或破裂
  5. 每台路由器使用數據庫構建一個完整的拓撲圖並計算通向每個目的網絡的最佳路徑。就像擁有了地圖一樣,路由器現在擁有關於拓撲中所有目的地以及通向各個目的地的路由的詳圖。SPF 算法用於構建該拓撲圖並確定通向每個網絡的最佳路徑

    • 構建SPF樹

    1589804832560

    • 由SPF樹生成路由表

    1589804901335

LS vs DV

與距離矢量路由協議相比,鏈路狀態路由協議有幾個優點

  1. 創建拓撲圖

    鏈路狀態路由協議會創建網絡結構的拓撲圖(即 SPF 樹),而距離矢量路由協議沒有此功能。使用距離矢量路由協議的路由器僅有一個網絡列表,其中列出了通往各個網絡的開銷(距離)和下一跳路由器(方向)。因為鏈路狀態路由協議會交換鏈路狀態信息,所以 SPF 算法可以構建網絡的 SPF 樹。有了 SPF 樹,每台路由器使可獨立確定通向每個網絡的最短路徑。

  2. 快速收斂

    收到一個鏈路狀態數據包 (LSP) 后,鏈路狀態路由協議便立即將該 LSP 從除接收該 LSP 的接口以外的所有接口泛洪出去。使用距離矢量路由協議的路由器需要處理每個路由更新,並且在更新完路由表后才能將更新從路由器接口泛洪出去,即使對觸發更新也是如此。因此鏈路狀態路由協議可更快達到收斂狀態。不過 EIGRP 是一個明顯的例外。

  3. 由事件驅動的更新

    在初始 LSP 泛洪之后,鏈路狀態路由協議僅在拓撲發生改變時才發出 LSP。該 LSP 僅包含與受影響的鏈路相關的信息。與某些距離矢量路由協議不同的是,鏈路狀態路由協議不會定期發送更新。

    注:OSPF 路由器會 每隔 30 分鍾泛洪其自身的鏈路狀態。這稱為強制更新,將在后面的章節中討論。而且,並非所有距離矢量路由協議都定期發送更新。RIP 和 IGRP 會定期發送更新,但 EIGRP 不會。

  4. 層次式設計

    鏈路狀態路由協議(如 OSPF 和 IS-IS )使用了區域的原理。. 多個區域形成了層次狀的網絡結構,這有利於路由聚合(總結),還便於將路由問題隔離在一個區域內。多區域 OSPF 和 IS-IS 將在 CCNP 課程中進一步討論。

同時也有一些缺點:

  1. 內存要求

    需要占用更多內存

  2. CPU占用要求

    可能還需要占用更多的 CPU 運算量。與 Bellman-Ford 等距離矢量算法相比,SPF 算法需要更多的 CPU 時間,因為鏈路狀態路由協議會創建完整的拓撲圖。

  3. 帶寬要求

    鏈路狀態數據包泛洪會對網絡的可用帶寬產生負面影響。這只應該出現在路由器初始啟動過程中,但在不穩定的網絡中也可能導致問題。

OSPF報文類型

1589805682461

  • Hello 問候分組

    • 發現 OSPF 鄰居並建立相鄰關系。
    • 通告兩台路由器建立相鄰關系所必需統一的參數。
    • 在以太網和幀中繼網絡等多路訪問網絡中選舉指定路由器 (DR) 和備用指定路由器 (BDR)。

    兩台路由器在建立 OSPF 相鄰關系之前,必須統一三個值:Hello 間隔、Dead 間隔和網絡類型

    OSPF Hello 間隔表示 OSPF 路由器發送其 Hello 數據包的頻度。

    Dead 間隔是路由器在宣告鄰居進入 down(不可用)狀態之前等待該設備發送 Hello 數據包的時長,單位為秒。Cisco 所用的默認斷路間隔為 Hello 間隔的四倍。

    如果 Dead 間隔已到期,而路由器仍未收到鄰居發來的 Hello 數據包,則會從其鏈路狀態數據庫中刪除該鄰居。路由器會將該鄰居連接斷開的信息通過所有啟用了 OSPF 的接口以泛洪的方式發送出去。

    為減小多路訪問網絡中的 OSPF 流量,OSPF 會選舉一個指定路由器 (DR) 和一個備用指定路由器 (BDR)。當多路訪問網絡中發生變化時,DR 負責使用該變化信息更新其它所有 OSPF 路由器(稱為 DROther)。BDR 會監控 DR 的狀態,並在當前 DR 發生故障時接替其角色。

  • DBD 數據庫描述分組 Database description

    數據包包含發送方路由器的鏈路狀態數據庫的簡略列表,接收方路由器使用本數據包與其本地鏈路狀態數據庫對比。

  • LSR 鏈路狀態請求分組 link state request

    接收方路由器可以通過發送鏈路狀態請求 (LSR) 數據包來請求 DBD 中任何條目的有關詳細信息。

  • LSU 鏈路狀態更新 link state update

    鏈路狀態更新 (LSU) 數據包用於回復 LSR 和通告新信息。LSU 包含七種類型的鏈路狀態通告 (LSA)。LSU 和 LSA 將在下一主題中簡略討論。

  • LASck 鏈路狀態確認 link state acknowledgment

    路由器收到 LSU 后,會發送一個鏈路狀態確認 (LSAck) 數據包來確認接收到了 LSU。

距離管理

1589805755183

管理距離 (AD) 是路由來源的可信度(即優先程度)。OSPF 的默認管理距離為 110。如圖所示,與其它內部網關協議 (IGP) 相比,OSPF 比 IS-IS 和 RIP 優先。

DR/BDR選舉

RouteID

OSPF 路由器 ID 用於唯一標識 OSPF 路由域內的每台路由器。一個路由器 ID 其實就是一個 IP 地址。Cisco 路由器按下列順序根據下列三個條件確定路由器 ID:

  1. 使用通過 OSPF router-id 命令配置的 IP 地址。

  2. 如果未配置 router-id,則路由器會選擇其所有環回接口的最高 IP 地址。

  3. 如果未配置環回接口,則路由器會選擇其所有物理接口的最高活動 IP 地址。

選舉方式

DR 和 BDR 是如何選出的呢?選舉過程遵循以下條件:

  1. DR:具有最高 OSPF 接口優先級的路由器
  2. BDR:具有第二高 OSPF 接口優先級的路由器
  3. 如果 OSPF 接口優先級相等,則取路由器 ID 最高者。

DR/BDR的鄰居,可以在show ip interface中看到

1589806799033

選舉時機

DR 一旦選出,將保持 DR 地位,直到出現下列條件之一為止:

  • DR 發生故障。
  • DR 上的 OSPF 進程發生故障。
  • DR 上的多路訪問接口發生故障。

同樣地,如果BDR發生故障,而DR不發生故障,則DR不會變,DROther中RouteID最高的稱為新的BDR,所以DR的RouteID可能<BDR的RouteID

1589806972714

命令

修改優先級

RA(config)# interface fa0/0
RA(config-if)# ip ospf priority 200
show ip ospf
show ip protocol
show ospf interface
show ip ospf neighbor

修改鏈路開銷有兩個方法

Router(config-if)#bandwidth 64

1589807394135

R1(config-if)#ip ospf cost 1562


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM