AutoSmart Ports
AutoSmart Ports (ASP) are an IOS tool that allows you to consolidate many of the necessary port settings for various device types into an automated process that can be applied to a single port or a series of ports. AutoSmart ports use a macro-based mechanism that commonly uses CDP and LLDP to discover the physical device type that is connected to a switch port. Once the device type is determined, the switch will then check to see if a corresponding macro is defined that matches the specific device type that was connected. If the device type is known and there is a macro definition for it, the switch will then automatically provision the port, based on the settings defined in the macro. This will significantly reduce the amount of time needed to establish connectivity to users who move around the environment or for new users who are being brought on board for the first time. Figure 7-1 outlines the process for what happens when a Cisco IP phone device is connected to a Catalyst switch while AutoSmart Ports are enabled.
Figure 7-1 AutoSmart Port discovery process for Cisco IP phone
One of the main advantages of AutoSmart ports is that the switches contain predefined macros that can be modified to suit your environment. In addition, you can also customize those predefined macros to include all the necessary parameters for your specific environment. Table 7-1 shows a list of some of the predefined device-specific macros that are available in most Cisco Catalyst switches.
Table 7-1 Device Specific Macros and Descriptions
Method |
Algorithm |
IKEv2 encryption |
AES-GCM-256 |
IKEv2 PRF |
SHA512 |
Diffie-Hellman |
Group 21 |
Authentication |
Elliptic Curve Digital Signature Algorithm |
IPsec encryption |
AES-GCM-256 |
IPsec PFS |
Group 21 |
Enabling AutoSmart Ports on a Cisco Catalyst Switch
In order to enable AutoSmart Ports on a Cisco Catalyst switch, you must follow the steps illustrated in the following example. Another key advantage of this specific automation tool is that it takes a single command to enable to macro functionality.
Switch> enable Switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Switch(config)# macro auto global processing Switch(config)# end Switch#
Occasionally, predefined macros contain most of the desired settings that are needed without requiring any modification to the macro. In some cases, however, customizing a macro to fit your needs is a better alternative. Customized macros are commonly deployed when more granular configurations are required. For example, a customized macro may be one that not only changes voice and data VLANs, but can also be used to configure quality of service (QoS) settings and other various options. The following example lists the default settings of the Cisco IP phone macro. This can be seen with the show macro auto device phone command.
Switch# show macro auto device phone Device:phone Default Macro:CISCO_PHONE_AUTO_SMARTPORT Current Macro:CISCO_PHONE_AUTO_SMARTPORT Configurable Parameters:ACCESS_VLAN VOICE_VLAN Defaults Parameters:ACCESS_VLAN=1 VOICE_VLAN=2 Current Parameters:ACCESS_VLAN=1 VOICE_VLAN=2
The following output illustrates the configuration steps that are necessary to customize and trigger a predefined macro. In this example, the macro, when applied, will change the voice and data VLANs for a port when Cisco IP phone is connected.
Switch# configure terminal Switch(config)# macro auto execute CISCO_PHONE_EVENT builtin CISCO_PHONE_AUTO_ SMARTPORT ACCESS_VLAN=11 VOICE_VLAN=13 Switch(config)# macro auto global processing Switch(config)# exit
To verify this macro is properly modified with the new VLAN assignments, issue the show shell triggers command from the EXEC prompt of the CLI. The following snippet shows the output from the show shell triggers command.
Switch# show shell triggers User defined triggers --------------------- Built-in triggers ----------------- Trigger Id: CISCO_PHONE_EVENT Trigger description: Event for ip-phone macro Trigger environment: ACCESS_VLAN=11 VOICE_VLAN=13 Trigger mapping function: CISCO_PHONE_AUTO_SMARTPORT Other common event triggers that can be viewed and modified are: Trigger Id: CISCO_ROUTER_EVENT Trigger Id: CISCO_SWITCH_EVENT Trigger Id: CISCO_WIRELESS_AP_EVENT Trigger Id: CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT
In certain cases, the device you connect to the switch may not be able to use CDP or LLDP to identify itself to the switch. In these instances, you can create a custom macro that uses a BASH-like language syntax. Another interesting use case utilizes the MAC address OUI to identify and properly configure various devices on the switch. The following example shows a custom macro for a printer, using the MAC address OUI as a classifier.
Switch(config)# macro auto mac-address-group OUI_PRINTER_PORT oui list 0000AA exit Switch(config)# macro auto execute OUI_PRINTER_PORT { if [[ $LINKUP -eq YES ]] then conf t interface $INTERFACE description OUI_PRINTER_PORT macro switchport switchport mode access switchport access vlan data_vlan power inline never spanning-tree portfast exit end fi if [[ $LINKUP -eq NO ]] then conf t interface $INTERFACE switchport access vlan data_vlan no spanning-tree portfast no description exit end fi }
AutoSmart Ports are a great start to automating specific tasks when it comes to managing your campus LAN. It should be noted that even though AutoSmart Ports are not the most granular way to automate port configurations based on device, it is still a very powerful solution to help reduce some of the more arduous tasks that relate to day-to-day moves, additions, and changes (MACs).