Alteon MLT Distribution Algorithm

      Multi-Link Trunk (MLT) is a link aggregation protocol designed by Nortel. This technology groups multiple physical links into one logical link. It provides fault tolerance and high speed links between routers, switches, and even servers. But, this time, I would like to only focus on how MLT increases the bandwidth and distributes traffic into multiple physical links.

      According to the official document from Nortel, Alteon  uses the algorithm as below

hash_idx = (A xor B)
port = (lower 6 bits of hash_idx) mod x

The x is the number of active ports within the trunk group. The parameters A and B are assigned for different types of frames or packets.  There are four different scenarios Alteon uses to distribute traffic:

    • For Layer 2 forwarding:
      A = lower 16 bits of destination MAC address
      B = lower 32 bits of source MAC address

    • For L2 forwarding of IP frames:
      A = lower 16 bits of source IP address
      B = lower 32 bits of source MAC address

    • For L3 forwarding:
      A = lower 32 bits of destination IP
      B = lower 16 bits of source MAC

    • For L4 trunking (traffic towards the real servers in SLB and WCR):
      A = lower 32 bits of source IP
      B = lower 16 bits of destination MAC

      To prove this algorithm and improve the bandwidth between ERS5500 and Alteon, I setup a lab including Alteon 3408, two clients, and two servers with the topology below. I group only two physical links into each MLT because this makes the result of this lab can be identified easily with "mod 2" calculation.

topology

Virtual IP: 192.168.20.102, 192.168.20.103

To make sure each VIP shares the same MAC address, dump ARP table from Alteon

>> Address Resolution Protocol# dum
    IP address    Flags    MAC address    VLAN Port   Referenced SPs
  --------------- ----- ----------------- ---- ------ ----------------
  192.168.20.100   P 4  00:16:ca:51:72:0e              1-4
  192.168.20.101   P 4  00:16:ca:51:72:0e              1-4
  192.168.20.102   P 4  00:16:ca:51:72:0e              1-4
  192.168.20.103   P 4  00:16:ca:51:72:0e              1-4
      192.168.20.115        00:0e:a6:8f:73:9c    1 8       empty
  192.168.20.124        00:0e:a6:8f:72:6f    1 7       1-4
  192.168.20.253   P    00:16:ca:51:72:00    1         1-4
  192.168.20.254        00:14:0d:d6:a4:41    1 1       1-4

 

Scenario 1: L2 Forwarding of IP frames

  • Setup the interface IP of VLAN 2 of ERS 5500 as a default gateway for Real 1 and 2.
  • Change the MLT mode to Advanced (ERS5500 uses source and destination IP address as the index of algorithm) on ERS5500.
  • Every IP address of clients and servers are one bit difference.
  • Use two clients to access HTTP service of VIP 192.168.20.102.

Step 1: Use client A 192.168.10.240 to access VIP 192.168.20.102, the traffic generated only on port 1 TX as this screen shot below.

!cid_000d01c850e3$fcba86a0$c407fea9@dophi 

Step 2: Stop the session generated at Step 1, use client B 192.168.10.241 to access the same VIP. The result is the same as what I got at Step 1.

!cid_000e01c850e3$fcba86a0$c407fea9@dophi

Step 3: Stop the session and use client A 1921.68.10.240 to access VIP 192.168.20.103. Alteon starts using port 2 to send response packets from servers back to client.

!cid_000f01c850e3$fcba86a0$c407fea9@dophi

Step 4: Stop client A, use client B 192.168.10.241 to access VIP 192.168.20.103. I get the same result as Step 3.

!cid_001001c850e3$fcba86a0$c407fea9@dophi

Test Result: Alteon follows the L2 forwarding of IP frame algorithm and distribute traffic by source IP and MAC address.

Scenario 2: L3 Forwarding

  • setup the interface IP of Alteon as a default gateway for Real 1 and 2 (This makes response packets from servers be routed via Alteon).
  • Every setting is the same as Scenario 1.

Step 1: Use client A 192.168.10.240 to access VIP 192.168.20.102 and get the result as below; packets are sent via port 1.

!cid_001e01c84b90$7003f320$1d0aa8c0@dophi

Step 2: Use client B 192.168.10.241 (one bit different with client A) to access VIP 192.168.20.102. Alteon starts using port 2 instead of 1 to send traffic.

!cid_001f01c84b90$7003f320$1d0aa8c0@dophi

Step 3: Use client A 192.168.10.240 to access VIP 192.168.20.103. The response packets are sent via port 1 TX.

!cid_001f01c84b90$7003f320$1d0aa8c0@dophi

Step 4: Use client B 192.168.10.241 to access VIP 192.168.20.103, Alteon sends packets via port 2.

!cid_002101c84b90$7003f320$1d0aa8c0@dophi 

Test Result: Alteon distributes packets in a MLT group based on L3 forwarding algorithm. The distribution changed when destination IP address is changed.

      Compare with the two results from different scenarios, Alteon change its distribution behaviors for L2 forwarding of IP frames and L3 forwarding.  In some cases, this potentially causes MLT distribution uneven when a customer uses only one VIP to make load balancing and there is no other VLANs on Alteon as Scenario 1 in a real world. 

      ERS5500 provides two modes for MLT distribution, Cisco IOS also provides it even a command to trace traffic in a Etherchannel group, and Alteon module of IBM Blade Center provides tunable MLT as well. I don't understand why Nortel never want to change it or provide a tunable MLT on Alteon to fulfil some cases.

Note:

  • The MLT never doubles the throughput of two links. As the test result, Alteon can have maximum 1.6Gb throughput on a MLT connected to ERS 5500 and 1.2Gb to Cisco 3750.
  • By default, Cisco Etherchannel never distributes traffic on two links unless we issue commands to enable it. Command:port-channel load-balance

Posted in Labels: , , , |

0 comments: