本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案將說明Cisco IOS的方式?使用Cisco Express Forwarding時,軟體會跨多個並行連結實施第3層負載平衡。
本文檔假設瞭解思科快速轉發的兩種資料結構。
轉送資訊庫(FIB)
鄰接表
請參閱本文檔的「相關資訊」部分,瞭解思科快速轉發操作概述。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您在即時網路中工作,請確保在使用任何命令之前瞭解其潛在影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
IP交換是Cisco IOS用來透過路由器轉送封包的內部機制。可用的機制包括進程交換、快速交換和思科快速轉發。取決於使用三種機制中的哪一種來交換大部分資料包,會影響整體系統效能和負載平衡。
IP交換機制支援兩種一般模式:按資料包和按目的地。下表概述了這兩種模式的優缺點。
每個目標 | 每個資料包 | |
---|---|---|
IP交換機制 | 每個目的地的快速交換和思科快速轉發。 | 每個資料包的過程交換和思科快速轉發。 |
優勢 | 透過快速交換,即使有多條路徑可用,也可保證指定目的地的封包採用相同的路徑。使用Cisco快速轉發交換時,即使有多個路徑可用,也可保證給定源 — 目標主機對的資料包採用相同的路徑。目的地為不同對的流量往往會採用不同的路徑。 | 採用每資料包負載均衡的路徑利用情況良好,因為每資料包負載均衡允許路由器通過路徑傳送連續的資料包,而不考慮單個主機或使用者會話。它使用輪詢方法來確定每個資料包到達目的地所採用的路徑 |
缺點 | 使用快速交換時,每個目的地的交換可能導致負載分配不均,因為發往一個目的地的資料包總是遵循相同的路徑。Cisco快速轉發交換可能會導致分配不均,造成少量的源 — 目標對。每個目標的負載均衡取決於流量的統計分佈;隨著源 — 目標對數量的增加,負載共用變得更有效。 | 指定來源 — 目的地主機對的封包可能採用不同的路徑,這可能導致封包重新排序。對於IP語音(VoIP)和其他需要順序傳送的流,不建議這樣做。 |
負載均衡描述路由器通過多條路徑將資料包傳輸到目標IP地址(也稱為IP字首)的能力。
在討論負載平衡時,我們首先需要定義以下術語。
字詞 | 定義 |
---|---|
首碼 | 描述目的IP網路,例如192.16.10.0/24。Cisco IOS使用從使用動態路由協定交換消息或手動配置靜態路由獲得的資訊將目的IP字首新增到路由表。 |
路徑 | 描述到達目標字首的有效路由。Cisco IOS為每個路徑分配一個開銷。到達目的地首碼的一組活動路徑可能具有相等或不相等的成本。 |
會話 | 描述兩個IP節點之間的單向通訊流。會話中的所有資料包使用相同的源IP地址和目標IP地址。 |
有關其他資訊,請參閱負載平衡如何工作?
Cisco快速轉發使用IP路由表中的路徑資訊來平衡多條鏈路上的流量。因此,確認正確的Cisco Express Forwarding負載均衡從確認IP路由表的內容開始。
在下面的拓撲中,兩台路由器(路由器A和路由器B)通過三個串列介面採用高級資料鏈路控制(HDLC)封裝進行背對背連線。
路由器A | 路由器B |
---|---|
interface Ethernet 0 ip address 192.168.20.1 255.255.255.0 ! interface Serial1 ip address 10.10.10.1 255.255.255.0 ! interface Serial2 ip address 20.20.20.1 255.255.255.0 ! interface Serial3 ip address 30.30.30.1 255.255.255.0 ip ospf cost 100 ! router ospf 1 network 10.10.10.0 0.0.0.255 area 0 network 20.20.20.0 0.0.0.255 area 0 network 30.30.30.0 0.0.0.255 area 0 network 192.168.20.0 0.0.0.255 area 0 |
interface Serial1 ip address 10.10.10.2 255.255.255.0 clockrate 2000000 ! interface Serial2 ip address 20.20.20.2 255.255.255.0 clockrate 148000 ! interface Serial3 ip address 30.30.30.2 255.255.255.0 ip ospf cost 100 clockrate 148000 router ospf 1 network 10.10.10.0 0.0.0.255 area 0 network 20.20.20.0 0.0.0.255 area 0 network 30.30.30.0 0.0.0.255 area 0 maximum-paths 1 |
讓我們看一下路由器B如何選擇一條或多條路徑來到達路由器A的乙太網介面IP網路192.168.20.0。
預設情況下,開放最短路徑優先(OSPF)支援到達目的地的四條等價路徑。在此案例中,路由器B的maximum-paths設定為1。因此,路由器B會根據它先接收的路徑,從可能的相等路徑中選擇一路徑。路由器B首先選擇Serial 2作為通往192.168.20.0網路的單條路徑。使用show ip cef和show ip route命令檢視當前路徑集。
RouterB#show ip cef 192.168.20.0 192.168.20.0/24, version 59, cached adjacency to Serial2 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies next hop 20.20.20.1, Serial2 valid cached adjacency RouterB#show ip route 192.168.20.0 Routing entry for 192.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 20.20.20.1 on Serial2, 00:03:58 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:03:58 ago, via Serial2 Route metric is 74, traffic share count is 1
在OSPF下使用maximum-paths命令允許路由表包含多條路徑。OSPF僅允許等價負載均衡。要配置非等價負載共用,請將增強型內部網關路由協定/內部網關路由協定(EIGRP/IGRP)配置為您的內部網關協定(IGP)。 請參閱不等價路徑負載平衡(方差)如何在IGRP和EIGRP中工作?以獲取更多資訊。
RouterB(config)#router ospf 1 RouterB(config-router)#maximum-paths ? <1-6> Number of paths RouterB(config-router)#maximum-paths 3
使用show ip route命令以確認路由表包含通往192.168.20.0的兩個路徑。
RouterB#show ip route 192.168.20.0 Routing entry for 192.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 10.10.10.1 on Serial1, 00:00:11 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:00:11 ago, via Serial2 Route metric is 74, traffic share count is 1 10.10.10.1, from 204.204.204.1, 00:00:11 ago, via Serial1 Route metric is 74, traffic share count is 1 !--- The route metric is 74 for both paths.
雖然我們將OSPF配置為支援三個等價路徑,但show ip route的輸出中只顯示兩個活動路徑。我們可以使用show ip ospf interface命令來確定原因。串列3的成本高於串列1和串列2,因此兩者不相等。
RouterB#show ip ospf interface s1 Serial1 is up, line protocol is up Internet Address 10.10.10.4/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64 RouterB#show ip ospf interface s2 Serial2 is up, line protocol is up Internet Address 20.20.20.2/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 64 RouterB#show ip ospf interface s3 Serial3 is up, line protocol is up Internet Address 30.30.30.2/24, Area 0 Process ID 1, Router ID 100.100.100.1, Network Type POINT_TO_POINT, Cost: 100
使用show run命令確認是否使用ip ospf cost 100 命令配置了Serial 3。使用no ip ospf cost 100子介面命令將其從配置中刪除,並使所有三條串列鏈路上的開銷相等。
RouterB#show run interface s3 Building configuration... Current configuration: ! interface Serial3 ip address 30.30.30.2 255.255.255.0 no ip directed-broadcast ip ospf cost 100 ip ospf interface-retry 0
show ip route命令現在顯示通往192.168.20.0網路的三個等價路徑。
RouterB#show ip route 192.168.20.0 Routing entry for 192.168.20.0/24 Known via "ospf 1", distance 110, metric 74, type intra area Redistributing via ospf 1 Last update from 10.10.10.1 on Serial1, 00:00:01 ago Routing Descriptor Blocks: * 20.20.20.1, from 204.204.204.1, 00:00:01 ago, via Serial2 Route metric is 74, traffic share count is 1 30.30.30.1, from 204.204.204.1, 00:00:01 ago, via Serial3 Route metric is 74, traffic share count is 1 10.10.10.1, from 204.204.204.1, 00:00:01 ago, via Serial1 Route metric is 74, traffic share count is
現在,我們來看看Cisco Express Forwarding負載均衡如何使用路由表中的資訊來轉發資料包。
Cisco Express Forwarding通過使用負載共用表實現負載均衡。與Cisco路由器上的所有其它負載平衡解決方案一樣,負載均衡決策是在出站介面上做出的。與其他交換方法不同,思科快速轉發根據路徑的源地址和目的地址跟蹤路徑。為簡化此過程,您可以說該路徑是一個IP會話,並且每個會話在邏輯上都被標識為一個唯一的源 — 目標地址對。
為了瞭解負載平衡如何發生,您必須首先知道這些表如何關連。思科快速轉發表指向16個雜湊桶(負載共用表),這些雜湊桶指向並行路徑的鄰接表。有關詳細資訊,請參閱思科快速轉發負載平衡內部機制部分。每個要交換的資料包都拆分為源地址和目的地址對,並根據負載共用表進行檢查。
註:Cisco Express Forwarding交換有兩種主要型別:按目的地和按資料包。如果兩種型別都在路由器上使用,則每種型別都有自己的負載共用表。
根據目的地負載平衡,路由器可使用多個路徑來實現負載共用。啟用Cisco Express Forwarding時,預設情況下會啟用按目標負載平衡,而且它是大多數情況下首選的負載均衡方法。由於每個目標的負載均衡取決於流量的統計分佈,因此隨著源 — 目標對數量的增加,負載共用會變得更加有效。
依照封包負載平衡,路由器可以通過路徑傳送連續資料封包,而不考慮個別主機或使用者作業階段。它使用輪詢方法來確定每個資料包到達目的地所採用的路徑。每個資料包的負載平衡可確保跨多個鏈路的平衡。使用每資料包負載均衡的路徑利用率良好,但給定源 — 目標主機對的資料包可能採用不同的路徑,這可能導致資料包重新排序。因此,對於某些型別的資料流量(例如VoIP),每個資料包的負載平衡是不合適的,這些流量取決於資料包是否按順序到達目的地。使用每資料包負載均衡有助於確保單個源 — 目標對的路徑不會過載。
使用ip load-sharing命令在按資料包和按目標方法之間更改。
7200-1.3(config)#interface fast 0/0 7200-1.3(config-if)#ip load-sharing ? per-destination Deterministic distribution per-packet Random distribution 7200-1.3(config-if)#ip load-sharing per-packet
使用show cef interface命令確認您的更改。
7200-1.3#show cef interface fast 0/0 FastEthernet0/0 is up (if_number 3) Corresponding hwidb fast_if_number 3 Corresponding hwidb firstsw->if_number 3 Internet address is 172.16.81.13/24 ICMP redirects are always sent Per packet load-sharing is enabled IP unicast RPF check is disabled Inbound access list is not set Outbound access list is not set IP policy routing is disabled Hardware idb is FastEthernet0/0 Fast switching type 1, interface type 18 IP CEF switching enabled IP Feature Fast switching turbo vector IP Feature CEF switching turbo vector Input fast flags 0x0, Output fast flags 0x0 ifindex 1(1) Slot 0 Slot unit 0 VC -1 Transmit limit accumulator 0x0 (0x0) IP MTU 1500
讓我們首先分解Cisco Express Forwarding負載均衡背後的內部機制。
每個會話(請參閱上表)都分配給一個活動路徑。
作業階段到路徑指派是使用取得來源和目的地IP位址的雜湊函式,以及在Cisco IOS的近期版本中,使用唯一的雜湊ID來完成,該雜湊ID會在端對端路徑上隨機化指派。
活動路徑在內部被分配到16個雜湊桶中的多個。路徑到儲存段分配隨負載平衡的型別和活動路徑的數量而變化。
雜湊函式的結果用於選擇其中一個啟用的儲存段,從而選擇會話使用的路徑。
對於路由器轉送的所有作業階段,每個作用中路徑會傳送相同數量的作業階段。
讓我們看一下這些Cisco快速轉發內部機制的示例。
使用maximum-paths命令可將目標字首的活動路徑數量減少為兩個。
RouterB(config)#router ospf 1 RouterB(config-router)#maximum-paths 2
使用show ip cef {prefix} internal 命令檢視路徑到桶的分配。
RouterB#show ip cef 192.168.20.0 internal 192.168.20.0/24, version 66, per-destination sharing 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency 0 packets, 0 bytes switched through the prefix Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1) !--- The load distribution line summarizes how each path is !--- assigned to the hash buckets. Hash OK Interface Address Packets 1 Y Serial2 point2point 0 2 Y Serial3 point2point 0 3 Y Serial2 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 0 6 Y Serial3 point2point 0 7 Y Serial2 point2point 0 8 Y Serial3 point2point 0 9 Y Serial2 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial3 point2point 0 13 Y Serial2 point2point 0 14 Y Serial3 point2point 0 15 Y Serial2 point2point 0 16 Y Serial3 point2point
16個雜湊儲存桶的設定取決於負載均衡的型別和活動路徑的數量。簡單的例子是路徑個數偶數。16個儲存桶均填充有活動路徑。如果16不能被活動路徑的數量整除,則表示其餘部分的最後幾個儲存段將被禁用。下表顯示了雜湊儲存桶如何查詢兩個和三個活動路徑。
儲存段/路徑 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
3 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | x |
在下面的示例中,我們有三個到達目標的路徑。請注意思科快速轉發如何刪除雜湊桶16,以及如何將三個串列鏈路平均分配到雜湊桶1到15。
RouterB#show ip cef 192.168.20.0 interface 192.168.20.0/24, version 64, per-destination sharing 0 packets, 0 bytes via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) !--- The active paths are assigned to hash buckets in a !--- round-robin pattern. Hash OK Interface Address Packets 1 Y Serial2 point2point 0 2 Y Serial3 point2point 0 3 Y Serial1 point2point 0 4 Y Serial2 point2point 0 5 Y Serial3 point2point 0 6 Y Serial1 point2point 0 7 Y Serial2 point2point 0 8 Y Serial3 point2point 0 9 Y Serial1 point2point 0 10 Y Serial2 point2point 0 11 Y Serial3 point2point 0 12 Y Serial1 point2point 0 13 Y Serial2 point2point 0 14 Y Serial3 point2point 0 15 Y Serial1 point2point 0 !--- Hash bucket 16 has been removed.
注意:雖然為目標選擇了單一路徑,但每個目標的思科快速轉發和快速交換機制在選擇路徑的方式上有所不同。Cisco快速轉發同時考慮源IP地址和目的IP地址,而快速交換僅考慮目的IP地址。
使用以下步驟驗證路由器上的Cisco Express Forwarding負載平衡。
確認已在路由器上全域性啟用思科快速轉發。
S3-4K-2#show ip cef %CEF not running Prefix Next Hop Interface !--- This output shows Cisco Express Forwarding is not enabled. !--- Use ip cef command in global configuration to enable it.
確認在特定出站介面上啟用了按資料包或按目標交換。預設值為每個目標。
RouterA#show cef interface s1 Serial1 is up (if_number 3) Internet address is 10.10.10.1/24 ICMP redirects are always sent Per packet loadbalancing is disabled IP unicast RPF check is disabled Inbound access list is not set Outbound access list is not set Interface is marked as point to point interface Hardware idb is Serial1 Fast switching type 4, interface type 40 IP CEF switching enabled !--- Cisco Express Forwarding is enabled on the interface. IP CEF Fast switching turbo vector Input fast flags 0x0, Output fast flags 0x0 ifindex 5(5) Slot 0 Slot unit 1 VC -1 Transmit limit accumulator 0x0 (0x0) IP MTU 1500
使用show ip route命令確認路由表和Cisco快速轉發表包含所有並行路徑。
RouterB#show ip route 192.168.20.0 Routing entry for 192.168.20.0/32, 1 known subnets O 192.168.20.1 [110/65] via 20.20.20.1, 00:06:54, Serial1 [110/65] via 10.10.10.1, 00:06:54, Serial2 [110/65] via 30.30.30.1, 00:06:54, Serial3
使用show ip cef命令檢查Cisco快速轉發FIB。
RouterB#show ip cef 192.168.20.0 192.168.20.0/24, version 18, per-destination sharing 0 packets, 0 bytes via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes RouterB#show ip cef 192.168.20.0 internal 192.168.20.0/24, version 18, per-destination sharing 0 packets, 0 bytes via 30.30.30.1, Serial3, 0 dependencies traffic share 1 next hop 30.30.30.1, Serial3 valid adjacency via 20.20.20.1, Serial2, 0 dependencies traffic share 1 next hop 20.20.20.1, Serial2 valid adjacency via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency 0 packets, 0 bytes switched through the prefix tmstats: external 0 packets, 0 bytes internal 0 packets, 0 bytes Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) Hash OK Interface Address Packets 1 Y Serial3 point2point 0 2 Y Serial2 point2point 0 3 Y Serial1 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 0 6 Y Serial1 point2point 0 7 Y Serial3 point2point 0 8 Y Serial2 point2point 0 9 Y Serial1 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial1 point2point 0 13 Y Serial3 point2point 0 14 Y Serial2 point2point 0 15 Y Serial1 point2point 0
註:上面的負載共用表顯示了負載分佈0 1 2 0 1 2 。.,且每個路由的流量共用為1。這表示在三條等價路由之間進行等價的每目標負載共用。
檢查Cisco Express Forwarding鄰接關係。
RouterB#show adjacency detail Protocol Interface Address IP Serial1 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31 IP Serial2 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31 IP Serial3 point2point(11) 0 packets, 0 bytes 0F000800 CEF expires: 00:02:31 refresh: 00:00:31
確認在所有出站介面上配置了預期的Cisco快速轉發負載均衡機制。
RouterB#show ip cef 192.168.20.0 192.168.20.0/24, version 89, per-destination sharing 0 packets, 0 bytes via 10.10.10.1, Serial1, 0 dependencies traffic share 1 next hop 10.10.10.1, Serial1 valid adjacency [output omitted]
啟用雜湊桶記帳,以收集統計資訊,以便更好地瞭解您網路中的思科快速轉發模式。例如,您可能希望收集資訊,例如交換到目的地的資料包數和位元組數,或者交換到目的地的資料包數。使用以下命令:
router(config)# ip cef accounting load-balance-hash
通過觀察Packet欄位下的值來驗證資料包流。
RouterB#show ip cef 192.168.20.0 internal [...] Load distribution: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 (refcount 1) Hash OK Interface Address Packets 1 Y Serial point2point 0 2 Y Serial2 point2point 0 3 Y Serial1 point2point 0 4 Y Serial3 point2point 0 5 Y Serial2 point2point 35 6 Y Serial1 point2point 0 7 Y Serial3 point2point 0 8 Y Serial2 point2point 60 9 Y Serial1 point2point 0 10 Y Serial3 point2point 0 11 Y Serial2 point2point 0 12 Y Serial1 point2point 0 13 Y Serial3 point2point 0 14 Y Serial2 point2point 30 15 Y Serial1 point2point 0
125個封包通過序列2。如果使用ping產生流量,請確保ping封包必須傳輸Cisco快速轉送交換路由器。換句話說,ping封包必須來自一個Cisco Express Forwarding-switched介面,且必須是Cisco Express Forwarding-switched,並從另一個Cisco Express Forwarding-switched介面離開。
注意:隨著源 — 目標對數量的增加,每個目標的負載共用會變得更有效。
將流量傳送到首碼時,請擷取show interface指令的多項輸出。分析「txload」和「rxload」值。(某些介面顯示一個「負載」值,該值同時考慮傳送和接收)。 雖然每個資料包的負載平衡在資料包數量上提供均勻分佈,但並行鏈路的速率可能略有差異,具體取決於資料包的大小。
Serial1/0:0 is up, line protocol is up reliability 255/255, txload 10/255, rxload 3/255 Serial1/1:0 is up, line protocol is up reliability 255/255, txload 18/255, rxload 3/255
使用Cisco Express Forwarding per-destination負載均衡,您可以使用以下命令確定將會話分配到哪個路徑。新增關鍵字internal以顯示使用了哪個雜湊儲存桶。
show ip cef exact-route {source-ip-address} {dest-ip-address} [internal] RouterB# show ip cef exact-route 50.50.50.2 192.168.20.1 internal 50.50.50.2 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 4 from 15, total 3 paths RouterB# show ip cef exact-route 5.5.5.1 192.168.20.1 internal 5.5.5.1 ->192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 7 from 15, total 3 paths RouterB# show ip cef exact-route 6.6.6.1 192.168.20.1 internal 6.6.6.1 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 7 from 15, total 3 paths RouterB# show ip cef exact-route 8.8.8.1 192.168.20.1 internal 8.8.8.1 -> 192.168.20.1 : Serial9/0 (next hop 20.20.20.1) Bucket 13 from 15, total 3 paths
如果輸出不均勻,請考慮以下因素:
遍歷並行鏈路的唯一源地址和目標地址對或會話數。
每個會話中的資料包數量和大小。一個會話是否包含大量資料包?每個目標負載均衡取決於流量的統計分佈,並且隨著源 — 目標對數量的增加而變得更為有效。
當路由表更改調整到目標的活動路徑數時,Cisco Express Forwarding會更新show ip cef {prefix} internal命令輸出中出現的負載平衡結構。然後,Cisco Express Forwarding會將新到達的資料包與鄰接關係和相應的雜湊桶進行匹配。所選時段可能與以前使用的時段相同,也可能不同。
以下步驟描述在向目標字首更改活動路徑數後,Cisco快速轉發負載均衡資訊如何更新。
假設可通過兩條路徑到達目的地首碼。路徑1處於非活動狀態,路徑2處於活動狀態,並承載所有流量。
當路徑1再次可用時,它會提示IP路由重新收斂過程。
Cisco Express Forwarding現在可在兩條路徑上平衡負載,並且不會在路徑2上保留現有流量。這樣做會使路徑1處於未使用狀態。換句話說,思科快速轉發不會認為它可以在有效路徑上轉發會話的資料包,並且可能會根據選擇的雜湊桶為流選擇新的路徑。
在路由表發生更改後,思科快速轉發會刪除並重新構建將活動路徑分配給雜湊桶的負載平衡結構。在重建過程中,某些資料包可能會丟失,show ip cef {prefix} internal命令指示Load sharing information due for deletion。
router#show ip cef 10.10.128.0 int 10.10.128.0/28, version 63, per-destination sharing 0 packets, 0 bytes via 10.8.0.31, 0 dependencies, recursive next hop 10.8.2.49, POS0/0/0 valid adjacency Load sharing information due for deletion
通過思科錯誤ID CSCdm87127實施的更改可最大程度地減少預設0.0.0.0路由的活動路徑數更改期間的資料包丟失。具體來說,思科快速轉發現在分配一個包含空間的FIB條目,用於此路由的最大可能活動路徑。
四條路徑上的Cisco Express Forwarding負載均衡不相等。如需進一步的詳細資訊,請參閱CSCdm8756(僅限註冊客戶)。
在低於12.0(16)S的Cisco IOS版本中,輸入show ip cef exact-route命令可能會導致Cisco 12000系列網際網路路由器或Cisco 7500/RSP系列路由器中的路由處理器(RP)重新載入。當目的地首碼是遞回且路由器正在將負載共用到下一躍點時,會發生這種情況。如需進一步的詳細資訊,請參閱CSCdt80914(僅限註冊客戶),以解決此問題。
在6500系列平台中,不支援每個資料包的CEF負載均衡。這是因為硬體限制,目前只能進行按目標的負載均衡。因此,唯一的選擇是使用分散式多重連結點對點通訊協定(dMLPPP)或第4層流量負載共用。
在使用基於軟體的轉發的平台中,最初支援基於資料包的思科快速轉發負載平衡。此類平台包括2600、3600和7200系列。現在,在帶有NSE-1和10000系列的7200系列上,硬體支援使用並行快速轉發(PXF)進行每資料包負載均衡。在Catalyst 6000系列上,MSFC2上的Cisco IOS Cisco Express Forwarding ip load-sharing per-packet、ip cef accounting per-prefix和ip cef accounting non-recursive命令僅適用於MSFC2上處於Cisco Express Forwarding-switched軟體的流量。這些命令不會影響PFC2上或配備DFC的交換模組上硬體第3層交換的流量。如需詳細資訊,請參閱在Supervisor Engine 2上設定IP單點傳播第3層交換。
註:帶NSE-100處理器卡的Cisco 7300路由器不支援PXF中每個資料包的CEF負載均衡。PXF僅支援每個目標的負載均衡。但是,由於路由器的CLI中提供了配置命令,因此它們似乎得到了支援。此問題已更正,並記錄在Cisco錯誤ID CSCdx63389中。
在Catalyst系12000上,除引擎3和4外,所有第3層轉發引擎均提供每資料包負載均衡。每個線卡做出獨立的轉發決策。要檢視每個IP流的確切路由,請在使用基於硬體的Cisco Express Forwarding表的線卡上使用exec slot X show ip hardware-cef exact-route src dst 命令。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
10-Aug-2005 |
初始版本 |