LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
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-[Numero de clase].[nombre]
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
RATE=256kbit
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:
Si tienen otra solución, les agradecería que la compartan, eso es todo por hoy sobre CBQ, espero que les haya servido, hasta la próxima.
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-[Numero de clase].[nombre]
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
RATE=256kbit
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:
DEVICE=eth1, 1Mbit
RATE=256kbit
WEIGHT=100kbit
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:
DEVICE=eth1, 1Mbit
RATE=256kbit
WEIGHT=100kbit
RULE=:80,192.168.0.0/24
RULE=:443,192.168.0.0/24
Nuestro archivo de configuración para la clase cbq-0003.http-out, la cual controlaria la salida de datos via http, se veria asi:
DEVICE=eth1, 1Mbit
RATE=256kbit
WEIGHT=100kbit
RULE=192.168.0.0/24,:80
RULE=192.168.0.0/24,:443
Para finalizar copiamos el guion de inicio dentro de /etc/init.d:
cp -a /sbin/cbq /etc/init.d
Para probar que las clases estén correctas:
service cbq compile
Para correr cbq:
service cbq start
Para reiniciar:
service cbq restart
Para detener:
service cbq stop
Para arregarlo al inicio del sistema:
chkconfig cbq on
Nota: Si enmascaramos la interfaz
eth1 con la eth0, en la clase cbq-0003.http-out no se reflejara el
cambio, ya que cuando enmascaramos una interfaz, esta sale como si fuese
la otra, asi que para que este cambio se refleje deberíamos aplicar
esta clase a eth0, asi:
DEVICE=eth0, 1Mbit
RATE=256kbit
WEIGHT=100kbit
RULE=192.168.0.0/24,:80
RULE=192.168.0.0/24,:443
Si tienen otra solución, les agradecería que la compartan, eso es todo por hoy sobre CBQ, espero que les haya servido, hasta la próxima.
Saludos.
-
Internet
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge
- La propuesta de la ICANN / Verisign permitiría a cualquier gobierno confiscar nombres de dominio
- Listado errores HTTP, estados de respuesta del servidor