El documento describe varios mecanismos para garantizar la calidad de servicio en redes VPN, incluyendo el control de ancho de banda mediante policers y shapers, la compresión de datos, herramientas de simulación de red como NistNet, y el uso del Modular QoS CLI de Cisco para crear y aplicar políticas QoS mediante class-maps, policy-maps y el comando service-policy. También presenta ejemplos de diseño de QoS para controlar la congestión de forma local y remota a través de una red VPN.
2. Calidad de Servicio en Redes VPN
♦ Introducción
♦ Conceptos previos
♦ Mecanismos específicas
♦ La compresión de datos
♦ Herramientas
♦ Flujos concurrentes DMVPN
♦ El Modular QoS CLI de Cisco
♦ Creación de políticas QoS con CLI
♦ Creación de políticas anidadas
♦ Criterios de clasificación
♦ Ejemplos de diseño
3. Introducción
♦ Control de ancho de banda
– ‘Policers’
• Bajo consumo de memoria
• Modelado de tráfico en diente de sierra
• Permite medir velocidad y marcar tráfico
• Cuando se usa como modelador de
tráfico, produce pérdida de paquetes
– Token-Bucket
• Medición de velocidad
• Eliminación de paquetes
– ‘Shapers’
• Mayor consumo de recursos
• Modelado de tráfico lineal
• No elimina paquetes
4. Mecanismos específicos
♦ Cuando las necesidades de calidad de servicio son muy críticas, especialmente
para tráfico isócrono, es necesario recurrir a mecanismos de reserva estricta.
♦ RSVP
– Resource Reservation Protocol
• Reserva recursos en la red para flujos de datos unidireccionales
♦ LFI
– Fragmentación a nivel de enlace.
– Diseñado especialmente para enlaces serie con mPPP
5. Compresión de datos
♦ Definición:
– La compresión de datos reduce el tamaño de las tramas sobre un enlace. De este
modo se reduce el tiempo necesario para transmitir dicha trama. Utiliza un
esquema de compresión a ambos lados del enlace, que permite eliminar
caracteres de datos en la parte del emisor y reponerlos en el receptor
♦ Características:
– Produce enlaces de velocidad variable
– Consumo de recursos
– Las técnicas utilizadas estarán basadas en el uso de diccionarios
♦ Tipos:
– De cabeceras
• IP/UDP cRTP 40:4
• TCP Van Jacobson 40:3
– Stacker
• Basado en el algoritmo Lempel-Ziv. Utiliza un diccionario codificado que sustituye
secuencias repetidas de caracteres
– Predictor
• Intenta predecir la próxima secuencia de caracteres en la corriente de datos utilizando un
índice para localizar la secuencia en el diccionario de compresión.
• Mayor consumo de memoria y menor consumo de CPU.
• El más rápido.
– MPPC
• Funciona solo sobre PPP
• Basado en el algoritmo Lempel-Ziv
• La longitud máxima de un datagrama MPPC es similar al MTU de la interfaz PPP, con la
condición de no superar los 8192 bytes, puesto que ese es el tamañoi del buffer histórico
6. Compresión de datos
♦ Interfaces soportados
– FRF.9, para Frame Relay
– LAPB (Link Access Procedure Balanced)
– HDLC (High-Level Data Link Control)
– X.25
– PPP (Point-to-Point Protocol) con LZS, Predictor, y MPPC (Microsoft
Point-to-Point Compression)
– ISAKMP
♦ La compresión no siempre puede ser idónea, pudiendo verse
afectada por:
– La falta de estándares. Ambos extremos deben operar con el mismo
algoritmo
– Tipos de datos
• Algoritmos similares puede producir ratios de compresión diferentes. Ciertos
tipos de datos pueden ser menos comprimibles que otros, pudiéndose
alcanzar ratios de 6:1, aunque los promedios por regla general suelen estar
en 2-3:1
– Datos ya comprimidos
– Capacidad del procesador
7. Compresión de datos
♦ Compresión de datos encriptados
– Tradicionalmente, la compresión de datos siempre ocurre a nivel
2 y la encriptación a nivel3
– Los datos encriptados no pueden ser comprimidos, debido a que
por definición no producen patrones repetitivos
– LZS enviará los datos encriptados sin comprimir, ya que el
algoritmo aumentaría el volumen de los datos
– La solución a este problema es comprimir a nivel 3 mediante un
protocolo conocido com IPComp, antes del proceso de cifrado.
– IPComp se encuentra definido en la RFC 2393, y se negocia en la
fase ISAKMP de IPsec. Aunque puede ser negociado, se utiliza
normalmente el algoritmo de compresión LZS
8. Herramientas
♦ Nistnet
– Es un software de emulación de red, que funciona sobre plataforma Linux.
– Permite reproducir de forma controlada situaciones reales de comportamientos de red con el
objetivo de poder evaluar aplicaciones IP sensibles a determinados parámetros, como:
Retardos o latencias
Ancho de banda
Pérdidas de paquetes
9. Herramientas
♦ NistNet
– Software de libre distribución:
– http://snad.ncsl.nist.gov/itg/nistnet/
– Utilizado para la elaboración del modelo QoS QUASIMODO (1999)
WAN
Servidor (iperf,ttcp)
LAN1
Linux + NistNet Servidor (iperf,ttcp)
LAN2
10. Flujos Concurrentes en DMVPN
♦ Dos tipos de tráfico:
– IPSEC
• GRE
• Aplicaciones corporativas
• Correo corporativo
– NO IPSEC
• Navegación
• Servicios Internet
R1
10.2.0.0/16
10.3.0.0/16
10.1.0.0/16
R4
R3
Ethernet0/1
R5
10.3.0.0/16
Serv. Correo Local
ADSL
ADSL
ADSL
ADSL
Internet
11. Mecanismos de clasificación en VPN
♦ Por campo de precedencia
♦ Por campo DSCP
♦ Herencia de los bits QoS en las cabeceras de túnel GRE e IPSEC
Campo Tos
P2 P1 P0 T2 T1 T0 CU1 CU0
DS5 DS4 DS3 DS2 DS1 DS0 CU1
Campo DSCP o DiffServ
CU0
Vers. IHL TOS Longitud Total
Identificación ‘Flag’ ‘Offset’
TOS Protocolo Suma de control
Dirección Origen Dirección Destino
GRE/IPSEC
Vers. IHL TOS Longitud Total
Identificación ‘Flag’ ‘Offset’
TOS Protocolo Suma de control
Dirección Origen Dirección Destino
Datos
12. Mecanismos de clasificación en VPN
♦ Qos pre-classify
El encaminador crea una copia de la cabecera interior, y ejecuta su política
QoS basada en los campos de dicha cabecera.
Sin esta caracterísitica, el dispositivo de clasificación de paquetes solo puede
ver un único flujo encriptado, puesto que los paquetes que atraviesan el
mismo túnel tienen las mismas cabeceras y reciben el mismo tratamiento
en el evento de congestión
– Si se desea clasificar paquetes conforme a la cabecera interior, se debe
aplicar la política sobre la interfaz Tunel, sin el comando qos pre-classify
– Si se desea clasificar paquetes conforme a la cabecera externa, se debe
aplicar la política sobre la interfaz física sin el comando qos pre-classify
– Si se desea una clasificación basada en la cabecera interna, y luego
aplicarla sobre la interfaz física dado que puede ser un punto de
congestión, es necesario habilitar el comando qos pre-classify
13. El ‘Modular Qos CLI de Cisco’
♦ El ‘Modular QoS CLI’ permite al usuario la especificación de clases de tráfico
independientemente de las políticas QoS utilizadas
♦ Para su configuración se utiliza una interfaz en modo comando (CLI y
command line interface)
♦ Para su implementación es necesario realizar tres pasos:
– Definir una clase de tráfico, mediante el comando class-map
– Crear una política de servicio asociando la clase definida, a una o varias políticas
QoS, mediante el comando policy-map.
– Enlazar la política de servicio a la interfaz correspondiente mediante el comando
service-policy
14. Modular Qos CLI, class-map
♦ class-map
– El comando class-map, se utiliza para definir una clase de tráfico.
Dicha clase debe contener tres elementos:
• Un nombre
• Una serie de comandos match
• Una instrucción que indique cómo evaluar dichos comandos
– Ejemplos:
class-map match-any hack
match protocol http url "*/cmd.exe*"
match protocol http url "*winnt/system*"
match protocol http url "*WINNT/*“
class-map match-all Masivo
match access-group 119
class-map match-all Congestion
match precedence 5
15. Modular Qos CLI, policy-map
♦ policy-map
♦ El comando policy-map se utiliza para asociar una clase de tráfico, definida
mediante el comando class-map, con una o más políticas QoS.
♦ El resultado de esta asociación se denomina ‘política de servicio’.
♦ Una política de servicio debe contener tres elementos:
– Un nombre
– Una o varias clases de servicio
– Políticas QoS
Ejemplos:
policy-map CONGESTION
class class-default
police cir 1750000
conform-action transmit
exceed-action set-prec-transmit 5
violate-action set-prec-transmit 5
policy-map nivel
class AppGtt
priority percent 50 22000
class Interactivo
bandwidth percent 17
class Masivo
bandwidth percent 7
class class-default
bandwidth percent 1
– El comando priority permite establecer una reserva estricta de caudal (tráfico isócrono)
– El comando bandwith establece reservas no estrictas, permitiendo un mejor uso del
canal para tráfico de datos no isócrono
16. Modular Qos CLI, service-policy
♦ service-policy
♦ El comando service-policy se utiliza para aplicar la política de servicio a la
interfaz.
♦ Los cálculos de ratios y anchos de banda se realizan conforme a la capacidad de
la interfaz.
♦ La suma de reservas de caudal mediante los camandos priority y bandwith no
pueden superar el 75% de la capacidad de la interfaz.
♦ Ejemplos:
interface Ethernet0/0
…
service-policy input CONGESTION
service-policy output GLOBAL0
…
interface e1/1
…
service-policy output poliUA1
…
interface FastEthernet0
...
service-policy input MARK
service-policy output GLOBAL1
...
!
17. Modular QoS CLI, políticas anidadas
♦ Políticas anidadas
– Uso del comando service-police
Router(config)# policy-map child
Router(config-pmap)# class voice
Router(config-pmap-c)# priority 50
Router(config)# policy-map parent
Router(config-pmap)# class class-default
Router(config-pmap-c)# shape average 10000000
Router(config-pmap-c)# service-policy child
– Ejemplo con ‘policer’:
18. Modular Qos CLI, ejemplos
♦ Control de congestión remota para tráfico
ascendente:
policy-map nivel
class AppUA
priority percent 50 22000
class Interactivo
bandwidth percent 17
class Masivo
bandwidth percent 7
class class-default
bandwidth percent 1
policy-map GLOBAL1
class Avila
shape average 128000
service-policy nivel
class Ferrol
shape average 128000
service-policy nivel
class Pobla
shape average 128000
service-policy nivel
class slowboy
police cir 48000 bc 5250 be 10500
conform-action transmit
exceed-action drop
R1
10.2.0.0/16
10.3.0.0/16
10.1.0.0/16
R4
R3
Ethernet0/1
R5
10.3.0.0/16
Serv. Correo Local
Frame-Relay 8Mbps
Pobla
Avila
Ferrol
Controlde
congestión
rem
ota
Control de congestión remota
Controldecongestión
remota
Service-policy output GLOBAL1
19. Rate-Limit
♦ Los ‘rate-limit’ de Cisco permiten implementar políticas basadas en ‘policers’.
♦ Su aparición en IOS es anterior a MQC y se utilizan en aquellos interfaces que aún no
soportan MQC, o en enrutadores con recursos muy limitados.
♦ Ejemplo:
interface Tunnel0
...
rate-limit output 64000 1875 3750 conform-action transmit exceed-action continue
rate-limit output access-group 115 8000 1875 3750 conform-action transmit exceed-action transmit
rate-limit output access-group 109 8000 1875 3750 conform-action transmit exceed-action transmit
rate-limit output 24000 1875 3750 conform-action transmit exceed-action drop
...
tunnel source ATM0.1
tunnel mode gre multipoint
tunnel key 12213
tunnel tos 2
tunnel protection ipsec profile VpnUA
!
interface ATM0.1 point-to-point
ip nat outside
...
rate-limit output 64000 1875 3750 conform-action transmit exceed-action continue
rate-limit output access-group 114 8000 1875 3750 conform-action transmit exceed-action transmit
rate-limit output 48000 1875 3750 conform-action transmit exceed-action drop
!
access-list 109 remark Control Remoto QoS
access-list 109 dynamic QoSUpOff permit ip any any
access-list 114 remark para distinguir el trafico que proviene del tunel (tunnel tos 2)
access-list 114 permit ip any any tos min-monetary-cost
access-list 115 dynamic Up3 permit ip any any
access-list 115 permit tcp 10.0.0.0 0.255.255.255 10.1.1.0 0.0.0.255 range 7020 7030
access-list 115 permit tcp 10.1.1.0 0.0.0.255 range 7020 7030 10.0.0.0 0.255.255.255
access-list 115 permit tcp host 10.1.1.14 10.0.0.56 0.255.255.7 eq cmd
access-list 115 permit tcp 10.0.0.56 0.255.255.7 eq cmd host 10.1.1.14
20. Ejemplo con control
QoS local y remoto
10/100 ETHERNET 0/0 CONSOLE AUX
W1
Cisco2620
W0
FDXLINK100 Mbps
Central
512Kbps
2000Kbps
128
Kbps
2000Kbps
ISP
nivel
class AppUA priority 50% 22000
class Interactivo bandw 17%
class Masivo bandw 7%
class default bandw 1%
GLOBAL0
pre 5 class Congestion shape 1500000
nbar class hack drop
2054 class slowboy police 48000
2052 class Avila shape 256 sp nivel
2060 class Zaragoza shape 256 sp nivel
2061 class Logro shape 256 sp nivel
2058 class Ferrol shape 256 sp nivel
...
class default shape 550000 sp nivel
CONGESTION
class default policer 1500000 set prec 5
eth0
eth1
rQos
nivel
class AppUA priority 50% 22000
class Interactivo bandw 17%
class Masivo bandw 7%
class default bandw 1%
GLOBAL1
prec 5 class Congestion shap 1500000
nbar class hack drop
2064 class slowboy police 48000
2052 class Avila shape 128000 sp nivel
2060 class Zaragoza shape 128000 sp nivel
2061 class Logro shape 128000 sp nivel
2058 class Ferrol shape 128000 sp nivel
...
class default shape 128000 sp nivel
CONGESTION
class default policer 1500000 set prec 5
Internet
128Kbps
512Kbps
10/100 ETHERNET 0/0 CONSOLE AUX
W1
Cisco2620
W0
FDXLINK100 Mbps
10/100 ETHERNET 0/0 CONSOLE AUX10/100 ETHERNE T 0/1
W1
Cisco2651
W0
FDXLINK100 MbpsFDXLINK100 Mbps
10/100 ETHERNET 0/0 CONSOLE AUX10/100 ETHERNE T 0/1
W1
Cisco2651
W0
FDXLINK100 MbpsFDXLINK100 Mbps
21. Referencias
♦ Cisco Modular Quality of Service Command-Line Interface Overview
http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/120newft/120limit/120xe/
120xe5/mqc/mcli.htm#wp1019660
♦ Modular QoS CLI (MQC) Three-Level Hierarchical Policer
http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products_feature_guide09186a00801
10bcd.html
♦ Reference Guide to Implementing Crypto and QoS
http://www.cisco.com/warp/public/105/crypto_qos.html
♦ National Institute of Standards and Technology
http://snad.ncsl.nist.gov/itg/nistnet/