路由器的路由選擇原理

路由器在諸多路由協議、手工配置和路由策略下,是如何選擇最佳路由的?理解這個問題,對於掌握路由器的工做原理大有裨益。
   路由選擇牽涉到三個方面:
一、  各類路由協議的處理,包括 rip igrp  eigrp ospf is-is bgp 等,每一個協議都經過 IP 數據包在路由器間傳遞網絡的路由信息,爲路由表的創建提供信息。
二、  路由表,它從路由協議那裏接受信息, 併爲轉發數據包提供所須要的信息。
三、  轉發過程,它從路由表那裏請求所須要 信息,爲正確轉發數據包作出決策。
    下面從幾個方面對此進行討論。

創建路由表

       每一個路由協議處理路由更新時,選擇到目的地址的最佳路由,並試圖安裝到路由表中。若是隻有多個動態路由協議運行,存在爭先安裝路由的問題。必須有機制來管理路由的安裝。該機制就是根據各個路由協議的優先級來決定安裝過程。每一個路由協議都有缺省的管理距離值,值愈小其優先級愈高。各路由協議的缺省管理距離值如:
 
  假設路由器運行 EIGRP OSPF RIP IGRP 四種路由協議,它們都獲得了到網絡 192.168.24.0/24 的路由,但只有 EIGRP internal )可將其路由安裝到路由表中,由於其管理距離值最小,優先權最高。

備份路由

       其餘協議對於未安裝的協議怎麼處理? EIGRP 安裝的路由失敗了怎麼辦?對此有兩種解決方法,一是每一個路由協議週期性地嘗試安裝它們的路由到路由表中,若是 EIGRP 安裝的路由失效了, IGRP 會將它的相應路由安裝到路由表中。另外一個辦法是將未安裝的路由掛靠在路由表中,若是先前安裝的路由失效了,將掛靠的路由正式安裝到路由表中。
       對於沒有自身路由信息表的路由協議,好比 IGRP ,將採起第一種方法,每次收到路由更新都嘗試安裝到路由表中。
       對於 EIGRP IS-IS OSPF BGP RIP 這樣的有自身路由信息表的路由協議,將採起第二種辦法,安裝失敗的路由將登記在路由表中,當原路由條目失效時,將通知作登記的路由協議的處理進程來安裝它們的路由,若是有多個進程來安裝,管理距離小的協議優先。

調整管理距離值

       改變路由協議的缺省距離值是比較慎重的動做,有可能致使路由循環或其餘奇怪的問題,必須很是當心!其命令爲 distance 後跟具體的值。也能夠只改變從某一協議分佈進來的路由的管理距離值。在靜態路由的最後也能夠跟上一個值,改變原來的缺省值 1

前綴長度

       不一樣前綴長度的路由將視爲不一樣的路由,將同時安裝到路由表中,好比三個路由協議分別獲得如下路由:
l         EIGRP (internal): 192.168.32.0/26
l         RIP: 192.168.32.0/24
l         OSPF: 192.168.32.0/19
三個路由的前綴長度(子網掩碼)不一樣,因此獲得不一樣目的網絡的路由,同時安裝到路由表中。

轉發決策

       先看一下路由器剛纔安裝的三個路由條目:
router#show ip route
     ....
     D  192.168.32.0/26 [90/25789217] vi a 10.1.1 .1
     R  192.168.32.0/24 [120/4] vi a 10.1.1 .2
     O  192.168.32.0/19 [110/229840] vi a 10.1.1 .3
     若是目的地址爲 192.168.32.1 ,將選擇哪條路由呢?這依賴於所匹配的前綴長度,最長匹配的前綴長度優先。匹配是用路由條目中的掩碼與目的地址相與後再與網絡地址比較,相贊成味着匹配。該地址與這三條路由都匹配,但第一條匹配的路由前綴( 26 )最長,因此該包將被轉發到 10.1.1 .1
若是目的地址爲 192.168.32.100 ,它與第一條路由不匹配,與第2、第三條路由匹配,因此將被轉發到 10.1.1 .2
具體的路由查找速度依賴於路由表的結構與硬件速度,如採用二叉樹結構的路由表,那麼 32 位的 IP 地址最多查找 32 次就能夠決定是否找到適應的路由條目。

IP CLASSLESS的影響

       該命令隻影響轉發進程,不影響路由表的創建。看如下的例子:
router#show ip route
....
    172.30.0.0/16 is variably  subnetted, 2 subnets, 2 masks
D   172.30.32.0/20 [90/4879540] via  10.1.1 .2
D   172.30.32.0/24  [90/25789217] vi a 10.1.1 .1
S*   0.0.0 .0/0 [1/0] vi a 10.1.1 .3                                    
假設 ip classless 命令沒有配置,那麼:
l         172.30.32.1 的包被轉發到 10.1.1 .1 ,由於
該路由是最長匹配。
l         172.30.33.1 的包被轉發到 10.1.1 .2 ,由於
該路由是最長匹配。
l         192.30.32.1 的包被轉發到 10.1.1 .3 ,由於
無對應的網絡路由,用缺省路由轉發。
l         172.30.100.1 的包沒法轉發,被丟棄。爲什
麼不用缺省路由?由於該目的地址的主網絡部分在路由表中已知,並有子網路由,故路由器查找對應的子網路由,結果沒有匹配的路由,最終丟棄該包。若是用 IP classless 命令進行了配置,那麼最終將應用缺省路由將數據包轉發到 10.1.1 .3

總結

   數據包的轉發決定依賴於三部分的進程:路由協議、路由表、實際的轉發交換,這三者的關係圖示以下:
   選擇路由時採起最長匹配的原則,而路由協議安裝路由的優先級取決於管理距離值。
相關文章
相關標籤/搜索