IGP routing protocol之三個主要的演算法:
1. Distance vector(有時以發明者的名字Bellman-Ford來稱呼)
2. Link-state
3. Balanced hybrid(有時稱作距離向量加強版)
IGP
|
Metric
|
Note
|
RIPv1,RIPv2
|
Hop數
|
路由器和目的地子網路之間經過的路由器(轉送站)數量。
|
OSPF
|
Cost
|
在路徑中所有經過鏈路之所有介面的成本設定值總合;成本的預設值是根據介面的頻寬而定。
|
EIGRP
|
Bandwidth and delay的複合成本
|
根據路徑中頻寬最低的鏈路以及路徑中每個介面的delay累加而計算出的總和。
|
若兩個Site,分別使用OSPF和EIGRP,有一個路由器同時使用到OSPF和EIGRP時,路由器會將OSPF學到的路徑宣告給EIGRP,反之亦然,這樣的過程稱為Route Redistribution。
當IOS必須在兩種routing protocol之間選擇最佳路徑時,IOS採用的方式為AD(administrative distance);AD代表的是一個路由器上全部routing protocol之可信度的一種數值,數值越低表示越佳。
EIGRP-90、OSPF-110、RIP-120、Connected-0、Static-1
Command to Setting AD:
ip route 10.1.3.0 255.255.255.0 10.1.130.253 210(AD值)
Distance vector:
a. 週期更新: RIP預設更新為30秒
b. Full updates: 每次完整更新routing table
c. Split-horizon: 定義由X介面送出的routing update,不包含離開介面為X的路徑資訊。(ex. 當router R1學到一筆來自R2的路徑時,不需要再通告相同路徑給R2)
d. Route poisoning: 透過將無效的路徑通告其權值為「infinity」,以預防loop發生。(RIP定義metric為16代表無限大infinity)
e. holddown: 路由器只要一發現無效的路徑,就會暫停有關該路徑的更新活動至一段時間,直到確認每個路由器都知道該路徑已經無效為止。
Link-state Protocol:
1. 路由器會利用儲存RAM內部所謂連結狀態資料庫(link-state database,LSDB)中的資訊,來執行其他主要連結狀態的程序,以計算出目前到達每個子網路的最佳路徑。
2. OSPF是最為廣泛使用的連結狀態IP routing protocol,並以各種不同類型的routing update訊息來通告網路上的資訊,其中的更新就叫連結狀態通告(LSA-link-state advertisements)。
3. LSA主要包含兩種主要的類型:
a. router LSA:包含一個可識別路由器的編號(router ID)、router interface's ip and netmast、each of interface status(up or down)and interface cost(metric)
b. link LSA:識別每一條link(subnet)and connect router, and link state(up or down)
4. link-state protocol之所以得其名是因為LSA會通告每一介面(link)以及介面狀態是否為up or down
5. LSA被flooding之後,即便LSA沒有改變,link-state protocol也會要求每隔一段時間重新flooding LSA。ex. RIP每隔30秒傳送一次週期更新,以及傳送列出所有正常的通告路徑之完整更新;OSPF根據每個LSA個別的計時器(預設為30秒)來重新flooding。
6. OSPF使用Dijkstra SPF algorithm來找出最佳路徑,LSDB作用就像是地圖,而SPF algorithm則如同閱讀該地圖的人;LSDB掌握所有可能的路由器及link information,而SPF algorithm定義了路由器要如何處理自己的LSDB,以及定義每個路由器都要以自己為起點來考量路徑。
7. 網路穩定了以後,link state protocol就會每隔一段時間定期的重新flooding每個LSA(OSPF預設為30分鐘)
8. link-state vs distance vector
a. link-state convergence first than distance vector
b. use CPU and Memory: link-state > distance vector
c. 避免loop: link-state本身就能避免迴圈,distance vector需透過其他機制協助
(ex. split horizon、holddown、route poisoning)
d. 設計所需的人力成本:linke-state protocol需要許多的規劃和設計的人力成本
e. setting: link-state設定較複雜。