思科路由器的一個迷人之處,特别是對那些對路由不熟悉的人來說,在于路由器可以通過路由協議、手動配置和各種其它方法,選擇最佳路由。
在Cisco路由器裡建立和維護路由表涉及三個進程:
1、各種路由進程,實際上運行一個網絡(或路由)協議,如增強的内部網關路由協議(EIGRP)、邊界網關協議(BGP)、中間系統到中間系統(IS-IS)和開放式最短路徑優先(OSPF)。
2、路由表本身接收路由進程的信息,并且回複轉發進程的信息請求。
3、轉發進程需要路由表中的信息來做出數據包轉發決定。
構建路由表時的主要考慮事項為:
1 管理距離 - 這是路由來源的可信度度量。如果路由器從多個路由協議了解某個目的地,将對管理距離進行比較,為路由指定更低的管理距離。換句話說,它就是路由來源的可信程度。
2 權值---這是路由協議用于計算通過指定目的地的最佳路徑的一種測量方法,如果需要了解通過同一目的地的多條路徑。每種路由協議都使用一種不同的度量。
前綴長度
當每個路由進程接收更新和其他信息時,會選擇到任一指定目的地的最佳路徑,并嘗試将該路徑安裝到路由表。例如,如果EIGRP得知通往10.1.1.0/24的路徑,并确定此特定路徑是該目的地的最佳EIGRP路徑,會設法将已獲悉的路徑安裝到路由表。
路由器決定是否安裝由路由進程呈現的路由,取決于相關路由的管理距離。如果該路徑具有到該目的地的最短管理距離(與路由表中的其他路由比較)時,該路徑将被安裝在路由表中。如果這個路由不是具有最佳管理距離的路由,那麼該路由被拒絕。
為了更好地理解,讓我們看一個示例。假設路由器有四個路由進程正在運行:EIGRP、OSPF、RIP 和 IGRP。現在,通過這4道程序,獲知了到192.168.24.0/24網絡的各種路由,并且每個路由通過它的内部測量标準和程序選擇了它到該網絡的最佳路徑。
這四個進程企圖将它們到192.168.24.0/24的路由安裝到路由表中。每個路由進程都分配了一個管理距離,用來決定安裝哪個路由。
由于内部EIGRP路由具有最佳管理距離(管理距離越短,首選可能性越大),因此内部EIGRP路由安裝在路由表中。
備份路由
其他協議、RIP、IGRP和OSPF會對它們未安裝的路由産生什麼作用?如果首選路由發生故障,能從 EIGRP 了解到什麼?
Cisco IOS® 軟件通過二種途徑來解決此問題:第一種是讓每個路由進程嘗試定期安裝其最佳路由。如果大多數首選路由發生故障,下一條最佳路由(根據管理距離)會在下一次嘗試中成功。其他解決方案用于路由協議在路由表中安裝其路失敗的情形,如果最佳路徑失效,則報告路由表進程。
對于沒有它們自己的路由信息表的協議(例如IGRP),則使用第一種方法。每次IGRP接收路由更新時,它都嘗試在路由表裡安裝更新的信息。如果在路由表裡已經有一個到相同目的地的路由,則不能完成安裝嘗試。
對于擁有自己數據庫的路由信息的協議,例如EIGRP、IS-IS、OSPF、BGP和RIP,初始嘗試安裝路由失敗時,将注冊備份路由。如果路由表中安裝的路由由于某種原因而失敗,路由表維護進程将調用已經注冊了備份路由的每一個路由協議進程,并且要求它們将路由重新安裝到路由表中。如果有多個協議注冊了備份路由,将根據管理距離選擇首選路由。
調整管理距離
默認管理距離可能并不總是适合您的網絡;您可能希望調整它們,例如讓RIP路由優于IGRP 路由。說明如何調整管理距離之前,我們需要查看管理距離更改提示。
更改路由協議上的管理距離非常危險!更改默認距離有可能導緻網絡中出現路由環路和其他異常。我們建議您慎重更改管理距離。在進行此操作前,請務必反複考慮您進行操作的目的,以及操作産生的所有後果。
對于整個協議,更改距離相對容易;在路由進程的子配置模式中,使用 distance 命令可輕松配置距離。您還能夠更改路由的距離,這些距離隻能從某一些協議獲得,您隻能更改部分路由的距離。
對于靜态路由,ip route 命令發出後輸入距離,您便可以更改每條路由的距離:
ip route 網絡子網掩碼的下一跳距離
您不能一次性更改所有靜态路由的管理距離。
度量如何決定路由選擇進程
路由是根據路由協議的管理距離在路由表裡選擇并構建的。從路由協議獲知的管理距離最短的路由将安裝到路由表中。如果有多條路徑使用一個路由協議通往同一個目的地,那麼多條路徑則具有相同的管理距離,并且依據測量标準選擇最佳路徑。權值是與特定路由相關的值,從最主要到最次要的優先次序排列。用于确定度量的參數由于不同的路由協議而有所不同。帶有最低權值的路徑被選為最佳路徑,并安裝在路由表中。如果有多條帶有相等權值的路徑到達同一個目的地,将在這些相等成本的路徑上執行負載平衡。
前綴長度
請看另一個方案,了解路由器如何處理另一個常見情況:可變的前綴長度。再次假設路由器上有四個路由進程運行,并且每個進程已經接收了這些路由:
要将哪些路由安裝在路由表中?因為EIGRP内部路由有最佳的管理距離,假設第一個将安裝很具有吸引力。然而,由于這些路由中的每一個路由具有不同的前綴長度(子網掩碼),因此将這些路由的目的地視為不同目的地,全部安裝在路由表中。
讓我們看一下轉發引擎如何使用路由表中的信息來做出轉發決策。
做出轉發決定
請查看我們在路由表中安裝的三個路由,并查看在路由器上查找這三個路由的方法。
router# show ip route ....
D 192.168.32.0/26 [90/25789217] via 10.1.1.1
R 192.168.32.0/24 [120/4] via 10.1.1.2
O 192.168.32.0/19 [110/229840] via 10.1.1.3 ....
如果信息包到達指定到192.168.32.1的路由器接口,路由器會選擇哪一條路由?它取決于子網中的前綴長度或子網掩碼中的比特集數量。在轉發數據包時,較長的前綴總是優先于較短的前綴。
在這種情況下,被指定到192.168.32.1的信息包受控于10.1.1.1,因為192.168.32.1屬于192.168.32.0/26網絡(192.168.32.0到192.168.32.63)。它也屬于其他2個可用路由,但192.168.32.0/26具有路由表(26位與24或19位)中最長的前綴。
同樣,如果指定到192.168.32.100的信息包到達某個路由器接口,會轉發到10.1.1.2,因為192.168.32.100不屬于192.168.32.0/26 (192.168.32.0至192.168.32.63),但屬于192.168.32.0/24目的地(192.168.32.0至192.168.32.255)。它再一次進入192.168.32.0/19包括的範圍,但192.168.32.0/24有一個更長的前綴。
IP CLASSLESS
ip classless 配置命令在路由和轉發進程中的位置經常讓人困惑。實際上,ip classless 隻影響 IOS 中轉發進程的操作;它不會影響路由表的構建方式。如果沒有配置ip classless (使用 no ip classless 命令),路由器不會轉發信息包到超網。例如,我們再次在路由表中放置三條路由,并通過路由器路由信息包。
注意:如果超網或默認路由通過IS-IS或OSPF獲取,将忽略no ip classless 配置命令。在這種情況下,數據包交換行為就像已經配置了 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] via 10.1.1.1
S* 0.0.0.0/0 [1/0] via 10.1.1.3
切記172.30.32.0/24網絡包括172.30.32.0至172.30.32.255的地址,而172.30.32.0/20網絡包括172.30.32.0至172.30.47.255的地址,因此我們能夠通過此路由表設法轉換三個信息包,并查看結果。
這四種結果中,令人意外的是被丢棄的最後一個數據包。信息包丢棄的原因是其目的地,172.30.254.1位于已知主要網絡172.30.0.0/16内,但路由器不了解主要網絡内的該特定子網。
這就是有類路由的實質:如果了解主要網絡的某個部件,但主要網絡中的子網指定的信息是未知的,信息包将丢棄。
此規則最容易混淆的地方是:如果目的地主要網絡在路由表中根本不存在,路由器則隻能使用默認路由。
如圖所示,網絡遠程站點采用無路由協議和單連接與其他網絡相連,可能導緻網絡遠程站點出現問題。
遠程站點路由器的配置如下:
interface Serial 0
ip address 10.1.2.2 255.255.255.0
!
interface Ethernet 0
ip address 10.1.1.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.2.1
!
no ip classless
使用此配置,遠程站點的主機能夠到達互聯網中的目的地(通過10.x.x.x網雲),而不是10.x.x.x網雲中(公司網絡)的目的地。由于遠程路由器了解10.0.0.0/8網絡的某些部分、2個直接連接的子網,但不了解10.x.x.x的其他子網,因此假設這些其他子網不存在,并且丢棄目标為這些子網的信息包。
指定到互聯網的流量,沒有10.x.x.x地址範圍的目的地,因此可以通過默認路由進行适當路由。
在遠程路由器上配置 ip classless,允許路由器忽略其路由表中的網絡有類别邊界,并簡單路由到它可以找到的最長前綴匹配,從而解決該問題。
總結
總之,做出轉發決策實際上包括三組流程:路由協議、路由表、以及做出轉發決策并交換信息包的實際過程。下面是關于這三組流程的演示,包括它們之間的關系。
最長前綴匹配總是在實際已安裝在路由表中的路由中赢取,而赢取帶有最短管理距離的路由協議需要在路由表中安裝路由時
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!