TemasAlcance Libre (74/0)
Alcance Libre Desktop (241/0)
Anuncios (217/0)
Arte (6/0)
Comunidad (74/0)
Consejos y trucos (128/0)
Editoriales (24/0)
Entretenimiento (96/0)
Equipamiento lógico (Software) (343/0)
Humor (56/0)
Internet (185/0)
Juegos (61/0)
Manuales y documentos (102/0)
Música (17/0)
Negocios y empresas (279/0)
Noticias Generales (859/1)
Nuestro idioma (8/0)
Opiniones (99/0)
Programación y desarrollo (67/0)
Seguridad (134/0)
Sustento Físico (Hardware) (91/0)
Tiras cómicas (19/0)
Ubunteando (34/0)
Están en línea... Registrados: 2nicolassalgra sortega Invitados: 681 Últimos registrados:Luigi2d Luigimalla nicolassalgra kristian.c10 Mariolobo Total registrados: 1686
Foro de soporte
Participan...Noticiasjoelbarrios (2118) bartoloco (136) Koalasoft (129) capotes (88) bakara (59) gomezbjesus (57) Flaquita (52) The One (47) aLb3rT (44) domingov (43) ValeriaBueno (40) rlameda (25) varisti (24) adrianpazr (21) yucleto (16) Comentarios joelbarrios (272) Koalasoft (194) aLb3rT (148) gomezbjesus (90) The One (61) Oscar Hernández (57) juanroberto (47) rlameda (40) Cause (39) manowar (36) bakara (34) Micaelo (34) bartoloco (31) julioe (29) rdario (29) |
Cómo utilizar CBQ.Autor: Joel Barrios DueñasCorreo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/ Jabber ID: darkshram@jabber.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
Introducción.Acerca de cbq.CBQ (Class Based Queueing o Encolamiento Basado sobre Clases), es un guión escrito en BASH utilizado para la gestión y control del uso de ancho de banda en GNU/Linux. Fue originalmente creado en 1999 por Pavel Golubev y posteriormente mantenido de 2001 a 2004 por Lubomir Bulej. Utiliza de una forma simplificada los mandatos ip y tc para su funcionamiento, y forma parte del paquete iproute, el cual se incluye en las instalaciones básica de la mayor parte de las distribuciones de GNU/Linux. Comprendiendo la velocidad binaria (bit rate).El término bit rate se traduce al español como velocidad binaria, tasa de bits o flujo de bits. Corresponde al numero de bits que se transmiten por segundo a través de un sistema de transmisión digital o entre dos dispositivos digitales. En otras palabras, es la velocidad de transferencia de datos. De acuerdo al Sistema Internacional de Unidades, la unidad con la que se expresa la velocidad binaria (bit rate) es el bit por segundo, es decir bit/s, b/s o bps, donde la b siempre debe escribirse en minúscula para impedir confusión con la unidad byte por segundo (B/s). Los múltiplos para byte aplican de diferente modo que para bit. La unidad byte es igual a 8 bits, y a partir de esto se puede utilizar la siguiente tabla:
Equipamiento lógico necesario.CBQ forma parte de la instalación del paquete iproute, mismo que a su vez se instala de modo predeterminado en casi todas las distribuciones de GNU/Linux. Instalación a través de yum.Si utiliza CentOS 4 y 5, Red Hat Enterprise Linux 5 o White Box Enterprise Linux 4 y 5, solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
Instalación a través de up2date.Si se utiliza Red Hat™ Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
Preparativos.Antes de iniciar cualquier configuración, se deben determinarse los valores para los siguientes parámetros. Para construir una regla, se requiere al menos comprender y especificar los valores para los parámetros DEVICE, WEIGHT, RATE y RULE. Las reglas pueden ser tan complejas como la imaginación del administrador lo permita. Los ficheros con las configuraciones se guardan dentro del directorio /etc/sysconfig/cbq/ y deben llevar sl siguiente nomenclatura:
Donde número-ID-Clase corresponde a un número headecimal de 2 bits dentro del rango 0002-FFFF. Ejemplo: fichero que contiene una clase que controla el tráfico entrante de correo electrónico:
Parámetro DEVICE.Es un parámetro obligatorio. Se determina los valores con el nombre de la interfaz, ancho de banda y peso de esta interfaz. Este último valor, que es opcional en este parámetro, se calcula dividiendo el ancho de banda de la interfaz entre diez. Por ejemplo, sí se dispone de una interfaz denominada eth0 de 100 Mbit/s, el peso será 10 Mbit/s, de tal modo los valores del parámetro DEVICE, quedarían de la siguiente forma:
Si se dispone de una interfaz eth0 conectada a un modem ADSL de 2048 kbps de tráfico entrante o de bajada, el peso será de 204 kbps, de tal modo los valores del parámetro DEVICE, quedarían de la siguiente forma:
Si se dispone de una interfaz eth0 conectada a un modem ADSL de 256 kbps de tráfico saliente o de subida, el peso será de 25 kbps, de tal modo los valores del parámetro DEVICE, quedarían de la siguiente forma:
Parámetro de clase RATE.Es un parámetro obligatorio. Se refiere al ancho de banda a asignar a la clase. El tráfico que pase a través de esta clase será modificado para ajustarse a la proporción definida. Por ejemplo, sí se quiere limitar el ancho de banda utilizado a 10 Mbit/s, el valor de RATE sería 10Mbit, como se muestra a continuación.
Sí se quiere limitar el ancho de banda utilizado a 1024 kbit/s, el valor de RATE sería 1024Kbit, como se muestra a continuación.
Sí se quiere limitar el ancho de banda utilizado a 512 kbit/s, el valor de RATE sería 512Kbit, como se muestra a continuación.
Parámetro de clase WEIGHT.Es un parámetro obligatorio. Éste es proporcional al ancho de banda total de la interfaz. Como regla se se calcula dividiendo entre diez el ancho de banda total. Para una interfaz de 2048 kbps, correspondería un valor de 204Kbit:
Parámetro de clase PRIO.Es un parámetro opcional que se utiliza para especificar que prioridad tendrá sobre otras reglas de control de ancho de banda. Mientras más alto sea el valor, menos prioridad tendrá sobre otras reglas. Se recomienda utilizar el valor 5 que funcionará para la mayoría de los casos. Ejemplo:
Parámetro de clase PARENT.Cuando se utilizan reglas que se requiere estén jerarquizadas, se utiliza para establecer la identidad de clase padre a la que pertenecen. Puede llevar cualquier valor. Cuando se trata de una clase padre, se define junto con el parámetro LEAF con el valor none. En el siguiente ejemplo se establece la identidad 100 en una clase padre.
Parámetro de clase LEAF.Es un parámetro opcional y se utiliza para determinar que política se utilizará para utilizar el ancho de banda de una clase padre. Si se utiliza el valor tbf, que es el valor predeterminado, se utilizará el algoritmo TBF (Token Bucket Filter), el cual impide que la clase tome ancho de banda de la clase padre.
El valor sfq, que corresponde al algoritmo SFQ (Stochastic Fairness Queueing), hace que sea compartido el ancho de banda de la clase padre aproximadamente en la misma proporción de ancho de banda entre anfitriones dentro de la misma clase.
El valor none permite utilizar libremente el ancho de banda disponible, siempre que el valor del parámetro BOUDED sea igual a no. En el siguiente ejemplo se especifica utilizar libremente el ancho de banda disponible:
Parámetro de clase BOUNDED.Es un parámetro opcional. Si el valor es yes, que es el valor predeterminado, la clase no tendrá permitido utilizar ancho de banda de la clase padre. Si el valor es no, la clase podrá hacer uso del ancho de banda disponible en la clase padre. Si se establece con valor no, es necesario utilizar none o bien sfq en el parámetro LEAF.
Parámetro de clase ISOLETED.Es un parámetro opcional. Si se establece con el valor yes, la clase no prestará ancho de banda a las clases hijas. Si se utiliza el valor no, que es el valor predeterminado, se permitirá prestar el ancho de banda disponible a las clases hijas.
Parámetros de filtración.Son las reglas de filtración que se utilizan para seleccionar tráfico en cada una de las clases. La sintaxis completa es la siguiente:
En lo anterior, saddr se refiere a la dirección de origen. daddr se refiere a la dirección de destino. La sintaxis simplificada es la siguiente, donde todos los valores son opcionales, pero se debe especificar al menos uno:
En general la interpretación sigue cuatro simples principios:
Ejemplos.Selección de todo el tráfico desde cualquier puerto en cualquier red hacia los puertos 25 (SMTP), 465 (SMTPS) y 587 (SMTP Submission) en cualquier red (es decir, controla ancho de banda de correo saliente):
Selección de todo el tráfico desde los puertos 25 (SMTP), 465 (SMTPS) y 587 (SMTP Submission) en cualquier red hacia cualquier puerto en cualquier red (es decir, controla ancho de banda de correo entrante):
Selección de todo el tráfico desde la red 192.168.0.0/24 hacia cualquier puerto en cualquier red:
Selección de todo el tráfico desde cualquier puerto en cualquier red hacia cualquier puerto en la red 192.168.0.0/24:
Selección de todo el tráfico desde cualquier puerto en la red 192.168.0.0/24 hacia el puerto 25 (SMTP) en cualquier red:
Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192.168.0.0/24 hacia cualquier puerto en cualquier red:
Selección de todo el tráfico desde el puerto 25 (SMTP) en la red 192.168.0.0/24 hacia el puerto 25 (SMTP) en cualquier red:
Selección de todo el tráfico desde el puerto 25 (SMTP) en cualquier red hacia cualquier puerto en la red 192.168.0.0/24:
Selección de todo el tráfico desde el puerto 25 (SMTP) en cualquier red hacia el puerto 25 (SMTP) en la red 192.168.0.0/24:
Selección de todo el tráfico desde el puerto 80 en cualquier red hacia cualquier puerto de cualquier red:
Selección de todo el tráfico desde cualquier puerto en el anfitrión 201.161.1.226 hacia cualquier puerto en cualquier red:
Selección de todo el tráfico desde puerto 80 en el anfitrión 201.161.1.226 hacia cualquier puerto en cualquier red:
Selección de todo el tráfico desde el puerto 80 (HTTP) en cualquier red hacia la red 192.168.0.0/24:
Selección de todo el tráfico desde los puerto 20 (FTP-DATA), 21 (FTP) y 80 (HTTP) en cualquier red hacia la red 192.168.0.0/24:
Selección de todo el tráfico desde de los puertos 20 (FTP-DATA), 21 (FTP) y 80 (HTTP) en el anfitrión 201.161.1.226 hacia la red 192.168.0.0/24:
Procedimientos.Para poder configurar el uso de ancho de banda se requiere determinar primero lo siguiente:
Considerando el siguiente escenario:
Como ejemplo, se asignarán los siguientes anchos de banda para cada servicio específicado.
CBQ sin compartir ancho de banda entre clases.En el ejemplo los anchos de banda se están asignando pensando en que se hará uso de todos los servicios de forma simultánea y que se quiere que cada servicio respete el ancho de banda de los otros, es decir, sin prestar ancho de banda de una clase a otra. Con la finalidad de facilitar la organización, se recomienda crear ficheros independientes para cada política. Es decir, destinar un fichero para todo lo relacionado con correo, otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP.
CBQ compartiendo ancho de banda entre clases.En el ejemplo los anchos de banda se están asignando pensando en que se hará uso de todos los servicios de forma simultánea y que se quiere que cada servicio preste ancho de banda sin utilizar desde una clase hacia otra. Se utilizará a las clases con mayor ancho de banda disponible como las clases padre. Con la finalidad de facilitar la organización, se recomienda crear ficheros independientes para cada política. Es decir, destinar un fichero para todo lo relacionado con correo, otro para lo relacionado con HTTP/HTTPS y otro relacionado con FTP.
Iniciar, detener y reiniciar el servicio cbq.El guión de inicio de cbq está instalado como /sbin/cbq. Es necesario copiar este fichero dentro de /etc/init.d/ y tratarlo igual que cualquier otro servicio del sistema.
Para probar que las clases están correctas antes de utilizar éstas, puede recurrir a:
Para ejecutar por primera vez el servicio cbq, utilice:
Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:
Para detener el servicio cbq y eliminar de memoria todas las reglas utilice:
Para supervisar las estadísticas de tráfico gestionado a través de cbq utilice:
Agregar el servicio cbq al arranque del sistema.Para hacer que el servicio de cbq esté activo con el siguiente inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
Última Edición martes 03 de junio de 2008 @ 04:18 CDT|3,822 Hits |
Comentarios Recientes