Enterasys Securestack C3

From FnordWiki
Jump to navigation Jump to search

One of the Force10_S50s failed (flapping all its links uncontrollably), so an Enterasys Securestack C3G124-48P has been acquired from eBay.

Quick specs:

  • 48 1000baseT ports
  • 4 SFP ports that can assume the roles of 1000baseT ports 45-48
  • 2 proprietary stacking ports in the back
  • DB-9 (DE-9, actually) serial console port on the front wired as DTE. Use a standard null modem cable to talk to this.

This switch is Broadcom based.

Wiping the existing config

Attach a console cable, run terminal program, set port to 9600-8n1, no carrier detect, no flow control. Power on the switch and let it boot completely. Follow the process as documented at https://community.extremenetworks.com/extreme/topics/password_recovery_for_the_securestack_series-1jwf24 to reset the switch's passwords:

While the switch is operational, press and hold the Reset button for five seconds, then release.
A "Password Reset button has been pressed" message will display on the cli console and in the current.log (5487).
The admin, rw, and ro login passwords will be reset to <enter>; and with C2 f/w 3.01.45 and higher, the boot menu password will be reset to the default value of "administrator" (5551).

From here, log in to the console as the rw user. Its password is now blank. Issuing the clear config command will do the expected (wipe the saved configuration) and reboot the switch. The reset button is small and unlabeled, located on the back of the chassis, to the right of one of the stacking connectors.

Basic setup

Configuration of these switches is somewhat different than the Cisco IOS influenced setup of most other managed switches on the market. Changes are made through a series of set commands. Look for a manual called the "SecureStack C3 Stackable Switches Configuration Guide" with Google for information. We'll highlight changes made in this wiki page. Command line tab completion and "?" inline help work as in most other switches.

change factory default passwords

Log in to the switch as a user with super-user privileges. (Super users can make config changes as well as administer switch users.) The factory default super user account is admin. Listing user accounts:

C3(su)->show system login
Password history size: 0
Password aging       : disabled  

Username     Access           State 

admin       super-user        enabled     
ro          read-Only         enabled     
rw          read-write        enabled     
C3(su)->

And changing a user's password:

C3(su)->set system login admin super-user enable password newpassword 
C3(su)->

Repeat for the other user accounts:

C3(su)->set system login rw read-write enable password newpassword 
C3(su)->set system login ro read-only enable password newpassword 
C3(su)->

Assign an IP address to the switch

I like to put my switches' management IPs at the top of the range for each of the subnets they are on. 172.16.0.0/24 is the main inside subnet here. So log in to the switch as rw or similar and give it an IP like so:

C3(rw)->set ip address 172.16.0.254 mask 255.255.255.0
C3(rw)->

Checking its IP address is similar:

C3(rw)->show ip address
Name            Address               Mask
------------    -------------         -----------------
host            172.16.0.254          255.255.255.0
C3(rw)->

Except: You really want to put an IP address on VLAN 1 instead. See below for how that works. Static IP for the switch management works just fine here for now.

Or set it to be a DHCP client

C3(rw)->set ip protocol dhcp
Changing protocol mode will reset ip configuration.
Are you sure you want to continue? (y/n)y

C3(rw)->save config
Saving Configuration to stacking members
C3(rw)->

Naturally, the DHCP server's config needs some updates to include this device.

You do want it to have a static IP, right?

If you're weird like me and do a lot of static DHCP reservations (hey, it let's you easily change things like your DNS and NTP servers), you'll want the switch's MAC address. Find it like so:

C3(rw)->show mac type mgmt

MAC Address       FID  Port          Type
----------------- ---- ------------- --------
00-1F-45-85-17-38 1    host          Management 
C3(rw)->

And update the DHCPD config appropriately.

IPv6, anyone?

C3(rw)->set ipv6 enable
C3(rw)->show ipv6 address
Name    IPv6 Address                             
-----   ---------------------------------------- 
host    FE80::21F:45FF:FE85:1738/64

C3(rw)->

Pinging that from a host system works as expected:

adj@stuff-puter:~$ ping6 -c 3 fe80::21f:45ff:fe85:1738%eth0
PING fe80::21f:45ff:fe85:1738%eth0(fe80::21f:45ff:fe85:1738) 56 data bytes
64 bytes from fe80::21f:45ff:fe85:1738: icmp_seq=1 ttl=64 time=0.906 ms
64 bytes from fe80::21f:45ff:fe85:1738: icmp_seq=2 ttl=64 time=1.08 ms
64 bytes from fe80::21f:45ff:fe85:1738: icmp_seq=3 ttl=64 time=0.735 ms

--- fe80::21f:45ff:fe85:1738%eth0 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.735/0.908/1.083/0.142 ms
adj@stuff-puter:~$ 

Turn on ye olde SSH server

RS-232 is so 1960s...

C3(rw)->set ssh enabled
SSH hostkey generation initiated. Process should complete in 60 seconds.
C3(rw)->

My SSH client (Debian 7 (openssh-client 1:6.0p1-4+deb7u2)) is unable to negotiate a cipher and MAC spec that work with this switch. Selecting them on the command line as follows works, though:

adj@sacredchao:~$ ssh -c aes128-cbc -m hmac-sha1 rw@theswitchdnsname

And it works over IPv6, too:

adj@sacredchao:~$ ssh -c aes128-cbc -m hmac-sha1 rw@fe80::21f:45ff:fe85:1738%br0
rw@fe80::21f:45ff:fe85:1738%br0's password: 


Enterasys SecureStack C3 
Command Line Interface 

Enterasys Networks, Inc. 
50 Minuteman Rd.
Andover, MA 01810-1008 U.S.A. 

Phone: +1 978 684 1000 
E-mail: support@enterasys.com 
WWW: http://www.enterasys.com 

(c) Copyright Enterasys Networks, Inc. 2011

Chassis Serial Number:      10300519225N
Chassis Firmware Revision:  05.02.18.0002


C3(rw)->

configuration backup

The low-tech way

Just get a screen capture:

C3(rw)->set length 0
C3(rw)->show config
This command shows non-default configurations only.
Use 'show config all' to show both default and non-default configurations.

begin   
!
#***** NON-DEFAULT CONFIGURATION *****
!
!
#Router Configuration  

#arp
!

#arpinspection
!

[and so on, through all the config sections]

Note here that all of the set ... commands can be pasted back into the switch to rebuild the configuration.

Higher tech: using TFTP

Since the switch has an IP address, let's make a copy of its configuration over the network:

First step, make a copy of the current config and save it on the switch:

C3(su)->show config all outfile configs/2015-05-21T2230.cfg
Overwrite existing file (y/n) [n]?y

C3(su)->

Next, save it to a writeable TFTP server somewhere convenient:

C3(su)->copy configs/2015-05-21T2230.cfg tftp://tftp_server_IP_or_name/2015-05-21T2230.cfg

File transfer operation completed successfully.
C3(rw)->

This may require some work on the TFTP server end. On Debian 7, running tftpd-hpa, the target file must already exist and be world-writeable

christening

Names are nice shorthand for "Enterasys Securestack C3G124-48P serial number 10300519225N located at elevation 45 in the first rack in the basement data center." We'll call this one thelowerenterasysswitch (which is not much better, really. But illustrative.)

C3(rw)->set system name "thelowerenterasysswitch"

LLDP -- who's that talking on my ports?

Enable LLDP on all ports:

C3(rw)->set lldp port status both ge.1.1-48
C3(rw)->save config

LLDP is an IEEE protocol. Cisco has its own equivalent called Cisco Discovery Protocol or CDP. (The Enterasys (now Extreme Networks) folks will tell you it started as "Cabletron Discovery Protocol" and Cisco licensed it long ago. Regardless, they do pretty much the same thing.) Let's see who is plugged in:

C3(rw)->show neighbors 

 Port       Device ID            Port ID           Type       Network Address
---------------------------------------------------------------------------------
ge.1.2      theciscowap          GigabitEthernet0  ciscodp    172.16.0.252 
ge.1.16     thekitchenciscow     GigabitEthernet0  ciscodp    172.16.0.253 
ge.1.16     00:27:13:65:A7:31    00-26-C6-6A-DD-84 lldp       10.255.224.8 
ge.1.32     SEP000CCE91C797      Port 1            ciscodp    172.16.0.24  
C3(rw)->

Note that port ge.1.16 has 2 neighbors. The first is the Cisco wireless access point running CDP, and the second is a wifi client running LLDP. SEP000CCE91C797 on port ge.1.32 is a Cisco VoIP phone that's getting its power from the switch. Power over Ethernet (PoE) will be discussed in another section.

VLANs

SecureStack C3 switches (or stack of C3s switches) support up to 1000 VLANs.

create a new VLAN (and add some settings)

C3(rw)->set vlan create 900

It is also possible to create ranges of VLANs in one go:

C3(rw)->set vlan create 200-299

human meaningful description for a VLAN

C3(rw)->set vlan name 900 "Chop down the biggest tree in the forest with a ... herring!!!"
Name must be 32 characters or less.
C3(rw)->set vlan name 900 "Bring us a shrubbery!"
C3(rw)->show vlan 900
 VLAN: 900               NAME: Bring us a shrubbery!
 VLAN Type: Permanent
 Egress Ports 
None.
 Forbidden Egress Ports 
None.
 Untagged ports 
None.

C3(rw)->

Tagged frames must flow!

Set all ports on stack unit 1 to carry VLAN 900 tagged on all ports:

C3(rw)->set vlan egress 900 ge.1.1-48 tagged
C3(rw)->

How that looks when the switch is running:

C3(rw)->show vlan 900
 VLAN: 900               NAME: Bring us a shrubbery!
 VLAN Type: Permanent
 Egress Ports 
ge.1.2, ge.1.7, ge.1.16, ge.1.32, ge.1.34
 Forbidden Egress Ports 
None.
 Untagged ports 
None.

C3(rw)->

The listed egress ports are only those that are currently up. Plug another link partner in on a new port and that port will be listed as an egress port, too.

untagged frames must flow (too)

Use this to set the untagged ingress VLAN ID for a range of ports:

C3(rw)->set port vlan ge.1.17-24 100
The PVID is used to classify untagged frames as they                                  
ingress into a given port.  Would you like to add the selected                                  
port(s) to this VLAN's untagged egress list and remove them                                  
from all other VLANs untagged egress list (y/n) [n]?                                  
NOTE:  Choosing 'y' will not remove the port(s) from previously                                  
configured tagged egress lists.y

C3(rw)->show vlan portinfo port ge.1.17
 Port           VLAN      Ingress   Egress 
                          Filter     Vlan   
-----------------------------------------------------------------
ge.1.17        100        N          untagged: 100
C3(rw)->show vlan portinfo vlan 100
 Port           VLAN      Ingress   Egress 
                          Filter     Vlan   
-----------------------------------------------------------------
ge.1.17        100        N          untagged: 100
ge.1.18        100        N          untagged: 100
ge.1.19        100        N          untagged: 100
ge.1.20        100        N          untagged: 100
ge.1.21        100        N          untagged: 100
ge.1.22        100        N          untagged: 100
ge.1.23        100        N          untagged: 100
ge.1.24        100        N          untagged: 100
C3(rw)->

delete a VLAN

Pretty simple, really:

C3(rw)->clear vlan 900
C3(rw)->show vlan 900
Vlan number 900 does not exist on this device.
C3(rw)->

this one also takes VLAN ranges instead of just a single VLAN number or name

Layer 3 (IP) services for the VLANs

Wherein we create VLAN 100, configure some ports to carry it, and set up DHCP relaying from those ports to the main DHCP server.

C3(rw)->set vlan create 100
C3(rw)->set vlan name 100 "SNOWMAN server mgt 172.20.0.0/24"
C3(rw)->set vlan egress 100 ge.1.17-24 untagged
C3(rw)->set vlan egress 100 ge.1.48 tagged

That's all there is to the Layer 2 configuration. The switch knows about VLAN 100. It's untagged on ports ge.1.17 through ge.1.24. And it's tagged on port ge.1.48, which is this switch's connection to the rest of the network. This next block gets interesting. We go from command syntax that is Enterasys style (set blah ...) to something that looks like a Cisco IOS switch:

C3(rw)->router
C3(rw)->router>enable
C3(rw)->router#configure
Enter configuration commands:
C3(rw)->router(Config)#interface vlan 100
C3(rw)->router(Config-if(Vlan 100))#ip helper-address 172.16.0.1
C3(rw)->router(Config-if(Vlan 100))#ip address 172.20.0.254 255.255.255.0
C3(rw)->router(Config-if(Vlan 100))#no shutdown
C3(rw)->router(Config-if(Vlan 100))#exit
C3(rw)->router(Config)#exit

So, set up a Layer 3 (IPv4) interface on VLAN 100, tell it the DHCP helper is 172.16.0.1, give it an IP address of 172.20.0.254/24, enable it (they come shut down by default), and leave configuration mode.

C3(rw)->router#exit
C3(rw)->router>exit
C3(rw)->save config
Saving Configuration to stacking members
C3(rw)->

And no we're back at the Enterasys CLI. Relevant sections of the switch config:

C3(rw)->show config vlan
This command shows non-default configurations only.
Use 'show config all' to show both default and non-default configurations.

begin   
!
#***** NON-DEFAULT CONFIGURATION *****
!
!

#vlan   
set vlan create 100
set vlan name 100 "SNOWMAN server mgt 172.20.0.0/24"
set vlan egress 100 ge.1.48 tagged
set vlan egress 100 ge.1.17-24 untagged
!
end


C3(rw)->show config router
This command shows non-default configurations only.
Use 'show config all' to show both default and non-default configurations.

begin   
!
#***** NON-DEFAULT CONFIGURATION *****
!
!
#Router Configuration
router
enable
configure
interface vlan 100
no shutdown
ip address 172.20.0.254 255.255.255.0
ip helper-address 172.16.0.1
exit
exit
exit
exit
end


C3(rw)->

And that should be it, right? Well, no, it isn't. Remember how the switch has an IP on the default VLAN, too? The layer 3 router can't do anything with that. We need to get it an IP on VLAN 1 so that the DHCP relaying can work:

C3(rw)->set ip protocol none
Changing protocol mode will reset ip configuration.
Are you sure you want to continue? (y/n)y

C3(rw)->router
C3(rw)->router>enable
C3(rw)->router#configure terminal
Enter configuration commands:
C3(rw)->router(Config)#interface vlan 1
C3(rw)->router(Config-if(Vlan 1))#ip address 172.16.0.254 255.255.255.0
C3(rw)->router(Config-if(Vlan 1))#no shutdown
C3(rw)->router(Config-if(Vlan 1))#exit
C3(rw)->router(Config)#exit
C3(rw)->router#show ip route

Codes: C - connected, S - static, R - RIP, O - OSPF, IA - OSPF interarea
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       E - EGP, i - IS-IS, L1 - IS-IS level-1, LS - IS-IS level-2
       * - candidate default, U - per user static route

C    172.16.0.0/24 [0/1] directly connected, Vlan 1
C    172.20.0.0/24 [0/1] directly connected, Vlan 100
C3(rw)->router#exit
C3(rw)->router>exit
C3(rw)->show ip route

INET route table
Destination                   Gateway                       Flags    Use   If    Metric
127.0.0.1                     127.0.0.1                     UH       0     lo0    5
172.16.0.0/24                 127.0.0.1                     UC       1     rt2    5
172.16.0.254                  127.0.0.1                     UH       0     lo0    5
172.20.0.0/24                 127.0.0.1                     UC       0     rt1    5
172.20.0.254                  127.0.0.1                     UH       0     lo0    5

INET6 route table
Destination                   Gateway                       Flags    Use   If    Metric
::1                           ::1                           UH       0     lo0    5
FE80::21F:45FF:FE85:1738%host ::1                           UH       0     lo0    5

C3(rw)->

Added bonus here: the switch hasn't pulled a default route from the DHCP server any more.

What time is it? It's time for lunch!

(Bubble Guppies on Nickelodeon TV network for kids.)

Configure switch to set its clock against an NTP reference.

C3(rw)->set sntp client unicast 
C3(rw)->set sntp server 172.16.0.1 precedence 1 
C3(rw)->set sntp server 172.16.0.65 precedence 2 
C3(rw)->show sntp
SNTP Version: 3
Current Time: THU JUN 25 16:14:25 2015
Timezone:  offset from UTC is 0 hours and 0 minutes
Client Mode: unicast
Broadcast Count: 0
Poll Interval: 9 (512 seconds)
Poll Retry: 1
Poll Timeout: 5 seconds
SNTP Poll Requests: 1
Last SNTP Update: THU JUN 25 16:13:26 2015
Last SNTP Request: THU JUN 25 09:17:52 2015
Last SNTP Status: Success 

SNTP-Server       Precedence       Status
-------------------------------------------
172.16.0.1                1            Active
172.16.0.65                2            Active
C3(rw)->

port descriptions

Port aliases seem to be the equivalent of other switch vendors' port descriptions:

C3(rw)->set port alias ge.1.1 'PE 1950 s/t FD5RMF1 dedicated DRAC connection' 
C3(rw)->show port alias ge.1.1
Port  ge.1.1 PE 1950 s/t FD5RMF1 dedicated DRAC connection 
C3(rw)->

Let's span our trees!

The various IEEE spanning tree protocols (802.1D Spanning Tree Protocol (STP), 802.1w Rapid Spanning Tree Protocol (RSTP), and 802.1s Multiple Spanning Tree Protocol (MSTP), prevent loops in an multi-switch Ethernet environment.

Turn on Multiple Spanning Tree Protocol (802.1s)

C3(rw)->set spantree version mstp

Yeah, this needs a great deal of filling out. Sorry.