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 que nada 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 queremos manejar 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 permit 200.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-any respectivamente. 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 red Router(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 directconnect Router(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 destino
- access-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)#class Prueba 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 Router(config-if)#service-policy {input | output} NombreDeLaPolicyMap Router(config)#exit
Ejemplo:
Router(config)#interface FastEthernet0/0 Router(config-if)#service-policy input TraficoInternet Router(config-if)#service-policy output TraficoInternet Router(config-if)#exit
Ejemplo completo de la config del diagrama de arriba:
Router#sh run Building configuration... Current configuration : 3501 bytes ! version 12.2 service timestamps debug uptime service timestamps log uptime service password-encryption ! hostname Router !! ip subnet-zero ip cef !! ip name-server 209.165.201.1
ip name-server 209.165.201.2
! ip audit notify log ip audit po max-events 100 !! class-map match-all VlanServidores match access-group 20 class-map match-all VlanAbonados match access-group 10 class-map match-all VlanEmpresaA match access-group 31 class-map match-all VlanEmpresaB match access-group 32 class-map match-any P2P description Protocolos Basura match protocol fasttrack match protocol gnutella match protocol napster match protocol netbios match protocol emule match protocol ares match protocol bittorrent class-map match-all VlanEmpleados match access-group 30 !! policy-map TraficoSaliente description Trafico Saliente class VlanAbonados police 2000000 62500 62500 conform-action transmit exceed-action drop class VlanServidores police 2000000 4000000 4500000 conform-action transmit exceed-action transmit violate-action drop class VlanEmpleados police 1000000 2000000 2000000 conform-action transmit exceed-action transmit violate-action drop class VlanEmpresaA police 1000000 31250 31250 conform-action transmit exceed-action drop class VlanEmpresaB police 256000 8000 8000 conform-action transmit exceed-action drop class P2P police 8000 1500 1500 conform-action drop exceed-action drop violate-action drop class class-default police 8000 1500 1500 conform-action drop exceed-action drop violate-action drop policy-map TraficoEntrante description Trafico Entrante class VlanAbonados police 2000000 62500 62500 conform-action transmit exceed-action drop class VlanServidores police 2000000 4000000 4500000 conform-action transmit exceed-action transmit violate-action drop class VlanEmpleados police 1000000 2000000 2000000 conform-action transmit exceed-action transmit violate-action drop class VlanEmpresaA police 1000000 31250 31250 conform-action transmit exceed-action drop class VlanEmpresaB police 256000 8000 8000 conform-action transmit exceed-action drop class P2P police 8000 1500 1500 conform-action drop exceed-action drop violate-action drop class class-default police 8000 1500 1500 conform-action drop exceed-action drop violate-action drop !!! interface FastEthernet0/0 description Interfase al Switch de Core no ip address duplex auto speed auto ! interface FastEthernet0/0.10 description VLAN10: Abonados de Internet (2mbps) bandwidth 2000 ip address 200.200.10.1 255.255.255.0 ! interface FastEthernet0/0.20 description VLAN20: Red de Servidores (2mbps) bandwidth 2000 ip address 200.200.20.1 255.255.255.0 ! interface FastEthernet0/0.30 description VLAN30: Empleados (1mbps) bandwidth 1000 ip address 192.168.30.1 255.255.255.0 ! interface FastEthernet0/0.31 description VLAN31: Empresa A (1mbps) bandwidth 1000 ip address 200.200.30.1 255.255.255.248 ! interface FastEthernet0/0.32 description VLAN32: Empresa B (256 kbps) bandwidth 256 ip address 200.200.30.9 255.255.255.248 ! interface Serial0/0 bandwidth 10000000 ip address 200.43.64.97 255.255.255.224 service-policy input TraficoEntrante service-policy output TraficoSaliente ! ip classless no ip http server ! 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 permit 200.200.30.0 0.0.0.7 access-list 32 permit 200.200.30.8 0.0.0.7 ! line con 0 line aux 0 line vty 0 4 login ! end
No hay comentarios:
Publicar un comentario