Controlando el ancho de banda con CBQ en GNU/Linux
Con CBQ (Class Based Queueing) podemos controlar nuestro ancho de banda de una forma bien sencilla, para su funcionamiento utiliza las herramientas ip y tc, y viene con el paquete llamado iproute, el cual se encuentran en los repositorios de la mayoría de las distribuciones, por lo cual lo instalamos desde los repositorios.
yum install iproute
Nos dirigimos a la ruta raíz de los archivos de configuración, la cual es /etc/sysconfig/cbq/, en esta ruta crearemos los archivos necesarios para controlar el ancho de banda los cuales tendran la siguiente nomenclatura:
cbq- Por ejemplo si queremos crear un archivo para controlar el ancho de banda para el puerto 80 o http, simplemente lo crearíamos de la siguiente manera: cbq-0002.http-in Aqui definimos 0002, ya que el numero de clase va desde 0002, y puse http-in simplemente para tener una referencia a lo que vamos a controlar (http-in, entrada por http), para definir la salida podemos crear otro archivo con la siguiente nomenclatura: cbq-0003.http-out Aqui definimos out en vez de in, para tener una referencia de que vamos a controlar la salida de datos por http, «IN» vendria siendo la descarga de datos, y «OUT» la subida de datos. Sabiendo la nomenclatura de estos archivos, vamos a dar un ejemplo de la red en la cual estamos: Tenemos un servidor con dos interfaces de red, la eth0 va hacia Internet y la eth1 va hacia la red local, los computadores de la red local son enmascarados por el Firewall para salir a Internet por la eth0 (Guia para la implementación de un Firewall con Shorewall). Partiendo desde esta estructura de red, vamos a definir los parámetros necesarios en los archivos de configuración: DEVICE: Aqui definiremos la interfaz a controlar y su ancho de banda, en mi caso tengo 1Mbps de bajada y la interfaz a controlar es la eth1: DEVICE=eth1, 1Mbit RATE: Aqui definiremos el ancho de banda a asignar a la clase que estamos creando, en mi caso quiero definir 256kbps para http, entonces se veria asi: DEVICE=eth1, 1Mbit WEIGHT: Aqui definiremos el peso, el cual es igual a nuestro ancho de banda total entre diez, en nuestro caso que tenemos 1mbps (1Mbit), entonces se veria asi: Y por ultimo el parametro RULE, en el cual se definen las reglas de filtración, su nomenclatura es la siguiente: RULE=[IP-ORIGEN:PUERTO-ORIGEN],[IP-DESTINO:PUERTO-DESTINO] No hay mejor manera de explicar esto que con simples ejemplos: 1) Controlar el ancho de banda de el rango de ip 192.168.2.0/24 a el puerto 80: RULE=192.168.2.0/24,:80 2) Controlar el ancho de banda de cualquier red y puerto a cualquier red y puerto: RULE=, Nuestro archivo de configuración para la clase cbq-0002.http-in, la cual controlaria la entrada de datos via http, se veria asi:
RATE=256kbit
This is such a great resource that you are providing and you give it away for free. I enjoy seeing websites that understand the value of providing a prime resource for free. I truly loved reading your post. Thanks!