QoS -Medição e Colorização (Coloring and Metering) – Modelo CIR/PIR

A utilização de Shapping e Policy em modelos de QoS permite o controle do tráfego utilizado em cima de uma banda disponível , mas finita. Ambos são mecanismos de medição e controle para diferentes classes, para atribuição de políticas ou acordos de níveis de serviço.

O modelo de traffic Shapping buferiza o tráfego que é excedente de acordo com as politicas estabelecidas/contratadas;  já o modelo de Policing descarta o tráfego que é excedente ou remarca o campo do pacote IP para cair em uma classe de serviço menos prioritária.

Para conseguir efetuar a medição do tráfego, um modelo bastante utilizado pelo mercado é o CIR/ PIR ( CIR – Committted Information Rate, e PIR – Peak Information Rate).

A função do CIR é garantir a banda (ou taxa de dados) contratada; e a função do PIR é a banda máxima (ou pico de dados) que possa ser utilizado no link. Geralmente este modelo é oferecido na venda de serviços para terceiros.

O modelo CIR/PIR  possui três modelos de interválos para tráfego de entrada onde cada um é associado  a uma cor. O tráfego dentro do CIR é colorido como verde , o tráfego entre o CIR e o PIR como amarelo e o tráfego acima do limite do PIR é colorido como vermelho, descritos na RFC 2698.

Coloring and Metering

Uma vez estabelecido os limites de serviço, por exemplo, um serviço de 1024Kbps contratado como CIR e o PIR como  2048Kbps , o trafego dentro do CIR terá a garantia de banda de 1Mb, já o tráfego dentro do PIR não terá a garantia de encaminhamento ou talvez cobrado o “Mega” adicional de pacotes e bytes transferidos na faixa entre o CIR e o PIR;  para o trafego acima de 2Mb,  será categorizado como vermelho, e provavelmente será configurado uma politica de descarte de pacotes.

Segue abaixo um exemplo de configuração utilizando o CIR/PIR com Policy em um Switch HPN 5800 para controle de banda:

Coloring and Metering topology

Configuração em um Switch HPN 5800

 

vlan 15
 name cliente-x
#
 traffic classifier cliente-x operator and
 if-match any
! Classifier dando match em todo o tráfego
#
traffic behavior cliente-x
 car cir 1024 pir 2048 green pass red discard yellow pass
! Configurando o CIR o PIR e permitindo o trafego green, yellow e descartando o red
 accounting byte
! Contabilizando o tráfego no formato bytes
#
 qos policy CLIENTE-X-BW-CONTROL
 classifier cliente-x behavior cliente-x
#
  qos vlan-policy CLIENTE-X-BW-CONTROL vlan 15 inbound
! Configurando a Policy à VLAN 15 para controle do tráfego do cliente
#

Comandos Display

<5800>display qos vlan-policy  vlan  15
  Vlan 15
  Direction: Inbound

   Classifier: cliente-x
     Matched : 0(Packets)
     Operator: AND
     Rule(s) : If-match any
     Behavior: cliente-x
      Committed Access Rate:
        CIR 1024 (kbps), CBS 64000 (byte), EBS 0 (byte), PIR 2048 (kbps)
        Green Action: pass
        Red Action: discard
        Yellow Action: pass
        Green : 34555(Packets) 89891278(Bytes)
        Yellow: 2(Packets) 2048(Bytes)
        Red   : 0(Packets) 0(Bytes)
      Accounting Enable:
        4967306 (Packets)

Conforme dito anteriormente, é possível remarcar os pacotes que estão como yellow e red para valores DSCP com prioridade menor…

[5800-behavior-cliente-x]remark ?
  atm-clp           Remark ATM CLP
  bfi               Remark BFI ID
  customer-vlan-id  Remark Customer VLAN ID
  dot1p             Remark IEEE 802.1p COS
  drop-precedence   Remark drop precedence
  dscp              Remark DSCP (DiffServ CodePoint)
  forwarding-class  Remark forwarding class
  fr-de             Remark fr-de
  green             Specify type of remark for green packets
  ip-precedence     Remark IP precedence
  local-precedence  Remark local precedence
  mpls-exp          Remark MPLS EXP
  qos-local-id      Specify QoS local ID feature
  red               Specify type of remark for red packets
  yellow            Specify type of remark for yellow packets

[5800-behavior-cliente-x]remark red ?
  atm-clp           Remark ATM CLP
  dot1p             Remark IEEE 802.1p COS
  dscp              Remark DSCP (DiffServ CodePoint)
  fr-de             Remark fr-de
  ip-precedence     Remark IP precedence
  local-precedence  Remark local precedence
  mpls-exp          Remark MPLS EXP

Com a coleta SNMP habilitada no Switch é possível contabilizar os bytes tráfegados em um servidor de coleta para venda de serviços on-demand, como internet por exemplo.

Obs: Para aqueles que estão acostumados com equipamentos Cisco, os dispositivos poderão trabalhar o modelo CIR/PIR da seguinte forma:
 – Menor ou igual ao CIR é chamado de “conform”
 – Acima do CIR e Menor ou igual ao PIR é chamado de “exceed”
 – Acima do PIR “violate”

Até a proxima! 😉

Referências:
QoS-Enabled Networks: Tools and Foudations – Miguel Barreiros e Peter Lundqvist – John Wiley & Sons

Cisco ONT – Offical Certification Guide –Amir Ranjbar – CiscoPress

Switches HPN – QoS: Marcação, Filas “Local Precedence” e Tabela “Mapping Table”

Os Switches HPN possuem 8 filas (0 a 7) para encaminhamento de pacotes em uma interface, para assim,  serem trabalhadas em diferentes modelos de QoS, permitindo configurar uma preferência a determinadas filas de saída em caso de congestionamento na interface.

O encaminhamento de pacotes para as filas de saída é baseado na marcação de pacotes,quadros e labels, sendo efetuado na entrada dos dados (no Switch) ou já marcados por qualquer Aplicação ou Telefone IP.

Para confiar na macação já efetuada em outro dispositivo ou aplicação digite na interface qos trust [ auto | dot1p | dscp | exp ]

[SW1-Ethernet1/0/1]qos trust ?
  auto   Trust auto
  dot1p  Trust 802.1p Precedence
  dscp   Trust DSCP
  exp    Trust EXP

Caso pretenda marcar os pacotes de entrada de uma interface baseado por protocolo/aplicação (HTTP, FTP, SAP, etc) siga os seguintes passos:

  1. selecione o tráfego com uma ACL (match),
  2. vincule  a ACL no Classifier
  3.  crie o Behavior com a marcação
  4.  vincule o Classifier com o Behavior dentro de uma policy
  5.  Atribua a policy a uma ou mais interfaces de entrada do tráfego ou VLANs.

No exemplo abaixo, mostramos a marcação do trafego HTTP com o valor DSCP 24 e o trafego de Voz com o DSCP 46. Depois, aplicamos a policy na interface de entrada do trafego no Switch.

 

# Criando as ACL para match no tráfego
!
acl number 3001 name MATCH_WWW
 rule permit tcp destination-port eq www
rule deny ip
! Selecionando o tráfego HTTP porta 80 como destino
!
acl number 3002 name MATCH_VOZ
rule permit ip source 10.248.0.0 0.0.255.255
rule deny ip
! Selecionando  a rede de Telefonia IP
!
# Classificando o tráfego baseado nas ACL’s
!
traffic classifier MATCH_HTTP 
 if-match acl  3001
! Classificação do tráfego da ACL  MATCH_WWW
!
traffic classifier MATCH_VOIP 
if-match acl  3002
! Classificação do tráfego da ACL MATCH_VOZ
!
#  Criando os Behavior’s para futura marcação
!
traffic behavior HTTP_MARK_CS3
remark  dscp  24
! Criando o behavior para a marcação com o dscp 24 (CS3)
!
traffic behavior VOIP_MARK_EF
remark  dscp  46
! Criando o behavior para a marcação com o dscp 46 (EF)
!
# Criando a policy para o vinculo da classificação (classifier)
! com o comportamento (behavior)
!
qos policy QOS_MARK_ONLY
classifier MATCH_HTTP  behavior HTTP_MARK_CS3
classifier MATCH_VOIP  behavior VOIP_MARK_EF
!
# Vinculando a policy para a Interface  de entrada do tráfego
interface Ethernet1/0/1
 port link-mode bridge
 qos apply policy QOS_MARK_ONLY inbound
!

Local Precedence e Mapping Table

Com os dados já marcados (pelo Switch, ou não) é possível tratar o encaminhamento de pacotes com diversas técnicas de enfileiramento como Priority Queue, Weight Round –Robin, Weight Fair Queue, etc. Há também a possíbilidade de configurar o descarte de pacotes por amostra ou prioridade para descarte (drop) para evitar o congestionamento de uma interface.

A tabela “Mapping Table” nos Switches 3Com/H3C/HPN com o Sistema Operacional Comware 5 permite a visualização de qual fila (do total de 8 filas do Switch) o Switch encaminhará o pacote marcado. A tabela também demonstra qual será o mapeamento  em caso de troca de marcação de um valor para outro, por exemplo, Cos para DSCP.

Já a fila local do Switch para onde serão encaminhados os pacotes marcados é chamada de “Local Precedence”.

Para visualizar o mapeamento digite display qos map-table

<4800G>display qos map-table
! Comando digitado em um Switch 3Com 4800G
MAP-TABLE NAME: dot1p-lp   TYPE: pre-define
IMPORT  :  EXPORT
0    :    2
1    :    0
2    :    1
3    :    3
4    :    4
5    :    5
6    :    6
7    :    7
< saída omitida>

Caso seja necessário a troca da fila de saída para um determinado tráfego marcado é possível trocar via comando qos map table. No exemplo abaixo é vizualizamos que a marcação DSCP 24 está na fila  local-precedence 3 do Switch, então faremos na seguida o mapeamento local no Switch para que a marcação citada faça parte da fila 2.

[Switch]display qos map-table | begin dscp-lp

MAP-TABLE NAME: dscp-lp   TYPE: pre-define
IMPORT  :  EXPORT
0    :    0
1    :    0
2    :    0
3    :    0
4    :    0
5    :    0
6    :    0
7    :    0
8    :    1
9    :    1
10    :    1
11    :    1
12    :    1
13    :    1
14    :    1
15    :    1
16    :    2
17    :    2
18    :    2
19    :    2
20    :    2
21    :    2
22    :    2
23    :    2
24    :    3
<saida omitida>

# Configurando a mudança de fila para o valor DSCP 24
#
qos map-table dscp-lp
import 24 export 2
#

Agora você pode me perguntar: “-  Ah, mas após  a marcação e também a alteração da fila local do Switch, como podemos usar isso na prática?”

Simples, podemos usar qualquer algoritimo de enfileiramento  para determinar as prioridades ou garantia de banda. No exemplo abaixo, faremos a garantia de banda de 10Mb para a fila 2 em caso de congestionamento na interface usando o algoritmo WFQ  😉

interface Ethernet1/0/1
 description INTERFACE_OUTBOUND_INTERNET
 qos wfq 
 qos bandwidth queue 2 min 10240
 qos bandwidth queue 5 min 4096
#

O tráfego marcado com EF (DSCP 46) já está mapeado por padrão pelo Switch na fila 5 e terá a garantia de 4Mb de banda. O tráfego não marcado ( geralmente mapeado para a fila zero) utilizará o restante da banda, mas não terá a garantia de reserva.

Apesar de ser apenas um exemplo ilustrativo, outros modelos de enfileiramento poderão ser usados como SP (LLQ) para tráfego de Voz, etc.

Obs: em diversos cenários a marcação poderá ser feito no Switch e o enfileiramento no Roteador, tudo dependerá dos seus equipamentos e a maneira como você deseja aplicar a qualidade de serviço na sua rede.

Até logo!

Switches HP A7500 – QoS – Efetuando a marcação de Pacotes com Policy

A densidade de portas e banda disponivel em modernos Switches empilhaveis ou modulares permite um bom desempenho na comunicação entre Serviços na Rede Local.

Em modelos de QoS a utilização de Switches tem a função de permitir a confiança (trust) de pacotes ja marcados na origem como Telefones IP e Aplicações para tratamento em Links congestionados como em uma rede WAN , incluindo tambem a marcação e a remarcação de pacotes para o mesmo fim.

A atribuição de QoS em Roteadores ocorre devido ao gargalo gerado por Links 100/1000/10000Gbps de Switches em contraste com Links de comunicação via Internet ou Redes Privadas que são proporcionamente menores que a vazão do tráfego necessária.

Para a tratativa do tráfego utilizamos filas de prioridade com a utilização de algoritmos como WRR,WFQ,SP e etc.

Na necessidade de atribuir a marcação de um determinado tráfego para diferentes politicas de Qualidade de Serviço (QoS) é possível utilizar o seguinte esquema:


ACL:
 Não mandatória, permite a seleção de trafego para filtro de classificação de tráfego;

Classifier: Classificação do trágego (baseado em uma ACL, Tag de VLAN, etc)
Behavior: Comportamento para o tráfego , como por exemplo, marcação IP Precedence no pacote IP, descarte de pacote, etc
Policy: Permite o vinculo da classificação com o comportamento para ser atribuido a uma interface.

Configurando
No script abaixo mostraremos um exemplo de configuração para marcação do tráfego de qualquer origem com destino a porta TCP 50001:

acl number 3000
! Criando uma ACL avançada
rule permit tcp destination-port eq 50001
! Permitindo qualquer origem efetuar conexão TCP na porta de destino 50001
#
traffic classifier AF32 operator and
! Criando a classificaçaõ com o nome AF32
if-match acl 3000
!Dando match na ACL 3000 para futura utilização 
#
traffic behavior AF32
! Criando o comportamento com nome AF32
remark dscp af32
! Marcando/Remarcando o tráfego que será classificado com o valor dscp af32 
!( notação 28 em decimal)
accounting
! Efetuando a contagem dos pacotes marcados (opção não obrigatória)
#
qos policy MARKING
!Criando a policy com o nome MARKING
classifier AF32 behavior AF32
! Vinculando a classificação com nome AF32 com o comportamento com nome AF32 
!( não é obrigatório utilizar o mesmo nome no classifier e no behavior)
#
interface GigabitEthernet1/0/2
description INTERFACE_INBOUND_ACESSO_INTERNO
qos apply policy MARKING inbound 
! Permite a marcação do tráfego com a policy MARKING na entrada do pacote
qos trust dscp
! Não remarca os pacotes não listados na policy.
! Confiando na marcaçaõ dscp do pacote

Obs: No exemplo acima, após satisfazer as condições da politica de marcação IP Precedence, o pacote irá manter o valor até o fim da comunicação para ser tratado pelos dispositivos no caminho caso seja necessário. Como por exemplo, na separação do tráfego, usando a sua marcação AF32( notação 28 em decimal) em contraste com um pacote não marcado. 

Uma boa semana a todos! 🙂

Introdução ao QoS – parte 1

Devido ao crescimento do conceito de comunicações Unificadas envolvendo Voz, Vídeo e Dados sobre uma infra-estrutura comum faz-se necessário a preferência a certos tipos de trafego em detrimento de outros para melhor desempenho de alguns serviços como, por exemplo, transmissões de pacotes de voz que não são retransmitidos em caso de perda.

Para deixarmos o tópico um pouco mais lúdico, usarei como exemplo um serviço que todos os Brasileiros adoram fazer: pegar fila em banco!!!!

Imaginem-se em uma fila de banco com apenas dois caixas fazendo os pagamentos…

Para darmos prioridade aos clientes preferenciais ( idosos, gestantes, portadores de necessidades especiais) é necessário deixarmos o restante dos clientes apenas com um Caixa para pagarem suas contas enquanto os clientes preferenciais (minoria) ficarão com menos tempo de espera! Se o Caixa preferencial estiver livre, todos nós podemos utilizá-lo.

Mas quais parâmetros utilizaremos na fila do banco para darmos preferência aos clientes preferenciais? O aspecto físico? Poderíamos utilizar qualquer objeto, como por exemplo, um documento ou uma carteirinha para validação desses clientes….

Quando pensamos em QoS, pensamos em um modelo que poderá permitir a preferência de um tráfego especifico baseado no endereço da rede,  portas TCP e UDP,  na marcação do pacote IP,  protocolo, etc.

Em uma rede tradicional é providenciado o serviço de melhor esforço, onde todos os pacotes competem entre si pela banda disponível em uma fila FIFO (first-in first-out). O primeiro pacote que chega é o primeiro a sair!!

A Qualidade de Serviço provê diferenciação de serviços para a garantia de correto funcionamento das aplicações criticas.

Após a diferenciação dos clientes preferenciais dos clientes não-preferenciais, o gerente do Banco poderá instruir algumas políticas para gerenciar as filas nos casos em que o segundo Caixa sair para almoçar. Ele poderá deixar todos os clientes esperando no caso de existir algum cliente preferencial ( agora imagine um Office-boy maior de 65 anos com dezenas de boletos) ou poderá efetuar o balanceamento das filas, “um pra lá e um pra cá”.

Mas para montarmos toda essa estrutura, são necessários 3 passos.

 Passos para implementar QoS

  • Identificar os tipos de tráfego e suas necessidades:
    •  Exemplo: FTP, HTTP,Voz, Email,etc ( como no caso da escolha de quem são os cliente com necessidades especificas dos clientes comuns)
  •  Classificar os tipos de tráfego baseado nas necessidades:
    •  Do montante do tráfego, classificamos quais os mais importantes para o negocio da empresa. ( Nesse caso poderíamos entregar uma carteirinha para os cliente preferenciais[idosos, gestantes, etc] para identificação não apenas pela aparência física, mas por um documento oficial )
  •  Definir políticas para cada tipo de tráfego:
    •  Definir as regras (policies) para cada tipo de tráfego, o que resultará em reserva de banda quando houver congestionamento, técnicas de enfileiramento , probabilidade de Drop, etc. ( poderíamos escolher a maneira como as filas preferenciais e não-preferenciais são tratadas quando o segundo Caixa sair para o almoço)
Classificação e MarcaçãoNa estrutura do cabeçalho IP existe um campo chamado ToS baseado na especificação da RFC 791 que contabilizada os 3 primeiros bits do campo ( do total de 8 bits) para marcação de valores ( entre 0 e 7) para diferenciação na classificação dos tipos de tráfego. A marcação utilizando os 3 bits do campo é chamada de IP Precedence (Precedência IP).

Se os pacotes não forem marcados, o IP Precedence será o valor 0 (zero).Devido a grande variedade e evolução dos serviços de rede, fez-se necessário a atualização para utilização além dos 3 primeiros bits do campo ToS. A RFC 2474 instrui a utilização de 6 bits ( ao invés de 3)chamando de DiffServ (Serviços Diferenciados) e renomeia a utilização do campo para DSCP , aumentando a marcação para até 64 valores ( de 0 a 63).


A imagem  exibe as diferenças entre a utilização da Precedência IP e o valor DSCP.
Para confundirmos ainda mais o tópico, eu gostaria de citar que podemos efetuar também as marcações na camada de Enlace do modelo OSI como nos quadros Ethernet com 802.1q , MPLS, ATM e Frame-Relay, mas isso citareremos nos próximos tópicos. 😉

Um abraço a todos!