jueves, 11 de octubre de 2018

Calidad de Servicio


Calidad de Servicio (QoS)

Cuando se trata de configurar la Calidad de Servicio (QoS) en los equipos de Cisco, hay un par de conceptos principales que deben ser comprendidos.

Cisco QoS generalmente se configura en equipos modernos utilizando la interfaz de línea de comandos QoS (MQC). Con MQC:

- el tráfico se clasifica usando los comandos:
                         class-map                 match

- la política de tráfico se define utilizando los comandos:
                        police-map                class               set

- y las políticas se asignan utilizando el comando:
                        service-police


Otro método que se puede usar es mediante el uso de AutoQoS. AutoQoS elimina gran parte de la configuración manual del proceso y crea mapas de clases y políticas que son típicos de la mayoría del tráfico (según la definición de la versión de AutoQoS que esté utilizando) y establece políticas en las interfaces que especifique en una configuración guiada.

Echemos un vistazo a cómo se ve la configuración tanto para MQC como para AutoQoS.


Configuración con  MQC
Aquí hay algunos de los comandos MQC mencionados anteriormente; tenga en cuenta que hay más comandos match y set disponibles, a continuación solo se muestra un ejemplo.

  class-map
           
            router(config)# class-map class-map-name

Este comando se usa para crear un class-map específico. El parámetro class-map-name se usa para especificar el nombre del class-map y puede tener hasta 40 caracteres alfanuméricos.

Ejemplo:
class-map importante
    match protocol http
    match protocol https


  match protocol

            router(config-cmap)# match protocol protocol-name

Este comando se usa para buscar coincidencia con un protocolo específico. El parámetro protocol-name se usa para especificar el nombre del protocolo que debe coincidir, hay varios que se pueden usar, incluidos dhcp, eigrp, h323, http e irc.

  match cos

            router(config-cmap)# match cos cos-value [cos-value]
               
Ejemplo:                             match cos 2


Este comando se usa para buscar coicidencia con un valor de clase de servicio (CoS) específico. El parámetro cos-value se utiliza para especificar el valor de CoS transportado en la trama que se va a buscar coincidencia o match; se pueden especificar múltiples cos-value  en un comando.

  match dscp

            router(config-cmap)# match dscp dscp-value [dscp-value]

Este comando se usa para buscar coincidencia con un valor específico del Punto de código de servicios diferenciados (DSCP). El valor dscp-value se usa para especificar el valor de DSCP transportado en el paquete que se va a emparejar; múltiples valores de dscp-value  se pueden especificar en un comando.


  policy-map

            router(config)# policy-map policy-map-name

Este comando se usa para crear un mapa de políticas específico. El parámetro policy-map-name se usa para especificar el nombre del policy-map y puede tener hasta 40 caracteres alfanuméricos.




class

            router(router-pmap)# class {class-name | class-default}

Este comando se usa para vincular una política a un específico class-map. El class-name se usa para coincidir con el nombre class-map-name  configurado en el comando de class-map. El parámetro class-default se utiliza para especificar el mapa de clases predeterminado.

  set cos

            router(config-pmap-c)# set cos cos-value

Este comando se usa para establecer un valor de CoS específico. El parámetro cos-value se utiliza para especificar el valor de Clase de servicio que se establecerá en la trama.

  set dscp

            router(config-pmap-c)# set dscp dscp-value

Este comando se usa para establecer un valor de DSCP específico. El valor dscp se usa para especificar el valor de DSCP que se establecerá en el paquete.

service-policy

            router(config-if)# service-policy {input | output} policy-map-name

Este comando se usa para vincular un mapa de políticas a una interfaz. Los parámetros de entrada y salida se usan para especificar en qué dirección se debe evaluar la política. El parámetro policy-map-name se usa para especificar el nombre del mapa de política coincidente.
            
  


Ejemplo de MQC

Para resumir esto un poco, la siguiente es una configuración de muestra que coincide con todo el tráfico H.323 y le da un valor DSCP de EF (reenvío acelerado). La configuración se establecerá para ser evaluada en el tráfico que ingresa a una interfaz.

router(config)# class-map h323
router(config-cmap)# match protocol h323

router(config)# policy-map h323-policy
router(config-pmap)# class h323
router(config-pmap-c)# set dscp EF

router(config-if)# service-policy input h323-policy



Los 64 valores DSCP se organizan en tres categorías:

Best-Effort (BE) : DSCP = 0, es el valor predeterminado para todos los paquetes IP. No se implementa ningún plan QoS.

Expedited Forwarding (EF) - DSCP = 46 = 101 110. Los primeros 3 bits (101) corresponde con el valor CoS de Nivel 2 para tráfico de voz. En Capa 3, Cisco recomienda que EF solo se utilice para marcar paquetes de voz.

Assured Forwarding (AF) - AF utiliza los 5 bits DSCP más significativos para indicar las colas y la preferencia de eliminación. 
Los 3 bits más significativos se utilizan para designar la clase. La clase 4 es la mejor cola y la clase 1 es la peor cola. 
Los bits 4 y 5 se utilizan para designar la preferencia de eliminación. El sexto bit se pone a cero. La fórmula AFxy muestra cómo se calculan los valores de AF. 




Configuración AutoQoS

En realidad, hay dos tipos diferentes de AutoQos:
            AutoQoS para VoIP (que fue la primera iteración) y
            AutoQoS en la empresa (que detecta los tipos de tráfico y las políticas de         compilación basadas en estos datos).

  auto qos voip

            router(config-if)# auto qos voip

Este comando se usa para instalar la configuración de AutoQoS en una interfaz específica.

  auto discovery qos

            router(config-if)# auto discovery qos

Este comando se utiliza para iniciar la parte de descubrimiento de tráfico de AutoQoS en Enterprise. Este comando debe ejecutarse durante un período de tiempo para detectar correctamente los tipos de tráfico antes de usar el siguiente comando.

auto qos

            router(config-if)# auto qos

Este comando se usa para instalar AutoQoS en la configuración de Enterprise en una interfaz específica.


Topología


 Configuración de router Prio

Interface serial 0/0
   bandwith 128

class-map HTTP
  match protocol http
class-map RTP
   match protocol rtp

police-map CBWFQ
   class HTTP
      bandwidth 16
      queue-limit 12
   class RTP
      bandwidth 96
      queue-limit 32

Interface serial 0/0
  max-reserved-bandwidth 100  
  service-police output CBWFQ

// la interface reserva el 75% de su ancho de banda, para aumentar use: max...  
// sino usamos el anterior comando, saldría el mensaje: disponible solo 80 kbps

show police-map interface serial 0/0