informe final qos
TRANSCRIPT
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
1 de 13
Departamento de Informática
Universidad Técnica Federico Santa María
Métodos para Asegurar la Calidad del Servicio
(Quality of Service)
Taller de Redes de Computadores 2010
Profesor: Javier Cañas R.
Oscar Encina C. [email protected]
José Miguel Herrera [email protected]
Contenidos
Resumen …............................................................................................................ 1
Objetivos Propuestos ….......................................................................................... 2
Introducción …....................................................................................................... 2
Calidad de Servicio o QoS …................................................................................. 2
Arquitectura de Calidad de Servicio ...................................................................... 3
Métodos para QoS …….......................................................................................... 3
Marcado de Paquetes............................................................................................ 6
Implementación de QoS …..................................................................................... 7
Técnicas de Encolamiento ….................................................................................. 8
Pruebas y Resultados Experimentales .................................................................. 9
Conclusiones…....................................................................................................... 12
Bibliografia ………………………………………………………………………13
Resumen
Se dice que una red ofrece “Calidad de Servicio” cuando esta garantiza el valor de uno o
varios parámetros que determinan la red (Prioridad, Retraso, Ancho de banda, Jitter,
Errores). Uno de esos parámetros es la Priorización en el envío de datos la cual nos asegurará
el envío anticipado de un tipo de paquetes con respecto a otro de menor prioridad. Otro de
esos parámetros es la asignación de Banda Ancha a ciertos protocolos o aplicaciones
garantizando que en un determinado tiempo habrá más paquetes de un tipo de servicio que
de otro que le sea asignado menor porcentaje. Dichos parámetros se configuran sobre un
sistema Linux para poder implementar un sistema de Video Conferencia con Calidad de
Servicio.
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
2 de 13
Objetivos Propuestos
Aprender mediante la investigación y práctica acerca de los métodos de QoS.
Montar una red QoS en Linux (de tráfico privilegiado).
Generar QoS para un sistema de Video Conferencia.
Utilizar herramientas de tráfico de redes para poder medir y registrar los resultados
obtenidos.
Introducción
El protocolo IPv4 y el naciente IPv6 constituyen la base de las comunicaciones de Internet. Existen flujos
de tráfico sobre estas redes que son críticos y deben ser tratados de forma especial pues no todos los datos
que son transmitidos tienen la misma importancia. Causa de esto es que surge la necesidad de estudiar e
implementar esquemas de Calidad de Servicio que permitan otorgar una distinción en la manipulación de
estos flujos.
Además, dado que la red IP está diseñada bajo una filosofía de mejor esfuerzo, no se garantiza el envío de
un flujo por sobre otro ni un privilegio de servicios. Por esto, se hace imprescindible la utilización de
esquemas que garanticen cierto nivel de QoS.
En este informe se entregarán las pautas mediante las cuales se logró una mejora considerable e
importantísima en la calidad de servicio aplicada a las Video Conferencias.
Calidad de Servicio o QoS
Se entiende por Calidad de Servicio a la capacidad de una red para sostener un comportamiento adecuado
del tráfico que transita por ella, cumpliendo con parámetros relevantes para el usuario final.
Su objetivo es el de acotar los parámetros Ancho de Banda, Retardo, Jitter, y Porcentaje de Pérdida de los
paquetes para ciertas clases de tráfico.
Cada tipo de tráfico es asociado a una Clase de Servicio, utilizándose diversos métodos en los routers y
switches para otorgar el servicio apropiado a cada clase.
Se utilizan campos de diferenciación en los protocolos IPv4 e IPv6 para lograr el marcado de los paquetes.
Dichos campos se describirán con posterioridad en “Arquitecturas de Calidad de Servicio”.
Dentro de las consideraciones que se deben tener en cuenta para proporcionar una Calidad de Servicio, es
preocuparse por los siguientes elementos (problemas) de las redes:
Retardos:
Puede que los paquetes tomen un largo tiempo en alcanzar su destino, esto principalmente es
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
3 de 13
debido a que permanecen en largas colas y toman alguna ruta menos directa al destino (en su
intento de prevenir la congestión). En la mayoría de los casos, los retardos excesivos son un gran
problema cuando uno se quiere comunicar con sistemas VoIP o sistemas de Video Conferencia.
Jitter:
Se define como la variación en el tiempo en la llegada de los paquetes. Puede ser causada por
congestión de red (su principal causa), la pérdida de sincronización por las diferentes rutas
seguidas por los paquetes para llegar al destino.
Para compensar el jitter se utilizan jitter buffers. En ellos se almacenan los paquetes recibidos
con “adelanto”y se van sirviendo con un pequeño retraso. Los paquetes con “retraso” se
descartan. Si el jitter buffer es muy pequeño, se descartarán muchos paquetes; si es muy grande,
se agregará mucho retardo a la comunicación.
Entrega fuera de Orden:
Si se tiene un conjunto de paquetes relacionados entre si y éstos son encaminados por una red
(como Internet), los paquetes pueden tomar diferentes rutas, resultando en diferentes retardos y
ocasionando que lleguen en diferente orden de cómo fueron enviados. Para los sistemas de
Video Conferencia es vital que los paquetes lleguen en orden, por lo tanto se debe asegurar ese
punto (y no así que todos los paquetes lleguen, es decir, admite pérdidas).
Arquitecturas de QoS
Mejor Esfuerzo, servicio tradicional de transporte de datos, donde no hay garantía de la entrega
del paquete. TCP/IP fue diseñado para dar un servicio „best effort‟ o de mejor esfuerzo, sin
embargo existen aplicaciones que no pueden funcionar en una red congestionada con “best effort”
(por ejemplo, la Video Conferencia o VoIP, etc). Se han hecho modificaciones a IP para que
pueda funcionar como una red con QoS.
Servicios Integrados, provee un servicio garantizado, negociando parámetros de red de extremo a
extremo mediante RSVP. Cada dispositivo a lo largo de la ruta necesita comprender RSVP y
señalizar la QoS requerida. Cada reservación debe ser actualizada periódicamente lo que se añade
tráfico a la red. Además, cada reservación debe ser mantenida por cada uno de los dispositivos a lo
largo de la ruta.
Figura 1: Cabecera IPv4 antes de DiffServ, se marca el campo “Type Of Service”
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
4 de 13
Figura 2: campo “Type Of Service” (obsoleto)
Servicios Diferenciados, mediante la clasificación de paquetes utiliza mecanismos de
encolamiento para dar prioridad a los paquetes. Se definen varias clases de servicio, donde se
agrupan los tráficos. La clasificación y marcado ocurre sólo en los bordes de la red. En base a esta
clasificación se implementa en cada salto el comportamiento deseado.
Figura 3: Cabecera IPv4 con DiffServ (RFC2474, 1998), se marca el campo “DS”
En definitiva, IntServ (o Servicios Integrados) fue desarrollado con anterioridad a DiffServ, sin embargo
DiffServ (o Servicios Diferenciados) se ha extendido más que IntServ, DiffServ permite agregar flujos, el
modelo es escalable. Debido a estas diferencias muchos fabricantes de routers implementan versiones
eficientes de DiffServ, pero no de IntServ. Actualmente muchos ISP implementan DiffServ.
La única (hasta el momento) arquitectura que es capaz de proveernos una real Calidad de Servicio es la
arquitectura de Servicios Integrados, sin embargo los costos en los que se debería incurrir para poder
implementar una solución como ésta escapan de lo óptimo.
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
5 de 13
Si se deseara implementar esta solución (Servicios Integrados) habría que adquirir equipos de última
generación o que soporten IPv6. Estas implementaciones se pueden encontrar en los Routers Cisco,
capaces de leer el campo DS (en IPv4). IPv6 también cuenta con un campo para Calidad de Servicio
incorporado “DS” (ver Figura 4).
Figura 4: Cabecera IPv6 con DiffServ (RFC2474, 1998)
Por otro lado, se consiguió a un costo cero una implementación de arquitectura de Servicios Diferenciados
para una red que desea transmitir Video Conferencia asegurando o garantizando ciertos parámetros
(Prioridad y Ancho de Banda).
Métodos para QoS
La implementación de Políticas de Calidad de Servicio se puede enfocar en varios puntos según los
requerimientos de la red, los principales son:
Asignar ancho de banda en forma diferenciada
Evitar y/o administrar la congestión en la red
Manejar prioridades de acuerdo al tipo de tráfico
Modelar el tráfico de la red
Para esta implementación en particular se optó por realizar la combinación de dos requerimientos de red,
controlando la Prioridad de acuerdo al tipo de tráfico y también asignando un Ancho de Banda de forma
diferenciada. De esta manera, podremos tener un sistema de Video Conferencia que privilegia el tipo de
tráfico UDP y que se le es asignada una cantidad de banda ancha superior al resto.
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
6 de 13
Marcado de Paquetes
Para realizar el marcado de paquetes se utiliza iptables, en especial la tabla “mangle”:
La tabla Mangle:
En esta tabla podremos modificar parámetros de los paquetes como el TOS (Type Of Service) de
IPv4. Esta será la tabla que utilizaremos para el marcado de paquetes y posterior priorización para
aplicar QoS. De las cuales se podrá marcar un campo TOS o MARK (modificar el campo TOS o
marcar el paquete aparte).
MARK: Se utiliza para el marcado de paquetes. Este será el objetivo que se urilizará junto con tc
(programa Trafic Control) para definir las reglas de QoS. Destacar que cuando marcamos un paquete no
estamos cambiando ningún valor de la cabecera IP, sino el valor del paquete de cara al kernel. El valor que
tomará MARK será un entero entre 0 y 65535.
Para modificar la cabecera IP, podemos cambiar el valor del Type Of Service con el objetivo TOS.
Por ejemplo:
labds:~# iptables -t mangle -A PREROUTING -p tcp --dport 21 -j MARK --set-mark 2
Le indicamos a la tabla mangle que todo paquete FTP ( -p tcp --dport 21) que reciba la máquina deberá ser
marcado (-j MARK --set-mark 2) para su posterior clasificación y envio (-A PREROUTING).
TOS: Lo utilizaremos para cambiar el valor de 8 bits del campo TOS dentro de la cabecera IPv4. Este
campo indica la prioridad del tráfico, y se aplicará en routers que tengan soporte para QoS.
Los valores son:
• Minimize-Delay - 0x10
• Maximize-Throughput - 0x08
• Maximize-Reliability - 0x04
• Minimize-Cost 2 - 0x02
• Normal-Service 0 - 0x00
Por ejemplo:
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
7 de 13
labds:~# iptables -t mangle -A PREROUTING -p icmp -j TOS --set-tos Minimize-Delay
Marcamos todos los paquetes ICMP con el TOS Minimize-Delay. También los podríamos haber marcado
con 0x10. Podemos comprobar que ha cambiado el valor del TOS haciendo un ping y capturando el
paquete con un sniffer como Ethereal (también pudo haberse utilizado el sniffer Wireshark):
Implementación de QoS
Para lograr implementar QoS en nuestro sistema, en primera instancia fue necesario recompilar el kernel
de Linux para poder agregar los módulos QoS correspondientes.
Los módulos del kernel de Linux para proporcionar QoS son:
Networking Options: Network packet filtering
P: Netfilter configuration:
○ Netfilter MARK match support
○ Connection state match support
○ Packet filtering
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
8 de 13
○ Packet mangling
○ MARK target support
○ Connection tracking
○ Layer7 match support
Gracias a esto, fue posible utilizar el comado tc (Traffic Control) el cual facilita el marcado de paquetes
(para una priorización de tráfico) y la creación de colas de prioridad.
Técnicas de Encolamiento
Existen 2 técnicas posibles:
1) Disciplinas de colas simple :
Simplemente se limitan a aceptar, reordenar, descartar o retrasar los datos.
Podemos utilizar:
• pfifo_fast: First In Fisrst Out, con especial tratamiento al campo TOS.
• TBF: Deja pasar paquetes que no se excedan de una tasa impuesta por nosotros.
• RED: Únicamente indicado para routers de backbone, en donde el envio de tráfico debe ser lo
más rápido posible.
• SFQ: Envia datos de forma equitativa, evitando que nadie se apodere del ancho de banda.
2) Disciplinas de colas con clase:
Estas a diferencia de las simples, tienen nivel de profundidad. Es decir, se puede tener una qdisc raíz
de la que cuelguen ciertas subdivisiones, en las cuales se podrá agrupar diferentes tipos de paquetes
(clases) para luego darle prioridades. A su vez, las clases pueden tener otras qdisc con o sin clases.
Por defecto, cuando se crea una clase, se le adjunta una qdisc FIFO (se puede cambiar por otra),
salvo que de esa clase tenga clases hijas. El esquema se puede visualizar en la siguiente imagen:
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
9 de 13
Para identificar las clases, utilizaremos una notación de dos números separados por dos puntos :
major:minor. El major, se utiliza para referenciar la raíz de una clase, en cambio el minor se refiere a
cualquiera de las clases que descienden de la raíz padre.
Por último, para tratar a los paquetes en las diferentes clases, se debe utilizar un filtro, que de la misma
manera que hacían las reglas del firewall, en caso de cumplir unas determinadas características, irán a unas
clases o a otras. Las principales qdisc con clases:
• CBQ: Algoritmo que basándose en prioridades, envía paquetes. Útil para enviar paquetes a
clases hijas.
• HTB: Igual que CBQ pero un poco más eficiente.
Filtros: Los filtros serán los que nos permitirán clasificar los paquetes en diferentes clases.
• fw: Clasificará el tráfico basándose en la marca del paquete que le colocaremos con el “objetivo”
MARK de iptables.
• u32: Se basará en características de la cabecera IP para hacer las clasificaciones.
Pruebas y Resultados experimentales
FTP – SSH – Sin Calidad de Servicio:
Se enviaron dos archivos en igualdad de condiciones, sin ningún tipo de regla de calidad de servicio, estos
archivos eran exactamente iguales y se transfirieron de manera concurrente, uno utilizando FTP y otro
utilizando un cliente de copia de archivos vía SSH.
De la figura que se encuentra abajo se puede concluir que el ancho de banda se reparte en igual proporción
por los servicios, la cantidad de paquetes enviados es la misma en casi todo instante.
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
10 de 13
Figura 5: FTP – SSH – Sin Calidad de Servicio (concurrente)
FTP – SSH con Calidad de Servicio:
En esta segunda prueba, se aplicaron las siguientes reglas de calidad de servicio:
SSH tiene prioridad 2 mayor a FTP que tiene prioridad 3 y el Ancho de banda es igual para ambos tipos
de transferencias. Se repite el experimento realizado anteriormente, transfirieron dos archivos iguales de
80Mb cada uno vía SSH y FTP. Nuevamente para este experimento se igualó y asignó la misma cantidad
de Ancho de Banda.
En la segunda imagen se puede observar con claridad lo que sucede al terminar primero la transferencia
del archivo por SSH. Al finalizar, el ancho de banda es utilizado por la conexión FTP y rápidamente envía
el resto del archivo. Esto ocurrió pues no se escribieron reglas para controlar de manera especial el ancho
de banda para cada uno, por lo tanto, éste se pudo sumar a la única transferencia en curso.
Figura 6 y 7: FTP – SSH – Con Calidad de Servicio (concurrente)
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
11 de 13
FTP – SSH – Skype Sin Calidad de Servicio:
En este experimento se agregó el servicio VoIP Skype. Este escenario consiste en la transferencia de 160
Mb repartidos entre transferencias SSH y FTP. A este carga, se le debe sumar la cantidad de paquetes que
Skype es capaz de enviar pese a la enorme transferencia de información.
La prueba se realizó de manera concurrente para los tres servicios. Ninguna regla de Calidad de Servicio
fue aplicada.
Como se puede ver en los gráficos obtenidos, la conexión SSH y FTP agotan todo el ancho de banda no
permitiéndole a Skype una correcta comunicación, no es capaz de enviar todos los paquetes y la calidad de
la video conferencia es bastante deficiente.
Figura 8: FTP – SSH – Skype Sin Calidad de Servicio (concurrente)
FTP – SSH – Skype con Calidad de Servicio:
En este escenario, se le aplicaron las reglas de Calidad de Servicio, dejando Skype con la mayor prioridad
de 1, luego SSH con una prioridad 2 y finalmente FTP con una prioridad de 3.
Junto con esto, también controlamos el Ancho de banda para cada servicio, repartimos un total de 2Mb de
ancho de banda de la siguiente manera, Skype utilizará el 50%, mientras que SSH utilizará un 30% y
finalmente FTP el 20% restante.
Los resultados son concluyentes, se aprecia una muy buena calidad en la transferencia de la información
de la Video Conferencia, en ningún momento se produce una caída del servicio pese a que
simultáneamente se produce una transferencia de 160Mb.
En los gráficos se puede apreciar que la conexión de Skype (tráfico UDP), envía una mayor cantidad de
paquetes por intervalo de tiempo comparado con SSH y FTP. Esto se debe a que Skype, tiene una
prioridad en las colas de salida y también en la colas de entrada. A esto, se le debe agregar que tiene un
Ancho de banda reservado del 50% del total disponible.
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
12 de 13
Sin duda el objetivo principal se cumplió de manera satisfactoria. La Video Conferencia se realiza sin
problemas, los retardos son mínimos y la calidad aumenta pues llegan una mayor cantidad de paquetes que
hacen de la experiencia algo mucho mas fluido y natural.
A continuación se muestran los gráficos que describen el escenario anterior.
Figura 9 y 10: FTP – SSH – Skype con Calidad de Servicio (concurrente)
Los gráficos anteriores corresponden a la misma situación testeada dos veces en tiempos distintos. Los
resultados son similares como era de esperarse.
Conclusiones
Existen muchas maneras y combinaciones para lograr una Calidad de Servicio, la implementación de
arquitecturas de Servicios Diferenciados por sobre los Servicios Integrales constituyó algo fundamental,
pues no solo no se incurrió en gastos especiales de Routers capaces de manejar campos especiales, si no
que la implementación fue muy rápida, precisa y económica.
Es absolutamente necesario configurar cada enrutador con políticas y reglas de calidad de servicio si se
desea asegurar en un cien porciento la calidad del servicio, sin embargo, realizar una distribución y
modelación del tráfico de una LAN es perfectamente viable implementando Servicios Diferenciados, y sus
resultados son satisfacen totalmente las expectativas.
Las redes universitarias y también en las empresas se deberían preocupar de configurar e
implementar soluciones de Calidad de Servicio, pues no solo es económico (en el caso de los
Servicios Diferenciados) si no que también es muy útil, pues se podría tener un control total del
tipo de tráfico que se desea privilegiar.
Con el auge de las aplicaciones online, en las empresas se está migrando todas las aplicaciones de
gestión a la red debiéndose conectar a servidores externos; En situaciones como éstas, si se
Métodos para Asegurar la Calidad del Servicio Taller de Redes de Computadores 2010
13 de 13
implementara de manera correcta la Calidad de Servicio, se podría controlar y privilegiar el
tráfico hacia ese servidor y asegurarle un ancho de banda; Esto traería como consecuencia un
inmediato aumento en la satisfacción de la experiencia de uso de los clientes con su sistema de
administración remoto (como los sistemas integrados de gestión, por ejemplo).
En los laboratorios también se podrían aplicar ciertas reglas de Calidad de Servicio para que los
alumnos que realicen cierto tipo de transferencias, o deseen realizar actividades no académicas
tengan un porcentaje menor de Banda Ancha que aquellos que desean visitar páginas de docentes.
La cantidad de aplicaciones que tiene la Calidad de Servicio es grandísima, más aún, con el auge
de las redes, controlar el tipo y la cantidad de tráfico asignado para sus ellas es crucial, siempre se
debería privilegiar aquél servicio para el cual existe la red. Si la red se creó para realizar Video
Conferencias, éstas deben tener el privilegio y asignadas una mayor cantidad de garantías. Por
otro lado, si la red es educativa, los sitios distractivos deben tener menos privilegios que aquellos
educacionales o de investigación.
Bibliografía
• „Quality of Service-Fact or Fiction?‟ Geoff Huston, Internet Protocol Journal Vol. 3 Nº 1.
http://www.cisco.com/warp/public/759/ipj_3-1/ipj_3-1_qos.html
• Intserv: http://www.ietf.org/html.charters/intserv-charter.html
• RSVP: http://www.ietf.org/html.charters/rsvp-charter.html
• Diffserv: http://www.ietf.org/html.charters/diffserv-charter.html
• Grupo de Trabajo QoS Internet2: http://www.internet2.edu/qos/wg
• B. Teitelbaum: „Internet 2 Qbone: A Test Bed for Differentiated Services‟,
www.isoc.org/inet99/proceedings/4f/4f_1.htm