Una de las funciones de seguridad incluidas en los conmutadores Cisco Catalyst es el control de tráfico basado en puertos. Esta función gestiona individualmente el comportamiento de los puertos del switch en respuesta a un tipo y/o cantidad de tráfico especificado.

Entre otras cosas, se pueden configurar cosas como el comportamiento de un puerto de switch específico cuando comienza el control de tormentas, si el switch inundará el tráfico no identificado unicast o multicast, e incluso si cierra o restringe el tráfico cuando detecta direcciones MAC no permitidas.

En este post nos detendremos un poco en la característica denominada Control de Tormentas. Se trata de la generación de tráfico no controlado en el switch. Un ejemplo de este tráfico se produce cuando se genera un bucle entre varios switches de capa-2. Todos los switches inundan la nueva red con tráfico ARP sin control. Esto hace que todos los hosts conectados dejen de responder en la red, además de que el uso de la CPU del switch se dispara al 100%, lo que a su vez genera una denegación de servicio automática.

Con los Switches Cisco Catalyst podemos controlar todo este tipo de tráfico mediante esta característica. Se trata de establecer límites en los puertos, de forma que cuando este tráfico es detectado y supera el límite que hemos establecido, entonces el puerto del switch descartará estos paquetes. El switch monitoriza el tráfico que va al bus y cuenta el número de paquetes en un segundo. Si este recuento supera el umbral configurado el tráfico es descartado.

Podemos utilizar 3 tipos de medidas:

  • Porcentaje de ancho de banda del puerto
  • Tráfico en paquetes por segundo
  • Tráfico en bytes por segundo

De esta forma podemos, por ejemplo, que para el puerto Fa0/7 limitemos el tráfico broadcast al 60% del ancho de banda total del puerto. O quizás sólo 3k bit/s. Además podemos especificar como se comportará el puerto, si bloqueará o enviará un trap SNMP cuando el tráfico supere el umbral establecido.

Sintaxis muy sencilla:

switch(config-if)# storm-control action {drop | trap}

Digamos que queremos que el puerto FastEthernet 0/11 descarte el tráfico de difusión cuando se consuma más del 70% del ancho de banda, y vuelva a reenviarlo cuando esté por debajo del 60%, haremos así:

switch> en
switch# conf t
switch(config)# int f0/11
switch(config-if)# storm-control broadcast level 70 60
switch(config-if)# storm-control action drop

Ahora llegamos a la parte menos conocida del Storm Control. La característica conocida como Small-Frame Arrival Rate. Existe una excepción al tráfico de red no manejado por las configuraciones anteriores, y que puede llevarnos a la congestión y saturación de la red a lo largo del camino. Aquellos paquetes con etiqueta VLAN y menores de 67 bytes. Esos son reenviados por el switch pero no disparan los contadores de control de tormentas. Desde IOS 12.2(44)SE podemos configurar si un puerto pasará al estado de error deshabilitado si esas small-frames superan el umbral.

Esto hay que configurarlo primero globalmente y con límites individuales para cada puerto. Configuramos globalmente las causas para deshabilitar por error el puerto y el tiempo que tardará en salir del estado deshabilitado por error.

De nuevo, sintaxis sencilla:

switch(config)# err-disable detect cause small-frame
switch(config)# err-disable recovery cause small-frame
switch(config)# int f0/21
switch(config-if)# small-frame violation rate 5000

Esto es suficiente hasta ahora. Este post era para mostrar la capacidad de llegada de pequeñas tramas de Catalyst. Existe una amplia documentación en www.cisco.com sobre Port-Based Storm Control. Encontrarás algunas características más que no he mencionado aquí.