3
L a mayoría de las máquinas están configuradas de modo que toman todo el ancho de banda que les per- mite su hardware. Pero las técnicas prede- terminadas para la compartición del ancho de banda entre varios sistemas de una red local son a veces inadecuadas cuando el volumen de tráfico crece. Muchos administradores encuentran un mejor rendimiento (y un menor número de quejas por parte de sus usuarios) impo- niendo un sistema que se encargue de limitar el uso individual del ancho de banda. Por ejemplo, imaginemos lo que pasaría si varios de los sistemas de una red local comenzasen a descargar simultá- neamente películas desde sitios de des- carga torrent, llegando hasta el 98 por ciento de la capacidad de descarga y de subida totales. El resto de los usuarios de la red se quejaría, y con razón. Nosotros, como administradores de dicha red, ten- dríamos que invertir un tiempo precioso en diagnosticar el problema y responder a las quejas. ¿Por qué no dejar que un sis- tema automático se imponga y gestione el ancho de banda, resolviendo este tipo de incidencias? Por desgracia, las herra- mientas que nos permiten aprovechar la funcionalidad de QoS (Quality of Service) del kernel Linux suelen ser difíci- les de instalar y configurar, además las mejores suelen requerir que recompilemos el kernel. El paquete HTB-tools [1] es una herramienta están- dar de Linux para limitar el uso del ancho de banda. A pesar de que requiere un buen número de cálculos, así como lidiar con archivos de control, podemos afinar la configuración HTB-tools de modo que se ajuste a las nece- sidades de nuestra red. Una alternativa sencilla para la gestión del flujo del tráfico de nuestra red local es WebHTB. Esta herramienta (Figura 1) consiste en un conjunto de archivos PHP con los que podemos asignar el ancho de banda a tra- vés de una interfaz web basada en PHP y AJAX. WebHTP nos permite limitar el ancho de banda en direcciones IP externas e internas y gestionarlo en direcciones SNAT (Secure Network Address Translation). WebHTB • PRÁCTICO 47 Número 52 WWW.LINUX - MAGAZINE.ES Paulus Rusyanto, Fotolia.com Mostramos cómo WebHTB per- mite gestionar el ancho de banda de una red a través de una interfaz de navegador conveniente. POR RAZVAN-TEODOR COLOJA CONTROL DEL TRÁFICO CONTROL DEL TRÁFICO Gestión del tráfico de red con WebHTB Gestión del tráfico de red con WebHTB Figura 1: La ventana principal de WebHTB muestra las máquinas cliente y sus límites de ancho de banda. El administrador puede ver y editar fácilmente los valores de cada máquina de la red.

WEBHTB

Embed Size (px)

DESCRIPTION

control de trafico

Citation preview

Page 1: WEBHTB

La mayoría de las máquinas están

configuradas de modo que toman

todo el ancho de banda que les per-

mite su hardware. Pero las técnicas prede-

terminadas para la compartición del

ancho de banda entre varios sistemas de

una red local son a veces inadecuadas

cuando el volumen de tráfico crece.

Muchos administradores encuentran un

mejor rendimiento (y un menor número

de quejas por parte de sus usuarios) impo-

niendo un sistema que se encargue de

limitar el uso individual del ancho de

banda. Por ejemplo, imaginemos lo que

pasaría si varios de los sistemas de una

red local comenzasen a descargar simultá-

neamente películas desde sitios de des-

carga torrent, llegando hasta el 98 por

ciento de la capacidad de descarga y de

subida totales. El resto de los usuarios de

la red se quejaría, y con razón. Nosotros,

como administradores de dicha red, ten-

dríamos que invertir un tiempo precioso

en diagnosticar el problema y responder a

las quejas. ¿Por qué no dejar que un sis-

tema automático se imponga y gestione el

ancho de banda, resolviendo este tipo de

incidencias?

Por desgracia, las herra-

mientas que nos permiten

aprovechar la funcionalidad

de QoS (Quality of Service) del

kernel Linux suelen ser difíci-

les de instalar y configurar,

además las mejores suelen

requerir que recompilemos el

kernel. El paquete HTB-tools

[1] es una herramienta están-

dar de Linux para limitar el

uso del ancho de banda.

A pesar de que requiere un

buen número de cálculos, así

como lidiar con archivos de

control, podemos afinar la

configuración HTB-tools de

modo que se ajuste a las nece-

sidades de nuestra red. Una

alternativa sencilla para la

gestión del flujo del tráfico de

nuestra red local es WebHTB.

Esta herramienta (Figura 1) consiste en un

conjunto de archivos PHP con los que

podemos asignar el ancho de banda a tra-

vés de una interfaz web basada en PHP y

AJAX. WebHTP nos permite limitar el

ancho de banda en direcciones IP externas

e internas y gestionarlo en direcciones

SNAT (Secure Network Address

Translation).

WebHTB • PRÁCTICO

47Número 52W W W . L I N U X - M A G A Z I N E . E S

Pau

lus R

usyan

to, F

oto

lia.c

om

Mostramos cómo WebHTB per-

mite gestionar el ancho de banda

de una red a través de una interfaz

de navegador conveniente.

POR RAZVAN-TEODOR

COLOJA

CONTROL DELTRÁFICOCONTROL DELTRÁFICO

Gestión del tráfico de red con WebHTBGestión del tráfico de red con WebHTB

Figura 1: La ventana principal de WebHTB muestra las

máquinas cliente y sus límites de ancho de banda. El

administrador puede ver y editar fácilmente los valores de

cada máquina de la red.

Page 2: WEBHTB

config/config.php en la raíz

del servidor web. Este

archivo contiene la

configuración de WebHTB

y debería ser comprobado

al finalizar la instalación.

Una vez realizada la

parte más dura, iniciamos

el servidor web, nos dirigi-

mos a http://127.0.0.1/

webhtb/setup y seguimos

los pasos del instalador de

WebHTB. En la página de

instalación, introducimos

el nombre de usuario y la contraseña del

administrador, así como la contraseña y el

nombre de usuario al que le acabamos de

dar acceso para operar en la nueva base de

datos. Introducimos webhtbdb como nom-

bre de la base de datos. Seleccionamos

nuestra interfaz de red primaria

(normalmente, eth0) y confirma-

mos los cambios. Si la instalación

se ha llevado a cabo correcta-

mente, se puede eliminar el direc-

torio setup.

Estableciendo losLímitesWebHTB observa la interfaz de red

entre una red local e Internet, e

impone límites de tráfico para las

máquinas de la red local.

En particular, WebHTB gestiona

los siguientes parámetros:

•Bandwidth – el ancho de banda

mínimo garantizado.

• Limit – el ancho de banda máximo dis-

ponible para una máquina determinada.

• Burst – la cantidad de datos que se pue-

den enviar a la velocidad de hardware

máxima antes de que dicho hardware

pueda servir otro conjunto de datos. Si

se pone Burst a 0, WebHTB calcula y

aplica un valor automáticamente.

• Priority – un valor en el rango de asigna-

ción de ancho de banda (un número

más bajo supone un rango más alto).

• Queue – define el tipo de planificador

(actualmente, PFIFO, SFQ o ESFQ).

El objetivo es definir clases con las máqui-

nas que tienen un mismo propósito. Por

ejemplo, una clase Contabilidad puede

consistir en máquinas asignadas al perso-

nal contable con una funcionalidad similar

todas ellas. Luego, podemos asociar a la

clase un ancho de banda concreto.

Antes de empezar a crear clases hay que

definir la interfaz de red. Seleccionamos

Interfaces+ desde el menú principal para

entrar a un diálogo que nos permite añadir

interfaces a la configuración de WebHTB

(Figura 2).

Seleccionando Classes+ desde el menú

principal, accedemos al diálogo con el que

definir clases de máquinas para la red

(Figura 3).

Nótese que ya se pueden asignar límites

de ancho de banda en la clase misma.

Estos límites serán los que se apliquen a

cada una de las máquinas de la clase; de

todos modos, podemos asociar límites de

ancho de banda a máquinas específicas,

prevaleciendo éstos a los especificados con

la clase.

Una vez creada la clase, ya podemos

comenzar a añadirle máquinas. Pulsamos

sobre la entrada Clients+ del menú princi-

pal, elegimos Add Client e introducimos un

nombre para la máquina. Luego, especifi-

camos los valores de Bandwidth y Limit

que queramos y escogemos un nivel de

prioridad desde el menú desplegable. Los

nombres de los clientes no deben contener

espacios ni caracteres especiales. Y los

PRÁCTICO • WebHTB

48 Número 52 W W W . L I N U X - M A G A Z I N E . E S

ComencemosAntes de poder empezar a usar WebHTB,

necesitamos activar varios módulos del

kernel y recompilarlo. Primero, añadimos

a la configuración del kernel los módulos

HTB (Hierarchical Token Bucket), SFQ (Sto-

chastic Fairness Queuing), FW Netfilter

mask (FW) y U32 (Universal 32-bit). Ade-

más, hay que activar el soporte para mar-

cado de netfilter y la clave U32. Luego ins-

talamos iproute2 junto con un servidor

web que soporte SSL 2.8 (Apache, por

ejemplo), así como soporte para MySQL,

PHP y SSH2. Es requisito indispensable un

servidor web con capacidad para SSL por

razones de seguridad, ya que la contraseña

de root se proporciona al ingresar y se

almacena cifrada. WebHTB sólo emplea

dicha contraseña al realizar cambios sobre

la configuración. A continuación, descar-

gamos la última ver-

sión del paquete

WebHTB [2] (la ver-

sión 2.7 en el momento

de escribir estas líneas)

y extraemos el archivo

en la raíz del servidor

web, en la misma

máquina que hará de

router de la red.

Lo siguiente que

haremos será configu-

rar una base de datos

para WebHTB. Para

ello, ingresamos al

prompt de MySQL

mediante el comando:

mysql -u root -p

Luego, creamos una nueva base de datos

llamada webhtbdb y permitimos el acceso

a nuestro usuario:

CREATE database webhtbdb;

GRANT ALL PRIVILEGES U

ON webhtbdb.* to U

‘usuario’@’localhost’ U

IDENTIFIED BY U

‘contraseña’ WITH GRANT U

OPTION;

quit;

En caso de no haberlo hecho ya, añadimos

al final del archivo /etc/sudoers el usuario

bajo el cual se ejecutará el servidor web.

Además, es importante que nos asegure-

mos de que este usuario tiene permisos de

lectura y escritura sobre el archivo webhtb/

Figura 2: La configuración

de WebHTB se aplica a

interfaces de red específi-

cas.

El Centro de Control de WebHTB es un

trabajo en desarrollo. Sus desarrollado-

res planean terminarlo con la versión

2.8. El Centro de Control gestiona confi-

guraciones como la clave para MySQL,

el rango de direcciones IP con acceso a

la interfaz de WebHTB, o el idioma en

que se muestra éste. Actualmente están

soportados el rumano, el inglés, el

español y el portugués. Según el desa-

rrollador principal, Daniel Delicostea,

vienen más traducciones en camino. El

Centro de Control (Figura 6) también

permite al usuario respaldar y restaurar

la configuración, de manera que un

administrador puede usar configuracio-

nes distintas en diferentes momentos.

Centro de Control

Figura 3: Adición de una clase en WebHTB.

Page 3: WEBHTB

valores para Bandwidth y Limit deben ser

múltiplos de 8. Luego pulsamos Save. Para

añadir más clientes se puede pulsar Reset,

que limpia los campos para que introduz-

camos nuevos datos.

Los nuevos clientes deberían aparecen

en la lista inmediatamente. Con un click de

ratón podemos editar y eliminar entradas,

gracias a la interfaz AJAX (Figura 4).

WebHTB funciona con MARK y direccio-

nes IP y MAC.

La opción Show de la barra de menú

nos lleva a otro submenú llamado Show

Traffic. La opción Show Traffic abre una

pequeña ventana que se actualiza cons-

tantemente, permitiendo al administrador

saber quién usa el ancho de banda de la

compañía (Figura 5) en cada momento.

Podemos estudiar la velocidad de des-

carga de clientes individuales, la velocidad

total de clases completas, y los límites, en

tiempo real.

Imaginemos un escenario típico. Supon-

gamos que somos los administradores de

una red de 50 máquinas. Una de las

máquinas pertenece al jefe, otra es nuestra

estación de trabajo, y las 48 restantes están

repartidas entre el resto de compañeros.

Nuestro trabajo consiste en dividir una

línea de 5Mbps entre todos estos sistemas

de modo que ni

nosotros ni nuestro

jefe tengamos

nunca problemas de velocidad, al tiempo

que el resto de compañeros disfrute de una

conexión a Internet estable.

Después de añadir eth0 como interfaz

predeterminada, creamos dos nuevas cla-

ses: una llamada Privilegiados y otra lla-

mada Compañeros.

Añadimos un nuevo

cliente llamado Jefe

a la clase privile-

giada, con un ancho

de banda garanti-

zado de 512Kbps y

un límite de

640Kbps. Establece-

mos el nivel de prio-

ridad a 0 a fin de que este usuario no

tenga que esperar para usar la línea. Crea-

mos otro cliente llamado Administrador

con la misma configuración.

Esta configuración reserva la quinta

parte de la conexión para nosotros y

nuestro jefe. En caso de que el resto de

máquinas de la red no use su conexión a

Internet, tenemos 128Kbps extra (ya que

la configuración define un límite máximo

de 640Kbps).

Ahora todo lo que tenemos que hacer

es colocar al resto de usuarios en la clase

Compañeros y darles los mismos dere-

chos con un ancho de banda mínimo

más bajo (80Kbps cada uno) y un límite

máximo de 128Kbps. Los niveles de prio-

ridad se pueden configurar libremente

(recordemos que un número más bajo

supone una posición más ventajosa en la

jerarquía de la distribución del ancho de

banda).

ConclusiónAntes de decidir quién consigue qué

ancho de banda, hemos de dibujarnos un

mapa mental de la compañía. Calculemos

quién necesita más el ancho de banda y

quién suele trabajar horas extra. Los traba-

jadores más persistentes deberían tener

unos límites más altos, para que cuando

los otros abandonen su puesto de trabajo,

puedan disfrutar del ancho de banda libre.

Combinado con un buen juego de reglas

de iptables (y quizá una instalación de

Squid), WebHTB nos hace la vida de

administradores de red más fácil. Se reco-

mienda crear diferentes configuraciones y

experimentar con ellas hasta dar con un

método que funcione bien con todo el

mundo. �

WebHTB • PRÁCTICO

49Número 52W W W . L I N U X - M A G A Z I N E . E S

[1] HTB-tools: http://htb-tools.skydevel.

ro/

[2] WebHTB: http://webhtb.sourceforge.

net/

[3] Demo en Flash de WebHTB: http://

webhtb.sourceforge.net/video_demo.

html

RECURSOSLas anteriores versiones de WebHTB

hacían uso del paquete HTB-tools para

ciertas funcionalidades de QoS. A partir

de la versión 2.0, WebHTB incluye herra-

mientas para operar directamente sobre

QoS. Para ver cuáles hay disponibles, se

puede visitar la demo Flash de WebHTB

y verlo en acción [3].

QoS

Figura 5: Vista del uso de anchos de banda en tiempo real.

Figura 4: Modificación de un cliente existente en la lista.

Figura 6: Versión 2.8 del Centro de Control.