在諸多路由協定之中,Babel路由協定是一個比較新的路由協定,它是一種距離向量路由協定,可以同時在無線網路和有線網路的環境內都達到很高效率並具備高度自動化的路由操作,可同時支援IPv4和IPv6等環境。
基本上,Babel路由協定的設計來自於DSDV(Destination Sequenced Distance Vector)路由方式、AODV(Ad-hoc On-Demand Distance Vector)路由方式以及Cisco EIGRP路由方式,而Babel路由協定所採用的路由標準是混合式的。Babel路由協定的RFC也是到了2011年才被記錄在RFC 6126這個文件內,這篇文章就讓筆者帶著大家來了解這個新穎的Babel路由協定。
了解路由協定在自治系統的分類
首先,必須要先了解內部路由協定和自治系統,因為Babel路由協定就是一個內部路由協定,同時也要知道何謂距離向量路由協定。路由協定有很多分類的方式,其中一種分類方式是根據自治系統的運作範圍來做分類。但是什麼是自治系統?和路由協定又有什麼關係呢?自治系統,就是指Autonomous System,簡稱為AS。一個自治系統指的是所有處於同樣的管理網域(Administrative Domain)下所有網路的集合,而一個管理網域指的是主機、路由器與內部連接網路的集合,而這個集合是歸屬於同樣的管理下運作的。
有些路由協定是運作在同一個自治系統之中,而有些路由協定則是運作在不同的自治系統之間,若以運作於自治系統的內部與外部來區分路由協定的話,就可以分成內部路由協定(Interior Gateway Protocol,IGP)與外部路由協定(Exterior Gateway Protocol,EGP)。屬於內部路由協定的路由協定包含RIPv1、RIPv2、IGRP、EIGRP以及OSPF,而屬於外部路由協定的路由協定則有BGP。這裡所要介紹的Babel路由協定,也是屬於內部路由協定。
內部路由協定運作方式說明
對於內部路由協定而言,根據所採用的路由演算法大致分為Distance Vector、Link State、Balanced Hybrid三種。
簡單來說,距離向量(Distance Vector)路由協定是用方向與所必須經過的設備數目(Hops)來決定路徑,並會在鄰近的路由器設備之間將這些路徑資料互相分享,而Link State則是使用最短路徑演算法(Shortest Path First)。
距離向量路由演算法與Link State路由演算法最大的不同就是,Link State演算法只會傳遞少部分更新的路由資料,而且會把這樣的更新資料傳遞到各個路由器設備中,而距離向量路由演算法則是會傳遞整份的資料,而且只會傳遞給鄰近的路由器設備而已。
不過,即使路由資料沒有任何的改變,距離向量也會將整份路由資料發送出來,而這裡指的整份路由資料指的就是發送端路由器設備中路由表的完整資料,當鄰近的路由器設備收到這整份路由資料之後,會開始比較已知的路由路徑,並把有更新過的資料同步到本地端路由器設備中,因為這種方式都會假設接收到的資料一定是比自己還要新的資料,所以這種方式通常也被稱為「謠言路由方式」(Routing by rumor)。
就是因為這樣類似「以訛傳訛」的運作方式,所以會產生很多問題,而這些問題和解決方案會在下面為各位讀者一一介紹。
Classful與Classless
所謂的Classful的路由協定是指當傳遞路由資訊時,不會傳遞子網路遮罩的訊息。當使用Classful的路由協定時,所有運行的網路都必須使用相同的子網路遮罩,因為Classful的路由協定會自動做到自動路由匯總(Automatic Route Summarization),而且運行Classful路由協定的網路必須使用Major的網路遮罩數目。例如,Class A網路就要使用預設的網路遮罩,就是255.0.0.0,而Class B網路的預設網路遮罩是255.255.0.0,同理可知,Class C網路的預設網路遮罩是255.255.255.0。
如果當路由器設備收到更新的路由資訊,其資訊中包含與接收介面相同的網路遮罩,則這台路由器設備就會採用這個接收介面的網路遮罩。倘若路由器設備收到的路由資訊中所包含的網路遮罩與接收介面的設定不同,則路由器設備就會依照網路IP來套用預設的網路遮罩。
也就是說,若收到的網路IP是屬於Class A的網路,則套用255.0.0.0,若是Class B的網路,則套用255.255.0.0,如果是Class C的網路,就套用255.255.255.0當作網路遮罩。
預設上,Classful的路由協定都會假設所有直接連接於這個路由器設備的子網路都被塞到自己的路由表內,當路由器設備收到一個封包,而這個封包的目的端網路不存在於這台路由器設備的路由表之中,那這台運行於Classful路由協定的路由器設備就會把這個網路封包給丟棄,因為這台路由器設備會假設這樣的目的端網路並不存在,即使是有設定預設路由,也是一樣。
例如圖1這樣的網路架構,若路由器B並沒有把前往路由器A的路由加到路由表內,那透過路由器A要前往另一端網路的封包都會被丟棄。
|
▲圖1 網路架構示意圖。 |