Podcast de Redes de Eduardo Collado

Calidad de servicio en GNU/Linux


Listen Later

ENLACES:
Linux Advanced Routing & Traffic Control

Cuando hablamos de calidad de servicio o QoS estamos hablando de un conjunto de mecanismos que nos van a permitir seleccionar el orden y la velocidad con la que se van a transmitir paquetes por un interfaz.
En entornos tipo Cisco es más sencillo, pero no porque sea más sencillo, sino porque quien trabaja en esos entornos está más acostumbrado a este tipo de conceptos sin embargo un administrador de sistemas tiene un espectro mucho más amplio de temas con los que trabaja a diario y su forma de pensar es más generalista.
La calidad de servicio es algo importante cuando hablamos de priorizar un tipo de tráfico sobre otro.
Antes de empezar comentaros que todo lo que voy a decir aquí lo tenéis en
Linux Advanced Routing & Traffic Control – lartc.org, además de las notas del programa en eduardocollado.com
En el programa de hoy voy a centrarme en las qdisc, es decir, las disciplinas de colas, las cuales afectan al tráfico saliente porque nosotros podemos decidir como enviamos el tráfico, pero difícilmente podemos decidir como otros nos envían a nosotros el tráfico, es muy importante tener esto claro.
Vamos a trabajar con colas, pero ¿qué es una cola?, pues lo que hacemos al subirnos al autobús.
Cuando queremos subirnos al autobús podemos hacer diversos tipos de cola, una por ejemplo sería una FIFO, el primero que llega es el primero que se sube al autobús, o incluso podríamos usar varias colas anidadas, por ejemplo podría haber dos colas, una para personas mayores y otra para el resto y nos pondríamos en fila en la fila que nos tocara, luego en el autobús primero subiría la cola de personas mayores y luego la de gente joven.
Si el autobús se llenara con la gente mayor, la gente joven no podría subir al autobús aunque hubieran llegado antes que los mayores, y así podríamos hacer lo que quisieramos con lo que el uso de colas podría pasar de una cola fifo facilita a un sistema más complicado.
El comando del día va a ser tc, que significa traffic control. Este comando se utilzar para configurar el control de tráfico en el kernel de linux y consiste en 4 cosas principalmene:
– shaping: cuando conformamos el tráfico lo que hacemos es modelarlo para evitar los picos y enviar esos picos de tráfico en momentos valle. Es para tráfico saliente. EXPLICAR ATM
– scheduling: consiste en reorganizar el tráfico para que un tráfico tenga una prioridad sobre otro. Solo funciona en tráfico saliente
– policing: es lo equivalente al shaping, pero en tráfico entrante
– dropping: la capacidad de tirar aquel tráfico sobrante, tanto en entrada como en salida.
El procesado de tráfico se realiza con tres tipos de objetos: qdiscs, clases y filtros.
Qdiscs: (Queue discipline) Un algoritmo que controla la cola de un dispositivo, sea de entrada (ingress) o de salida (egress)..
Clases: Las clases son qdisc hijas a otras qdisc principales o classless, es decir, se crea una jerarquía
Filtros: Es la selección de las clases dentro del qdisc classless.
Vamos a empezar con las configuraciones de las qdisc y con la pimera opción, que será configuración de pfifo_fast que no es modificable y es la que viene por defecto en algunas distribuciones, sin embargo en otras como ubuntu viene una qdisc con clase muy parecida.
Por defecto pfifo_fast tiene 3 bandas y procesa los paquetes según en la banda que estén.
tc qdisc add dev eth0 root pfifo_fast
Para borrar
tc qdisc del dev eth0 root
Para ver lo que hay en el interfaz
tc qdisc show dev eth0
La siguiente opción de colas será la Token Bucket Filter (TBF), y el funcionamiento se basa en tokens y en un buffer.
El funcionamiento consiste en que llegan tokens (bytes) que se van almacenando en el buffe...
...more
View all episodesView all episodes
Download on the App Store

Podcast de Redes de Eduardo ColladoBy Eduardo Collado