Ingeniero
El QOS es una de las cuestiones que todos deberíamos tener en cuenta para el correcto funcionamiento de las redes pero es un tema tan extenso y complejo como para desorientar al más experimentado ingeniero de redes.
La idea de este post es dar unas nociones básicas de cómo manejar los anchos de banda usando IOS usando un ejemplo concreto.
Ates quenada debo aclarar que en este post no voy a ingresar en cuestiones avanzadas del tema, sino que voy a dar una visión general de como se clasifica el tráfico para luego aplicarle una política determinada. Puntualmente estoy hablando de limitar los anchos de banda con las herramientas que nos provee IOS.
En el ejemplo, tenemos un router de borde que da servicio a cinco subredes, y queremosmanejar los anchos de banda de cada una por separado.
Veamos el diagrama:
Lo primero que vamos a hacer es definir access lists por cada rango de direcciones IP que vamos a
utilizar para definir los anchos de banda.
access-list 10 permit 200.200.10.0 0.0.0.255
access-list 20 permit 200.200.20.0 0.0.0.255
access-list 30 permit 192.168.30.0 0.0.0.255
access-list 31 permit200.200.30.0 0.0.0.7
access-list 32 permit 200.200.30.8 0.0.0.7
Ahora definiremos las class-map.
Estas son estructuras que contienen las condiciones que se deben cumplir para que pase algo.
Como un class-map puede tener varias condiciones adentro, debemos decir si se tienen que dar todas a la vez, o bien cualquiera de ellas.
Para eso utilizamos los parámetros match-all ó match-anyrespectivamente. Si no especificamos ninguno de los dos, se tomará match-all por defecto.
Formato:
Router(config)#class-map [match-all | match-any] NombreDeLaClassMap
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#class-map match-all Prueba
Router(config-cmap)#
Router(config-cmap)#description matchea el trafico web de una determinada redRouter(config-cmap)#match protocol http
Router(config-cmap)#match access-group 1
Router(config-cmap)#exit
Router(config)#class-map match-any P2P
Router(config-cmap)#description Con esto voy a filtrar CUALQUIER cliente P2P (emule, ares, etc...)
Router(config-cmap)#match protocol ares
Router(config-cmap)#match protocol bittorrent
Router(config-cmap)#match protocol directconnectRouter(config-cmap)#match protocol edonkey
Router(config-cmap)#match protocol gnutella
Router(config-cmap)#match protocol kazaa
Router(config-cmap)#match protocol kazaa2
Router(config-cmap)#match protocol napster
Router(config-cmap)#match protocol winmx
Router(config-cmap)#exit
Router(config)#
Así creamos todos los class-map que sean necesarios. Ellos pueden matchear por:
ip de origen
ip de destinoaccess-list
protocolo (NBAR)
Marca de paquete
Etiqueta de MPLS
Todos los paquetes (any)
Clase de Servicio (COS)
Interfaz de entrada
Otros (dependiendo del IOS)
Configurar la policy-map:
Con esto creamos una política que va a ser un agrupamiento de las classmaps bajo un mismo nombre, en donde vamos a definir qué se hace cuando se cumplen las condiciones que ellas establecen.
Formato:Router(config)#policy-map NombreDeLaPolicyMap
Router(config-pmap)#class NombreDeLaClassMap
Router(config-pmap-c)#police Garantizado Rafagas Pico \
conform-action Accion exceed-action Accion violate-action Accion
Acción puede ser:
Dejarlo pasar (transmit)
Filtrarlo (drop)
Otra (dependiendo del IOS)
Ejemplo:
Router(config)#policy-map TraficoInternet
Router(config-pmap)#classPrueba
Router(config-pmap-c)#police 1000000 1500000 2000000 conform-action \
transmit exceed-action transmit violate-action drop
Router(config-pmap-c)#exit
Router(config-pmap)#class P2P
Router(config-pmap-c)#drop
Router(config-pmap-c)#exit
Router(config)#
Ahora solo queda aplicar todo en las interfases que sean necesarias:
Formato:
Router(config)#interface NombreInterfase...
Regístrate para leer el documento completo.