This tutorial will demonstrate how to get a pair of Cisco 2960X switches up and running as a stack with stackwise.
We'll be using the following for this lab:
x2 WS-C2960X-24TD-L
x2 2960-X Flexstack Stacking Modules
x2 Bladeswitch Stacking Cable
I will be creating two stacks (the 2060-X model supports up to 8 stack members) since this provides redundancy if one of the stacking cable goes and also higher overall throughput:
A single stackwise connection with the 2960-X equates to 20gbps (full duplex) - although with the additional stack connection we get 40gbps - this can go up to 80gbps with additional stack members.
There are compatibility considerations to take into account when building switch stacks - most notably the stack protocol version number should be the same between all stack members - however this does not necessarily mean that the IOS versions should be identical (although personally i'd strongly recommend it!)
The second issue relates to hardware - more specifically the model number. For example the C2960-XR will not stack with a C2960-S - however this is perfectly feasible with the C2960X and C2960-S. (1)
Once the stack has been created and you've booted up the switches - we'll now console into them:
screen /dev/ttyUSB0 9600
Skip the initial configuration wizard and run the following to identify whether the stack has been formed:
show switch
Switch/Stack Mac Address : fa011.c222.3333
H/W Current
Switch# Role Mac Address Priority Version State
----------------------------------------------------------
1 Member f811.5555.6666 1 4 Ready
*2 Master fa011.c222.3333 1 4 Ready
The switch that you are currently consoled into is marked with an asterisk - so in my case I on the master switch.
There are a number of rules (for example: existing master of stack, hardware / software priorities) that define how the stack master election is performed - although in our case it is simply due to the fact that one of the switches had a greater up-time than the other. Please refer to the sources / further reading section for a more detailed explanation.
However if we want to confirm that both stacks are in place - we should issue:
show switch stack-ports
Configuring a backup-master switch
It's never a bad idea to configure a backup-master switch in the stack - by default the a new switch in the stack is assigned a priority of 1 - so in my case since I've not modified these values both of them are currently set to 1.
The priority level can be between 1 and 15 - with the greater value taking precedence - for example I will set my master switch to 14 and the secondary to 13. Although this is strictly not necessary in a two-node stack - but would come in handy in the event that we add an additional switch into the stack at a later date.
To set the switch priority we can issue:
switch 2 priority 14
switch 1 priority 13
We can also renumber the switches with:
switch 2 renumber 1
switch 1 renumber 2
Adding additional switches to the stack
With the 2960X switches you can easily add an additional switch into the stack - even when it's already powered on - although when plugged in the new switch will automatically reboot itself to clear the configuration etc.
Firmware Upgrades
One of the pretty cool features is the ability to perform a firmware upgrade of all switches via one command on the master node:
archive download-sw tftp://192.168.1.1/c2960x-universalk9-mz.152-2.E6
* Note to perform the above the image must be a tar ball!
or to upgrade induvidually we can do the standard:
copy tftp://10.0.0.1/c2960x-universalk9-mz.152-2.E6.bin flash:/c2960x-universalk9-mz.152-2.E6.bin
boot system flash:/c2960x-universalk9-mz.152-2.E6.bin
do wri mem
reload
During this process the master node is tasked with ensuring that every other switch in the stack is upgraded successfully.
Command Execution
By default all commands will be executed on the master switch. In order to execute a command on a specific command issue the 'session' command a long with the switch number e.g.:
session 1
and then simply type exit to go back to the master switch again.
Cross-stack etherchannel
Now - the stack cables provide redundant connectivity between both of the switches in the stack - however we also want to ensure that the uplinks have redundant connectivity to the switch stack - so this involves create a 'cross-stack' etherchannel which means an uplink (SPF+ / 10G port) on each stack member will hook up to the uplink switch (you'll have to forgive the basic diagram as I didn't have anything decent to draw this on right now):
Sources
(1) Cisco Catalyst 2960-S, 2960-X, and 2960-XR Stacking with FlexStack: http://www.cisco.com/c/en/us/products/collateral/switches/catalyst-2960-x-series-switches/white_paper_c11-728327.html
(2) Stack Master Election:
http://www.cisco.com/c/en/us/support/docs/switches/catalyst-3750-series-switches/71925-cat3750-create-switch-stks.html#anc11
(3) Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/layer2/configuration_guide/b_lay2_152ex_2960-x_cg/b_lay2_152ex_2960-x_cg_chapter_010.html
We'll be using the following for this lab:
x2 WS-C2960X-24TD-L
x2 2960-X Flexstack Stacking Modules
x2 Bladeswitch Stacking Cable
I will be creating two stacks (the 2060-X model supports up to 8 stack members) since this provides redundancy if one of the stacking cable goes and also higher overall throughput:
A single stackwise connection with the 2960-X equates to 20gbps (full duplex) - although with the additional stack connection we get 40gbps - this can go up to 80gbps with additional stack members.
There are compatibility considerations to take into account when building switch stacks - most notably the stack protocol version number should be the same between all stack members - however this does not necessarily mean that the IOS versions should be identical (although personally i'd strongly recommend it!)
The second issue relates to hardware - more specifically the model number. For example the C2960-XR will not stack with a C2960-S - however this is perfectly feasible with the C2960X and C2960-S. (1)
Once the stack has been created and you've booted up the switches - we'll now console into them:
screen /dev/ttyUSB0 9600
Skip the initial configuration wizard and run the following to identify whether the stack has been formed:
show switch
Switch/Stack Mac Address : fa011.c222.3333
H/W Current
Switch# Role Mac Address Priority Version State
----------------------------------------------------------
1 Member f811.5555.6666 1 4 Ready
*2 Master fa011.c222.3333 1 4 Ready
The switch that you are currently consoled into is marked with an asterisk - so in my case I on the master switch.
There are a number of rules (for example: existing master of stack, hardware / software priorities) that define how the stack master election is performed - although in our case it is simply due to the fact that one of the switches had a greater up-time than the other. Please refer to the sources / further reading section for a more detailed explanation.
However if we want to confirm that both stacks are in place - we should issue:
show switch stack-ports
Configuring a backup-master switch
It's never a bad idea to configure a backup-master switch in the stack - by default the a new switch in the stack is assigned a priority of 1 - so in my case since I've not modified these values both of them are currently set to 1.
The priority level can be between 1 and 15 - with the greater value taking precedence - for example I will set my master switch to 14 and the secondary to 13. Although this is strictly not necessary in a two-node stack - but would come in handy in the event that we add an additional switch into the stack at a later date.
To set the switch priority we can issue:
switch 2 priority 14
switch 1 priority 13
We can also renumber the switches with:
switch 2 renumber 1
switch 1 renumber 2
Adding additional switches to the stack
With the 2960X switches you can easily add an additional switch into the stack - even when it's already powered on - although when plugged in the new switch will automatically reboot itself to clear the configuration etc.
Firmware Upgrades
One of the pretty cool features is the ability to perform a firmware upgrade of all switches via one command on the master node:
archive download-sw tftp://192.168.1.1/c2960x-universalk9-mz.152-2.E6
* Note to perform the above the image must be a tar ball!
or to upgrade induvidually we can do the standard:
copy tftp://10.0.0.1/c2960x-universalk9-mz.152-2.E6.bin flash:/c2960x-universalk9-mz.152-2.E6.bin
boot system flash:/c2960x-universalk9-mz.152-2.E6.bin
do wri mem
reload
During this process the master node is tasked with ensuring that every other switch in the stack is upgraded successfully.
Command Execution
By default all commands will be executed on the master switch. In order to execute a command on a specific command issue the 'session' command a long with the switch number e.g.:
session 1
and then simply type exit to go back to the master switch again.
Cross-stack etherchannel
Now - the stack cables provide redundant connectivity between both of the switches in the stack - however we also want to ensure that the uplinks have redundant connectivity to the switch stack - so this involves create a 'cross-stack' etherchannel which means an uplink (SPF+ / 10G port) on each stack member will hook up to the uplink switch (you'll have to forgive the basic diagram as I didn't have anything decent to draw this on right now):
To be continued...
Sources
(1) Cisco Catalyst 2960-S, 2960-X, and 2960-XR Stacking with FlexStack: http://www.cisco.com/c/en/us/products/collateral/switches/catalyst-2960-x-series-switches/white_paper_c11-728327.html
(2) Stack Master Election:
http://www.cisco.com/c/en/us/support/docs/switches/catalyst-3750-series-switches/71925-cat3750-create-switch-stks.html#anc11
(3) Catalyst 2960-X Switch Layer 2 Configuration Guide, Cisco IOS Release 15.0(2)EX
http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/layer2/configuration_guide/b_lay2_152ex_2960-x_cg/b_lay2_152ex_2960-x_cg_chapter_010.html