cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

CALIDAD DE SERVICIO para enlaces WAN usando MQC

Antecedentes Técnicos


   La calidad de servicio (QoS por sus siglas en inglés) se ha convertido en una característica crucial en las redes modernas de IP, especialmente con las implementaciones de VOIP y vídeo. QoS trabaja como el engranaje de las redes modernas porque realiza el marcado del tráfico (clasificación), reserva y da prioridad a cierta clase de tráfico sobre otros (que hacen cola) y en caso de congestión, puede comenzar a tirar el tráfico menos importante basado en la clasificación del mismo (WRED, Weighted Random Early Detection). Todas las características y servicios antes mencionados pueden ser implementados y desplegados para implementar lo que se conoce como Calidad de Servicio punto-a-punto (end-to-end QoS). Con este acercamiento, podemos garantizar en gran parte a que nuestro tráfico más sensible, tal como voz y vídeo, tiene prioridad sobre el tráfico menos importante (no en tiempo real) como por ejemplo el tráfico normal de Internet o FTP.

   Además de las características mencionadas anteriormente para la administración de la congestión y los mecanismos de prevención de congestionamiento, QoS puede ser utilizado para seguridad y para limitar el ancho de banda asegurando que el tráfico que pasa por el enlace WAN no está sobre utilizado. Esto lo realiza limitando o conformando el tráfico de salida de la interfaz WAN, podemos establecer políticas para limitar un cierto tráfico a una determinada cantidad de ancho de banda que sea útil o también para tener cierto nivel de seguridad, por ejemplo podemos utilizarlo para limitar el tráfico de administración tal como telnet o tráfico SNMP.

   El sistema operativo IOS tiene varias maneras y mecanismos que se pueden utilizar para implementar y configurar QoS, uno de los mejores métodos y de uso cada vez más general es por línea de comandos ó MQC (Modular QoS Command-Line).

   En este documento discutiremos un ejemplo de configuración de cómo utilizar y configurar el MQC para resolver un ejemplo de los requisitos de los negocios, también veremos cómo alcanzar la misma meta usando más de un método.

Requerimientos para la política de Calidad de Servicio

   La compañía xyz.com tiene un enlace WAN entre la oficina HQ y una sucursal. El ancho de banda del enlace WAN es de 1Mbps. La compañía maneja tráfico de VoIP sobre este enlace con las siguientes políticas de marcado:

  • VOIP-RTP con marcado DSCP=EF. El tráfico debe ser manejado primero en el caso de haber congestión en la interfaz. Además debe ser garantizado y limitado en todo momento hasta un máximo de 30% del ancho de banda de la interfaz de WAN.
  • Señalización de VoIP con marcado CS3. El tráfico debe tener un ancho de banda garantizado de mínimo 8% en caso de congestión.
  • El tráfico de Telnet necesita un 3% del ancho de banda garantizado en caso congestión.
  • El tráfico de Telnet que va al equipo con dirección IP 130.1.1.1 necesita el 5% del ancho de banda de la interfaz garantizado en caso de congestión.
  • Si hay 30 paquetes en la cola con CS 6 (paquetes de sistema) el enrutador tiene que comenzar a tirar estos paquetes, si los paquetes alcanzan 40, un 25% de los paquetes debe ser tirado, si el número es mayor a 40 todos los paquetes con CS 6 debe ser descartados.

Configuraciones:

   Para cumplir los requisitos mencionados, lo primer que necesitamos es identificar nuestras clases de tráfico. Esto se hace utilizando un class-map por cada clasificación.

class-map match-all RTP_VOIP
match ip dscp ef
class-map match-all VOIP_SIG
match  dscp cs3
class-map match-all TELNET
match protocol telnet
class-map match-all TELNET_HOST130
match access-group 100

    La lista de acceso 100 selecciona el tráfico que va al equipo 130.1.1.1:

access-list     100 permit tcp any host 130.1.1.1 eq telnet

   La anterior configuración corresponde al tráfico basado en los requisitos especificados (para una política de QoS punto-a-punto se requiere que el tráfico esté propiamente marcado, o bien se pueden usar listas de acceso para seleccionar el tráfico correcto).

   Después de que tengamos nuestras clases de tráfico correspondientes, se necesita crear una política para dar al tráfico el ancho de banda requerido y el tratamiento en el caso de la congestión de la interfaz:

  • Para el tráfico VOIP-RTP se necesita dar prioridad y garantizar el 30% de ancho de banda del enlace WAN. Esto se puede lograr usando LLQ (Low Latency Queueing) para formar la cola de alta prioridad. LLQ no limitará el ancho de banda de la clase en el caso de no haber congestión.
  • Para limitar el tráfico VOIP RTP hasta el 30% del enlace WAN podemos utilizar una política anidada o jerárquica (HQOS - Hierarchical QoS).

policy-map VOIP
class class-default
   police cir 300000       >>>>     30% de 1 Mbps

  • Para el tráfico de sistema que llega marcado como CS6 (default) se necesita habilitar la opción WRED (Weighted Random Early Detect) que permite al equipo empezar a tirar paquetes una vez cubiertas ciertas condiciones. En este sentido para cubrir los requerimientos nuestro límite inferior de paquetes es 30, el límite superior es de 40 paquetes y la probabilidad para el descarte es de 25% o bien ¼. Nota: Si se configura WRED en la clase “class-default” es necesario configurar un ancho de banda mínimo o bien habilitar un balanceo de colas (fair-queueing).



class class-default
fair-queue
random-detect
random-detect precedence 6 30 40 4

  • La configuración final para la política de Calidad de Servicio a la salida del equipo sería la siguiente:



policy-map P1
class RTP_VOIP
   priority percent 30
   service-policy     VOIP
class VOIP_SIG
   bandwidth percent 8
class TELNET_HOST130
   bandwidth percent 5
class TELNET
   bandwidth percent 3
class class-default
   fair-queue
   random-detect
   random-detect precedence 6   30        40    4

Verificación:

WAN_rtr#show policy-map interface fastEthernet 1/0
FastEthernet1/0

  Service-policy output: P1

    Class-map: RTP_VOIP (match-all)
       4 packets, 456 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: ip dscp ef (46)
       Queueing
         Strict Priority
         Output Queue: Conversation 264
         Bandwidth 30 (%)
        Bandwidth 30000 (kbps)
Burst 750000 (Bytes)

         (pkts matched/bytes matched) 0/0
         (total drops/bytes drops) 0/0

      Service-policy : VOIP

        Class-map: class-default (match-any)
           4 packets, 456 bytes
           5 minute offered rate 0 bps, drop rate 0 bps
           Match: any
           police:
               cir 300000 bps, bc 9375 bytes
             conformed 4 packets, 456 bytes; actions:
               transmit
             exceeded 0 packets, 0 bytes; actions:
               drop
             conformed 0 bps, exceed 0 bps

    Class-map: VOIP_SIG (match-all)
       0 packets, 0 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match:  dscp cs3 (24)
       Queueing
         Output Queue: Conversation 265
         Bandwidth 8 (%)
         Bandwidth 8000 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: TELNET_HOST130 (match-all)
       0 packets, 0 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: access-group 100
       Queueing
         Output Queue: Conversation 266
         Bandwidth 5 (%)
         Bandwidth 5000 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: TELNET (match-all)
       0 packets, 0 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: protocol telnet
       Queueing
         Output Queue: Conversation 267
         Bandwidth 3 (%)
         Bandwidth 3000 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: class-default (match-any)
       375 packets, 37786 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: any
       Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 256
         (total queued/total drops/no-buffer drops) 0/0/0
          exponential weight: 9

  class    Transmitted      Random drop      Tail drop    Minimum Maximum  Mark
            pkts/bytes       pkts/bytes       pkts/bytes    thresh  thresh  prob
       0     347/34921           0/0              0/0           20      40  1/10
       1       0/0               0/0              0/0           22      40  1/10
       2       0/0               0/0              0/0           24      40  1/10
       3       0/0               0/0              0/0           26      40  1/10
       4       0/0               0/0              0/0           28      40  1/10
       5       0/0               0/0              0/0           30      40  1/10
       6       0/0               0/0              0/0           30      40  1/4
       7       0/0               0/0              0/0           34      40  1/10
    rsvp       0/0               0/0              0/0           36      40  1/10


  • De la salida anterior es evidente que el ancho de banda asignado a las clases de nuestra política de calidad de servicio es incorrecto. Por ejemplo, la clase RTP_VOIP tiene asignado 30,000 kbps, es decir 30 Mbps cuando sólo deberíamos contar con 300 kbps. Lo mismo ocurre para las otras clases.
  • Este problema es debido a que se está utilizando el ancho de banda asignado por default a la interfaz donde estamos aplicando la política de Calidad de Servicio (100 Mbps para una interfaz Fastethernet). La política utiliza este parámetro para calcular el ancho de banda asignado por clase y también para validar si la interfaz se presenta congestión o no.
  • Cambiando el ancho de banda de la interfaz obtenemos el resultado esperado:

interface FastEthernet1/0
bandwidth 1000

WAN_rtr#show policy-map interface fastEthernet 1/0
FastEthernet1/0

  Service-policy output: P1

    Class-map: RTP_VOIP (match-all)
       1569 packets, 1051356 bytes
       5 minute offered rate 5000 bps, drop rate 0 bps
       Match: ip dscp ef (46)
       Queueing
         Strict Priority
         Output Queue: Conversation 264
         Bandwidth 30 (%)
        Bandwidth 300 (kbps)
Burst 7500 (Bytes)

         (pkts matched/bytes matched) 3/402
         (total drops/bytes drops) 0/0

      Service-policy : VOIP

        Class-map: class-default (match-any)
           1569 packets, 1051356 bytes
           5 minute offered rate 5000 bps, drop rate 0 bps
           Match: any
           police:
               cir 300000 bps, bc 9375 bytes
             conformed 1011 packets, 318144 bytes; actions:
               transmit
             exceeded 558 packets, 733212 bytes; actions:
               drop
             conformed 0 bps, exceed 0 bps

    Class-map: VOIP_SIG (match-all)
       30 packets, 3420 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match:  dscp cs3 (24)
       Queueing
         Output Queue: Conversation 265
         Bandwidth 8 (%)
         Bandwidth 80 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: TELNET_HOST130 (match-all)
       23 packets, 1283 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: access-group 100
       Queueing
         Output Queue: Conversation 266
         Bandwidth 5 (%)
         Bandwidth 50 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: TELNET (match-all)
       22 packets, 1229 bytes
       5 minute offered rate 0 bps, drop rate 0 bps
       Match: protocol telnet
       Queueing
         Output Queue: Conversation 267
         Bandwidth 3 (%)
         Bandwidth 30 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

    Class-map: class-default (match-any)
       899 packets, 323243 bytes
       5 minute offered rate 2000 bps, drop rate 0 bps
       Match: any
       Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 256
         (total queued/total drops/no-buffer drops) 0/0/0
          exponential weight: 9

  class    Transmitted      Random drop      Tail drop    Minimum Maximum  Mark
            pkts/bytes       pkts/bytes       pkts/bytes    thresh  thresh  prob
       0      55/5653            0/0              0/0           20      40  1/10
       1       0/0               0/0              0/0           22      40  1/10
       2       0/0               0/0              0/0           24      40  1/10
       3       0/0               0/0              0/0           26      40  1/10
       4       0/0               0/0              0/0           28      40  1/10
       5       0/0               0/0              0/0           30      40  1/10
       6     428/275592          0/0              0/0           30      40  1/4
       7       0/0               0/0              0/0           34      40  1/10
    rsvp       0/0               0/0              0/0           36      40  1/10

  • Ahora todo se encuentra trabajando como era esperado y se está asignando el ancho de banda requerido.
  • El cambio del ancho de banda directamente sobre la interfaz podría causar otro tipo de efectos, ya que hay otros procesos que podrían estar utilizando este parámetro (por ejemplo EIGRP y/o OSPF). Existe otro método por el cual podemos hacer lo mismo sin tener que hacer esta modificación, a través de una política jerárquica como se muestra a continuación:

int fa1/0

no service-policy output P1
no bandwidth 1000

policy-map P2
class class-default
   shape average 1000000
   service-policy     P1


interface FastEthernet1/0
   service-policy output P2

Verificación:

WAN_rtr#show int fa1/0 | include BW
   MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

WAN_rtr#show policy-map interface fastEthernet 1/0
FastEthernet1/0

  Service-policy output: P2

    Class-map: class-default (match-any)
       218 packets, 238044 bytes
       5 minute offered rate 8000 bps, drop rate 0 bps
       Match: any
       Traffic Shaping
            Target/Average   Byte   Sustain   Excess    Interval  Increment
              Rate           Limit  bits/int  bits/int  (ms)      (bytes)
           1000000/1000000   6250   25000     25000     25        3125

        Adapt  Queue     Packets   Bytes     Packets   Bytes     Shaping
         Active Depth                         Delayed   Delayed   Active
         -      0         213       231474    24        31536     no

      Service-policy : P1

        Class-map: RTP_VOIP (match-all)
           102 packets, 134028 bytes
           5 minute offered rate 4000 bps, drop rate 0 bps
           Match: ip dscp ef (46)
           Queueing
             Strict Priority
             Output Queue: Conversation 72
             Bandwidth 30 (%)
            Bandwidth 300 (kbps)
Burst 7500 (Bytes)

             (pkts matched/bytes matched) 0/0
             (total drops/bytes drops) 0/0

          Service-policy : VOIP

            Class-map: class-default (match-any)
               102 packets, 134028 bytes
               5 minute offered rate 4000 bps, drop rate 0 bps
               Match: any
               police:
                   cir 300000 bps, bc 9375 bytes
                 conformed 97 packets, 127458 bytes; actions:
                   transmit
                 exceeded 5 packets, 6570 bytes; actions:
                   drop
                 conformed 4000 bps, exceed 0 bps

        Class-map: VOIP_SIG (match-all)
           0 packets, 0 bytes
           5 minute offered rate 0 bps, drop rate 0 bps
           Match:  dscp cs3 (24)
       Queueing
         Output Queue: Conversation 73
         Bandwidth 8 (%)
         Bandwidth 80 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

        Class-map: TELNET_HOST130 (match-all)
           0 packets, 0 bytes
           5 minute offered rate 0 bps, drop rate 0 bps
           Match: access-group 100
       Queueing
         Output Queue: Conversation 74
         Bandwidth 5 (%)
         Bandwidth 50 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

        Class-map: TELNET (match-all)
           0 packets, 0 bytes
           5 minute offered rate 0 bps, drop rate 0 bps
           Match: protocol telnet
       Queueing
         Output Queue: Conversation 75
         Bandwidth 3 (%)
         Bandwidth 30 (kbps)Max Threshold 64 (packets)
         (pkts matched/bytes matched) 0/0
         (depth/total drops/no-buffer drops) 0/0/0

        Class-map: class-default (match-any)
           116 packets, 104016 bytes
           5 minute offered rate 4000 bps, drop rate 0 bps
           Match: any
       Queueing
         Flow Based Fair Queueing
         Maximum Number of Hashed Queues 64
         (total queued/total drops/no-buffer drops) 0/0/0
          exponential weight: 9

  class    Transmitted      Random drop      Tail drop    Minimum Maximum  Mark
            pkts/bytes       pkts/bytes       pkts/bytes    thresh  thresh  prob
       0      40/4152            0/0              0/0           20      40  1/10
       1       0/0               0/0              0/0           22      40  1/10
       2       0/0               0/0              0/0           24      40  1/10
       3       0/0               0/0              0/0           26      40  1/10
       4       0/0               0/0              0/0           28      40  1/10
       5       0/0               0/0              0/0           30      40  1/10
       6      76/99864           0/0              0/0           30      40  1/4
       7       0/0               0/0              0/0           34      40  1/10
    rsvp       0/0               0/0              0/0           36      40  1/10

  • Aunque el ancho de banda de la interfaz sea el default de 100 Mbps, la política de Calidad de Servicio asigna anchos de banda basados en 1 Mbps, ya que este es el valor al que se está limitando con la política anidada.
Comentarios
New Member

muchas gracias, me ayudó muchisimo para implementar QoS para dividir el enlace dedicado.

Saludos

New Member

Gracias por el apunte, me ha servido de compresión.

Muy buena la explicación.

10114
Visitas
5
ÚTIL
3
Comentarios