domingo, 18 de outubro de 2009

QOS - Parte IV - Shaping e Policing

Depois de marcar, classificar e priorizar o tráfego para prevenir congestionamento, podemos também policiar o tráfego de modo que rajadas não ocasionem problemas no link, fazemos isso "espalhando" um pouco mais os bits dentro do tempo de transmissão, além disso podemos limitar a quantidade de largura de banda para determinado tipo de tráfego.

Será mostrado como trabalhar com traffic shaping e policing





Alguns conceitos:

CIR: Comited Information Rate = Velocidade contratada.
Tc:Time interval = Tempo usado para transmitir o Bc.
Bc: Comited Burst = Quantidade de bits transmitido no tempo TC.
Be: Excess Burst = Bits que podem ser transmitidos além do valor Bc, depois de um período de inatividade.

O problemas aqui é que não podemos mais pensar em bits por segundo e sim em bits em uma fração de segundos.

Existem exemplos de Bucket (Balde) e Tokens, mas tem gente que acha que acaba ficando confuso, então, vou trazer a linguagem para "pedreires" e ao invéz do Bucket vou usar um caminhão de areia, ao invéz dos tokens vamos usar baldes descartaveis e o bit será a areia.

Imagine que você contratou um serviço que entrega um caminhão de 64Kilos de areia por dia (64Kbps) e que usar baldes de 8Kilos (8Kb).
Para conseguir encher o caminhão de 64Kilos em um dia, são necessários 8 Baldes(64/8).
Se dividirmos 1 dia em 8 baldes, cada balde gasta 0,125 de um dia.

O caminhão (64Kbps) é o CIR.
O balde (8Kbps) é o Bc.
E o Tempo gasto por balde (0,125s ou 125ms) é o Tc.

Pondo tudo na formuleta: Tc=Bc/CIR.

Agora imaginando que durante um período de tempo algum Bc não foi utilizado, é possivel permitir o uso desses Bc ou parte deles posteriormente na forma de Be e transmitir Bc+Be.

Sixtax do comando:
shape [average | peak] mean-rate [[burst-size] [excess-burst-size]]

Exemplo do Livro:
----------------------------------------------------------------------------------
policy-map shape-all
class class-default
shape average 64000

interface serial0/0
bandwidth 128

interface serial0/0.1
service-policy output shape-all

Router# show policy-map interface s0/0.1
Serial0/0.1
Service-policy output: shape-all

Class-map: class-default (match-any)
7718 packets, 837830 bytes
30 second offered rate 69000 bps, drop rate 5000 bps
Match: any

Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment
Rate Limit bits/int bits/int (ms) (bytes)
64000/64000 2000 8000 8000 125 1000

Adapt Queue Packets Bytes Packets Bytes Shaping
Active Depth Delayed Delayed Active
— 56 6393 692696 6335 684964 yes

----------------------------------------------------------------------------------
Target/Average Rate=CIR
Sustain bits = Bc
Excess bits = Be
Interval = Tc
Byte Limit = Bc+Be (Em Bytes)
Increment = Bytes por Tc = Bc em Bytes

Note que não foi setado Bc ou Be, então é usado a tabela default:







NOTA: Ao invéz de usar um valor para o CIR, pode ser usado uma porcentagem da interface, só que não tem sentido definir valores em bits para Bc e Be uma vez que não sabemos o valor do CIR, então é setado o TC. (Se não sabemos o tamanho do caminhão, não sabemos o tamanho do balde, então, definimos o número de baldes usados pelo tempo gasto e um dia).

Ex:
Para configurar 50% da banda e um Tc de 125 ms:
shape average percent 50 125 ms

Interação entre Shaping e Queuing.

É possivel modelar o tráfego de saida e fazer priorização do tráfego, primeiro é realizado o queuing normalmente com sua priorização e tudo mais, em seguida no momtendo dos pacotes sairem da interface o controle e modelagem são aplicados independente do tipo de tráfego, pois este já vem priorizado pela etapa anterior. ex:
----------------------------------------------------------------------------------

!Classifica o tráfego voip
class-map match-all voip-rtp
match ip rtp 16384 16383



!Cria a Queuing

policy-map queue-voip
class voip-rtp
priority 32
class class-default
fair-queue

!Policia o tráfego por Queuing e por Shaping (CIR = 96K, Bc = 960, Be = 0)
policy-map shape-all
class class-default
shape average 96000 960 0
service-policy queue-voip
----------------------------------------------------------------------------------

Frame Relay Traffic Shaping

É o mesmo conceito, só que ao invéz de ser criada uma policy-map, é criada uma map-class frame-relay e o comando shape muda:
Exemplo:

map-class frame-relay MINHACLASS
frame-relay traffic-rate 64000 8000 0

ou

map-class frame-relay MINHACLASS
frame-relay cir 64000
frame-relay bc 8000
frame-relay be 0

E na interface habilitar o class e o traffic-shaping:

interface s0/0
encapsulation frame-relay
frame-relay traffic-shaping
frame-relay class MINHACLASS

Existe uma regrinha para aplicar as classes nas interfaces ou para cada DLCI:








Policing

O policing usa todos os conceitos anteriores, porém diferente do shaping ele descarta, transmite ou remarca os dados.
Para o policing o tráfego é classificado em:

Conform = Tráfego <= CIR
Exced = CIR < Tráfego <=Bc
Violate = CIR<=Tráfego

O cálculo na verdade é feito baseado no tempo de chegada dos pacotes e baseado na trxa de transmissão CIR, porém dessa maneira fica mais fácil de entender.

O comando é simples: police bps burst-normal burst-max conform-action action exceed-action action [violate-action action]

As ações:

Nenhum comentário: