Thursday, September 06, 2007

Q: How do I establish a portchannel using multiple FOC trunks between my 4500s?

A:

Before getting started, let's recognize that Cisco uses the terms "portchannel" and "etherchannel" somewhat interchangably, although you do have to use the correct term for the command you are typing. Also, the "channel-group" interface-level command is used to join the interface to a portchannel. So "etherchannel 2", "portchannel 2", and "channel-group 2" all refer to the same channel.

For performance, the multiple trunks emanating from a 4500 should be on the same linecard. Start out by finding a linecard with enough free interfaces, disabling the interfaces on both 4500s, and running the cables between them. Then do the following.

We'll use interfaces g3/3 - g3/6 in our example, and set up portchannel 2. Before starting we'll clear the config of all of the interfaces, and get rid of the portchannel. We'll then configure all of the interfaces, ignoring the portchannel. The last command we issue on the interfaces, to join the portchannel, will result in the portchannel being created automatically. Then we will unshut the interfaces.

When the portchannel comes up, syslog messages such as the below at severity 5 are produced. Before starting, it might be good to set yourself up so you see the log messages on the console or vty session.

040589: Aug 19 15:18:38.648: %EC-5-BUNDLE: Interface GigabitEthernet3/5 joined port-channel Port-channel2
040590: Aug 19 15:18:38.812: %EC-5-BUNDLE: Interface GigabitEthernet3/6 joined port-channel Port-channel2
040591: Aug 19 15:18:38.872: %EC-5-BUNDLE: Interface GigabitEthernet3/4 joined port-channel Port-channel2

Here are the configuration steps:

conf t
! clearing the interface configs
(c) default int g3/3  (if this gives you an error, do it again.)
(c) default int g3/4
(c) default int g3/5
(c) default int g3/6
! getting rid of the existing portchannel
(c) no int po2
! configuring the interfaces
(c) int range g3/3 - 6
(c-i-r) desc To other 4500
(c-i-r) switchport trunk encapsulation dot1q
(c-i-r) switchport mode trunk
(c-i-r) switchport nonegotiate
(c-i-r) no snmp trap link-status
! next command magically creates the portchannel
(c-i-r) channel-group 2 mode desirable non-silent
^Z
conf t
(c)int po2
(c-i)desc To other 4500
^Z

At this point, the interfaces g3/3 - g3/6 and Po2 should all show as up. A show cdp neigh should show the other 4500. A show etherchannel 2 detail will show the details of the portchannel and its member interfaces. (show etherchannel summ will show all of the etherchannels in a brief, easy to read format.)

If this all works, each interface will have a config like this:

interface GigabitEthernet3/3
 description to other 4500
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
 no snmp trap link-status
 channel-group 2 mode desirable non-silent

And the portchannel will have a config like this:

interface Port-channel2
 description to other 4500
 switchport
 switchport trunk encapsulation dot1q
 switchport mode trunk
 switchport nonegotiate
end