ayuda como limitar ancho de banda en lan con ubuntu server

Imagen de aragones_85
0 puntos

Tengo un ciber cafe con una linea de adsl de 3 megas de telefonica speedy es para un sector de 10 maquinas que juegan al cs y ven videos de youtube y todas las cosas que hacen los chicos necesitaria limitar el ancho de banda de las pc equitativamente para que anden todas iguales, tengo una dell optiplex 270 gx 260 con 256 de ram y 40 gb de disco con 2 tarjetas de red.
Muchas gracias a todos estuve mirando el foro de servidores vi algunas cosas pero no eran how to.

Imagen de BrusBilis
+1
0
-1

http://www.zentyal.com/es/

Gratuito y español.
Tendras que currartelo para instalarlo y configurar todo pero te merecera la pena.

Un saludo

+1
0
-1
Imagen de aragones_85
+1
0
-1

saludos

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Es necesario que adquieras conocimiento acerca de direccionamiento IP, subnets, y puertos.
Para poder limitar el uso de Internet, debes saber que puerto usa tu servidor proxy, para limitar o liberar el uso de video conferencias, debes saber que puertos se utilizan para establecer el enlace, o la ip de la máquina en la que se realiza dicha video conferencia.

Para lograr tu objetivo, sólo debes utilizar herramientas que vienen en las últimas distribuciones de linux (a partir de la versión 2.4.20 de kernel), éstas herramientas son, un controlador de tráfico (tc) y una especie de temporizador (htb). Son herramientas, que al formar parte del propio sistema operativo tiene un elevado nivel de eficiencia y precisión. Además de ser muy eficiente, es muy sencillo anular su efecto ya que con una simple línea, se anulan los efectos producidos.

Establece primero el ancho de banda máximo disponible en tu línea de transmisión, este valor puede ser, por ejemplo, de 10Mbps (Clase 1). Luego define todos los límites previstos o CLASES. Por ejemplo para definir que diferentes límites serán (sin importar aún a que corresponde cada límite)
512Kbps (Clase 2)
256Kbps (Clase 3)
24Kbps (Clase 4).
Con estos valores tienes definidas 4 CLASES.
Algunos servicios, usuarios o subnets, con 1Mbps, otros con 512Kbps, otros con 256Kbps y los últimos con 24Kbps.

Luego de definidas las CLASES, debes definir que corresponderá a cada clase, por ejemplo, gerencia tendrá el máximo ancho de banda posible (Clase 1), el correo corporativo será de Clase 3, Internet Clase 4, Desarrollo Clase 2, Videoconferencia Clase 1, y el resto de usuarios estarán limitados a la Clase 4.

Luego que has definido los parámetos del sistema debes crear el Script que implemente el "limitador".

Suponiendo que el limitador se aplicará, en un servidor Linux por donde pasa todo el tráfico de Internet, videoconferencia y correo corporativo. Este servidor tiene dos placas de red, una externa (eth0) y la otra interna (eth1). Tu proveedor de Internet conectado a eth0 brinda un ancho de banda de 1Mbps. Tu red interna está configurada para funcionar a 10Mbps máxima. Además tienes contratado un enlace punto a punto con una sucursal de 64Kbps por el cual viaja tanto, internet, correo corporativo y canales de voz.
La distribución de direcciones ip y puertos es la siguiente:
a)La Gerencia forma una subnet con la siguiente numeración: 172.16.21.0/24.
b)Nuestra sucursal es la subnet 172.16.31.0/24
100. El resto de los usuarios pertenecen a la subnet 172.16.1.0/24
d)El puerto usado por nuestro proxy de internet es el 3128
Definimos 4 clases de ancho de banda:
1. 10Mbps
2. 256 Kbps
3. 128 Kbps
4. 24Kbps

Definimos que grupo pertenece a cada clase.
Gerencia pertenecerá a la Clase I
Internet pertenecerá a la Clase II
El resto de los usuarios ocupará la Clase III
La sucursal será parte de la Clase IV.
En el caso de la sucursal, los servicios de internet y correo corporativo estarán limitados a 24Kbps, dejando el resto para canales de voz y otros servicios que no pasen por el servidor donde instalaremos el limitador.

El Script tendría el siguiente contenido:

#!/bin/bash
#Definimos la placa de red interna, ya que es la que nos interesa administrar.
DEV=eth1
#Definimos el camino al comando "tc", en caso de que no este en el PATH
TC=tc ; este es el caso en el que esta en el PATH
#Definimos todos los limites de ancho de banda a utilizar en Kbps.
RATE1=1000
RATE2=256
RATE3=128
RATE4=24
# Esta linea elimina toda posible definición anterior de FILTROS y CLASES
$TC qdisc del dev $DEV root 2>&1 >/dev/null
#Definimos las CLASES existentes, ademas de la CLASE root y la CLASE master que son necesarias para el funcionamiento del script, pero que no debemos modificar.
#CLASE root y master
$TC qdisc add dev $DEV root handle 1: htb default 60
$TC class add dev $DEV parent 1: classid 1:1 htb rate ${RATE1}kbit
#CLASES y orden prioridad
#CLASE I
$TC class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE}kbit ceil ${RATE}kbit prio 1
$TC qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
#CLASE II
$TC class add dev $DEV parent 1:1 classid 1:20 htb rate ${RATE2}kbit ceil ${RATE2}kbit prio 2
$TC qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
#CLASE III
$TC class add dev $DEV parent 1:1 classid 1:30 htb rate ${RATE3}kbit ceil ${RATE3}kbit prio 3
$TC qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
#CLASE IV
$TC class add dev $DEV parent 1:1 classid 1:40 htb rate ${RATE4}kbit ceil ${RATE4}kbit prio 1
$TC qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10
#Ya están las 4 CLASES definidas, ahora hay que definir los FILTROS.
# FILTRO1 (Subnet GERENCIA a CLASE I)
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 172.16.21.0/24 flowid 1:10
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 172.16.21.0/24 flowid 1:10
# FILTRO2 (INTERNET a CLASE II)
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dport 3128 flowid 1:20
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip sport 3128 flowid 1:20
# FILTRO3 (Subnet RESTO USUARIOS a CLASE III)
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 172.16.1.0/24 flowid 1:30
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 172.16.1.0/24 flowid 1:30
# FILTRO4 (Subnet SUCURSAL a CLASE IV)
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 172.16.31.0/24 flowid 1:40
$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 172.16.31.0/24 flowid 1:40
#Ya esta listo para correr, si queremos podemos mostrar las clases y limites establecido (no muestra a quien pertenece cada subnet o servicio).
$TC qdisc show dev $DEV
$TC class show dev $DEV
#Fin del Script

Con este Script, logras desarrollar una muy potente herramienta que te permite administrar muy eficientemente los recursos con los que dispones.
Demás está decir que te recomiendo leas los manuales de los comandos utilizados, ya que esto dara una solidez de conocimiento superior, y posibilidad de ajustar el Script a la medida de tus necesidades.

+1
0
-1
Imagen de checkjes@yahoo.es
+1
0
-1

Puedes usar delay pools en squid

+1
0
-1
Imagen de Firecold
+1
0
-1

delay pools es una buena opcion, el unico detalle que tienes que instalar squid, preferentemente squid3, que ya viene activado delay pools, por ejemplo:

acl mired src "/etc/squid3/mired"
acl accesototal src "/etc/squid3/accesototal"
#No queremos limitar las descargas en nuestra red local.
acl magic_words1 url_regex -i 192.168
#Queremos limitar la descarga de este tipo de archivos
acl magic_words2 url_regex -i ftp .exe .mp3 .zip .rar .avi .mpeg .mpe .mpg .raw .wav .mov .3gp .mov .flv .mp2 .mp5 .aac .wma .ogg .mka .asf .iff .amv

#habilitandolo con esto:
http_access allow mired
http_access allow accesototal

donde acl mired es donde vas a poner todas las ips que quieres limitar y acl accesototal las que no quieras limitar, donde acl magic_word1 es para no limitar la navegacion, y acl magic_word2 es para limitar la descarga de ciertos archivos.

# TABLA DE EQUIVALENCIAS
#2048 B ==> 16 kb ==> 2KB
#4096 B ==> 32 kb ==> 4KB
#8192 B ==> 64 kb ==> 8KB
#16384 B ==> 128kb ==> 16KB
#32768 B ==> 256Kb ==> 32KB
#65536 B ==> 512Kb ==> 64KB
#131072 B ==> 1 Mb ==> 128KB
#196608 B ==> 1.5 Mb ==> 192KB
#262144 B ==> 2 Mb ==> 256KB

la tabla nos sirve para para que tengamos una idea de que valoe escribir dependiendo de cuanto vas a limitar, de talles de configuración -1/-1 este valor quiere decir sin limites, en esta parte esta delay_pools 3, esta parte nos dice que crearemos tres reglas, delay_class 1 2, esta que es la primera regla y va a ser de clase 2, delay_parameters 1 -1/-1 -1/-1, este nos dice que es el primer parametro de la primera regla en este caso es -1/-1 -1/-1, sin limites para la navegacion de la red y tu maquina y asi susesivamente con las demas reglas.

delay_pools 3
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow accesototal

delay_class 2 2
#-1/-1 significa que no hay límites.
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow magic_words1

delay_class 3 2
delay_parameters 3 50000/50000 50000/50000
delay_access 3 allow magic_words2

+1
0
-1