日期:2015-06-03 点击: 关键词:交换机 负载均衡,交换机的负载均衡,思科交换机
Cisco Catalyst 交换机上的 EtherChannel 负载均衡:Fast EtherChannel 允许将多条物理快速以太网链路组合到一个逻辑通道中。这样便可在通道中的链路之间实现流量负载共享,还可以在通道中的一条或多条链路出现故障时提供冗余。Fast EtherChannel 可用于通过非屏蔽双绞线 (UTP) 配线或单模和多模光纤将 LAN 交换机、路由器、服务器和客户端互连在一起。本文档将 Fast EtherChannel、Gigabit EtherChannel、端口通道、通道和端口组统称为一个词: EtherChannel。本文档中的信息适用于所有这些EtherChannel。
本文档介绍通过使用 EtherChannel 在 Cisco Catalyst 交换机上实现负载均衡和冗余的概念。本文档还介绍端口聚合协议 (PAgP) 及 EtherChannel 对中继的支持。本文档未介绍如何在 Catalyst 交换机上配置 EtherChannel。有关如何在 Catalyst 交换机上配置 EtherChannel 的详细信息,请参考相关信息部分中的文档。
EtherChannel 可将以帧形式寻址的二进制模式的一部分缩减为一个选择通道中某一链路的数值,以便在通道的链路之间分发帧。EtherChannel 帧分发使用 Cisco 专有的散列算法。该算法是确定性算法;如果使用相同的地址和会话信息,则总是散列到通道中的同一端口。此方法可避免无序传送数据包。
Catalyst OS
在运行 Catalyst OS (CatOS) 的 Catalyst 6500/6000 交换机中,EtherChannel 可将多达八个配置兼容的端口的带宽聚合到一条逻辑链路中。使用软件版本 6.2(1) 及更低版本时,6 插槽和 9 插槽 Catalyst 6500 系列交换机最多可支持 128 个 EtherChannel。在软件版本 6.2(2) 及更高版本中,生成树功能可处理端口 ID。因此,对于 6 插槽或 9 插槽机箱,可支持的最大 EtherChannel 数为 126;对于 13 插槽机箱,可支持的最大 EtherChannel 数为 63。所有模块(包括备用 Supervisor 引擎上的那些模块)上的所有以太网端口都支持 EtherChannel,不要求端口连续或位于同一模块中。每个 EtherChannel 中的所有端口的速度必须相同。负载均衡策略(帧分发)可以基于 MAC 地址(第 2 层 [L2])、IP 地址(第 3 层 [L3])或端口号(第 4 层 [L4])。如果发出以下命令,可以分别激活这些策略:set port channel all distribution{ip|mac|会话|ip-vlan-session} [source|目的地|both]。Session 关键字在Supervisor 引擎 2 和 Supervisor 引擎 720 上均受支持。ip-vlan-session 关键字仅在 Supervisor 引擎 720 上受支持。若要根据 IP 地址、VLAN 和第 4 层流量指定帧分发方法,请使用此关键字。
如果数据包不属于所选类别,请考虑下一个较低级别的类别。如果硬件无法支持您已选择的帧分发方法,则会显示一条 Feature not supported 错误消息。
Cisco 专有的散列算法计算出位于 0 到 7 范围内的值。根据此值,选择 EtherChannel 中的特定端口。端口设置包括一个掩码,它指示端口在传输时接受哪些值。如果单个 EtherChannel 中具有最大数量的端口(即八个端口),则每个端口只接受一个值。如果 EtherChannel 中有四个端口,每个端口接收两个值,依此类推。下表按 EtherChannel 中的端口数,列出每个端口接受值的比率:
注意:此表只列出特定端口所接受的值的数量,这是由该散列算法计算得出的。您不能控制特定流量使用的端口。只能通过可导致最大多样性的帧分发方法来影响负载均衡。
注意:该散列算法无法被配置或更改,以均衡 EtherChannel 中各端口之间的流量负载。
注意:在运行 Cisco IOS 软件的 Cisco Catalyst 6500/6000 系列交换机中也执行这一相同的Cisco 专有算法。
因此,实质上只有在端口通道中有两个、四个或八个端口时,才能实现理想的负载均衡,即使使用随机地址也是如此。
若要检查帧分配策略,请发出 show port channel mod/port info 命令。在版本 6.1(x) 及更高版本中,可以根据帧分配策略确定端口通道中要用于转发流量的端口。用于确定这一点的命令是:show channel hash channel-id{src_ip_addr|dest_ip_addr|src_mac_addr|dest_mac_addr|src_port|dest_port} [dest_ip_addr|dest_mac_addr|dest_port]。
下面列举了一些示例:
1. Console> (enable) showchannel hash 865 10.10.10.1 10.10.10.2
2. Selected channel port: 1/1
3. Console> (enable) showchannel hash 865 00-02-fc-26-24-94
4. 00-d0-c0-d7-2d-d4
5.
6. !--- This command should be on one line.
7.
8. Selected channel port: 1/2
Cisco IOS
运行Cisco IOS系统软件软件支持最多64 EtherChannel的Catalyst 6500/6000交换机。在 Catalyst 6500/6000 系列交换机内的任何模块上,都可以构建一个具有多达 8 个配置兼容的 LAN 端口的 EtherChannel。每个 EtherChannel 中所有 LAN 端口的速度都必须相同,并且所有这些端口都必须配置为第 2 层或第 3 层 LAN 端口。
运行 Cisco IOS 系统软件的 Catalyst 6500/6000 交换机使用 Cisco 专有的散列算法。此算法将在 Catalyst OS 部分中进行说明。
EtherChannel 负载均衡可以使用 MAC 地址、IP 地址或者带 Policy Feature Card 2 (PFC2) 的第 4 层端口号以及源模式和/或目标模式。所选模式适用于在该交换机上配置的所有 EtherChannel。请使用可在配置中提供最大多样性的选项。例如,如果通道上的流量仅流向单个 MAC 地址,则使用目标 MAC 地址会导致每次都在通道中选择同一链路。使用源地址或 IP 地址可获得更好的负载均衡。若要配置负载均衡,请发出全局配置命令 port-channel load-balance {src-mac|dst-mac|src-dst-mac|src-ip|dst-ip|src-dst-ip|src-port|dst-port|src-dst-port|mpls}。
注意:端口信道负载均衡src dst混合IP波尔特命令更改在Supervisor PFC/DFC/CFC的硬件转发,并且能导致中断流量几秒钟分钟,直到新的散列算法计算并且开始相应地转发流量。在非生产小时,在散列算法上的所有变化推荐。
若要检查帧分配策略,请发出 show etherchannel load-balance 命令。您可以根据帧分配策略确定 EtherChannel 用哪个接口来转发流量。若要确定这一点,请发出 remote login switch 命令以远程登录到交换机处理器 (SP) 控制台。然后,发出以下命令:test etherchannelload-balance interface port-channel number {ip|l4port|mac} [source_ip_add|source_mac_add|source_l4_port][dest_ip_add|dest_mac_add|dest_l4_port]。
下面列举了一些示例:
1. 6509#remote login switch
2. Trying Switch ...
3. Entering CONSOLE forSwitch
4. Type "^C^C^C"to end this session
5.
6. 6509-sp#testetherchannel load-balance interface port-channel 1
7. ip 10.10.10.2 10.10.10.1
8.
9. !--- This command should be on one line.
10.
11. Would select Gi6/1 of Po1
12.
13. 6509-sp#
14. 6509#remote loginswitch
15. Trying Switch ...
16. Entering CONSOLE for Switch
17. Type "^C^C^C" to end this session
18.
19. 6509-sp#test etherchannel load-balanceinterface port-channel 1 mac
20. 00d0.c0d7.2dd4 0002.fc26.2494
21.
22. !--- Thiscommand should be on one line.
23.
24. Would select Gi6/1 of Po1
25.
26. 6509-sp#
限制
此部分包含适用于 EtherChannel 的使用指南、限制和故障排除信息:
1. WS-X6548-GE-TX、WS-X6548V-GE-TX、WS-X6148-GE-TX 和 WS-X6148V-GE-TX 模块对 EtherChannel 进行了限制。这些模块的所有配置(10、100 和 1000 Mbps 速度)均支持 EtherChannel,但在配置这些模块时需要注意以下这些超额订阅情况:
a. 在这些模块上,有一个来自端口 ASIC 的单条 1 千兆以太网上行链路,该链路支持八个端口。就 EtherChannel 而言,来自链路捆绑中所有链路的数据都会转入端口 ASIC,即使这些数据发往另一条链路也是如此。这些数据会消耗该 1 千兆以太网链路中的带宽。就这些模块而言,EtherChannel 上所有数据的总和不能超过 1 千兆。
在将此模块的端口添加到 EtherChannel 时,您会收到一条指出最大吞吐量的消息。
C6500> (enable) setport channel 3/5,4/5 mode on
Adding a WS-X6148-GE-TXport to a channel limits the channel's
bandwidth to a maximum of1Gig throughput
Port(s) 3/5,4/5 channelmode set to on.
C6500> (enable)
b. 此外,如果有四个以 100 Mbps 运行的 WS-X6148-GE-TX 或 WS-X6148V-GE-TX 模块,这些模块共有 48 个 EtherChannel,每个通道均有 4 个端口(每个模块一个端口),也可能会遇到超额订阅问题。
c. 如果对WS-X6548-GE-TX 或 WS-X6548V-GE-TX 模块使用交换矩阵模块,该配置就可以避免超额订阅问题。交换矩阵模块接口可按EtherChannel 链路捆绑散列过滤数据包,然后将其分发到适当的模块。但是,每个模块在链路捆绑中只能有一个端口。如果 WS-X6548-GE-TX 或 WS-X6548V-GE-TX 模块在 EtherChannel 链路捆绑中有多个端口,就会开始出现超额订阅问题。
注意:使用 Catalyst OS 软件版本 8.2(1) 时,由于有了固件增强功能,因此WS-X6548-GE-TX 和 WS-X6548V-GE-TX 模块不会再出现上述超额订阅问题。
2. 有关其他 10/100/1000 以太网交换模块和千兆以太网交换模块的列表,请参阅以太网和千兆以太网交换模块 - Catalyst 6500 系列交换机模块指南。
3. 如果启用 UplinkFast,则4 端口 10/100 EtherChannel 的 EtherChannel 端口路径开销(可使用 set channel cost 命令设置)会低于并行千兆以太网链路的端口路径开销。这种情况会导致 4 端口 EtherChannel 转发速度变慢,还会导致千兆以太网链路阻塞。解决方法是在启用 UplinkFast 后明确为该通道配置较高的开销。Cisco Bug ID CSCds22895(仅限注册用户)可跟踪此问题。
4. WS-X6148A-GE-TX 交换模块有 48 个超额订阅的端口,这些端口分为六组,每组各有八个端口:
o 端口 1、2、3、4、5、6、7、8
o 端口 9、10、11、12、13、14、15、16
o 端口 17、18、19、20、21、22、23、24
o 端口 25、26、27、28、29、30、31、32
o 端口 33、34、35、36、37、38、39、40
o 端口 41、42、43、44、45、46、47、48
各组中的八个端口使用公共线路,这可以有效地将该组多路复用到与内部交换矩阵之间的单条、无阻塞、全双工千兆以太网连接。就包含八个端口的各组而言,将对接收到的帧进行缓冲,然后再将其发送到通向内部交换矩阵的公共千兆以太网链路。如果端口收到的数据量开始超过缓冲区容量,则流控制将向远程端口发送暂停帧,以暂时停止数据流并防止帧丢失。
如果有任何一组收到的帧超过 1 Gbp 带宽,设备就会开始丢弃帧。这些丢弃操作不明显,因为这些帧是在内部 ASIC 而不是实际接口上丢弃的。这可能会导致设备出现低数据包吞吐量
如果需要更多吞吐量,请使用非超额订阅线路模块中的端口,或使用超额订阅线路模块中来自其他端口分组的端口。例如,如果线路模块有 48 个端口(分为八组),您可以对同一端口通道选择端口 1、9、17、25、33 和 41。
Cisco 建议您对接入层使用 61xx、63xx 和 64xx 模块,因为这些模块通常是超额订阅模块,并与背板交换总线之间始终只有一个总线连接。对于骨干网连接,建议您使用 65xx 或 67xx 模块,它们与交换矩阵之间始终有一个 8 GB 或 20 GB 专用连接。
Catalyst4500/4000 系列
Catalyst OS
在装有 CatOS(Supervisor 引擎 I 和 II)的 Catalyst 4500/4000 系列交换机中,您可以构建一个具有多达八个配置兼容的快速以太网或千兆以太网交换机端口的 EtherChannel。具体的 EtherChannel 组成视硬件而异。由于生成树功能可处理端口 ID,因此六插槽机箱的最大通道数为 126。此外,您还可以在 CatOS 版本 5.x 及更高版本中将 EtherChannel 配置为使用多个模块中的端口。EtherChannel 中所有端口的速度必须相同。
Catalyst 4500/4000 的 Catalyst OS 根据负载均衡使用 MAC 地址。EtherChannel 根据每个帧的源/目标 MAC 地址的低位,在通道的链路之间分发帧。帧分配方法是不可配置的。
Cisco IOS
装有 Cisco IOS 软件(Supervisor 引擎 II+ 及更高版本)的 Catalyst 4500/4000 系列交换机最多支持 64 个 EtherChannel。您可以在任何模块上和各模块之间构建一个具有多达八个配置兼容的以太网接口的 EtherChannel。每个 EtherChannel中所有接口的速度必须相同,并且所有这些接口必须配置为第 2 层或第 3 层接口。
EtherChannel 可将由帧形式的地址构成的二进制模式的一部分缩减为一个选择通道中某一链路的数值,以便在通道的链路之间均衡流量负载。EtherChannel 负载均衡可以使用 MAC 地址、IP 地址或者第 4 层端口号以及源模式和/或目标模式。请使用可在配置中提供最大多样性的选项。例如,如果通道上的流量仅流向单个 MAC 地址,则使用目标 MAC 地址会导致每次都在通道中选择同一链路。使用源地址或 IP 地址能可获得更好的负载均衡。若要配置负载均衡,请发出全局配置命令 port-channel load-balance{src-mac|dst-mac|src-dst-mac|src-ip|dst-ip|src-dst-ip|src-port|dst-port|src-dst-port}。必须全局配置负载均衡,并且不能按端口更改负载均衡选项。
注意:交换机使用源 MAC 地址和目标 MAC 地址的低位确定必须使用哪些链路来传输数据。因此,如果数据是从同一源接收的,也会使用 EtherChannel 的同一链路转发数据。
Catalyst 3750/3560 系列交换机在 EtherChannel 中最多可支持八个配置兼容的以太网接口。EtherChannel可在您的交换机与另一台交换机或主机之间提供高达 800 Mbps(Fast EtherChannel)或 8 Gbps(Gigabit EtherChannel)的全双工带宽。使用 Cisco IOS 软件版本 12.2(20)SE 及更低版本时,最大 EtherChannel 数为 12。使用 Cisco IOS 软件版本 12.2(25)SE 及更高版本时,最大 EtherChannel 数为 48。
EtherChannel 可将以帧形式寻址的二进制模式的一部分缩减为一个选择通道中某一链路的数值,从而在通道的链路之间均衡负载。EtherChannel 负载均衡可以使用 MAC 地址、IP 地址、源和/或目标地址。该模式适用于配置在交换机上的所有 EtherChannel。通过使用全局配置命令 port-channel load-balance{dst-ip|dst-mac|src-dst-ip|src-dst-mac|src-ip|src-mac},配置负载均衡和转发方法。
可以根据负载均衡方法确定要在 EtherChannel 中用于转发流量的接口。用于确定这一点的命令是:test etherchannel load-balance interfaceport-channel number {ip|mac} [source_ip_add|source_mac_add][dest_ip_add|dest_mac_add]。
负载均衡方法矩阵
以下矩阵综述了本文档介绍的负载均衡方法:
1对于3550系列交换机,当使用时源MAC地址转发,根据源和目的地IP地址的负载分配为路由的IP流量也启用。所有路由的 IP 流量均根据源和目标 IP 地址选择端口。
2对于运行Cisco IOS的6500系列交换机, MPLS第2层信息可能也用于负载均衡MPLS数据包。
什么是 PAgP?在哪里使用它?
PAgP 可帮助自动创建 EtherChannel 链路。在支持 EtherChannel 的端口之间发送 PAgP 数据包,以便协商通道的信息。在PAgP 中专门引入了一此限制。这些限制包括:
· PAgP 不能在为动态 VLAN 配置的端口上构建链路捆绑。PAgP 要求信道中的所有端口均属于同一VLAN 或均配置为中继端口。如果已存在一个链路捆绑,并要修改其中某一端口的 VLAN,则将修改该链路捆绑中的所有端口以匹配该 VLAN。
· PAgP 不会对以不同速度或端口双工运行的端口进行分组。如果在存在某一链路捆绑时速度和双工发生更改,则 PAgP 会更改该链路捆绑中所有端口的端口速度和双工。
· PAgP 模式包括 off、auto、desirable 和 on。只有 auto-desirable、desirable-desirable 和 on-on 组合才允许构建通道。如果位于通道一端的设备(例如路由器)不支持 PAgP,则位于另一个端的设备必须将 PAgP 设为 on。
目前以下交换机支持 PAgP:
· Catalyst 4500/4000
· Catalyst 5500/5000
· Catalyst 6500/6000
· Catalyst2940/2950/2955/3550/3560/3750
· Catalyst 1900/2820
以下交换机不支持 PAgP:
· Catalyst 2900XL/3500XL
· Catalyst2948G-L3/4908G-L3
· Catalyst 8500
以太网信道对 ISL/802.1q 中继的支持
您可以将 EtherChannel 连接配置为使用或不使用交换机内链路协议 (ISL)/IEEE 802.1Q 中继。在构建通道后,该通道中作为中继的任何端口的配置都会应用于该通道中的所有端口。配置相同的中继端口可以配置为 EtherChannel。您必须安装有所有 ISL 或所有 802.1Q;两者不能混用。ISL/802.1Q 封装(如果启用)独立于 Fast EtherChannel 的源/目标负载均衡机制执行。VLAN ID 不会对数据包使用的链路产生影响。ISL/802.1Q 只是让该中继属于多个 VLAN。如果未启用中继,则与 Fast EtherChannel 关联的所有端口必须属于同一 VLAN。
[交换机 负载均衡][交换机的负载均衡][思科交换机负载均衡][cisco交换机负载均衡]来源:互联网