【EP2】MOD-4 Distance Vector Routing Protocols
「距離向量路由協定」如同其名,宣傳路徑的方式是使用距離及具有方向的向量。
這裡的距離是指 hop count ,而向量則是指下一台(next-hop)路由器
或者是離開路由器的介面
使用距離向量繞送協定的路由器對於到達目的地網路
並沒有完整的路徑或拓樸知識,其僅知道封包要往哪個介面轉送以及距離多遠
距離向量繞送協定具有以下特性:
1. 週期性更新(Periodic Updates):
每隔一段時間就會送出整個路由表
例如RIP 每個 30 秒就會送出更新,雖然說是更新,但是可能很長一段時間路由表沒有變化
這類協定仍然會持續送出更新
EIGRP則是變形的距離向量路由協定,不會週期性的送出路由更新
2. 相鄰(Neighbors):
使用同樣的繞送協定,並且分享鏈路的路由器。
3. 廣播更新(Broadcast Updates):
更新會送至廣播位址255.255.255.255
所有的鄰居路由器收到這個廣播更新都會進行處理
某些距離向量路由協定使用多播(multicast)位址取代廣播位置,例如EIGRP
4. 整個路由表更新:
鄰居路由器收到更新會處理整個路由表
距離向量繞送協定的核心是演算法,會偵測及回應拓樸的改變
計算出最佳路徑,並且送出及接收更新
不同的繞送協定使用不同的演算法
距離向量的優點
易於實作及維護:
需要有關距離向量路由協定的知識較少,較易瞭解與學習
需求資源低:
整體來說,資源消耗不高因為演算法簡單,不需要太好的CPU 計算
沒有太多的表格,不需要較高的記憶體
網路規模較小時,頻寬消耗低,但是網路規模較大時,頻寬消耗會較高
缺點:
收斂慢:
由於是週期性的更新,在週期時間未達到前不會進行更新
當路由器較多時,每個路由器都要等到週期性更新時間到達
因此整個網路的收斂速度就變的非常慢(相對於鏈路狀態路由協定的收斂速度)
擴充性(Scalability)差:
網路規模的擴充性受到限制,因為越多的路由器會讓收斂速度更慢
有繞送迴圈的問題:
鏈路移除或發生故障,則路由器的路由表將失去該路徑
如果此時路由器的週期更新時間正好到達
另一顆就會接收到與這顆路由器有關的訊息,Hop 數為 2
這樣的話就變成第一顆的失效網段資訊並沒有被刪除
一直在兩顆路由器間跑來跑去,HOP數最後變成無限,稱為繞送迴圈
距離向量協定缺陷解決方式:
繞送迴圈的處理方式通常有幾種
1. 觸發更新
當拓樸改變時,為了加快收斂速度,RIP 協定使用了觸發更新這種方法
這種方法是當路由器的繞送(路由表)發生改變時,就立刻送出路由表更新
而不會等到更新計時器的時間到達
路由器送出更新給相鄰的路由器之後,接收到的路由器也會產生觸發更新
以通知它們的鄰居路由器相關的路徑資訊
觸發更新發生於以下這些狀態:
介面 Down 或 Up
路徑成為無法到達(unreachable)的狀態
路徑被安裝進入路由表
僅有觸發更新仍不能完全解決繞送迴圈的問題
包含了更新訊息的封包可能被網路中某些有問題的連結所丟棄或破壞造成更新無法完成
有可能一個沒有接收到觸發更新的路由器,在不恰當的時間執行一個例行性的更新
造成已經接收到觸發更新的路由器的路由表被錯誤的路徑替換
2. 設定最大指標
繞送迴圈的特性之一是計數到無限
因此可以採取定義最大指標(Settinga Maximum metric)以防止計數到無限
以 RIP 來舉例,當路由表中某條路徑的hop 數若到達 16 個 hop 時
這條路徑就會被認為是無法到達(unreachable)的路徑
3. Holddown 計數器
使用觸發更新可能造成繞送迴圈或計數到無限,網路會無法收斂
Holddown 計時器可以預防已經消失的路徑因正規的更新而被不正確的安裝到路由表中
假如一個路由器收到一個更新,更新中顯示一個先前是可以存取的路徑
現在被識別為無法存取,這路由器會標示此路徑為可能當掉(Possibly Down)
並直接進入 Holddown 時期,開始 Holddown 計數器的計時
這個路徑將會被保留一段時間(holddown period),在這段時間內
接收到此路徑的訊息,但指標相同或更差,這個更新會被忽略
若相同路徑但指標更好,則安裝此新路徑並移除 Holddown 計數器
若目的地網路真的當掉,前往該目的地的封包將會進入黑洞
直到 Holddown 計時器或 Flush 計時器逾時
RIP各計時器的運作方式:
(1)更新週期計時器(Update timer):
預設值為30 秒,每30 秒 RIP 路由器會發佈一次路由表更新。
(2)失效計時器(Invalid timer):
預設值為180 秒,路由器180 秒未收到更新通告,就會把這條路徑視為無效
(3)保留計時器(Hold-down timer):
預設值為180 秒,當失效計時器逾時,路由器不再信任收到的更新通告(除非指標夠好)
此時原本的路徑資訊,就進入保留狀態。
(4)清理計時器(Flush timer):
預設值為240 秒,當清理計時器逾時,RIP 路由器會將有關該項路徑的資訊,從路由表一併移除
4. 水平分割原則
前面介紹的方法可以解決一部份繞送迴圈的問題
但是仍無法預防因為慢收斂造成的繞送迴圈問題,因此還必須採用水平分割原則
此原則為路由器不會將網路訊息宣傳回其原來的介面
5. 路徑毒害 (Route poisoning) 與逆向毒害 (poison reverse)
路徑毒害是將無法到達的網路之hop 數設定為 16 (RIP中視為無法到達)
並觸發更新傳送此無法到達的訊息到其他路由器
如此,所有的路由器上的此路徑項目都會遭到毒害
如果接下來將被毒害的路徑又送回原本的路由器,這動作稱為逆向毒害
加強廣播了這條路徑不通
RIP 簡介
RIP 包含了 RIPv1 及 RIPv2 ,是一個標準化的路由協定
可以運作於不同廠牌路由器的環境中,在設定上也非常容易
RIP 的兩個版本使用相同的指標,也就是 hop 數,且最大可以是 15 個 hop (經過路由器數)
特色:
(1)支援水平分割及逆向毒害
(2)負載平衡支援最多 6 條等成本的路徑,預設是 4 條等成本路徑
RIPv2 相對於 RIPv1 做了以下改進:
(1)繞送更新中包含子網路遮罩,使其成為無分類( classless )繞送協定
(2)繞送更新可有認證機制
(3)支援 VLSM子網路切割法
(4)繞送更新使用多播取代廣播
(5)支援手動路徑總結(route summarization)