CREATE ACCOUNT

FORGOT YOUR DETAILS?

QoS–Policing e Shaping (Parte 3)

by / quarta-feira, 21 dezembro 2016 / Published in Cisco, Configuração, IOS, Routers, Switches

(Ufa)

Para finalizar esta série de posts sobre QoS, vamos falar dos mecanismos usados para controlar a taxa de transmissão em uma interface.

Tanto o Policing quanto o Shaping são configurados através do MQC, e identificam infrações (excessos) da mesma forma. Eles geralmente diferem, no entanto, na resposta as violações. O Policing normalmente descarta o excedente, enquanto que o Shaping atrasa o excesso de tráfego, usando um buffer para armazenar os pacotes e moldar o fluxo quando a taxa de dados é maior do que o esperado.

Para isso o Traffic Shaping monitora o bit rate em que os pacotes são enviados, e se exceder o permitido os pacotes são colocados em uma fila (shaping queue), para posterior transmissão. O Shaping só pode ser configurado na saída da interface.

Importante notar que quando fazemos o Shaping não estamos mudando a velocidade da interface. Ou seja, se configurarmos um shape de 1 Mbps em uma interface de 2 Mbps, a interface continuará trabalhando a 2 Mbps.

O que nos leva a pergunta: Como atingimos a velocidade (Shaping) configurada?

No caso acima o Shaping faria com que a interface transmitisse apenas metade do tempo. Por exemplo, vamos considerar que o roteador dividiu cada segundo em 10 partes (chamadas Tc – Time interval, em milissegundos), ele vai então transmitir nas partes 1, 3, 5, 7 e 9 e nas partes 2, 4, 6, 8 e 10 não haverá transmissão.

O tráfego normal, enviado a cada Tc, é chamado Bc – Committed Burst. E ainda podemos configurar o Shaping para que permita um “bursty” (excedente).

Esta função permite que após um período de transmissão onde a velocidade não atingiu o CIR – Committed Information Rate, mais tráfego (chamado Be – Excess Burst) possa ser enviado por um período de tempo (Tc).

Estes mesmos conceitos aplicam-se ao Traffic Policing, que pode ser configurado tanto na entrada quanto na saída de interfaces e sub-interfaces.

Assim como o Shaping, o Policing monitora o bit rate e então toma ações com base nesta informação. E ai que está a diferença.

Podemos configurar o roteador para transmitir os pacotes que estiverem conformes (dentro da velocidade – que não passou da quantidade de bits – Bc, em um dado Tc), marcar os pacotes que excederem a velocidade mas ainda estão dentro do limite de excesso (Bc + Be em um dado Tc) e descartar os pacotes quando a o tráfego for maior do que Bc + Be em dado Tc (este tipo de política é chamado de Single Rate, 3 Colors).

Outras opções seriam termos apenas duas ações configuradas (transmite e drop), criando assim uma política Single Rate, 2 Color.

Por fim, temos a Policy do tipo Dual Rate, 3 Color, onde além do CIR temos também o PIR – Peak Information Rate.  Neste caso os pacotes que estiverem abaixo do CIR estão conformes, os que estiverem entre o CIR e o PIR são considerados acima do contrato (exceed) e os que estiverem acima do PIR estão violando o contrato.

Configurando Traffic Policing

Voltando a nossa topologia de exemplo, vamos configurar o Policing na entrada da interface E0/0, limitando a velocidade a 2 Mbps.

Topologia QoS - Policing

Nesta interface já tínhamos uma policy-map (MARCA) configurada, responsável por fazer a marcação dos pacotes. Vamos remove-la da interface e aplicá-la em uma outra policy-map (2MBPS), onde definiremos a banda e as ações.

  • Policing: 2 Mbps
  • Conforme-action: Transmite
  • Exceed-action: Marca os pacotes com DSCP CS0 (Default) e transmite
  • Violate-action: Descarta os pacotes
QoS#conf t
QoS(config)#policy-map 2MBPS
QoS(config-pmap)# class class-default
QoS(config-pmap-c)#police cir 2000000 conform-action transmit  exceed-action set-dscp-transmit default violate-action drop
QoS(config-pmap-c-police)#   service-policy MARCA
QoS(config-pmap-c)#exit
QoS(config-pmap)#exit
QoS(config)#interface Ethernet0/0
QoS(config-if)# no service-policy input MARCA
QoS(config-if)# service-policy input 2MBPS
QoS(config-if)#end
QoS#

Vamos executar um ping a partir do roteador Origem, e então ver o resultado da nossa política no roteador QoS.

Origem#ping 2002:CC2E::100 repeat 1000 size 1000
Type escape sequence to abort.
Sending 1000, 1000-byte ICMP Echos to 2002:CC2E::100, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (994/1000), round-trip min/avg/max = 1/1/3 ms
Origem#

Note que tivemos algumas perdas no ping, resultado da política (drop). Agora vamos ver as estatísticas no roteador QoS.

QoS#sho policy-map interface et0/0
 Ethernet0/0

  Service-policy input: 2MBPS

    Class-map: class-default (match-any)
      1004 packets, 1014320 bytes
      30 second offered rate 89000 bps, drop rate 0000 bps
      Match: any
      police:
          cir 2000000 bps, bc 62500 bytes, be 62500 bytes
        conformed 632 packets, 637112 bytes; actions:   transmit
        exceeded 366 packets, 371124 bytes; actions:      set-dscp-transmit default
        violated 6 packets, 6084 bytes; actions:                 drop
        conformed 57000 bps, exceeded 31000 bps, violated 0000 bps

Podemos ver que dos 1004 pacotes recebidos na interface E0/0, 632 estavam conformes, 366 excederam o contrato e 6 pacotes foram dropados (justamente a quantidade de “.” no output anterior).

Também podemos verificar outra informação importante: bc 62500 bytes, be 62500 bytes.

É com base nesta configuração que o roteador identifica o que é conform, exceed ou violated. Neste exemplo, se forem enviado até 62500 bytes em um intervalo de tempo, consideramos que o tráfego está conforme. Se enviar até 125000 bytes (Bc + Be) em Tc, consideramos que o tráfego excedeu, e se passar disso o tráfego violou o contrato e por isso será dropado (de acordo com o que foi configurado).

A fórmula para saber Tc é: Tc =Bc/CIR. Usando o exemplo acima temos Tc = (62500 x 8)/2000000. Tc = 0,25. Ou seja, a cada 0,25 segundos podem ser enviados 62.500 bytes (Bc), e eventualmente podem ser enviados 125.000 bytes (Bc + Be) em 0,25 segundos.

Neste caso o roteador fez o cálculo automaticamente, mas podemos fazer esta parametrização manualmente, no comando police, dentro policy-map que define a banda.

Configurando Traffic Shaping
Sabendo que o roteador da operadora está configurado para fazer o Policing (e descartar o tráfego excedente), podemos configurar um Shaping do lado “cliente” para não excedermos a banda (e consequentemente não ter tráfego dropado).

Topologia QoS - Shaping

Vamos configurar um Shaping, também de 2 Mbps no roteador Origem, e aplicar na saída da interface E0/0.

  • Shaping: 2 Mbps
  • Interface: E0/0
  • Sentido: Outbound
Origem#conf t
Origem(config)#policy-map SHAPE
Origem(config-pmap)# class class-default
Origem(config-pmap-c)#  shape average 2000000
Origem(config-pmap-c)#exit
Origem(config-pmap)#exit
Origem(config)#interface et0/0
Origem(config-if)#service-policy output SHAPE
Origem(config-if)#end
Origem#

Vamos repetir o teste (ping) e ver o resultado.

Origem#ping 2002:CC2E::100 repeat 1000 size 1000
Type escape sequence to abort.
Sending 1000, 1000-byte ICMP Echos to 2002:CC2E::100, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (1000/1000), round-trip min/avg/max = 1/4/14 ms
Origem#

Note que diferente do que vimos anteriormente, dessa vez não tivemos perda de pacotes. Também podemos usar o comando show policy-map interface et0/0 para ver as estatísticas no roteador Origem.

Origem#sh policy-map interface et0/0
 Ethernet0/0

  Service-policy output: SHAPE

    Class-map: class-default (match-any)
      3055 packets, 3006203 bytes
      30 second offered rate 487000 bps, drop rate 0000 bps
      Match: any
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 3055/3048357
      shape (average) cir 2000000, bc 8000, be 8000
      target shape rate 2000000
Origem#

Bom… por enquanto é isso. Espero que não tenha ficado muito confuso.

Referências:

Até a próxima.

Deixe uma resposta

TOP