DevSecOps

24 set, 2007

Como preparar dados para trafegar Voz

Publicidade

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!