拒絕八股文!這篇圖解動態路由分分鐘愛了

語言: CN / TW / HK

你好,這裡是網路技術聯盟站。

昨天給大家詳細介紹了靜態路由,以及思科、華為、h3c、銳捷、瞻博網路等廠商靜態路由的配置命令:

講到靜態路由,必須要介紹它的兄弟: 動態路由

動態路由在中大型網路、有些小型網路架構中是非常常見的,可以這麼說,沒有動態路由,就沒有現在那麼龐大的網路體系!

還是那句話,看別人的文章或者看網上普通八股文可能囉裡囉嗦,在瑞哥這裡全部用人話解釋清楚,如果你覺得文章對你有幫助,別忘了收藏哦。

直接開始吧!

什麼是動態路由?

有關路由的概念,我們在上一節靜態路由中已經詳細介紹了,大家可以直接去看:

動態路由的概念是相對於靜態路由路由的,動態路由也稱為 自適應路由 ,它根據拓撲結構的變化改變 路由表 ,動態路由使用複雜的 路由演算法 ,當網路發生變化(拓撲)時,它會向路由器傳送訊息以確保發生變化,然後重新計算路由以傳送更新的路由資訊。

用人話來做個解釋:你就把動態路由看做智慧無人駕駛汽車,你從家去公司上班有三條路可以選擇:

  • 過兩個紅綠燈

  • 不過紅綠燈

  • 過三個紅綠燈

假設三條路總里程是相同的,那麼作為智慧無人駕駛汽車,它會經過自己的智慧演算法算出哪條路最節省時間、最能帶來更好的體驗,所以選擇的 線路二

既然是智慧的,那麼就能動態切換,加入這個時候線路二道路在施工,車流非常緩慢,作為智慧汽車,那一定可以算出來的,這個時候就會選擇 線路一

動態路由就是這麼一個智慧無人汽車。

路由器可以根據當前通訊鏈路的情況,通過各種不同的路由傳輸資料併到達目的地,可以根據當時網路的當前場景條件為資料選擇最佳路徑,所以說動態路由就是一種“ 聰明路由 ”!

為啥要選擇動態路由?

這個就要先聊聊動態路由的背景了。

1980 年動態路由首次用於計算機網路,第一個路由協議是 RIP,RIP 相信大家肯定不陌生了,學習動態路由的第一個協議就是 RIP,RIP 協議的第 1 版 RIPv1 於 1988 年釋出。

沒有動態路由的時候,都需要網路管理員手動去配置靜態路由打通鏈路,上節我們提到,靜態路由的配置完全取決於網路管理員或者網路工程師,一旦中間開個小差或者腦子一迷糊,可能就會出錯,在大型網路環境中,動輒上千臺、甚至上萬臺路由器,暫且不談如何配置完那麼龐大數量的路由器,單單你去規劃路由,路由表的長度能嚇死人,所以動態路由就應運而生了!

根據歷史的軌跡,任何新技術的出現都是為了解決某種舊技術的痛點問題的。

既然動態路由比靜態路由好,這個好到底體現在什麼地方呢?

動態路由的優點

  • 減輕網路管理員的配置任務。

  • 路由表會自動更新。

  • 適用於中大型網路

  • 網路的整體維護很容易

  • 自適應網路能夠立即改變路徑以避免中斷、系統或裝置故障或路由拓撲波動

動態路由的型別

這個在上節也提到過,這裡再說明一下,直接上圖:

這塊就不多說了,因為每種協議背後都是龐大的知識體系,瑞哥會在接下來幾天的文章中,好好與大家講解。

在上圖中,我們看到了幾個關鍵詞:距離向量、鏈路狀態、混合、路徑向量。

這四個東東又是啥呢?

距離向量路由

距離向量路由使用 距離方向 兩個引數來計算資料包從源轉發到目的地的最佳路徑。

  • 距離是源和目的地之間的路由器數量,每個路由器都將其相鄰路由器視為 下一跳

  • 方向就是 資料流向

如圖,這張簡單的拓撲中,距離就是經過的三臺路由器,方向就是資料流向方向: PC1 -> R1 -> R2 -> R3 -> PC2

距離向量路由使用 Bellman-Ford 演算法 來計算路由,從直連或鄰居路由器接收路由通告,並定期更新其路由資訊,更新路由資訊的操作從一臺路由器到另外一臺路由器,直到到達目的地,它與直接相鄰的路由器共享整個路由表資訊。

如上圖,PC1 和 PC2 通訊,資料首先會到達 R1,這個 R1 通過 Bellman-Ford 演算法算出來,資料下一個傳輸的裝置應該是 R2,R2 這個時候會接收到 R1 的路由通告,更新自己的路由表,R1 也會動態的感知到,也會更新自己的路由表,R2 和 R3 之間也是同樣的操作,最終實現網路通訊。

距離向量協議最典型的就是 RIP

鏈路狀態路由

距離向量路由依賴於相鄰或者直連裝置的路由資訊,鏈路狀態路由則針對的是整張拓撲的路由資訊。

在鏈路狀態路由中,資料從一臺路由器到另外一臺路由器,路由器本身不會改變鄰居路由器的整體路由資訊,而是直接複製從其鄰居路由器接收到的資訊,這樣的話,整體鏈路上的每臺路由器都會形成相同的資訊。

這種操作有個專業術語: 泛洪

泛洪,我這邊用一張圖解釋一下:

如圖,假設路由資訊已經從 R1 到達 R4 了,R4 的 g0/1 介面收到了 R1 傳過來的鏈路狀態資訊,這個時候,R4 會立馬將此鏈路狀態資訊從除 g0/1 介面外其他所有介面傳送出去,這就是 泛洪 ,就跟洪水一樣,從閘口往外流。

泛洪後,其他路由器會相應的更新自己的路由表,以達到所有路由器資訊一致。

鏈路狀態路由使用 Dijkstra 演算法 ,也稱為 最短路徑優先 (SPF) 演算法

如圖,從 PC1 到 PC2,一共有三條路:

  • 鏈路一: PC1 -> R1 -> R4 -> R3 -> PC2

  • 鏈路二: PC1 -> R1 -> R4 -> R2 -> R3 -> PC2

  • 鏈路三: PC1 -> R1 -> R2 -> R3 -> PC2

開銷:

  • 鏈路一: 2 + 5 = 7

  • 鏈路二: 2 + 1 + 5 = 8

  • 鏈路三: 3 + 6 = 9

最終通過 Dijkstra 演算法即最短路徑優先演算法算出來鏈路一最優,走 PC1 -> R1 -> R4 -> R3 -> PC2

鏈路狀態協議最典型的就是 OSPFIS-IS

混合路由

顧名思義,它是距離向量協議和鏈路狀態協議的混合體,比較典型的協議就是 EIGRP,中文術語就是 增強型內部閘道器路由協議

EIGRP 是一種高階距離向量路由協議,是早期 Cisco 協議(稱為 IGRP)的演進,它不傳送鏈路狀態通告,而是向鄰居路由器傳送傳統的距離向量路由資訊。

EIGRP 是 Cisco 專有協議 ,因此網路中執行 EIGRP 的所有路由器都必須是 Cisco 路由器,但現在 EIGRP 正朝著成為開放標準協議的方向發展。

路徑向量

路徑向量協議不依賴於到達給定目的地的 成本 來確定每個可用路徑是否是無環路的,而是依賴於對到達目的地的 路徑的分析 來確定它是否是無環路的。

路徑向量不同於距離向量路由和鏈路狀態路由,路由表中的每個條目都包含目標網路、下一個路由器和到達目標的路徑。

路徑向量協議最典型的就是 BGP

以上就是距離向量、鏈路狀態、混合、路徑向量簡單介紹,具體不能深入,不然一篇文章介紹不清,後面有時間可以單獨拉出來進行討論。

動態路由的工作原理

上面介紹了動態路由的基礎知識部分,下面來討論一下動態路由的工作原理,適用於每一種動態路由的協議:

  • 路由器的介面接收或者傳送路有訊息

  • 路由訊息通過動態路由協議傳送到其他路由器

  • 發訊息的路由器與其他路由器共享路由訊息

  • 拓撲變化時,該路由協議會成為路由器與路由器之間通訊的橋樑

度量值與管理距離

度量值

假設一個路由器有多個目的地到一個網路,它如何確定到那個網路的最佳路徑?

可以用 度量值 ,也就是 Metric 進行計算。

度量值你可以想象成你從南京到上海,你車裡的燃油量是固定的,假設中間不給加油,選擇最佳路徑到達:

此時耗費的燃油量就是恆定路線的度量值。

下圖是各個路由協議的度量值:

管理距離

如果我們在一臺路由器上配置了多個路由協議,路由器將如何確定通往所需網路的最佳路徑?

可以用 管理距離 ,也就是 AD 去計算,管理距離是路由器用來 優先選擇 路由源的方式。

AD 通常是 0 到 255 之間的一個值,該值越小,路由源越好,管理距離為 255 的路由永遠不會被信任。

還是以南京到上海為例:

管理距離就好比交通工具選擇,那麼高鐵和飛機一定是非常快的(不算去機場的路上的時間)

動態路由和靜態路由的比較

上節講了靜態路由,那麼在本節最後呢,我們來做個兩者比較:

  • 路由模式:在靜態路由中,路由是使用者定義的;在動態路由中,路由會根據網路的變化進行更新。

  • 路由演算法:沒有用於計算最短路徑的複雜演算法;動態路由採用複雜的演算法來尋找最短的路線。

  • 安全:靜態路由提供更高的安全性;動態路由提供的安全性較低。

  • 自動化:靜態路由是手動的;動態路由是自動化的。

  • 適用性:靜態路由用於較小的網路;動態路由用於中大型網路。

  • 協議:靜態路由可以不遵循任何特定協議;動態路由遵循 BGP、RIP 和 EIGRP 等協議。

  • 額外資源:靜態路由不需要任何額外的資源;動態路由需要額外的資源,如記憶體、頻寬等。

總結

在動態路由中,路由條目是由路由演算法自動生成的,路由表會定期更新,因此,如果發生任何變化,新的路由表將根據它們形成。

本文瑞哥主要介紹了:

  • 什麼是動態路由?

  • 為啥要選擇動態路由?

  • 動態路由的優點

  • 動態路由的型別

  • 距離向量路由

  • 鏈路狀態路由

  • 混合路由

  • 路徑向量

  • 動態路由的工作原理

  • 度量值與管理距離

  • 度量值

  • 管理距離

  • 動態路由和靜態路由的比較

從下一節開始,將帶大家一一瞭解動態路由協議。

朋友們,本節涉及的動態路由,你明白了嗎?