Nas matérias anteriores falei um pouco de como interligar PABX em roteadores. Agora vamos falar de como os dados precisam ser tratados para uma ótima utilização.
Normalmente são utilizados 2 tipos de tráfego de voz VoFR e VoIP.
VoFR
Quando é utilizada Voz sobre Frame-Relay, os pacotes são enviados independentes de um endereço IP. Os dados da voz são encaminhados em um frame FR, num PVC, dentro de uma DLCI.
VoIP
Quando é utilizada Voz sobre IP, é necessário um protocolo nível 2, que pode ser FR ou PPP. Os dados da voz são encaminhados em pacotes IPs, que por sua vez são encapsulados em um frame FR ou PPP. Desta forma precisamos preparar os 2 protocolos para priorizar o tráfego de voz.
Técnicas de QoS VoFR.
FR PIPQ
Uma técnica que pode ser utilizada é a FR PIPQ, onde o pacote é priorizado dentro do PVC apenas com os grupos High, Medium, Normal e Low, também permite:
– PVC transportando tráfego de voz possa ter prioridade absoluta sobre um PVC transportando sinalização de tráfego.
– PVC transportando tráfego de sinalização possa ter prioridade absoluta sobre um PVC transportando dados. Prover os seguintes níveis de prioridade:
- High
- Medium
- Normal
- Low
Cada pacote é enviado para a fila de prioridade correta baseado no nível de prioridade configurado para aquela DLCI. Para aplicar no PVC, é criado um map-class e dentro dele colocamos a prioridade dos pacotes.
Depois de criado o map-class, configuramos o limite de prioridade da interface física.
Associa o map-class ao PVC, para aplicar a prioridade.
FR Traffic-Shapping
Para aplicarmos FR Traffic-Shaping, precisamos de comandos para garantir a reserva de banda para voz e fragmentar os pacotes de dados de forma a termos qualidade de voz. O comando Voice Bandwidth, configurado dentro da classe, serve para reservar a banda de uso para voz, e o Fragment é utilizado para fragmentar os frames e garantir a qualidade de voz.
Basicamente precisamos dos seguintes comandos:
QoS – Frame-Relay Traffic-Shaping
Para que possamos utilizar de forma correta os parâmetros do FRTS, precisamos ter uma idéia melhor de como funcionam o CIR, MinCIR, BC e BE, pois apesar da nomenclatura, o significado do CIR para a provedora é diferente do CIR para o roteador Cisco.
CIR – é o limite máximo da velocidade em que o roteador poderá enviar os pacotes. Ou seja, na maioria dos casos é a velocidade do acesso quando se trata de dados e o CIR da provedora quando se trata de voz;
Mincir – é o limite mínimo da velocidade em que o roteador deverá enviar os pacotes. Ou seja, o roteador deverá garantir (se houver tráfego suficiente) que os pacotes será enviados nesta velocidade ou superior. Normalmente é a velocidade do CIR enviado pelas provedoras de acesso;
BC – é a velocidade em que o roteador envia a rajada, ou seja, em 1 segundo quantos bytes de dados são enviados. As provedoras de acesso utilizam uma faixa por segundo, quer dizer que se o CIR da provedora for de 128k será enviado 128k por segundo, porém o roteador Cisco envia rajadas menores, em um tempo menor que é de 0,125 segundos (que é 1/8 de segundo), por exemplo se o CIR da provedora é de 128k o roteador envia 8 rajadas de 16k (que é 128k/8), esta é uma forma recomendada pela Cisco para dados, para voz utiliza-se 1/100 ou uma rajada a cada 10ms, que representa “Real Time”;
BE – é a velocidade da rajada que excede o CIR até o limite do acesso, pela provedora de acesso BE é configurado como a diferença entre a velocidade do acesso e o CIR, mas no roteador, quando configuramos BE ? de 0, estamos fazendo com que o roteador envie junto da rajada configurada (BC) mais o valor de BE, porém todo pacote acima de BC será marcado com o bit DE, quer dizer que pode ser descartado na nuvem, o que não é bom para voz. Normalmente BE é configurado com 0, para evitar o descarte.
No roteador acontece desta forma:
Já na provedora é um pouco diferente:
Fragmentação
É importante lembrar que trabalhamos com uma interface serial. Ou seja, mesmo tendo 2 PVCs, um para dados e outro para voz, os pacotes chegam em série na mesma interface física e não em dois tubos diferentes como se imagina. Desta forma, mesmo fragmentando o PVC de voz, ao chegar um pacote de dados não fragmentado existirá o delay que influenciará a qualidade de voz. Desta foram, existe a necessidade de se fragmentar os pacotes do PVC de dados.
Em resumo vai ficar mais ou menos assim:
interface Serial0
bandwidth 128
no ip address
encapsulation frame-relay IETF
no ip mroute-cache
frame-relay traffic-shaping
frame-relay lmi-type cisco
!
interface Serial0.1 point-to-point
description Conexão com México
ip address 10.0.2.1 255.255.255.252
frame-relay interface-dlci 22
class 128kv
vofr cisco
!
map-class frame-relay 128kv
frame-relay cir 128000
frame-relay bc 1280
frame-relay be 0
frame-relay mincir 64000
frame-relay voice bandwidth 24000
frame-relay fragment 160
VoIP:
Protocolos VoIP
Inicialmente precisamos dar uma olhada nos protocolos utilizados para trafegar voz sobre IP, e termos uma visão de como funciona. Temos na camada 4 (transporte) os principais protocolos de transporte IP. o RTP (Real-Time Transport Protocol ) e o RSVP (Resource Reservation Protocol).
Compressão de cabeçalho RTP
O cabeçalho RTP ocupa 40 bytes no pacote, para conseguirmos ocupar menos bytes utilizamos a compressão de cabeçalho, desta forma o cabeçalho RTP passa a ter de 2 a 4 bytes como mostra a figura abaixo.
Tipos de Filas IP
Para trabalharmos com IP temos vários tipos de filas, porém apenas algumas são utilizados para voz:
Da mesma forma como no VoFR, precisamos de comandos para garantir a reserva de banda para voz e fragmentar dados de forma a termos qualidade de voz. Neste caso, temos diferentes modos de configurar, dependendo do protocolo nível 2 utilizado ( FR ou PPP). Para reservar banda e priorizar os pacotes utilizamos um policy, porém precisamos fragmentar para garantir qualidade e isso temos que fazer no nível 2.
VoIP sobre Frame-Relay
Para priorizar os pacotes utilizaremos os seguintes comandos:
Para definir a banda utilizada para cada canal de voz sobre IP deve ser utilizada a tabela abaixo:
Em resumo vai ficar assim a priorização e reserva de banda para pacotes de voz sobre ip:
class-map match-all voz
match ip precedence 5
!
policy-map voz
class voz
priority 90
class class-default
fair-queue
random-detect
Agora para que possamos fragmentar os frames por onde vão passar os pacotes precisamos fazer o seguinte:
Primeiro para Frame-Relay, que como já foi visto anteriormente, irão notar que precisamos além de setar os parâmetros do FR e fragmentar os frames, adicionar o comando abaixo na sub-interface e associar o policy, criado anteriormente, ao map-class:
interface Serial0
no ip address
encapsulation frame-relay
frame-relay traffic-shaping
frame-relay lmi-type cisco
!
interface Serial0.1 point-to-point
ip address 10.0.0.1 255.255.255.252
ip rtp header-compression
frame-relay interface-dlci 22
class 64kv
!
map-class frame-relay 64kv
frame-relay cir 64000
frame-relay bc 640
frame-relay be 0
frame-relay mincir 24000
frame-relay fragment 80
service-policy output voz
VoIP sobre PPP
Agora para PPP, onde teremos que fazer a mesma coisa, porém com comandos diferentes.
Em resumo fica assim:
interface Serial0
bandwidth 64
no ip address
encapsulation ppp
no fair-queue
[b]ppp multilink
multilink-group 2 [/b]
!
interface Multilink2
bandwidth 64
ip address 192.168.1.1 255.255.255.0
max-reserved-bandwidth 24
service-policy output voz
ppp multilink
ppp multilink fragment-delay 1
ppp multilink interleave
multilink-group 2
ip rtp header-compression iphc-format
ip tcp header-compression iphc-format
Recomendações
Recomendações QoS para VoIP
- Não usar VoIP em um PVC que também carrega VoFR.
- Setar IP Precedence para 5 ou DSCP para ef no dial-peer.
- Não usar WRED nas filas de voz.
- Não marcar pacotes de voz como DE.
- Habilitar DTMF-relay nos codecs para acessos de baixa velocidade.
- Setar parâmetros de echo, perda e ganho de acordo com o plano da rede.
- Setar classe de serviço IP-ATM com IP Precedence.
- Usar os comandos cisco-rtp ou dtmf-relay para prover performance DTMF-relay.
- Implementar um delay de não mais que 150-200 ms.
Recomendações Fila para VoIP
- Usar LLQ e classificar voz na classe de prioridades.
- Setar a banda da classe de voz para agregar voice bandwidth nos links ou virtual circuit (VC), permitindo um pequeno overhead.
- Se LLQ não está disponível, usar IP RTP Priority.
- Seta bandwidth na prioridade na configuração LLQ ou no IP RTP Priority.
Recomendações de Fragmentação para VoIP
For a link speed of less than 1.5 Mbps:
- Configure fragmentação para prover delay a 10 ms.
- Setar o tamanho do fragmento para pacotes de voz e dados num mesmo acesso com diferentes
- PVCs .
- Para linhas contratadas não Frame-Relay, setar ppp multilink fragment-delay na interface.
Recomendações Traffic-Shaping para VoIP
- Configure Frame Relay traffic shaping na interface.
- Setar o Bc para 10 ms (1/100 do CIR).
- Setar o mincir como maior que ou igual a voice bandwidth usando adaptive shaping.
- Implementar traffic shaping no PVC que carrega voz para o CIR.
- Compartilhar ambos os lados do VC para previnir problemas.
Abraços!