使用 LACP 和每侧的两种不同算法帮助优化 LAG

网络工程 思科 转变 以太网 以太通道 端口通道
2021-07-07 23:43:20

我们在两个 cisco 交换机 (c3850<--->c4948) 之间有一个带有 LACP 的 4Gb (4x1G) LAG 中继,我注意到它没有进行适当的负载平衡。我发现 SW1 使用src-dst-ip算法,SW2 使用src-mac算法。这两种算法应该是一样的吗?

我应该使用的最佳负载平衡方法是什么?

我们的环境中有混合流量,包括 VoIP、TCP/UDP、每晚 SAN 备份等。

SW1:

SW1#show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-dst-ip

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source XOR Destination MAC address
  IPv4: Source XOR Destination IP address
  IPv6: Source XOR Destination IP address 

SW2:

SW2>show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-mac

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source MAC address
  IPv4: Source MAC address
  IPv6: Source MAC address

编辑:

注意:我们没有路由器,我们只有一个 L2 交换网络。我们在主干后面有很多服务器,所以我应该使用 src-dst-ip 吗?或 src-dst-mac ?

2个回答

我们没有路由器,我们只有 L2 交换网络。我们在主干后面有很多服务器,所以我应该使用 src-dsp-ip 吗?或 src-dst-mac ?

您需要权衡几个因素来确定在网络的不同位置使用哪种方法。不同的网络工程师会提出不同的建议。这确实导致了基于意见的答案,它可能更适合于讨论网络工程聊天

Cisco 提供了一些您应该了解的指南:

章节:配置 EtherChannel

负载平衡和转发方法

EtherChannel 通过将从帧中的地址形成的二进制模式的一部分减少为选择通道中的链路之一的数值,从而平衡通道中链路之间的流量负载。EtherChannel 负载平衡可以使用 MAC 地址或 IP 地址、源地址或目标地址,或源地址和目标地址。所选模式适用于交换机上配置的所有 EtherChannel。您可以使用port-channel load-balance全局配置命令来配置负载均衡和转发方法

使用源 MAC 地址转发时,当数据包转发到 EtherChannel 时,它们会根据传入数据包的源 MAC 地址分布在通道中的端口上。因此,为了提供负载均衡,来自不同主机的数据包使用通道中的不同端口,而来自同一主机的数据包使用通道中的相同端口。

对于目标 MAC 地址转发,当数据包被转发到 EtherChannel 时,它们会根据传入数据包的目标主机的 MAC 地址分布在通道中的端口上。因此,到达相同目的地的数据包通过同一个端口转发,而到达不同目的地的数据包在通道中的不同端口上发送。

通过源和目标 MAC 地址转发,当数据包转发到 EtherChannel 时,它们会根据源 MAC 地址和目标 MAC 地址分布在通道中的端口上。如果不清楚源 MAC 地址转发还是目的 MAC 地址转发更适合特定交换机,则可以使用这种转发方法,即负载分配的源 MAC 地址转发方法和目标 MAC 地址转发方法的组合转发方法。通过源和目的 MAC 地址转发,从主机 A 到主机 B、主机 A 到主机 C、主机 C 到主机 B 发送的数据包都可以使用通道中的不同端口。

对于基于源 IP 地址的转发,当数据包转发到 EtherChannel 时,它们会根据传入数据包的源 IP 地址分布在 EtherChannel 中的端口上。因此,为了提供负载均衡,来自不同 IP 地址的数据包使用通道中的不同端口,而来自相同 IP 地址的数据包使用通道中的相同端口。

对于基于目标 IP 地址的转发,当数据包转发到 EtherChannel 时,它们会根据传入数据包的目标 IP 地址分布在 EtherChannel 中的端口上。因此,为了提供负载平衡,来自相同 IP 源地址的数据包发送到不同的 IP 目标地址可以在通道中的不同端口上发送。但是从不同的源IP地址发送到同一个目的IP地址的数据包总是在通道中的同一个端口上发送。

使用基于源和目标 IP 地址的转发,当数据包转发到 EtherChannel 时,它们会根据传入数据包的源 IP 地址和目标 IP 地址分布在 EtherChannel 中的端口上。如果不清楚基于源 IP 还是基于目的 IP 地址的转发更适合特定交换机,则可以使用这种转发方法,即基于源 IP 和基于目的 IP 地址的转发的组合。在这种方法中,从IP地址A发送到IP地址B、从IP地址A发送到IP地址C、从IP地址C发送到IP地址B的数据包都可以使用通道中的不同端口。

不同的负载均衡方式有不同的优势,具体的负载均衡方式的选择应根据交换机在网络中的位置以及需要进行负载分配的流量类型来选择。在图 40-5 中,四个工作站的 EtherChannel 与路由器通信。由于路由器是单 MAC 地址设备,因此交换机 EtherChannel 上基于源的转发可确保交换机使用路由器的所有可用带宽。路由器配置为基于目的地的转发,因为大量工作站确保流量从路由器 EtherChannel 均匀分布。

使用在您的配置中提供最大多样性的选项。例如,如果通道上的流量仅流向单个 MAC 地址,则使用目标 MAC 地址始终选择通道中的相同链路。使用源地址或 IP 地址可能会导致更好的负载平衡。

图 40-5 负载分配转发方式

在此处输入图片说明

您需要记住,在以太通道上,在机器人交换机上,您可以平衡要传输的数据(如果机器人端存在算法差异,则没有问题)如果您在机器人端这样做,您将获得负载平衡您的链接。另一方面,要选择正确的算法,你需要考虑数据传输的形式,如果源是一个ip,在mac-address上,目的地是一个ip,一个mac-address,以获得正确的负载均衡方法.

例如,如果您将获得的源是大量 ip,我认为您可以尝试使用 src-ip,如果您将获得很多不同的 mac,如果需要,则使用 src-mac。

这是负载平衡的技巧,也是我们有时进行正确配置的原因,而我们在以太通道链接上看不到任何负载平衡。

请记住,路由器更改 mac 地址并将其像 mac 地址源一样放在出站数据包上,就是这样,如果 LAN 连接到路由器,然后在路由器后面连接您的交换机和以太网通道,我想您不会得到mac地址差异很大...