Generalmente, cuando administramos switches Cisco, es fácil encontrarnos con configuraciones idénticas en distintas interfaces de red. La forma habitual de configurar las interfaces, aunque sencilla, puede resultar tediosa, puesto que se trata de copiar la misma configuracion en distintas interfaces individuales o rangos de interfaces. No obstante, una forma más cómoda de hacerlo es mediante el uso de macros smartport.
Los macros Smartport son scripts de configuraciones creados previamente, que es posible aplicarlos a las distintas interfaces de red, de forma que ganamos consistencia y velocidad a la hora de configurar dispositivos.
Los Switches Cisco tienen varias macros creadas por defecto, que nos permiten configurar interfaces para soportar entre otros, equipos de usuario, telefonos, u otra electronica de red; mediante el comando show parser macro brief es posible ver las macros definidas en nuestro switch:
Switch#show parser macro brief default global : cisco-global default interface: cisco-desktop default interface: cisco-phone default interface: cisco-switch default interface: cisco-router default interface: cisco-wireless
Si queremos ver con detalle alguna de las macros existentes, podemos hacerlo mediante el comando parser macro name NOMBRE. Por ejemplo, veamos la configuracion de la macro cisco-desktop, macro usada habitualmente para conectar un PC al switch:
Switch#show parser macro name cisco-desktop Macro name : cisco-desktop Macro type : default interface # macro keywords $access_vlan # Basic interface - Enable data VLAN only # Recommended value for access vlan should not be 1 switchport access vlan $access_vlan switchport mode access # Enable port security limiting port to a single # MAC address -- that of desktop switchport port-security switchport port-security maximum 1 # Ensure port-security age is greater than one minute # and use inactivity timer switchport port-security violation restrict switchport port-security aging time 2 switchport port-security aging type inactivity # Configure port as an edge network port spanning-tree portfast spanning-tree bpduguard enable
A continuación, procedemos a aplicar una de las macros existentes en nuestro switch. La macro cisco-desktop requiere como parametro de entrada la VLAN a la que pertenece el equipo que se va a conectar (vlan 2):
Switch(config)#interface range fastEthernet 0/1 - 10 Switch(config-if-range)#macro apply cisco-desktop $access_vlan 2 %Warning: portfast should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc... to this interface when portfast is enabled, can cause temporary bridging loops. Use with CAUTION %Portfast will be configured in 10 interfaces due to the range command but will only have effect when the interfaces are in a non-trunking mode. Switch(config-if-range)#end
Una vez aplicada, podemos ver los efectos de la macro en una de las interfaces de red. La configuración no sobreescribe los parametros anteriores:
Switch#show running-config interface fastEthernet 0/5 Building configuration... Current configuration : 423 bytes ! interface FastEthernet0/5 switchport access vlan 2 switchport mode access switchport voice vlan 21 switchport port-security switchport port-security aging time 2 switchport port-security violation restrict switchport port-security aging type inactivity mls qos trust cos macro description cisco-desktop | cisco-desktop | cisco-desktop | cisco-desktop spanning-tree portfast spanning-tree bpduguard enable end
Finalmente, podemos ver las macros aplicadas a nuestras interfaces de red.
Switch#show parser macro description Interface Macro Description(s) -------------------------------------------------------------- Fa0/1 cisco-desktop Fa0/2 cisco-desktop Fa0/3 cisco-desktop Fa0/4 cisco-desktop Fa0/5 cisco-desktop Fa0/6 cisco-desktop Fa0/7 cisco-desktop Fa0/8 cisco-desktop Fa0/9 cisco-desktop Fa0/10 cisco-desktop
No obstante, puesto que nuestra configuracion puede cambiar con respecto a las plantillas predefinidas por Cisco, tambien podemos crearnos nuestras propias macros, y como en el caso anterior, poder pasar parámetros a las macros. Para nuestro ejemplo, crearemos una configuracion estandar para conexion de servidores al switch.
switch(config)#macro name Servidores Enter macro commands one per line. End with the character '@'. # Modo Acceso switchport mode access # VLAN Datos switchport access vlan $VLANID # Seguridad en puerto switchport port-security # Velocidad speed 100 # Modo duplex full no shutdown @
Una vez creada, procedemos a visualizarla:
Switch#show parser macro name Servidores Macro name : Servidores Macro type : customizable # Modo Acceso switchport mode access # VLAN Datos switchport access vlan $VLANID # Seguridad en puerto switchport port-security # Velocidad speed 100 # Modo duplex full no shutdown
A continuacion, aplicamos la configuracion en las interfaces deseadas:
Switch(config)#interface range fastEthernet 0/24 - 30 Switch(config-if-range)#macro apply Servidores $VLANID 20 Switch(config-if-range)#macro description VLAN Acceso end
Y comprobamos que la macro se aplica correctamente a las interfaces:
Switch#show parser macro description Interface Macro Description(s) -------------------------------------------------------------- Fa0/24 VLAN Acceso | Servidores Fa0/25 VLAN Acceso | Servidores Fa0/26 VLAN Acceso | Servidores Fa0/27 VLAN Acceso | Servidores Fa0/28 VLAN Acceso | Servidores Fa0/29 VLAN Acceso | Servidores Fa0/30 VLAN Acceso | Servidores -------------------------------------------------------------
Finalmente, podemos observar la configuracion que cargara la interfaz.
switch#show running-config interface fastEthernet 0/25 Building configuration... Current configuration : 179 bytes ! interface FastEthernet0/25 switchport access vlan 20 switchport mode access switchport port-security speed 100 duplex full macro description VLAN Acceso | Servidores end
Esperamos que esto les ayude a ahorrar algo de tiempo. En cualquier caso, como dice Cisco, Use with CAUTION, especialmente en sistemas especialmente críticos. Ah, y no hagan cambios hoy, que es viernes. Pasen un buen fin de semana.