Estudio de priorización de tráfico para VoIP
Fecha: 5 y 7 de mayo del 2015
Escenario
Este escenario es similar al desarrollado en http://www.vilarrasa.com.ar/escenario_zbf_voice.htm
pero esta vez sin la implementación del firewall.
El router actúa sólo como gateway de las dos redes, e implementa clasificación y priorización de tráfico
en sus interfaces y se estudia como interpretar el marcado de paquetes.
Las llamadas se realizaron con el softphone Cisco IP Communicator para verificar que al igual que los
teléfonos por hardware, también marcan el tráfico para su priorización.
Capturas realizadas
Las capturas se realizaron mediante SPAN, en elport del swith que conecta el CNE VoIP_1.
Captura del tráfico entre el softphone y el CME VoIP_1 mediante Skinny:
Puede observarse que el tráfico está etiquetado como AF31 (Assured Forwarding –reenvío asegurado),
el número 31 significa: clase 3 (reenvío flash -o rápido-), nivel 1 (probabilidad de descarte baja) (ver la tabla mas abajo).
Este tráfico no llega al gateway sino que es sólo entre el softphone y el CME.
Captura del tráfico entre ambos CME:
Puede observarse que el tráfico está etiquetado como AF31 (Assured Forwarding –reenvío asegurado),
el número 31 significa: clase 3 (reenvío flash o rápido) nivel 1 (probabilidad de descarte baja) (ver la tabla mas abajo).
Captura del tráfico de voice:
Puede verse que el tráfico se genera en el softphone local hacia el CME local, se reenvía hacia el CME remoto
y de este al softphone de destino.
Puede observarse que el tráfico está etiquetado como EF (expedited forwarding –reenvío expedito, urgente-).
La trama #64 corresponde a RTP (Real-time Transport Protocol) que lleva el audio entre el softphone y el CME,
este tráfico se genera a travéz de Skinny (puerto de destino UDP 2000).
La trama #65 corresponde a RTP (Real-time Transport Protocol) que lleva el audio entre ambos CME,
este tráfico se genera a travéz de H.323 (puerto de destino UDP variable 16384-32767).
Detalle de un paquete (con un segmento UDP) y RTP con su payload (carga de capa 7)
Interpretación de códigos de etiquetado de QoS en un paquete IP
Puede observarse el campo DSCP 0-5 (6 bits) que se corresponde a Binary Value de la siguiente tabla,
allí pueden buscarse AF31 (H.323) y EF (RTP).
En AF31 los primeros 3bits (011) corresponden a la secuencia de reenvío flash y en EF (101) es critic,
los nombres de los valores dan a entender la prioridad.
Configuración de las políticas de QoS en el gateway:
Gateway#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Gateway(config)#class-map match-any H.323 (identifica tráfico de señalización entre ambos CME)
Gateway(config-cmap)# match dscp af31
Gateway(config-cmap)#class-map match-any RTP (identifica el tráfico de voice que lleva la etiqueta de crítico)
Gateway(config-cmap)# match dscp ef
Gateway(config-cmap)#policy-map QoS-Policy-1 (se define una política)
Gateway(config-pmap)# class RTP
Gateway(config-pmap-c)# priority percent 33 (priority significa reenvío prioritario y con una reserva del 33% del
Gateway(config-pmap-c)# class H.323 ancho de banda total)
Gateway(config-pmap-c)# bandwidth percent 5 (para este tráfico de señalización se reserva el 5% del total)
Gateway(config-pmap-c)# class class-default (resto del tráfico, podrían ser datos de usuario en general)
Gateway(config-pmap-c)# fair-queue (intenta mantener la cola (buffer) lomas limpia (vacía) posible)
Gateway(config-pmap-c)# random-detect (descarta paquetes aleatoriamente cuando hay exceso, esto hace que
Gateway(config-pmap-c)#exit no se reinicien las conexiones TCP sino que se soliciten nuevamente
Gateway(config-pmap)#exit los segmentos descartados)
Gateway(config-cmap)#policy-map QoS-Policy-2
Gateway(config-pmap)# class RTP
Gateway(config-pmap-c)# priority percent 33
Gateway(config-pmap-c)# class H.323
Gateway(config-pmap-c)# bandwidth percent 5
Gateway(config-pmap-c)# class class-default
Gateway(config-pmap-c)# fair-queue
Gateway(config-pmap-c)# random-detect
Gateway(config-pmap-c)#exit
Gateway(config-pmap)#exit
Gateway(config-pmap-c)#interface FastEthernet0/0
Gateway(config-if)# service-policy output QoS-Policy-1 (se aplica a la interface)
Gateway(config-if)#exit
Gateway(config)#interface FastEthernet0/1
Gateway(config-if)#service-policy output QoS-Policy-2 (se aplica a la interface)
Gateway(config-if)#end
Gateway#
Gateway#sh policy-map interface fa0/0 (verificación)
FastEthernet0/0
Service-policy output: QoS-Policy-1
Class-map: RTP (match-any)
1405 packets, 103970 bytes
5 minute offered rate 6000 bps, drop rate 0 bps
Match: dscp ef (46)
1405 packets, 103970 bytes
5 minute rate 6000 bps
Queueing
Strict Priority
Output Queue: Conversation 264
Bandwidth 33 (%)
Bandwidth 33000 (kbps) Burst 825000 (Bytes)
(pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0
Class-map: H.323 (match-any)
19 packets, 2172 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: dscp af31 (26)
19 packets, 2172 bytes
5 minute rate 0 bps
Queueing
Output Queue: Conversation 265
Bandwidth 5 (%)
Bandwidth 5000 (kbps)Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
216335 packets, 307005377 bytes
5 minute offered rate 5342000 bps, drop rate 0 bps (aprox 5 Mbps)
Match: any
Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 256
(total queued/total drops/no-buffer drops) 0/0/0
exponential weight: 9
class Transmitted Random drop Tail drop Minimum Maximum Mark
pkts/bytes pkts/bytes pkts/bytes thresh thresh prob
0 216365/307047957 0/0 0/0 20 40 1/10 (tráfico por default –datos-)
1 0/0 0/0 0/0 22 40 1/10
2 0/0 0/0 0/0 24 40 1/10
3 0/0 0/0 0/0 26 40 1/10
4 3/120 0/0 0/0 28 40 1/10 (ver AF31 en tabla de Queue Class, correponde a clase 4)
5 0/0 0/0 0/0 30 40 1/10
6 0/0 0/0 0/0 32 40 1/10
7 0/0 0/0 0/0 34 40 1/10
rsvp 0/0 0/0 0/0 36 40 1/10
Gateway#sh policy-map interface fa0/1 (verificación)
FastEthernet0/1
Service-policy output: QoS-Policy-2
Class-map: RTP (match-any)
1888 packets, 139712 bytes
5 minute offered rate 8000 bps, drop rate 0 bps
Match: dscp ef (46)
1888 packets, 139712 bytes
5 minute rate 8000 bps (una conversación es 8 de 33%)
Queueing
Strict Priority
Output Queue: Conversation 264
Bandwidth 33 (%)
Bandwidth 33000 (kbps) Burst 825000 (Bytes)
(pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0
Class-map: H.323 (match-any)
12 packets, 1911 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: dscp af31 (26)
12 packets, 1911 bytes
5 minute rate 0 bps
Queueing
Output Queue: Conversation 265
Bandwidth 5 (%)
Bandwidth 5000 (kbps)Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any)
68641 packets, 3706814 bytes
5 minute offered rate 90000 bps, drop rate 0 bps
Match: any
Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 256
(total queued/total drops/no-buffer drops) 0/0/0
exponential weight: 9
class Transmitted Random drop Tail drop Minimum Maximum Mark
pkts/bytes pkts/bytes pkts/bytes thresh thresh prob
0 68653/3707462 0/0 0/0 20 40 1/10
1 0/0 0/0 0/0 22 40 1/10
2 0/0 0/0 0/0 24 40 1/10
3 4/160 0/0 0/0 26 40 1/10
4 0/0 0/0 0/0 28 40 1/10
5 0/0 0/0 0/0 30 40 1/10
6 0/0 0/0 0/0 32 40 1/10
7 0/0 0/0 0/0 34 40 1/10
rsvp 0/0 0/0 0/0 36 40 1/10
Gateway#
Verificación de las reservas de ancho de banda:
Se satura el gateway mediante una aplicación de testing entre ambos segmentos y con una comunicación
establecida entre ambos softphones.
No se verificaron cortes de servicio ni degradación de audio y no hubo disminución en el ancho de banda
utilizado por la aplicación por reservas en las políticas, ya que se consumieron sólo 8Kbps para voice
(son 0,008 Mbps y hay reservados 33 de los 100 Mbps), pero se priorizó el tráfico de VoIP, disminuyendo
la latencia y el jitter para no perder calidad.
La configuración de QoS en el switch en este escenario no se evalúa, ya que en una LAN el ancho de banda
hoy por hoy abunda, el escenario apunta a enlaces mas austeros.
Configuración de equipos:
Gateway#sh runn (sólo lo relevante)
Building configuration...
Current configuration : 3355 bytes
!
version 12.4
!
hostname Gateway
!
class-map match-any H.323
match dscp af31
class-map match-any RTP
match dscp ef
!
policy-map QoS-Policy-1
class RTP
priority percent 33
class H.323
bandwidth percent 5
class class-default
fair-queue
random-detect
policy-map QoS-Policy-2
class RTP
priority percent 33
class H.323
bandwidth percent 5
class class-default
fair-queue
random-detect
!
interface FastEthernet0/0
description INSIDE
ip address 192.168.1.1 255.255.255.0
service-policy output QoS-Policy-1
!
interface FastEthernet0/1
description WAN
ip address 172.16.0.1 255.255.255.0
service-policy output QoS-Policy-2
!
end
Gateway#
(2015) Networking for lonely nights
Rosario, Argentina