Babel路由協定 路由協定 網路 思科

新一代路由Babel協定 採距離向量演算機制

2017-11-01
在諸多路由協定之中,Babel路由協定是一個比較新的路由協定,它是一種距離向量路由協定,可以同時在無線網路和有線網路的環境內都達到很高效率並具備高度自動化的路由操作,可同時支援IPv4和IPv6等環境。

然而,網路管理人員可以藉由執行「ip classless」指令來避免這樣的事情發生,這個指令必須執行於Global Configuration模式之下,並且預設是啟動的。

依照圖1的網路架構圖,可以在路由器B設備上執行下列的指令來設定:


這樣一來,當路由器B收到的封包,其封包的目的端網路位址即使沒有存在於路由器B的路由表之中,路由器B設備也會把這個封包轉送給預設路由所指到的路由器設備,而不會直接丟棄。

基本上,距離向量路由演算法是Classful路由演算法之一。RIPv1、RIPv2、IGRP以及EIGRP等路由協定都是採用這類型的路由演算法。不過,EIGRP也會有部分Link State路由演算法的特徵。

何謂距離向量路由方式

由於距離向量路由演算法會根據必須經過的設備數目(Hops)來衡量路徑的好壞,因此,對於那些直接連接的路由器設備而言,其Hops Count的值為0。之後,隨著距離向量路由演算法開始運作,路由器設備會開始根據鄰近路由器設備所提供的路由資料,來尋找那些並不是直接連接的最佳路徑,因為鄰近路由器設備所提供的路由資料中,對於自己這台路由器設備而言,有些並不是直接連接的,所以可以從這些資料中學習到其他網路部分的路徑情況,圖2就是一個簡單的例子。

如圖2所示,假設路由器A的左邊為E0介面,右邊為S0介面,路由器B的左邊為S0介面,右邊為S1介面,路由器C的左邊為S0介面,右邊為E0介面。


▲圖2 連接路由器設備的網路架構圖。

從圖中可以發現,每一台路由器設備對於旁邊直接連接的網段,其在路由表中的值為0,因為不需要經過任何的網路設備就可以到達這些網段,所以Hops Count為0。接著,這些路由器設備會把自身的路由表與其他鄰近的路由器設備分享,所以路由器B可以從路由器C所送來的資料中學習到透過路由器C可以到達10.4.0.0的網段,所以在路由器B的路由表中,10.4.0.0的值為1,因為必須透過一台設備才能到達。

緊接著,路由器B會把路由表丟給路由器A,此時,路由器A就會發現,因為路由器B要到達10.4.0.0必須經過一台網路設備,所以從路由器A到10.4.0.0必須經過兩台網路設備,因為還要多經過路由器B,因此在路由器A設備中的路由表裡,10.4.0.0的值為2。

所以,針對10.4.0.0這筆資料而言,會記錄下10.4.0.0, S0, 2,代表「可以從這台設備的S0介面出去,經過兩台網路設備之後,可以到達10.4.0.0的網路區段。」

大家應該可以發現這距離向量的精髓,為什麼要稱為距離向量?從剛剛的路由表中可以發現,其資料會記錄著S0和2這兩種資料,其中S0代表要從哪個「方向」出去,而2則是記錄下「距離」,因此多筆這樣的資料就會形成一個距離向量的資料集合。

選擇最佳網路路徑的方式

事實上,真正的網路拓樸架構絕對比上面的例子還要複雜很多很多,所以從一個地點到另一個地點可能存在著不只一個網路路徑,這個時候如何選擇最佳的網路路徑就是路由協定所要做的事情了。

每一種距離向量路由協定演算法都會採用不同的方式來決定如何選擇最佳網路路徑,基本上,這些演算法都會針對每一條路徑給予一個評判值,如果評判值越小,代表這條路徑越好。這個評判值可以是從這條路徑的某一個特徵來計算而得,也可以是綜合多個特徵來計算。大部分演算法可能會使用下列的特徵來決定某個路徑的評判值為何:

1. 必須經過的網路設備數目(Hops Count)。

2. 所使用的頻寬(Bandwidth)。當然,頻寬越大的路徑就越好,例如100Mbps的乙太網路路徑就比10Mbps的乙太網路路徑還要好。

3. Delay,也就是從來源端傳送網路封包到目的端所必須花費的時間。

4. Load,網路資源數量。

5. 網路品質信賴度(Reliability),大部分是指網路線的資料錯誤率。

6. 最大傳輸單元(Maximum Transmission Unit,MTU),這是指在路徑上所有線路中的最大可接受資料傳輸單元長度。

稍早筆者曾經提到,RIPv1、RIPv2以及IGRP都是屬於距離向量路由演算法,其中RIP是採用「必須經過的網路設備數目」,也就是Hops Count來評判路徑的好壞,而IGRP則是綜合頻寬和Delay兩種特徵來決定路徑的好壞。

認識Babel路由協定

相對來說,Babel路由協定是一個比較新的路由協定,它是一種距離向量路由協定,可以同時在無線網路和有線網路的環境之中都達到很高效率,並且具備高度自動化的路由操作,同時可以支援IPv4和IPv6等環境。基本上,Babel路由協定是從下列三種設計演變而來的:

1. DSDV(Destination Sequenced Distance Vector)路由方式

2. AODV(Ad-hoc On-Demand Distance Vector)路由方式

3. Cisco EIGRP路由方式

但是不同的是,Babel路由協定所採用的路由標準是混合式的。很聰明地,Babel路由協定在有線網路的環境中預設是採用必須經過的網路設備數目(Hops Count)當作標準。而在無線網路的環境內,則是採用ETX的方式。不過,也可以根據使用情況自行設定要用什麼當作標準。

更厲害的是,Babel路由協定還可以根據網路的速度自動切換不同的評判標準,所以才說Babel路由協定是一個擁有高效率並且具備高度自動化的路由協定。

Babel路由協定主要有四種不同的實作方式:

1. 單獨運作的參考模式

2. 整合在FRR路由套件中的方式

3. 透過Python簡單地重新實作

4. 在BIRD路由系統中製作延伸套件

往後有機會的話,可以逐一為大家介紹。首先,來看看Babel路由方式的設計概念是什麼。

DSDV路由方式

剛才提到,Babel路由協定參考了DSDV路由方式。DSDV主要運用在Ad-hoc的移動式網路之中。它的設計想法是,在路由表內的每一筆資料都新增一個Sequence Number(序號)的概念,這個序號用來判斷這筆資料的新舊程度。這個設計方式可以用來解決路由迴圈的問題(Routing Loop)。所以,一旦收到一筆路由更新,會去比較一下這筆資料的新舊程度來決定是否正確。

這種做法是在1994年被開發出來,是基於貝爾曼福特演算法繼續改進的。不過,這種路由方式當然還是需要定期地發送廣播路由更新給所有其他的節點。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!