Pruebas de QoS mediante CBWFQ y LLQ

Fecha: 4 de mayo del 2017

 

Escenario

 

Este escenario se realizó para estudiar el comportamiento de la priorización del tráfico web (TCP 80) contra el resto

del tráfico TCP (representado mediante el puerto 5001) a través de colas de espera basada en clases (CBWFQ), y el

 impacto que causa cuando se utiliza una reseva de ancho de banda y priorización de baja latencia (LLQ).

 

 

 

 

Según mi libro de QoS de Cisco (ISBN 9781587202773), cuando un tipo de tráfico con reservas de recursos no se utiliza,

sus recursos (llámese ancho de banda) por un breve período de tiempo se pueden utilizar en las otras clases.

 

Extraído de la página 290:

 

Finally, Cisco does tell us the general idea behind how the CBWFQ scheduler works. The scheduler gives a percentage

 of the bandwidth to each class, based on the configured values.

For instance, four classes, including class-default, may be configured with bandwidth percentages that total 100 percent.

The scheduler ensures that each queue receives that percentage of bandwidth.

If some queues do not need their bandwidth for a short period, the bandwidth is spread across the other classes.

Cisco does not really offer more details about how the scheduler works—so you do not need to worry more about

how CBWFQ works for the exams!

 

1.- Verificación inicial:

 

Se procede a generar tráfico entre una máquina de cada segmento con una sola clase (tráfico default del JPerf en

el puerto TCP 5001) para verificar la capacidad máxima de extremo a extremo, en este caso los limitantes son el

troughput del router Cisco 2801, mas tiempo de acceso a discos, tiempos del sistema operativo, etc.

Para este fin y tratándose de tráfico aislado se desctivaron los antivirus.

 

 

 

El promedio de 70 Mbps está en el límite de lo aceptable para enlazar dos segmentos de 100 Mpbs (se descarta

un 20% -o sea unos 20 Mbps- por señalización 4B5B y cabeceras, el 10% restante es baja capacidad del equipo- ,

pero al menos tenemos una referencia de las condiciones ideales.

Esta captura es en la máquina servidor (192.168.2.20)

 

2.- Agregado del tráfico web:

 

Se agrega una máquina en cada segmento utilizando el puerto destino TCP 80 para simular tráfico web.

 

 

Podemos observar como baja la capacidad del canal mientras generamos tráfico web con reserva de ancho de banda.

 

 

Esta captura es de la máquina cliente (192.168.1.200) transmitiendo al puerto destino 5001.

 

3.- Todo el tráfico sin aplicar QoS:

 

Al quitar la política de reserva de ancho de banda y baja latencia el rendimientopara tráfico web es mas inestable.

 

Cisco-2801(config)#int fa0/0

Cisco-2801(config-if)#no service-policy output QoS-Policy-2

Cisco-2801(config-if)#exit

Cisco-2801(config)#int fa0/1

Cisco-2801(config-if)#no service-policy output QoS-Policy-1

 

 

4.- Nuevamente con QoS:

 

Al aplicar nuevamente  la política de QoS, el tráfico hacia y desde el puerto 80 es mas estable.

 

Cisco-2801(config)#int fa0/0

Cisco-2801(config-if)#service-policy output QoS-Policy-2

Cisco-2801(config-if)#exit

Cisco-2801(config)#int fa0/1

Cisco-2801(config-if)#service-policy output QoS-Policy-1

 

 

5.- Verificación:

 

Cisco-2801#sh policy-map interface fa0/1

Cisco-2801#sh policy-map in fa0/1

 FastEthernet0/1

 

  Service-policy output: QoS-Policy-1

 

    Class-map: HTTP-OUT (match-any)

      189871 packets, 269480718 bytes

      5 minute offered rate 6307000 bps, drop rate 0 bps

      Match: access-group name HTTP-OUT

        189871 packets, 269480718 bytes

        5 minute rate 6307000 bps

      Queueing

        Strict Priority

        Output Queue: Conversation 264

        Bandwidth 30 (%)

        Bandwidth 30000 (kbps) Burst 750000 (Bytes)

        (pkts matched/bytes matched) 8/10896

        (total drops/bytes drops) 0/0

 

    Class-map: class-default (match-any)

      180019 packets, 255457242 bytes

      5 minute offered rate 5229000 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  180031/255474274  0/0  0/0           20      40  1/10 (ver tabla de clases de servicio mas abajo)

      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           32      40  1/10

      7       0/0               0/0              0/0           34      40  1/10

   rsvp     0/0               0/0              0/0           36      40  1/10

 

Cisco-2801#

 

Todo el tráfico está sin etiquetar, por lo tanto pertenece a la clase de servicio 0, pero el la policy puede marcarse

Para que otros dispositivos intermedios puedan identificarlo mediante un flag y no por puertos de destino.

 

6.- Configuración del switch:

 

El switch tenía la configuración por default, salvo puertos Fa0/1 a 7 en VLAN 10 y Fa 0/8 a 15 en VLAN 20.

 

Configuración del router:

 

Cisco-2801#sh runn (sólo lo mas relevante)

Building configuration...

 

Current configuration : 1217 bytes

!

version 12.4

!

class-map match-any HTTP-IN

 match access-group name HTTP-IN (tráfico de retorno server-cliente)

!

class-map match-any HTTP-OUT

 match access-group name HTTP-OUT (tráfico cliente-server)

!

policy-map QoS-Policy-1 (tráfico cliente-server)

 class HTTP-OUT

  priority percent 30

 class class-default

  fair-queue

  random-detect

!

policy-map QoS-Policy-2 (tráfico de retorno server-cliente)

 class HTTP-IN

  priority percent 30

 class class-default

  fair-queue

  random-detect

!

!

!

interface FastEthernet0/0

 ip address 192.168.10.1 255.255.255.0

 service-policy output QoS-Policy-2 (tráfico de retorno server-cliente)

!

interface FastEthernet0/1

 ip address 192.168.20.1 255.255.255.0

 service-policy output QoS-Policy-1  (tráfico cliente-server)

!

---resumido---

!

ip access-list extended HTTP-IN  (tráfico de retorno server-cliente)

 permit tcp 192.168.20.0 0.0.0.255 eq www  192.168.10.0 0.0.0.255

ip access-list extended HTTP-OUT  (tráfico cliente-server)

 permit tcp 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 eq www

!

end

 

Cisco-2801#

 

7.- El libro que utilicé como referencia:

 

 

 

(2017) That packet is not mine !

Rosario, Argentina