Los switches pueden detectar condiciones de error automáticamente en cada uno de sus puertos. Cuando se detecta un error, el switch pone el puerto en estado “errdisable” y es deshabilitado.
Esta característica esta habilitada por defecto y existen varias condiciones de error que pueden detonar este estado:
- All: detecta todas las causas posibles
- arp-inspection: detecta errores con la inspección ARP dinámica
- bpduguard: detecta cuando se recibe un bridge-protocol data unit (BPDU) de Spanning-tree en un puerto configurado con PortFast
- dhcp-rate-limit: detecta un error con DHCP snooping
- dtp-flap: detecta cuando la encapsulación de trunking está cambiando de un tipo a otro
- gbic-invalid: detecta la presencia de un módulo GBIC o SFP no válido
- inline-power: detecta un error al ofrecer alimentación en línea PoE
- l2ptguard: detecta un error con el túnel de protocolo de capa 2
- link-flap: detecta cuando el estado del enlace del puerto está "flapping" entre los estados up y down
- pagp-flap: detecta cuando los puertos de un grupo EtherChannel no tienen configuraciones consistentes
- pppoe-ia-rate-limit: detecta errores con PPPoE Intermediate Agent que limita la velocidad
- psecure-violation: detecta las condiciones que activan la seguridad del puerto configurada en un puerto
- security-violation: detecta errores relacionados con la seguridad 802.1X
- storm-control: detecta cuándo se ha excedido el control de una tormenta en un puerto
- udld: detecta cuando un enlace se ve que es unidireccional (los datos pasan en una sola dirección)
Por defecto, se requiere intervención administrativa para restaurar el estado del puerto.
Es necesario apagar (shutdown) la interfaz y volver a levantarla (no shutdown) para quitar el error. Es necesario mitigar la causa origen para evitar el estado errdisable nuevamente.
Para validar las casusas que actualmente pueden enviar a errdisable un puerto utilicemos el siguiente comando:
# sh errdisable detect !Example: Switch# sh errdisable detect ErrDisable Reason Detection status ----------------- ---------------- udld Enabled bpduguard Enabled security-violatio Enabled channel-misconfig Enabled psecure-violation Enabled mac-limit Enabled unicast-flood Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled l2ptguard Enabled gbic-invalid Enabled dhcp-rate-limit Enabled arp-inspection Enabled inline-power Enabled packet-buffer Enabled transceiver-incom Enabled Switch#
Se puede ajustar este comportamiento de forma global para que solo ciertas causas activen la inhabilitación de cualquier puerto, por ejemplo:
Switch(config)# errdisable detect cause arp-inspection Switch(config)# errdisable detect cause storm-control
Por default errdisable viene habilitado con el siguiente comando:
Switch (config)# errdisable detect cause all
Usemos el siguiente comando con la palabra clave no para desactivar una causa específica o todas a la vez:
Switch (config)# [no] errdisable detect cause all | cause-name
RECOVERY
Dado a que la recuperación por default del estado errdisable es manual, los switches afrecen un feature para programarlos a que rehabiliten automáticamente el estado errdisable especificando todas o algunas de las causas disponibles, el comando es el siguiente:
! Switch(config)# errdisable recovery cause all
El comando anterior aplica para todas las causas y lo hace cada 300 segundos (5 minutos) por default.
Podemos validar el recovery con el siguiente comando:
Switch# show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Enabled bpduguard Enabled security-violatio Enabled channel-misconfig Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled l2ptguard Enabled psecure-violation Enabled gbic-invalid Enabled dhcp-rate-limit Enabled mac-limit Enabled unicast-flood Enabled arp-inspection Enabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout:
El intervalo de recuperación aplica para todas las causas y todos los puertos, el intervalo se puede modificar entre un valor de 30 a 86400 segundos (24 horas).
Modifiquemos el valor de autorecupración a 45 segundos con el siguiente comando:
Switch (config)# errdisable recovery interval 45
Con el comando anterior el switch esperará 45 segundos para quitar el errdisable del puerto, si se encuentra en problemas nuevamente el puerto se vuelve a poner en errdisable y se vuelve a reiniciar el temporizador.
Comandos de validación para el estado errdisable:
Switch# show interfaces errdisable Switch# show interfaces status Switch# show interfaces g0/1 status Port Name Status Vlan Duplex Speed Type Gi0/1 err-disabled 10 full 1000 1000BaseT
Mas información
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/69980-errdisable-recovery.html