10.19 IP路由基礎理論知識詳解(二)

3、FIB表的匹配

在路由表選擇出路由後,路由表會將激活路由下發到FIB表中。當報文到達路由器時,會通過查找FIB表進行轉發。

FIB表中每條轉發項都指明到達某網段或某主機的報文應通過路由器的哪個物理接口或邏輯接口發送,然後就可到達該路徑的下一個路由器,或者不再經過別的路由器而傳送到直接相連的網絡中的目的主機。

FIB表的匹配遵循最長匹配原則。查找FIB表時,報文的目的地址和FIB中各表項的掩碼進行按位“邏輯與”,得到的地址符合FIB表項中的網絡地址則匹配。最終選擇一個最長匹配的FIB表項轉發報文。

例如,一臺路由器上的路由表如下:

Routing Tables:

Destination/Mask Proto Pre Cost Flags NextHop Interface

0.0.0.0/0 Static 60 0 D 192.168.0.2 GigabitEthernet1/0/0

10.8.0.0/16 Static 60 3 D 192.168.0.2 GigabitEthernet1/0/0

10.9.0.0/16 Static 60 50 D 172.16.0.2 GigabitEthernet3/0/0

10.9.1.0/24 Static 60 4 D 192.168.0.2 GigabitEthernet2/0/0

10.20.0.0/16 Direct 0 0 D 172.16.0.1 GigabitEthernet4/0/0

一個目的地址是10.9.1.2的報文進入路由器,查找對應的FIB表。

FIB Table:

Total number of Routes : 5

Destination/Mask Nexthop Flag TimeStamp Interface TunnelID

0.0.0.0/0 192.168.0.2 SU t[37] GigabitEthernet1/0/0 0x0

10.8.0.0/16 192.168.0.2 DU t[37] GigabitEthernet1/0/0 0x0

10.9.0.0/16 172.16.0.2 DU t[9992] GigabitEthernet3/0/0 0x0

10.9.1.0/24 192.168.0.2 DU t[9992] GigabitEthernet2/0/0 0x0

10.20.0.0/16 172.16.0.1 U t[9992] GigabitEthernet4/0/0 0x0

首先,目的地址10.9.1.2與FIB表中各表項的掩碼“0、16、24”作“邏輯與”運算,得到下面的網段地址:0.0.0.0/0、10.9.0.0/16、10.9.1.0/24。這三個結果可以匹配到FIB表中對應的三個表項。最終,路由器會選擇最長匹配10.9.1.0/24表項,從接口GE2/0/0轉發這條目的地址是10.9.1.2的報文。

五、路由協議的優先級

對於相同的目的地,不同的路由協議(包括靜態路由)可能會發現不同的路由,但這些路由並不都是最優的。事實上,在某一時刻,到某一目的地的當前路由僅能由唯一的路由協議來決定。為了判斷最優路由,各路由協議(包括靜態路由)都被賦予了一個優先級,當存在多個路由信息源時,具有較高優先級(取值較小)的路由協議發現的路由將成為最優路由,並將最優路由放入本地路由表中。

路由器分別定義了外部優先級和內部優先級。外部優先級是指用戶可以手工為各路由協議配置的優先級,缺省情況下如下表1所示。

IP路由基礎理論知識詳解(二)

其中,0表示直接連接的路由,255表示任何來自不可信源端的路由;數值越小表明優先級越高。

除直連路由(DIRECT)外,各種路由協議的優先級都可由用戶手工進行配置。另外,每條靜態路由的優先級都可以不相同。

路由協議的內部優先級則不能被用戶手工修改,如下表2所示。

IP路由基礎理論知識詳解(二)

選擇路由時先比較路由的外部優先級,當不同的路由協議配置了相同的優先級後,系統會通過內部優先級決定哪個路由協議發現的路由將成為最優路由。

例如,到達同一目的地10.1.1.0/24有兩條路由可供選擇,一條靜態路由,另一條是OSPF路由,且這兩條路由的外部優先級都被配置成5。這時路由器系統將根據上表2所示的內部優先級進行判斷。因為OSPF協議的內部優先級是10,高於靜態路由的內部優先級60。所以系統選擇OSPF協議發現的路由作為最優路由。

六、路由的度量

路由的度量標示出了這條路由到達指定的目的地址的代價,通常以下因素會影響到路由的度量。

1、路徑長度

路徑長度是最常見的影響路由度量的因素。鏈路狀態路由協議可以為每一條鏈路設置一個鏈路開銷來標示此鏈路的路徑長度。在這種情況下,路徑長度是指經過的所有鏈路的鏈路開銷的總和。

距離矢量路由協議使用跳數來標示路徑長度。跳數是指數據從源端到目的端所經過的設備數量。

例如,路由器到與它直接相連網絡的跳數為0,通過一臺路由器可達的網絡的跳數為1,其餘以此類推。

2、網絡帶寬

網絡帶寬是一個鏈路實際的傳輸能力。

例如,一個10千兆的鏈路要比1千兆的鏈路更優越。雖然帶寬是指一個鏈路能達到的最大傳輸速率,但這不能說明在高帶寬鏈路上路由要比低帶寬鏈路上更優越。比如說,一個高帶寬的鏈路正處於擁塞的狀態下,那報文在這條鏈路上轉發時將會花費更多的時間。

3、負載

負載是一個網絡資源的使用程度。計算負載方法包括CPU的利用率和它每秒處理數據包的數量。持續監測這些參數可以及時瞭解網絡的使用情況。

4、通信開銷

通信開銷衡量了一條鏈路的運營成本。尤其是隻注重運營成本而不在乎網絡性能的時候,通信開銷則就成了一個重要的指標。

七、負載分擔與路由備份

當多條路由的路由優先級和路由度量都相同時,這幾條路由就稱為等價路由,多條等價路由可以實現負載分擔。當這幾條路由為非等價路由時,就可以實現路由備份。

1、負載分擔

路由器支持多路由模式,即允許配置多條目的地相同且優先級也相同的路由。當到達同一目的地存在同一路由協議發現的多條路由時,且這幾條路由的開銷值也相同,那麼就滿足負載分擔的條件。

當實現負載分擔時,路由器根據五元組(源地址、目的地址、源端口、目的端口、協議)進行轉發,當五元組相同時,路由器總是選擇與上一次相同的下一跳地址發送報文。當五元組不同時,路由器會選取相對空閒的路徑進行轉發。

IP路由基礎理論知識詳解(二)

圖1 負載分擔組網圖

如上圖1所示,RouterA已經通過接口GE1/0/0轉發到目的地址10.1.1.0/24的第1個報文P1,隨後又需要分別轉發報文到目的地址10.1.1.0/24和10.2.1.0/24,其轉發過程如下:

當轉發到達10.1.1.0/24的第2個報文P2時,發現此報文與到達10.1.1.0/24的第1個報文P1的五元組一致。所以之後到達該目的地的報文都從GE1/0/0轉發。

當轉發到達10.2.1.0/24的第1個報文P1時,發現此報文與到達10.1.1.0/24的第1個報文P1的五元組不一致。所以選取從GE2/0/0轉發,並且之後到達該目的地的報文都從GE2/0/0轉發。

2、路由備份

路由備份功能,可以提高網絡的可靠性。用戶可以根據實際情況,配置到同一目的地的多條路由,其中一條路由的優先級最高,作為主路由,其餘的路由優先級較低,作為備份路由。

正常情況下,路由器採用主路由轉發數據。當主鏈路出現故障時,主路由變為非激活狀態,路由器選擇備份路由中優先級最高的路由轉發數據。這樣,也就實現了主路由到備份路由的切換。當主鏈路恢復正常時,由於主路由的優先級最高,路由器重新選擇主路由來發送數據。這樣,就實現了從備份路由回切到主路由。


分享到:


相關文章: