Configuracion de Macros Cisco

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.