目录

简介

先决条件

要求

使用的组件

背景信息

Catalyst 6500 系列交换机

Catalyst 4500 系列交换机

Catalyst 3750 系列交换机

潜在问题

简介

本文档介绍如何识别Cisco Catalyst 6500、4500和3750系列交换机上特定流量使用的EtherChannel成员链路。

先决条件

要求

思科建议您具备EtherChannel的基本知识。

使用的组件

本文档中的信息基于以下平台：Cisco Catalyst 6500、4500、2960、3750、3750G、3750X和3560系列交换机。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

EtherChannel负载均衡的工作方式是，交换机根据为流量类型配置的散列方法（负载均衡算法）分配0-7的散列结果。此哈希结果通常称为结果捆绑哈希(RBH)。

请注意，流数量取决于配置的负载均衡算法。下面是一个示例。

Source 192.168.1.1 (mac a.a.a ) sending a tcp stream to 172.16.1.1 ( mac b.b.b )

with a source tcp port of 50 and destination port 2000

Source 192.168.1.1 (mac a.a.a ) sending a tcp stream to 209.165.201.1 ( mac c.c.c )

with a source tcp port of 60 and destination 2000.

If configured load balancing algorithm is SRC_MAC

Then no of flows = 1

If configured load balancing algorithm is DST_MAC

Then no of flows = 2

If configured load balancing algorithm is DST_PORT

Then no of flows= 1

Catalyst 6500 系列交换机

1. 检查运行负载均衡算法。

2. 在交换机处理器(SP)中，输入show etherchannel load-balance。

6500#remote login sw

Trying Switch ...

Entering CONSOLE for Switch

Type "^C^C^C" to end this session

6500-sp#show etherchannel load-balance

EtherChannel Load-Balancing Configuration:

src-dst-ip

mpls label-ip

3. 查找为所需流之间的数据包选择的RBH值。

6500-sp#test etherchannel load-balance interface port-channel

在本例中，流量介于192.168.1.1到172.16.1.1之间，所讨论的端口通道为port-channel 1。根据步骤1的输出选择命令的属性。如果配置的负载均衡算法为src_ip，请为数据包192.1指定src-ip68.1.1。由于本示例中配置了src-dst ip负载均衡算法，因此该命令需要包括192.168.1.1到172.16.1.1。

6500-sp#test etherchannel load-balance int port-channel 1 ip 192.168.1.1 172.16.1.1

Computed RBH: 0x5

Would select Gi3/2 of Po1

4. 查找映射到RBH值的物理端口。（可选）

在Cisco IOS®的某些版本中，命令的输出不提供所选的物理接口。仅当步骤2中未生成出口接口信息时，才执行此步骤。

6500-sp#test etherchannel load-balance int port-channel 1 ip 192.168.1.1 172.16.1.1

Computed RBH: 0x5
切换到路由处理器控制台并输入命令show interface port-channel <num> etherchannel。查看与物理接口对应的Load列输出。将Load值转换为二进制（请参阅本示例）。

6500-sp#exit

[Connection to Switch closed by foreign host]

6500#show interface port-channel 1 etherchannel

Port-channel1   (Primary aggregator)

Age of the Port-channel   = 0d:01h:05m:54s

Logical slot/port   = 14/1          Number of ports = 2

HotStandBy port = null

Port state          = Port-channel Ag-Inuse

Protocol            =   LACP

Fast-switchover     = disabled

Ports in the Port-channel:

Index   Load   Port     EC state        No of bits

------+------+------+------------------+-----------

0     55     Gi3/1    Active    4

1     AA     Gi3/2    Active    4
此处，gi3/2的负载值为AA,gi3/1的负载值为55。

7654 3210

gig3/2 - AA - 1010 1010

---- ----

|      |

A      A

gi3/1 -  55 - 0101 0101

---- ----

|      |

5      5

For gi3/2 bits 1,3,5 and 7 are set. So RBH value of 1,3,5,and 7 chooses gi3/2.

For gi3/1 bits 0,2,4 and 6 are set. So RBH value of 0,2,4,and 6 chooses gi3/1.
输出说明为两个接口中的每个接口设置了四个位。因此，当EtherChannel中有两条链路时，每条链路获得使用的概率相等。

但是，当EtherChannel中有三条链路时，测试EtherChannel的输出如下所示：

6500#show interface port-channel 1 etherchannel

Port-channel1   (Primary aggregator)

Age of the Port-channel   = 0d:01h:05m:54s

Logical slot/port   = 14/1          Number of ports = 2

HotStandBy port = null

Port state          = Port-channel Ag-Inuse

Protocol            =   LACP

Fast-switchover     = disabled

Ports in the Port-channel:

Index   Load   Port     EC state        No of bits

------+------+------+------------------+-----------

0     49     Gi3/1    Active    3

1     92     Gi3/2    Active    3

2     24     Gi3/3    Active    2
此处，比特共享率为3:3:2。因此，与第三条链路相比，这两条链路的使用概率更高（在结尾的附加部分中更多）。

Catalyst 4500 系列交换机

1. 使用show etherchannel load-balance命令检查已配置的负载均衡算法。

2. 使用show platform software etherchannel port-channel 1 map命令查找出口接口。

4500#show platform software etherchannel port-channel 1 map ip 192.168.1.1

172.16.1.1

Map port for IP 192.168.1.1, 172.16.1.1 is Gi3/1(Po1)

NOTE: Software forwarded traffic uses Gi3/1(Po1)

Catalyst 3750 系列交换机

在Catalyst 3750系列交换机上，使用类似的8位散列算法。在此，即使EtherChannel中的链路数为2、4或8，流量分配也更为严重。用于检查port-channel中接口的命令：

test etherchannel load-balance interface port-channel

假设在3750（非默认）上，端口通道负载均衡算法配置为src-dst ip。 本示例显示如何识别从192.168.1.1到172.16.1.1的流量使用的链路。

3750(config)#port-channel load-balance src-dst-ip

3750#show etherchannel load-balance

EtherChannel Load-Balancing Configuration:

src-dst-ip

3750#test etherchannel load-balance interface port-channel 1 ip 192.168.1.1 172.16.1.1

Would select Gi3/1 of Po1

如果负载均衡算法基于MAC地址，则如果提供数据包的源MAC地址和目的MAC地址，则可以使用前面的命令。

潜在问题

以下是可能导致EtherChannel成员接口上流量分配不均的一些场景，以及优化负载均衡所需采取的步骤。

- 场景:如果EtherChannel中有两个流和两个物理接口，则一个流可能比另一个流更健谈。如果有五种流，其中一种最能说话，那么这种流可能会压垮其他流。此流选择的任何物理接口的利用率都高于其他物理接口。

- 解决方案：流量控制超级说话者。您需要从主机端查看。

- 场景:一个常见问题是您没有足够的流，并且大多数少量流都散列到同一物理接口。

- 解决方案：增加流数。尝试将散列算法更改为最适合流量的算法。

- 场景:当EtherChannel中有3、5、6或7条物理链路时，一些链路接收流量的概率会高于其他链路（根据分配给每个物理接口的散列位数），这可能导致流量分布不均。

- 解决方案：在EtherChannel中使用2、4或8个链路。