07-05-2012 08:26 PM - edited 03-01-2019 04:49 PM
Before we begin, I’ve segmented this document into three subnets. They are:
1) Introduction section 2) Troubleshooting section. 3) WTF section (I’ll explain later).
Let’s say that you have a pile of switches you need to deploy soon-ish. Now, your stack will “mostly” have the same configuration except the IP Addresses and Hostname. Let’s say that your switch configurations are composed of two parts: Dynamic (unique information such as IP Addresses) or Static (or fixed information).
Before the advent of Zero-Touch, one would sit down behind the pile switches and configure them one by one, very monotonous and very repetitive.
With Zero-Touch, all one has to do is connect a new switch’s Ethernet or Management Port to the switch “Director” Ethernet port (explained later) using an Ethernet cable. Power up the new switch and once the boot-up process completes the new switch will receive a Static Configuration and an IOS upgrade/downgrade from the Director.
Now, for safety reason, you have to manually configure what kind of switch you want to enable. And when I say “what kind of switch”, I meant SPECIFIC models. This feature will be able to determine if your switch is a 24- or 48-port, whether you switch has 2- or 4- SFP ports, etc. For short, very platform-specific.
Zero-Touch uses VLAN 1 and Cisco Discovery Protocol (CDP). Zero-Touch requires VLAN 1 because a new factory-fresh switch does not have any other VLANs other than VLAN 1. Ok so far?
Zero-Touch also uses CDP to “interrogate” the client switch. Zero-Touch takes the CDP value and pulls the “platform” information to know what kind of appliance wants “in” to the Zero-Touch and whether or not there are settings. Because of this, the director will NOT push the IOS and/or the static configuration to, say a 2960 switch to a 3560 (unless you incorrectly configured it to do so). If it’s not in the list, then the Director will not action.
Table 1 Supported Switches
Switch | Director | Client |
---|---|---|
Catalyst 3750-X |
Yes | Yes |
Catalyst 3750-E |
Yes | Yes |
Cisco 3750 | Yes | Yes |
Cisco 3560-X |
Yes | Yes |
Cisco 3560-E |
Yes | Yes |
Cisco 3560-C |
No | Yes |
Cisco 3560 |
Yes | Yes |
Catalyst 2960-S |
No | Yes |
Catalyst 2960-C |
No | Yes |
Catalyst 2960 |
No | Yes |
Catalyst 2975 |
No | Yes |
SM-ES2-16-P |
No | Yes |
SM-ES3 SKUs |
No | Yes |
NME-16ES-1G-P |
No | yes |
NM-16-ESW |
Yes | No |
Table 2 Supported Routers
Router | Director | Client |
---|---|---|
Cisco 3900 Series Integrated Services Routers G2 | Yes | No |
Cisco 2900 Series Integrated Services Routers G2 | Yes | No |
Cisco 1900 Series Integrated Services Routers G2 | Yes | No |
Cisco 3800 Series Integrated Services Routers | Yes | No |
Cisco 2800 Series Integrated Services Routers | Yes | No |
Cisco 1800 Series Integrated Services Routers | Yes | No |
Note: If your switch appliance (like 3560CG or ME-3800X) is not in this list, boy, do I have a joke for you! Read on!
No biggie. You need a TFTP server of course. A 3560 or 3750 switch running at least IOS version 12.2(55)SE1 IP Base which will act as a Director. Cisco documentation will state that Zero-Touch SmartPort was introduced starting with IOS 12.2(55)SE but Cisco insiders recommend using the SE1 rebuild because of “improvements” (aka bug fixes).
That’s simple.
Of course you need the IOS TAR files of the switches involved. You also need to create a few text files. They are:
It’s simple.
Press RETURN to get started!
*Mar 1 00:00:44.048: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1,
changed state to downAuth Manager registration failed
*Mar 1 00:00:45.231: %SPANTREE-5-EXTENDED_SYSID: Extended SysId enabled
for type vlan
*Mar 1 00:01:06.756: %SYS-5-RESTART: System restarted --
Cisco IOS Software, C2960 Software (C2960-LANLITEK9-M), Version 12.2(58)SE1,
RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2011 by Cisco Systems, Inc.
Compiled Thu 05-May-11 02:53 by prod_rel_team
*Mar 1 00:01:13.677: %LINK-3-UPDOWN: Interface GigabitEthernet0/2,
changed state to up
*Mar 1 00:01:14.683: %LINEPROTO-5-UPDOWN: Line protocol on Interface
GigabitEthernet0/2, changed state to up
*Mar 1 00:01:41.703: %LINEPROTO-5-UPDOWN: Line protocol on Interface
Vlan1, changed state to up
!!!! Gets a valid IP Address
*Mar 1 00:01:59.764: AUTOINSTALL: Vlan1 is assigned 1.0.0.9 got vend id
vend spec. info ret: succeed got vend id vend spec. info ret: succeed
!!!! Don’t worry about the word “Aborted” because the “AUTOINSTALL” is part of the feature.
*Mar 1 00:02:20.416: %SMI-6-AUTOINSTALL: Aborted AUTOINSTALL
*Mar 1 00:02:20.416: AUTOINSTALL: Aborted
!!!! Downloads the config template file into the startup-config.
*Mar 1 00:02:20.416: %SMI-6-UPGRD_STARTED: Device (IP address: 1.0.0.9)
startup-config upgrade has started
Loading 2960lite_config.txt from 1.1.1.1 (via Vlan1): !
[OK - 1324 bytes]
*Mar 1 00:02:38.502: %SYS-5-CONFIG_NV_I: Nonvolatile storage configured
from tftp://1.1.1.1/2960lite_config.txt by console
*Mar 1 00:02:39.517: %SMI-6-UPGRD_SUCCESS: Device (IP address: 1.0.0.9)
startup-config has upgraded successfully
*Mar 1 00:02:39.526: %SMI-6-UPGRD_STARTED: Device (IP address: 1.0.0.9)
image upgrade has started
!!!! Next the IOS image list is being verified to know what file is to be used.
Loading 2960-24-8poe-lanlite-imagelist.txt from 1.1.1.1 (via Vlan1): !
[OK - 34 bytes]
!!!! Don’t worry about the “could not buffer”. Happens all the time.
Could not buffer tarfile...using multiple downloads
examining image...
extracting info (107 bytes)
!!!! IOS is being downloaded and extracted to the new switch
System Type: 0x00000000
Ios Image File Size: 0x009DFA00
Total Image File Size: 0x00DC0200
Minimum Dram required: 0x04000000
Image Suffix: lanlitek9-122-58.SE1
Image Directory: c2960-lanlitek9-mz.122-58.SE1
Image Name: c2960-lanlitek9-mz.122-58.SE1.bin
Image Feature: LAYER_2|SSH|3DES|MIN_DRAM_MEG=64
Old image for switch 1: same as image to overwrite
Image to be installed already exists...will be removed before download.
Deleting `flash:c2960-lanlitek9-mz.122-58.SE1' to create required space
Extracting images from archive into flash...
c2960-lanlitek9-mz.122-58.SE1/ (directory)
c2960-lanlitek9-mz.122-58.SE1/html/ (directory)
--- CUT ---
extracting c2960-lanlitek9-mz.122-58.SE1/info (427 bytes)
extracting info (107 bytes)
Installing (renaming): `flash:update/c2960-lanlitek9-mz.122-58.SE1' ->
`flash:/c2960-lanlitek9-mz.122-58.SE1'
New software image installed in flash:/c2960-lanlitek9-mz.122-58.SE1
!!!! Finish
All software images installed.
Requested system reload in progress...
*Mar 1 00:12:16.586: %SYS-5-RELOAD: Reload requested by SMI IBC client process.
Reload Reason: Switch upgraded through Smart Install.
Depending on the model of your switch between 10 to 15 minutes from the time the “client” is seen by the VStack Director.
The most useful command I’ve used is the “sh vstack status”.
SmartInstall: ENABLED
Status: Device_type Health_status Join-window_status Upgrade_status
Device_type: S - Smart install N - Non smart install P - Pending
Health_status: A - Active I - Inactive
Join-window_Status: a - Allowed h - On-hold d - Denied
Image Upgrade: i - in progress I - done X - failed
Config Upgrade: c - in progress C - done x - failed
Director Database:
DevNo MAC Address Product-ID IP_addr Hostname Status
===== ============== ================= =============== ========== =========
0 001e.490e.7600 WS-C3750G-24PS 192.168.1.2 Director Director
Pay close attention to the output under the “Status” section. This will tell you the progress of the Zero-Touch based on each “DevNo” or Index Number (first column).
There are two commands that the original Cisco documentation will tell you. They are:
I have a 50% success rate when using these two commands. Let me explain:
The Zero-Touch works great. Most of the time when I run into trouble, the most common issue I would see are is the switch would fail to download the config, download the IOS, reboot and attempt (but fail) to download the config. Sometimes it won’t even download the IOS.
Like I’ve mentioned before the two commands that Cisco recommends on using doesn’t work all the time. I would resort to power down the offending client, count to five, and powering up the client. Now THIS process works for me 100% of the time.
This section is called the WTF section. Why?
Let’s say that you read Table 1 and saw that you have a number of switch models that are NOT in the table, for example a Cisco 3560CG-8PC (in the list but this model is not available in the configuration) or Cisco ME-3800X-24FS. Well, in the back of your mind, you’d probably thinking that if you are reading this section, then something can be done to enable these unsupported models to work with Zero-Touch. Well? Can you?
And the short answer is? YES (if you use the magic word).
a) Same rules apply for the Switch Director:
b) You need the IOS TAR file of the switches
c) You need to create a Static Configuration file per switch; and
d) You need to create an image file
In my case, I had to deploy 3560CG-8PC and ME-3800X-24FS. So my image filename has to be exact. For the 3560CG-8PC has to be exact “3560CG-8PC-imagelist.txt” and the ME-3800 is called “ME3800X-imagelist.txt”.
Director(config)# vstack group custom <Enter any value> product-id
Director(config)# image tftp://<TFTP IP Address>/<IOS_filename>.TAR
Director(config)# config tftp://<TFTP IP Address>/<Config_filename>.txt
!!!! The magic word is “match”.
Director(config)# match WS-C3560CG-8PC-S
Director(config)# vstack group custom <Enter any value> product-id
Director(config)# image tftp://<TFTP IP Address>/<IOS_filename>.TAR
Director(config)# config tftp://<TFTP IP Address>/<Config_filename>.txt
!!!! The magic word is “match”.
Director(config)# match ME-3800X-24FS-M
The value after the “match” statement is very specific. The value comes out of the client’s Product ID (PID) and must be entered in ALL-CAPS. The Zero-Touch function will not work if this value is expressed in any other mean.
Unfortunately, the answer is NO.
I’ve tried using a 2950 and it won’t work. I don’t have the resources to test but if a switch (like the 3550 or the 2970) can run IOS version 12.2 then it could work using the “match” statement.
There's very little available on vstack for the 2960X's and all I can find is autoinstall which isn't the same.
2960-series family of switches does NOT and WILL NOT support vstack director.
Currently, IOS version 15.0(2)SE4 doesn't support 2960X switches either. Don't be tempted to use 15.2(1)E-train IOS. This particular train is about to "die". The bugs on this train alone is longer than a Chinese take-away menu.
Any fixes in the 15.2(1)E train will be incorporated with 15.2(2)E scheduled for release by the end of June 2014.
Thanks for this, so the only option with the 2960X family is to use autoinstall instead.
I'll give that a whirl and see what happens.
I've sort of managed to get Vstack working with the 2960X, the directors a 3750G on 12.2(55)SE9 and I got it to work for one 2960X but on trying a second it complained that the config tftp string wasn't in the correct format, but the IOS upgrade worked fine. Connect the other switch and it works fine with the same config on the director so its very hit and miss and unfortunately we only have two 2960X's to test it with.
What annoys me more is TAC just throws the configs at you saying the 2960X as a client works fine but they don;t have a clue themselves what's going on either that or no one is telling them that Vstack is as flaky as the 15.x IOS.
Last 27 June 2014, Cisco released a new set of IOS versions, 15.2(2)E or 3.6.0E. One of the major features included is the ZeroTouch SmartInstall Post-Install Script.
Additional Link: Smart Install Configuration Guide - for IOS version 15.2(2)E/3.6.0E
That's assuming it works and given Cisco's history I'm not holding my breath and also assumes that the switch your trying to use for Smartinstall supports the firmware which our current director doesn't as its a 3750G.
What is quite funny is that I managed to get the 2960X working with Vstack using 12.2(55)SE9 on the director but none of the 15.x on the director worked with the 2960X, good old Cisco.
Thanks for the feedback, Jon.
My director is currently working on 15.0(2)SE4. And I won't upgrade the IOS to anything in the 15.0 range. I'll be testing 15.2(2)E before upgrading the director to this image.
What annoys me more is TAC just throws the configs at you saying the 2960X as a client works fine but they don;t have a clue themselves what's going on either that or no one is telling them that Vstack is as flaky as the 15.x IOS.
I feel your pain.
Not everyone in TAC knows how to configure SmartInstall.
Is there a way to bypass the time consuming process of downloading new IOS image?
I also would like to be able to create a vstack custom group that can match on S/N. Matching on MAC address falls short because the MAC is not printed on the Cisco label on the shipping box. I want to be able to take a shipping list like this:
S/N: FCQ17893 - was shipped to Site X
S/N: FCQ17894 - was shipped to site Y
and create my vstack custom groups in advance of the new client switch being cabled to the network. If I can't match on S/N then I have to wait for the new switch to be cabled to the network, see what MAC address I am learning from the new switch, then create my vstack group to match on the MAC.
Is there a way to bypass the time consuming process of downloading new IOS image?
If you don't want the VStack director to push the IOS then you can remove the "image tftp://" line.
I also would like to be able to create a vstack custom group that can match on S/N. Matching on MAC address falls short because the MAC is not printed on the Cisco label on the shipping box.
What MAC address? ZeroTouch SmartInstall works on the cornerstone of CDP. Via CDP the Director can extrapolate what model/sub-model of an appliance you are.
Serial number won't work because a serial number is not indicative of the model of your appliance.
The base MAC of the client switch Mr. Leo. For example:
vstack group custom TestGroup mac
image tftp://10.10.1.249/Test/c2960-lanbasek9-tar.122-55.SE7.tar
config tftp://10.10.1.249/Test/2960-template
match mac 64e9.50b2.0480
I believe I tried removing the "image tftp://" line and the Smart Install process failed. I will try again though.
Could you please post a sample interface configuration for the trunk back to the network (green line in your diagram)?
Let's say your production VLAN's are 110 and 120 and your ZeroTouch is VLAN 1. So the configuration is:
interface BLAH
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk vlan allow 110, 120
You will notice that VLAN 1 is specifically NOT allowed to traverse into your network.
I'm trying to do the same thing as Henrik and was able to get as far as he described. I'm not sure I follow the process completely though.
If the vstack director's switchport configuration (access vlan 1) is not changed, and the configuration template sent to the vstack client changes the uplink access port to vlan 2, how do the two switches communicate without getting native vlan mismatch errors? Either way I think about it, some type of extra switchport configuration needs to be done on the director.
I know I'm missing a middle step here. Your guide was well written and covers just about everything, thanks for putting in the time to write it up.
If the vstack director's switchport configuration (access vlan 1) is not changed, and the configuration template sent to the vstack client changes the uplink access port to vlan 2, how do the two switches communicate without getting native vlan mismatch errors? Either way I think about it, some type of extra switchport configuration needs to be done on the director.
Ok ... Here's how this entire process works.
1. New client attaches to the director.
2. Director "interrogates" the new client switch. Is the EXACT model in my list or not. If not, go away. If you are, then proceed.
3. Director sends the specified configuration template to the client. This configuration template is save into the STARTUP-CONFIG of the client (and not in the running-config). This means, the client can continue with the process without any worrying anything about "what VLAN am I in".
Does this answer your question?
If it does answer your question, then I'd like to throw some "curve ball" in your direction.
I believe in subsequent IOS release, I believe 15.2(1)E, a new command was added to this feature. The command is "vstack vlan <NUMBER>". The concept (or logic) is that not everyone disables VLAN 1 (i. e. a lot of networks out there still use VLAN 1 in production). The command instructs the Director to use a different VLAN as part of the process. If you use "vstack vlan <NUMBER>" then all your switchport (that is part of this process) needs to be a member of this VLAN (instead of VLAN 1). In my above example, I've put/assigned the Director management IP address in VLAN 1. With the "vstack vlan <NUMBER>" the management VLAN of the Director is reflected in the new VLAN interface. Example, instead of VLAN 1, I want to use VLAN 999. So my configuration goes like this:
vlan 999 name VStack exit ! vstack vlan 999 ! interface vlan 999 ip address 1.1.1.254 255.0.0.0 no shutdown ! interface range Gi 1/0/1 - 12 switchport access vlan 999 exit ! vstack director 1.1.1.1 vstack basic
Of course, after the "vstack basic", you put your built-in groups, custom groups, etc.
Hope this helps.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: