Implementando QoS en las Redes

Calidad de ServicioEn primero lugar conozcamos que es QoS, QoS (Quality of Service o Calidad de Servicio) es un conjunto de protocolos y tecnologías que garantizan tanto la transmisión de datos como la entrega de los mismos en un momento dado (throughput). Implementar este tipo de tecnología nos aseguramos que aquellas aplicaciones que requieren de la utilización de un determinado ancho de banda se encuentre disponible dicho recurso en el momento que se lo solicite.

Para tal fin uno de los principales conceptos acompañados a la tecnología QoS es la priorización, esto es darle de alguna manera más importancia a algunas conexiones que a otras.

Veamos algunos beneficios que podemos encontrar al implementar QoS en nuestro sistema de redes:

  • Control sobre los recursos: podemos limitar el ancho de banda utilizado por aquellas aplicaciones con este tipo de conexión en sus comunicaciones.
  • Permite usar mas eficientemente los recursos de la red: al poder establecer prioridades sobre los diferentes tipos de servicios.
  • Menor latencia: este es el caso en el que por ejemplo una aplicación de trafico interactivo como es el SSH, telnet, etc requieren un menor tiempo de respuesta que otras aplicaciones.

Existen varias formas de aplicar esta tecnología de calidad de servicio ya sea en software como en hardware, existen las aplicaciones comerciales y por supuesto las alternativas libres y de código abierto.

Este tipo de tecnología es importante tenerla presente en los ambientes laborales y empresariales, debido a que muchas veces la red es mal utilizada por los usuarios, para transmitir, descargar, navegar información muchas veces innecesaria. Implementando el servicio QoS podemos llevar un mejor control no solamente del contenido sino también de las terminales que tendrán un mejor acceso que otras.

Veamos entonces como implementar QoS en nuestras instalaciones.
Para poder llevar a la práctica e implementar QoS para gestionar el ancho de banda, primero debemos comprender cual es el camino que recorre un paquete desde que llega o se genera en nuestra PC hasta que se dirige a internet o quizás a otras redes, es necesario también conocer las diferentes disciplinas de las colas denominadas qdisc (Queue Disciplines) encargadas de clasificar cada paquete.

El funcionamiento del sistema es simple de comprender, pata tal caso vamos a dar como supuesto que una de las PC que hará las veces de router se encuentra con GNU/Linux, es funcionamiento sería el siguiente:

El paquete de datos llega hasta el Kernel Linux de nuestra PC router.
Un sistema de iptables como es el caso de Netfilter se encarga de colocarle una marca a los paquetes, que el administrador previamente habrá configurado. Esta pequeña marca es a los fines de poder clasificar más adelante de que se trata cada paquete. Vamos a ver más adelante que hay una gran cantidad de formas de identificar un paquete, ya sea por la cabecera IP, puerto destino de cada paquete, etc.
El árbol de preferencia, es aquí en donde se concentra el principal funcionamiento del mecanismo de control de trafico. Por medio de lo que se conoce como disciplinas de colas que es la forma en la cual se van a organizar los paquetes para ser entregados.



Ahora hablemos un poco de que se trata esto de Disciplinas de las Colas
Como dijimos anteriormente las disciplinas de las colas no son más que una clase en las que hay dependencias entre padre-hijo y sus miembros. Veamos algunos algoritmos que hacen funcionar toda esta estructura, las que podemos encontrar son las siguientes:

  • ESFQ (Enhaced Stochastic Fair Queing): en donde el ancho de banda se reparte equitativamente entre todas las conexiones existentes. Entregando de esta manera las mismas oportunidades a todos los nodos para realizar sus peticiones.
  • HTB (Hierarchical Token Bucket): básicamente permite dividir el ancho de banda disponible a través de un mínimo y máximo o lo que comúnmente se llama un piso y un techo. Lo que garantiza esta disciplina es un servicio de mínimo lo cual en algún momento puede llegar a utilizar hasta el máximo de lo expuesto.
  • IMQ (Intermediate Queing Device): se usa para encolar paquetes y limitar el tráfico de entrada que puede llegar a una interface de red.
  • WRR (Weighted Round Robin, Round Robin por Peso): es similar al ESFQ pero permite además dar más peso a alguna IP determinada y de este modo crear jerarquías en el balanceo del tráfico.
  • PFIFO_FAST (First In, First Out): El primer paquete en ingresar a la cosa, es el primer paquete en abandonar la misma. Esta disciplina la podemos encontrar por defecto en GNU.
  • RED (Random Early Detection): Utilizado para detectar la congestión de la red, asegurando que la cola no se encuentre llena.
  • ECN (Explicit Congestion Notification): Funciona en conjunto con RED.

Una ves entendido esto podemos ver como usar las disciplinas de colas mencionadas para clasificar el trafico.
Las disciplinas de colas se encuentran organizadas jerárquicamente en forma de árbol, cada interface (tarjeta de red) posee un qdisc que esta asociada a cada una de ellas. El funcionamiento es el siguiente, cuando se recibe un paquete de dato en la interface de red, la qdisc raíz recibe una petición para desencolar. En base a la marca que se encuentre establecida por el firewall que indicamos, la qdisc raíz se encargara de enviarle a algunas de las clases que contiene, tal y como vamos a ver en el ejemplo gráfico de abajo.

Clases

De esta manera conocemos un mecanismo por el cual podemos brindar un mejor servicio de red a nuestros usuarios, dependiendo de los servicios y las aplicaciones que utilice a diario, dando de esta manera sistemas de prioridades, limitaciones en el ancho de banda y diferentes puntos cuestiones que harán del uso una actividad más equitativa para todos. Lo que se intentó dar a conocer en esta oportunidad es un marco teórico en donde vemos el funcionamiento de esta tecnología desde adentro, más adelante lo vamos a llevar a la práctica, dando a conocer más ejemplos y diferentes formas de implementarlo.

Nota: Las images e ilustraciones fueron extraídas de diferentes sitios web a fines ilustrativos.

Enlaces de interés: Documentos de Bruno Herrero, Wikipedia, Linux Advanced Routing & Traffic Control

Valora esta noticia: 1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (0 votos, media: 0,00 de 5)
Loading ... Loading ...