Upload
paul-mora-andrade
View
137
Download
2
Embed Size (px)
DESCRIPTION
control de trafico
Citation preview
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.
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.
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.