proyecto final control ancho banda

4

Click here to load reader

Upload: jose-arturo-sanchez-ramirez

Post on 26-Jul-2015

83 views

Category:

Documents


0 download

DESCRIPTION

Proyecto para control del ancho de banda

TRANSCRIPT

Page 1: Proyecto Final COntrol Ancho BAnda

Proyecto: Control de Ancho de Banda por puesto. 

La finalidad del proyecto es administrar el ancho de banda de la red local hacia el internet de 

acuerdo a 3 directivas: 

1‐ El puesto Directivo debe contar con acceso libre de ancho de banda sin restricciones de 

ningún tipo. 

2‐ Un usuario o grupo de usuarios debe tener un acceso limita al ancho de banda y si es 

necesario bloquear la navegación hacia algunas páginas Web 

3‐ Un tercer usuario o grupo debe tener un bloque total sobre el uso del ancho de banda. 

 

Para brindar este tipo de soluciones podemos encontrar varios tipos de soluciones de Hardware 

especializado hasta software libre. 

En nuestro caso se optara por explicar la implementación de una solución basada en software el 

cual debe cumplir con ciertos requisitos mínimos de Hardware, recordando que mientras mejor 

sean las características de nuestro hardware el rendimiento será mayor. 

Como caso de ejemplo se utilizara Madriva Linux 2011, partiendo del hecho que ya tenemos 

configurado como servidor principal este equipo y que todos los equipos de la red pasan por este 

servidor el cual les proporciona DHCP para brindar el servicio de internet, utilizaremos  

herramientas que vienen incluidas en el mismo sistema operativo Linux las cuales son: 

Prerequisitos: 

El equipo debe tener configurado el servicio DHCP para poder cumplir con los objetivos de este 

proyecto. 

La configuración del DHCP debe permitir una asignación relacionando la MAC de cada equipo con 

una dirección IP específica, para así evitar que usuarios maliciosos traten de asignar la o las IP´s 

con ciertos privilegios a equipos que tienen una mayor restricción en la navegación. 

Las herramientas que debemos configurar en Linux para controlar el ancho de banda son 

básicamente 2: 

El controlador de tráfico “tc” 

Un temporizador o también conocido como planificador de paquetes “htb” 

HTB es un shell script derivado de CBQ.init que permite una fácil configuración del control de 

tráfico basado en Linux. HTB por sus siglas en ingles (Hierachical Token Bucket) es una disciplina 

nueva que trata de hacer cola para hacer frente a las debilidades de la implementación actual de 

la CBT. 

Page 2: Proyecto Final COntrol Ancho BAnda

Para ve

coman

 

Para es

sitio: h

 

Para in

que se

 

Como 

de ban

 

 

Una ve

servicio

 

Luego 

corresp

 

A parti

contro

 

En nue

interna

 

La dist

La Gere

Resto d

Los usu

erificar si con

ndo: tc y htb c

ste caso espe

ttp://sourcef

niciar debemo

 establecerán

segundo paso

nda de 20 Mb

ez definidos e

os, usuarios o

se debe emp

ponda a una d

r de esto pod

l de ancho de

estro ejercicio

a (eth1), 

ribución de d

encia forma u

del personal e

uarios restrin

stamos con e

como se mues

ecífico debem

forge.net/pro

os conocer nu

n. 

o se deben es

ps, y establec

Ancho de

20Mbps 

5Mbps 

0Mbps 

estos  valores 

o subnets, con

ezar a definir

determinada 

demos genera

e banda. 

o tenemos un

irecciones ip 

una subnet co

es la subnet 1

gidos  perten

estas herrami

stra en la ima

mos instalar el

ojects/htbinit/

uestro ancho 

stablecer clas

cemos las sigu

e banda  Cla

tenemos def

n 20Mbps, ot

r que corresp

CLASE se deb

ar un Script d

 equipo que t

y puertos es 

on la siguient

192.168.2.0/2

necen a la sub

entas se ejec

agen siguiente

paquete de h

de banda tot

ses por ejemp

uientes clases

ase  De

Ge

Res

Pe

finidas 3 CLAS

tros con 15M

onderá a cad

ben aplicar FI

e texto plano

tiene dos plac

la siguiente:

e numeración

24 

bnet 192.168.

cuta desde un

e. 

htb el cual po

tal, para pode

plo tomando c

s: 

escripción  

erencia 

sto del perso

rsonal Restrin

SES. Esto sign

bps y los últim

a clase y para

ILTROS. 

o ejecutable, 

cas de red, un

n: 192.168.1.

.30.0/24 

na sesión de t

odemos desca

er determinar

como referen

onal 

ngido 

ifica que tend

mos con 0Mb

a que cada se

que impleme

na externa (e

0/24. 

terminar el 

argar desde e

r los controle

ncia un ancho

dremos algun

bps. 

ector o servici

ente nuestro 

eth0) y la otra

 

el 

nos 

io 

Page 3: Proyecto Final COntrol Ancho BAnda

El puerto usado por Squid, el proxy de internet es el 3128 

 

El Script tendría el siguiente contenido: 

=====================Comienzo===================== ====================== 

#!/bin/bash 

# Se define la placa de red interna, a administrar. 

DEV=eth1 

# Se define el camino al comando "tc", para el caso de que no este en el PATH 

TC=tc ; este es el caso en el que esta en el PATH 

# Se definen todos los límites de ancho de banda a utilizar en Kbps. 

RATE1=20000 

RATE2=5000 

RATE3=0 

# Se eliminan definiciones anteriores de FILTROS y CLASES 

$TC qdisc del dev $DEV root 2>&1 >/dev/null 

# Se definen las CLASES existentes, ademas de la CLASE root y la CLASE master necesarias para el 

funcionamiento del script. 

# 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 

 

# Se definen los FILTROS. 

 

# FILTRO1 (Subnet GERENCIA a CLASE I) 

$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 192.168.1.0/24 flowid 1:10 

$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 192.168.1.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 

Page 4: Proyecto Final COntrol Ancho BAnda

 

# FILTRO4 (Subnet bloqueados a CLASE IV) 

 

$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst 192.168.30.0/24 flowid 1:40 

$TC filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip src 192.168.30.0/24 flowid 1:40 

 

=================================Fin============== =================== 

 

El script se guarda como un archivo de texto, con un nombre, por ejemplo control.sh y se le dan 

permisos de ejecución con la orden: 

sudo chmod a+x control.sh 

 

AL finalizar se ejecuta el scritp, y para verificar se trabaja usando direcciones ip de los diferentes 

rangos y probando las velocidades de descarga. 

 

Es importante destacar que cada distribución de Linux puede presentar diferentes dificultades al 

implementar cada paquete. 

La configuración básicamente es la misma para todas las distribuciones.