The HP Procurve K-Series switches (such as the 3500yl or 8200zl) has a feature that allows you to use 802.3ad link aggregation across switches for server port redundancy and physical switch redundancy. HP’s Distributed Trunking is a proprietary protocol that allows two or more port trunk links to be distributed across two switches to create a trunk group. These grouped links appear to the downstream device as if they are coming from a single device. DT links are created between two switches with an interface called the InterSwitch-Connect (ISC) port. For more information, refer to the HP Management & Configuration guide.
This tutorial will talk about how to configure two switches going down two one server. We’ll assume Switch-1 is 10.1.1.1 and Switch-2 is 10.1.1.2.
Switch-1# conf t Switch-1(config)# trunk ethernet 1/24 trk10 lacp Switch-1(config)# switch-interconnect trk10 Switch-1(config)# interface 24 Switch-1(eth-24)# name uplink-switch-interconnect-sw2 Switch-1(eth-24)# exit Switch-1(config)# distributed-trunking peer-keepalive vlan 1 Switch-1(config)# distributed-trunking peer-keepalive destination 10.1.1.2 Switch-1(config)# trunk ethernet 1/10 trk1 dt-lacp Switch-1(config)# exit Switch-1# wr mem
So what did we just do? First, we created a trunk (a different number other than 10 can be used) that will be used to carry the interconnect traffic. You can think of this as something similar to a stack port. In most cases you will want this to go across more than one interface for higher speeds and redundancy. It could become a bottleneck if for example you have 20 1 gb/s server ports and only a 1 gb/s interconnect. Next, we gave the port a name so it is easier to determine the purpose. Note: Multiple ports bound together are a different type of trunk and the configuration beyond the scope of this post.
An interconnect VLAN was then used to carry the traffic which must be the same on the second switch. I used the default management VLAN but you can choose a different number here. Next, we set the keep-alive destination to switch #2. This is used to determine if the interconnect protocol or entire switch is has gone down. Finally, we created our actual server trunk port with dt-lacp. The switch will see the port as a distributed trunk port, but the server will see it as standard LACP.
Ok let’s do a similar configuration for Switch #2.
Switch-2# conf t Switch-2(config)# trunk ethernet 1/24 trk10 lacp Switch-2(config)# switch-interconnect trk10 Switch-2(config)# interface 24 Switch-2(eth-24)# name uplink-switch-interconnect-sw1 Switch-2(eth-24)# exit Switch-2(config)# distributed-trunking peer-keepalive vlan 1 Switch-2(config)# distributed-trunking peer-keepalive destination 10.1.1.1 Switch-2(config)# trunk ethernet 1/10 trk1 dt-lacp Switch-2(config)# exit Switch-2# wr mem
You can issue the following commands to check the status of the trunk:
- show trunk – shows trunk information of the switch and their types
- show switch-interconnect – shows port, availability, and VLAN information for the interconnect port(s).
- show distributed-trunking peer-keepalive – shows information on the keepalive/heartbeat
Now that dt-lacp was configured on both switches, you can use the server’s networking software to create a team using multiple NIC ports. If using the above configuration, you will want each server port plugged into Interface 10 on both switches and the team configured for 802.3ad or LACP.
For fun you can set up a second server and second set of dt-lacp ports (only the one interconnect is needed). Use the ping -t command to start a continuous ping to the second server from the first and unplug a cable. The ping should continue working and only drop 1 packet. Plug it back in a try it with the second cable. The same behavior should occur where 1 packet is dropped. We now have redundant paths between two servers.