EtherChannels are technology that enables you to aggregate up to 8 Fast Ethernet or Gigabit Ethernet connections, providing up to 1,600Mbps or 16Gbps of bandwidth (in full duplex mode). The channel is treated as one logical connection between two switches. Even if one of the connections fails in the EtherChannel, the other connections still operate properly. EtherChannels are supported for both Layer 2 and Layer 3 connections. Operation of EtherChannelsA link failure is transparent to the user because traffic is rerouted across another of the channel connections in less than a handful of milliseconds. When a failure occurs, the Ethernet controller sends information to the switch's processor about the failure, and the processor correctly reroutes the traffic across one of the other links in the EtherChannel. EtherChannels also eliminate the problem of redundant links when STP runs in a network. When running in a looped environment, STP removes redundant connections by placing them in standby mode, thus reducing a network's total available bandwidth. STP treats Fast EtherChannels as one logical link. Even if one of the connections in the channel fails, the channel itself is considered unchanged; STP isn't recalculated, thus avoiding the disruption of network services. Port Aggregation Protocol and Link Aggregation Control ProtocolPort Aggregation Protocol (PAgP), a Cisco-proprietary protocol, allows the dynamic creation of EtherChannels between switches without your intervention. Using this protocol, switches send special frames out of ports capable of forming EtherChannels to discover whether neighboring switches support this feature. If this is true and if the necessary configuration conditions have been met, a channel is formed between the connected ports on the two switches. If you make port changes on one port, you must make the same changes on all ports in the channel; otherwise, the channel will fail. PAgP and Link Aggregation Control Protocol (LACP) support two user-configurable channel modes, as shown in Table 5.5.
Note that these modes are similar to the modes used by Cisco's DTP when forming trunk connections between two Cisco switches. However, the modes in Table 5.5 are used only to build EtherChannel connections between Cisco switches. Ports will form a channel with PAgP if one side is set to desirable and the other side is set to desirable or auto. Two sets of ports in auto mode will not form a channel.
LACP is IEEE's version of dynamically forming channels. LACP is defined in 802.3ad and is similar to Cisco's PAgP. Like PAgP, LACP is used to interact with a remote switch to determine whether they have multiple connections between them that can be bound together into a single EtherChannel. As shown in Table 5.5, LACP introduces two new modes: Active and Passive. Active mode is similar to PAgP's Desirable mode and Passive mode is similar to PAgP's Auto mode. Ports will form a channel with LACP if both sides are active or one side is active and the other is passive. If both sides are passive, a channel is not formed. LACP introduces three additional parameters: system priority, port priority, and administrative key. The system priority parameter is used to assign a system priority to the switch. Each switch has a system ID that is made up of the system priority and its MAC address. The port priority is used if you want to specify more than eight connections in a channel, but want to prioritize which of them are actually used. You can specify more than eight connections in a channel, but the switch will only use eight. The other remaining connections are placed in a standby state and are used for backup purposes if one of the eight main connections fails. The administrative key specifies the capability of a port to form channels with other ports based on the port's characteristics, such as its data rate, duplex setting, and connection type (point-to-point or shared medium).
Configuring EtherChannelsThis section covers the basics of setting up and troubleshooting an EtherChannel connection. Before I get started with the actual configuration commands, there are some important guidelines that must be followed for setting up a successful EtherChannel connection. These are discussed in the next section. EtherChannel GuidelinesWhen you're setting up a channel, each of the ports in the channel has to be configured exactly the same; otherwise, an EtherChannel will not be formed. Follow these guidelines when setting up EtherChannels:
Configuration CommandsThere are two ways that you can create EtherChannels: based on Layer 2 or Layer 3 connections. This is useful depending on how you want your two connected switches to load-balance across the channel based on MAC addresses or Layer 3 (IP) addresses. Load balancing is discussed a little later in this section. If you want to create a Layer 2 EtherChannel, use the following commands: Switch(config)# interface type slot_#/port_# Switch(config-if)# channel-protocol lacp|pagp Switch(config-if)# channel-group group_# [mode channel_mode] Switch(config-if)# lacp system-priority priority_# Switch(config-if)# lacp port-priority priority_# Instead of configuring each interface individually, you can use this command if the interfaces are contiguous on the same module: Switch(config)# interface range type slot_#/start_port_# - end_port_# When specifying the beginning and ending port numbers, you must separate them by a space, a dash, and then a space, like this: Switch(config)# interface range fastethernet 0/1 - 4 The channel-protocol command specifies the use of the protocol to use to dynamically form channels with connected switches. The channel-group command enables you to group interfaces together in a channel. Interfaces with the same group number are placed in the same EtherChannel. You can optionally define the mode for the channel; if you omit this, it defaults to the use of PAgP in Auto mode. The valid modes were listed previously in Table 5.5.
The two lacp commands configure the system and port priorities for use with LACP. To create a Layer 3 EtherChannel, first configure a Layer 2 EtherChannel. After that, create a logical interface and assign an IP address to it, like this: Switch(config)# interface port-channel channel_group_# Switch(config-if)# no switchport Switch(config-if)# ip address IP_address subnet_mask In this configuration, the channel_group_# must match the number configured on the physical interface with the channel-group command. Load Balancing MethodsLoad balancing on an EtherChannel is not done on a frame-by-frame or packet-by-packet basis. Instead, the address or addresses in the frame or packet are run through an algorithm, which results in a binary value. This binary value is then matched up with one of the connections in the EtherChannel. All traffic with this binary value is then transported across this connection in the EtherChannel. For example, let's assume that the EtherChannel is basing its switching decision on the destination MAC address in the frame. Any frame that has the same destination MAC address would always go across the same connection in the EtherChannel. If you have one file server that users are constantly sending traffic to, all this traffic would go across one connection in the channel to reach the file server. Because of this process, Cisco recommends that you choose source addresses or both source and destination addresses for purposes of load balancing. To set up load balancing, use the following command: Switch(config)# port-channel load-balance load_balance_mode Table 5.6 lists the valid modes that you can choose from when load balancing across an EtherChannel.
Verification CommandsYou can use a variety of commands to examine the configuration and operation of your EtherChannels. This section takes a look at a few of them. To view EtherChannel information for a specific interface, use the following command: Switch> show interfaces [type slot_#/port_#] etherchannel Here's an example: Switch> show interfaces etherchannel ---- GigabitEthernet0/1: Port state = Down Not-in-Bndl Channel group = 1 Mode = Desirable-Sl Gcchange = 0 Port-channel = null GC = 0x00000000 Pseudo port-channel = Po1 Port index = 0 Load = 0x00 Flags: S - Device is sending Slow hello. C - Device is in Consistent state. A - Device is in Auto mode. P - Device learns on physical port. d - PAgP is down. Timers: H - Hello timer is running. Q - Quit timer is running. S - Switching timer is running. I - Interface timer is running. Local information: Hello Partner PAgP Learning Group Port Flags State Timers Interval Count Priority Method Ifindex Gi0/1 d U1/S1 1s 0 128 Any 0 Age of the port in the current state: 4d:02h:12m:15s <--output truncated--> If you specify a specific interface, you can see more details concerning the channeling functions, including LACP and PAgP. If you want to see information concerning the logical EtherChannel connection (port-channel), use the following command: Switch> show etherchannel [channel_#] [port-channel|load-balance] Here's an example: Switch> show etherchannel 1 port-channel Port-channels in the group: ---------------------- Port-channel: Po1 ------------ Age of the Port-channel = 00d:00h:03m:29s Logical slot/port = 1/0 Number of ports = 2 GC = 0x00010001 HotStandBy port = null Port state = Port-channel Ag-Inuse Ports in the Port-channel: Index Load Port EC state ------+------+------+------------ 0 00 Gi0/1 desirable-sl 0 00 Gi0/2 desirable-sl Time since last port bundled: 00d:00h:03m:21s Gi0/1 At the bottom of the display, you can see that this port-channel has two interfaces, with no current load on the connection. Also, PAgP is being used with desirable mode configured. To see what type of load balancing you're using on your channel, use the load-balance parameter with the show command you saw earlier: Switch> show etherchannel load-balance Source XOR Destination IP address In this example, both the source and destination IP addresses are used for load balancing purposes. |