Note | As of this writing, Link Aggregation is not supported for the LAN Cluster Interconnect. |
Link Aggregation (or trunking) is a new feature that was added to Tru64 UNIX starting with version 5.1A. It is similar to NetRAIN in that it provides increased redundancy for your network. Unlike NetRAIN, though, all NICs in the set can be simultaneously active, allowing for load sharing and increased network bandwidth.
Both inbound and outbound traffic is distributed to all interfaces in the link aggregation group. According to the lag(7) reference page, “When transmitting packets, the system uses a load distribution algorithm to determine on which attached port to transmit the packets. The following load distribution algorithm is supported:
For IP packets, the port is selected based on a hash of the destination IP address. For non-IP packets, the port is selected based on a hash of the destination MAC address. All traffic addressed to a specific destination system uses the same port in the link aggregation group. This ensures that the packets arrive in order.”[1]
Configuring a LAG is straightforward provided that the following conditions are met:
All NICs in the array must be on the same subnet and dedicated to the same server or switch.
All NICs in the array must be of the same type (currently only Ethernet).
All NICs in the array must be the same speed and running in full duplex mode.
All NICs to be configured in the LAG set must be idle (e.g., not currently configured).
You cannot run LAT on a LAG virtual interface (lag) or any of the NICs that configured within a LAG set.
Currently, to configure a LAG you must edit the /etc/inet.local file. Do not be surprised if this configuration method changes in a future release because NetRAIN was configured in a similar manner in V4.0F but was moved to /etc/rc.config in V5.0.
Verify that the link aggregation subsystem is configured in the kernel.
# sysconfig –q lag framework error: subsystem 'lag' not found
If it is not configured, add "options LAG" to your kernel configuration file (/usr/sys/conf/HOSTNAME), rebuild the kernel, copy the kernel to the root (/) directory, and reboot.
Verify that the NICs are not in use. If they are configured, see section 9.2.2.1 for information on how to unconfigure the interfaces.
Edit the /etc/inet.local file.
# cat >> /etc/inet.local lagconfig –c lagconfig –p tu0 key=1 lagconfig –p tu1 key=1 ifconfig lag0 192.168.0.69 netmask 255.255.255.0 up ^D
Reboot the system.
# shutdown –sr now
Login and verify that the LAG interface is configured and functioning.
# lagconfig -s lag=lag0 lag0: Attached Interfaces: ( tu1 tu0 ) key = 1 Max ports = 8
# ifconfig lag0 lag0: flags=c63<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,SIMPLEX> inet 192.168.0.69 netmask ffffff00 broadcast 192.168.0.255 ipmtu 1500
Are both interfaces active? Check the network counters using the netstat command.
# netstat -i | grep -E "^(tu0|tu1|lag0|Name)" Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll lag0 1500 <Link> 0:10:64:30:3a:29 50 0 36 0 0 lag0 1500 192.168 sheridan 50 0 36 0 0 tu0 1500 <Link> 0:10:64:30:3a:29 45 0 41 0 0 tu1 1500 <Link> 0:10:64:30:3a:29 9 0 0 0 0
There is some traffic on both interfaces. Notice, though, that the lag0 interface shows no traffic itself. Generate some traffic.
# ping –f –c 100000 192.168.0.255 PING 192.168.0.255 (192.168.0.255): 56 data bytes . ----192.168.0.255 PING Statistics---- 100534 packets transmitted, 100000 packets received, +534 duplicates, 0% packet loss round-trip (ms) min/avg/max = 0/80/85 ms
Check the counters again.
# netstat -i | grep -E "^(tu0|tu1|lag0|Name)" Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll lag0 1500 <Link> 0:10:64:30:3a:29 201057 0 100109 0 0 lag0 1500 192.168 sheridan 201057 0 100109 0 0 tu0 1500 <Link> 0:10:64:30:3a:29 100643 0 326 0 0 tu1 1500 <Link> 0:10:64:30:3a:29 100692 0 100534 0 0
It appears that the tu1 interface sent the pings, and both interfaces received them due to the address we chose to ping.
For additional information regarding LAG, see the Tru64 UNIX Network Administration: Connections Guide for version 5.1A. Also check out the lag(7), lagconfig(8), and sys_attrs_lag(5) reference pages.
[1]The lag(7) reference page from Tru64 UNIX version 5.1A.