距離矢量路由協定(二)----路由更新
當路由器冷啟動或通電開機時,它完全不了解網絡拓撲結構。它甚至不知道在其鍊路的另一端是否存在其它裝置。路由器唯一了解的資訊來自自身
NVRAM 中存儲的配置檔案中的資訊。當路由器成功啟動後,它将應用所儲存的配置。如第 1 章和第 2 章所述,如果正确配置了 IP
位址,則路由器将首先發現與其自身直連的網絡。
初次網絡發現
在上圖所示的範例中,當路由器冷啟動後,在開始交換路由資訊之前,路由器将首先發現與其自身直連的網絡以及子網路遮罩。以下資訊會添加到路由器的路由表中:
R1
10.1.0.0 available through interface FastEthernet 0/0
10.2.0.0 available through interface Serial 0/0/0
R2
10.2.0.0 available through interface Serial 0/0/0
10.3.0.0 available through interface Serial 0/0/1
R3
10.3.0.0 available through interface Serial 0/0/0
10.4.0.0 available through interface FastEthernet 0/0
初次路由資訊交換
配置路由協定後,路由器就會開始交換路由更新。一開始,這些更新僅包含有關其直連網絡的資訊。收到更新後,路由器會檢查更新,從中找出新資訊。任何目前路由表中沒有的路由都将被添加到路由表中。
初次交換
我們看下R1、R2 和 R3 開始初次交換的過程。所有三台路由器都向其鄰居發送各自的路由表,此時路由表僅包含直連網絡。每台路由器處理更新的方式如下:
R1
.将有關網絡 10.1.0.0 的更新從 Serial0/0/0 接口發送出去
.将有關網絡 10.2.0.0 的更新從 FastEthernet0/0 接口發送出去
.接收來自 R2 的有關網絡 10.3.0.0 且度量為 1 的更新
.在路由表中存儲網絡 10.3.0.0,度量為 1
R2
.将有關網絡 10.3.0.0 的更新從 Serial 0/0/0 接口發送出去
.将有關網絡 10.2.0.0 的更新從 Serial 0/0/1 接口發送出去
.接收來自 R1 的有關網絡 10.1.0.0 且度量為 1 的更新
.在路由表中存儲網絡 10.1.0.0,度量為 1
.接收來自 R3 的有關網絡 10.4.0.0 且度量為 1 的更新
.在路由表中存儲網絡 10.4.0.0,度量為 1
R3
.将有關網絡 10.4.0.0 的更新從 Serial 0/0/0 接口發送出去
.将有關網絡 10.3.0.0 的更新從 FastEthernet0/0 發送出去
.接收來自 R2 的有關網絡 10.2.0.0 且度量為 1 的更新
.在路由表中存儲網絡 10.2.0.0,度量為 1
.經過第一輪更新交換後,每台路由器都能獲知其直連鄰居的相連網絡。但是,您.是否注意到 R1 尚不知道 10.4.0.0,而且 R3 也不知道 10.1.0.0?是以,還需要經過一次路由資訊交換,網絡才能達到完全收斂。
此時,路由器已經獲知與其直連的網絡,以及與其鄰居相連的網絡。接着路由器開始交換下一輪的定期更新,并繼續收斂。每台路由器再次檢查更新并從中找出新資訊。
下一次更新
我們來看下 R1、R2 和 R3 向各自的鄰居發送最新的路由表。每台路由器處理更新的方式如下:
R1
将有關網絡 10.1.0.0 的更新從 Serial 0/0/0 接口發送出去。
将有關網絡 10.2.0.0 和 10.3.0.0 的更新從 FastEthernet0/0 接口發送出去。
接收來自 R2 的有關網絡 10.4.0.0 且度量為 2 的更新。
在路由表中存儲網絡 10.4.0.0,度量為 2。
來自 R2 的同一個更新包含有關網絡 10.3.0.0 且度量為 1 的資訊。因為網絡沒有發生變化,是以該路由資訊保留不變。
R2
将有關網絡 10.3.0.0 和 10.4.0.0 的更新從 Serial 0/0/0 接口發送出去。
将有關網絡 10.1.0.0 和 10.2.0.0 的更新從 Serial 0/0/1 接口發送出去。
接收來自 R1 的有關網絡 10.1.0.0 的更新。因為網絡沒有發生變化,是以該路由資訊保留不變。
接收來自 R3 的有關網絡 10.4.0.0 的更新。因為網絡沒有發生變化,是以該路由資訊保留不變。
R3
将有關網絡 10.4.0.0 的更新從 Serial 0/0/0 接口發送出去。
将有關網絡 10.2.0.0 和 10.3.0.0 的更新從 FastEthernet0/0 接口發送出去。
接收來自 R2 的有關網絡 10.1.0.0 且度量為 2 的更新。
在路由表中存儲網絡 10.1.0.0,度量為 2。
來自 R2 的同一個更新包含有關網絡 10.2.0.0 且度量為 1 的資訊。因為網絡沒有發生變化,是以該路由資訊保留不變
注:距離矢量路由協定通常會采用一種稱為“水準分割”的技術。水準分割可防止将資訊從接收該資訊的接口發送出去。例如,R2 不會從 Serial 0/0/0 發出包含網絡 10.1.0.0 的更新,因為 R2 正是通過 Serial 0/0/0 獲知該網絡的
網絡收斂
網絡收斂所需的時間與網絡的規模成直接比例。我們可以根據路由協定傳播此類資訊的速度 - 即收斂速度來比較路由協定的性能。
達到收斂的速度包含兩個方面:
.路由器在路由更新中向其鄰居傳播拓撲結構變化的速度。
.使用收集到的新路由資訊計算最佳路徑路由的速度。
網絡在達到收斂前無法完全正常工作,是以,網絡管理者更喜歡使用收斂時間較短的路由協定。
維護路由表
許多距離矢量協定采用定期更新與其鄰居交換路由資訊,并在路由表中維護最新的路由資訊。RIP 和 IGRP 均屬于此類協定。
路由器定期向鄰居發送路由表。術語定期更新是指路由器以預定義的時間間隔向鄰居發送完整的路由表。對于
RIP,無論拓撲結構是否發生變化,這些更新都将每隔 30 秒鐘以廣播的形式 (255.255.255.255) 發送出去。這個 30
秒的時間間隔便是路由更新計時器,它還可用于跟蹤路由表中路由資訊的駐留時間。
每次收到更新後,路由表中路由資訊的駐留時間都會重新整理。通過這種方法便可在拓撲結構發生改變時維護路由表中的資訊。
拓撲結構發生變化的原因有多種,包括:
.增加新鍊路
.鍊路故障
.路由器故障
.鍊路參數改變
RIP 計時器
除更新計時器外,IOS 還針對 RIP 設定了另外三種計時器:
無效
清除
抑制
.無效計時器。如果 180 秒(預設值)後還未收到可重新整理現有路由的更新,則将該路由的度量設定為 16,進而将其标記為無效路由。在清除計時器逾時以前,該路由仍将保留在路由表中。
.清除計時器。預設情況下,清除計時器設定為 240 秒,比無效計時器長 60 秒。當清除計時器逾時後,該路由将從路由表中删除。
.抑制計時器。該計時器用于穩定路由資訊,并有助于在拓撲結構根據新資訊收斂的過程中防止路由環路。在某條路由被标記為不可達後,它處于抑制狀态的時間必須足夠長,以便拓撲結構中所有路由器能在此期間獲知該不可達網絡。預設情況下,抑制計時器設定為 180 秒。
計時器的值可以通過兩條指令來檢驗:show ip route 和 show ip protocols。注意,在 show ip route 的輸出中,通過 RIP 獲知的每條路由都會顯示出自上次更新以來經過的時間(以秒為機關)。
此時間也會顯示在 show ip protocols 輸出中标題 Last Update 的下方。show ip protocols 指令詳細列出了該路由器 (R1) 發送下一輪更新的時間。它還列出了無效、抑制和清除計時器的預設值。
與其它距離矢量路由協定不同,EIGRP 不發送定期更新,而是在路徑改變或路由的度量改變時發送限定更新。當出現新路由或現有路由需要删除時,EIGRP 隻會發送有關該網絡的資訊,而不是整個路由表。該資訊隻會發往确實需要此資訊的那些路由器。
EIGRP 使用的更新具有以下特點:
.不定期,因為此類資訊不是按固定時間間隔發送。
.僅當拓撲結構中發生影響路由資訊的改變時才發送相關部分的更新。
.限定範圍,這表示部分更新的傳播受到自動限制,隻有需要該更新資訊的路由器才會收到更新。
觸發更新:
當拓撲結構發生改變時,為了加速收斂,RIP
将使用觸發更新。觸發更新是一種路由表更新方式,此類更新會在路由發生改變後立即發送出去。觸發更新不需要等待更新計時器逾時。檢測到拓撲結構變化的路由
器會立即向相鄰路由器發送更新消息。接收到這一消息的路由器将依次生成觸發更新,以通知鄰居拓撲結構發生了改變。
當發生以下情況之一時,就會發出觸發更新:
.接口狀态改變(開啟或關閉)
.某條路由進入(或退出)“不可達”狀态
.路由表中增加了一條路由
如果能夠保證更新能立即到達每台路由器,那麼僅使用觸發更新就已足夠。然而,觸發更新存在兩個問題:
.包含更新資訊的資料包可能在網絡的某些鍊路上丢失或損壞。
.觸發更新并不能在瞬間完成。尚未收到觸發更新的路由器有可能在錯誤的時間發送正常定期更新,進而導緻錯誤的路由重新插入已經收到觸發更新的鄰居的路由表中。
同步更新存在的問題
當多路通路 LAN 網段上的多台路由器同時發送路由更新時,更新資料包可能會發生沖突,進而導緻延遲或消耗過多帶寬。
注:隻有集線器才會發生此類沖突,交換機不存在此問題。
同時發送更新也被稱為同步更新。因為距離矢量路由協定使用定期更新機制,是以對于此類協定,同步可能會造成問題。随着同步的路由器計時器越來越
多,網絡中出現的更新沖突和延遲也會越來越多。最初,路由器更新是不同步的。但經過一段時間之後,網絡上的各個計時器将逐漸變得同步。
解決方案
為防止路由器之間同步進行更新,Cisco IOS 引入了稱為 RIP_JITTER
的随機變量,此變量會為網絡中每台路由器的更新時間間隔減去一段可變時間量。此随機抖動(即可變時間量)的範圍是指定更新時間間隔的 0% 到
15%。在這種方式下,預設 30 秒的更新間隔實際會在 25 到 30 秒之間随機變化。
本文出自 “www.51cto.com” 部落格,請務必保留此出處http://frecolwang.blog.51cto.com/330699/131203