Ethernet Switches & Routers

Brocade FastIron - Hitless FCX Stacking Configuration

by gfcm on ‎05-02-2011 02:19 AM (7,538 Views)

Background information

Stacking of Ethernet switches is most commonly found in wiring closets of enterprise campus networks. Stacking functionality enables small-form-factor switches to be linked using short copper cables—and then the stack of switches appears and behaves as a single logical switch to simplify management. When a new switch joins the stack, it automatically inherits the configuration of the stack without manual setup.
Stacking switches at the edge of data center networks provides the same value as it does in campus networks. The main difference is that the switches are not physically stacked on top of each other. Instead, longer cables logically unify the switches at the top of each server rack. For example, a row of top-of-rack switches can appear as a single logical switch, significantly reducing management overhead of the data center access layer.

 

With Brocade IronStack Technology, you can connect up to 8 devices in a stack. You can mix and match every FastIron CX switch in the stack (FCX-S, FCXS-F, FCX-E, FCX-I). You can either configure the CX4 16Gbps ports (default) at the back or the front 10Gbps ports to be used as stacking ports if you need to cover more distance than what is currently supported with CX4 cables (3 meters).

 

Equipment used

  • 3 x FastIron FCX that runs FCXR07202.bin (Router Code)

 

Network Diagram

 

 

IronStack Configuration

  • Connect the devices using the stacking ports and stacking cabling.
  • Power on the units
  • Connect your console to the intended Active Controller. The unit through which you run secure-setup becomes the Active Controller by default.
  • Enable the stack on the intended Active Controller

FCX# config t

FCX(config)# stack enable

FCX(config)# exit

  • Enter secure-setup command. This command triggers a device discovery process in both directions.

FCX# stack secure-setup

  • If you accept the unit IDs, the stack is formed, and you can see the stack topology using the show stack command

FCX# show stack

alone: standalone, D: dynamic config, S: static config
ID Type Role Mac     Address        Pri State  Comment
1  S FCX648S active  00e0.5201.4000 128 local  Ready
2  S FCX648S standby 001b.ed5e.c480 0   remote Ready
3  S FCX648S member  00e0.5205.0000 0   remote Ready

 

   active       standby
    +---+        +---+        +---+
-2/1| 1 |3/1--2/1| 2 |3/1--2/2| 3 |2/1-
|   +---+        +---+        +---+   |
|                                     |
|-------------------------------------|

 

Standby u2 - No hitless failover. Reason: hitless-failover not configured

Current stack management MAC is 00e0.5201.4000

Note: no "stack mac" config. My MAC will change after failover.

 

  • Then configure a static mac address for the stack. Use a MAC address of a switch from the stack to prevent duplication of MAC address into your network. Without this configuration, the MAC address of the stack will change to the new base MAC address of the Active Controller in case of failover. This could cause a spanning tree root change.

FCX(config)# stack mac 00e0.5201.4000

 

  • Finally enable hitless failover and save the configuration

FCX(config)# hitless-failover enable

FCX(config)# write mem

 

FCX stacked firmware update

Each device has to run exactly the same code to be part of the stack. If you need to update the software code, you simply have to install the new software on the active controller.

FCX# copy tftp flash x.x.x.x grz07100.bin bootrom

FCX# copy tftp flash x.x.x.x FCXR07202a.bin primary

 

You can see that the code has been pushed to every stack member:

FCX#show flash

Stack unit 1:

Compressed Pri Code size = 6007397, Version:07.2.02aT7f3 (FCXR07202a.bin)

Compressed Sec Code size = 4474947, Version:07.2.00aT7f1 (FCXS07200a.bin)

Compressed Boot-Monitor Image size = 369292, Version:07.1.00T7f5

Code Flash Free Space = 54788096

Stack unit 2:

Compressed Pri Code size = 6007397, Version 07.2.02aT7f3(FCXR07202a.bin)

Compressed Sec Code size = 4474947, Version 07.2.00T7f1 (FCXS07200a.bin)

Compressed Boot-Monitor Image size = 369292, Version 07.1.00T7f5

Code Flash Free Space = 54788096

Stack unit 3:

Compressed Pri Code size = 6007397, Version 07.2.02aT7f3(FCXR07202a.bin)

Compressed Sec Code size = 4474947, Version 07.2.00T7f1 (FCXS07200a.bin)

Compressed Boot-Monitor Image size = 369292, Version 07.1.00T7f5

Code Flash Free Space = 54788096

 

The last step is to reload the stack to run the newly installed firmware

FCX#reload

Are you sure? (enter 'y' or 'n'): y

Reload request sent to attached stack member(s)...

 

 

 

Manage Priority with a stack of two devices: (Thanks to Stefan)

 

 

If there are only two units in a stack, the old Active Controller may win back the Active role if it has a lower unit ID. In this case, both the old Active Contoller and new Active Controller have no members, so the unit with the lower unit ID wins the Active role. If you want to assign the same priority to the Active and Standby Controllers, you must do so after the stack is formed. This prevents the intended Standby Controller from becoming the Active Controller during stack construction.

 

 

In order to achieve hitless failover on a two switches stack you must have the same stack priority.

FCX648S Router#show stack

alone: standalone, D: dynamic config, S: static config

ID  Type  Role  Mac Address  Pri State  Comment       

1  S FCX648S  active  0024.38be.dbc0 128 local  Ready              

2  D FCX648SPOE standby 0024.38c7.cc40  0 remote  Ready              

 

standby       active                                              

+---+      +---+                                              

| 2 |2/2--2/1| 1 |                                              

+---+        +---+

 

                                       

Set priority of standby switch (ID 2) the same as active switch (ID 1).

 

FCX648S Router#show run

Current configuration:

!

ver 07.2.02dT7f3

!

stack unit 1

  module 1 fcx-48-port-management-module

  module 2 fcx-cx4-2-port-16g-module

  module 3 fcx-xfp-2-port-10g-module

  priority 128

  stack-port 1/2/1

stack unit 2

  module 1 fcx-48-poe-port-management-module

  module 2 fcx-cx4-2-port-16g-module

  stack-port 2/2/2

stack enable

stack mac 0024.38be.dbc0

!

!

!

 

 

FCX648S Router#conf t

FCX648S Router(config)#stack unit 2

FCX648S Router(config-unit-2)#priority 128

Priority change needs 120 seconds to take effect.

FCX648S Router(config-unit-2)#exit

FCX648S Router(config)#exit

FCX648S Router#

FCX648S Router#

 

Compare stack priorities on each device by entering show stack. Watch the election on console that happens afterwards.

FCX648S Router#show stack

alone: standalone, D: dynamic config, S: static config

ID   Type       Role    Mac Address    Pri State   Comment       

1  S FCX648S    active  0024.38be.dbc0 128 local   Ready              

2  S FCX648SPOE standby 0024.38c7.cc40 128 remote  Ready              

 

    standby      active                                               

     +---+        +---+                                              

     | 2 |2/2--2/1| 1 |                                              

     +---+        +---+                                               

                                                                    

Standby u2 - protocols ready, can failover or manually switch over

Will do election in 110 sec due to priority change

Current stack management MAC is 0024.38be.dbc0

FCX648S Router#write mem

Write startup-config done.

FCX648S Router#Flash Memory Write (8192 bytes per dot) .

Flash to Flash Done.

FCX648S Router#

FCX648S Router#

FCX648S Router#Will do election in 30 sec due to priority change

 

FCX648S Router#Will do election in 10 sec due to priority change

 

FCX648S Router#Election, was active, no change,, priority=128, total 2 u, active=u1

 

FCX648S Router#show stack          write mem         show stack

alone: standalone, D: dynamic config, S: static config

ID   Type       Role    Mac Address    Pri State   Comment       

1  S FCX648S    active  0024.38be.dbc0 128 local   Ready              

2  S FCX648SPOE standby 0024.38c7.cc40 128 remote  Ready              

 

    standby      active                                              

     +---+        +---+                                              

     | 2 |2/2--2/1| 1 |                                              

     +---+        +---+                                               

                                                                    

Will assign standby in 21 sec due to election

 

Standby u2 - protocols ready, can failover

Current stack management MAC is 0024.38be.dbc0

FCX648S Router#

 

FCX648S Router#sh run

Current configuration:

!

ver 07.2.02dT7f3

!

stack unit 1

  module 1 fcx-48-port-management-module

  module 2 fcx-cx4-2-port-16g-module

  module 3 fcx-xfp-2-port-10g-module

  priority 128

  stack-port 1/2/1

stack unit 2

  module 1 fcx-48-poe-port-management-module

  module 2 fcx-cx4-2-port-16g-module

  priority 128

  stack-port 2/2/2

stack enable

stack mac 0024.38be.dbc0

!

!

 

This configuration will preventthe intended Standby Controller from becoming the Active Controller during stack reconstruction.