ExtremeSwitching X450-G2, X460-G2, X670-G2, X435, X440-G2, X465, X590, X620, X690, X695, X870, 5420, 5520 series switches and stacks support address-based load sharing.
Note
Custom hash algorithm is not supported on ExtremeSwitching X435, X440-G2, and X620 series switches.Note
In a switch having at least one LAG group with custom algorithm, the egress port for unknown unicast packets across all LAG groups in switch will be decided based on Layer 3 source and destination IP address.The following command allows you to enable load sharing and select either a standard algorithm or specify that you want to use a custom algorithm:
enable sharing port grouping port_list {algorithm [address-based {L2 | L3 | L3_L4 | custom} | port-based }]} {lacp | health-check}
If you choose the custom option when you enable load sharing, you can use the following command to select a custom load sharing algorithm:
configure sharing address-based custom [ipv4 [source-only | destination-only | source-and-destination] | hash-algorithm [xor | crc-16 | crc-32 [lower | upper]]]
The hash-algorithm option controls how the source information (such as an IP address) is used to select the egress port. The xor hash algorithm guarantees that the same egress port is selected for traffic distribution based on a pair of IP addresses, Layer 4 ports, or both, regardless of which is the source and which is the destination.
Hash polarization can be prevented by choosing different load sharing algorithms on neighboring switches in different layers. This approach may not be viable in some situations. For example, the network may require the capabilities of the “custom” algorithm for all LAGs in the network. Another approach to varying the load sharing algorithm among neighboring switches would be to use different hashing algorithms of the “custom” algorithm on different switches. For example, some switches could be configured to use “crc-32 upper” algorithm and some configured to use the “crc-16” algorithm.
To change the algorithm for a previously created LAG, use the command:
configure sharing master_port algorithm [address-based [L2 | L3 | L3_L4 | custom] | port-based].
Note
Use of the ACL redirect-port-no-sharing port action overrides any load-sharing algorithm hash that is generated based on the lookup results. For more information about this action, see LAG Port Selection.Another strategy for preventing hash polarization is to configure different hash seed values that are used by the CRC versions of the custom algorithms on the LAG switches. With different hash seeds used on neighboring switches, hash polarization can be prevented while maintaining otherwise identical distribution algorithms.
To set a random hash seed value, use the command:
configure sharing address-based custom hash-seed [seed | switch-mac-address]
By using the switch-mac-address option for the hash seed value, identical load sharing algorithms may be used on all of the LAGs in the network while automatically preventing hash polarization.
Prior to supporting configuring the hash seed (ExtremeXOS 30.1), the default value of the hash seed was 0x7F2193EA. You can restore the legacy default behavior for the hash seed by explicitly configuring this legacy value.