Вы находитесь на странице: 1из 4

Herramientas para el control de ancho de banda en servidores Linux

1. Introduccin
2. Herramientas
3. Principios de Funcionamiento
4. Eemplo
!. "onclusin
#. $iblio%ra&'a
1( Introduccin
Si bien los enlaces y conexiones a internet son hoy en da muy veloces, es normal que nos
encontremos con enlaces multipropsito, es decir, con conexiones que nos sirven de soporte para varios
tipos de servicio, como por ejemplo, interet, correo corporativo, video conferencia, canales de voz, consulta a
servidores internos, etc...
Aunque nuestras redes estn confiuradas para trabajar a !""#bps o !"#bps, no siempre $por no decir
nunca% es posible alcanzar estas velocidades de transmisin, debido a la ran cantidad de colisiones que
presenta ethernet, sin duda la topoloa m&s usada en la actualidad. 'ebido a esto es conveniente tener bien
definido que servicios son los fundamentales y cuanto ancho de banda requieren.
(o slo es importante definir las prioriedades en cuanto a los servicios, tambin es muy importante
definir las prioridades que tienen las diferente subnets de nuestra empresa, por ejemplo, no podemos asinarle
el mismo ancho de banda a areas como desarrollo o erencia y a areas como atencin al cliente o archivo. (o
podemos permitir que el erente de nuestra empresa participe de una videoconferencia )entrecortada* porque
aluien aburrido en el archivo baja los +ltimos mp, desde internet. -ensemos que sta persona en el archivo,
lueo de bajar los mp,, tiene la brillante idea de de envi&rselos a sus amios dentro de la empresa por correo
corporativo, la ente de desarrollo no podra acceder a sus bases de datos debido al exesivo uso de ancho de
banda ocupado por los mails llenos de mp,. .odo esto hace a una buena administracin de recursos.
/reo conveniente advertir, antes de que sea tarde, que para poder implementar este tipo de control,
debemos tener un cierto conocimiento acerca de direccionamiento 0-, subnets, y puertos. 1 sea para poder
limitar el uso de 0nternet, debemos saber que puerto usa nuestro servidor proxy, para limitar o liberar el uso de
video conferencias, debemos saber que puertos se utilizan para establecer el enlace, o la ip de la m&quina en la
que se realiza dicha video conferencia.
2( Herramientas
-ara lorar nuestro objetivo no vamos a utilizar nin+n soft2are especial ni costoso, slo utilizaremos
herramientas que vienen en las +ltimas distribuciones de linux $a partir de la versin 3.4.3" de 5ernel%, stas
herramientas son, un controlador de tr&fico $tc% y una especie de temporizador $htb%.
'ebido a que stas herramientas son relativamente nuevas, hay que prestar mucha atencin a la
sintaxis y a los valores que se asinan, ya que un valor errneo sinificara dejar sin conexin a un determinado
sector o dejarlo totalmente libre con ancho de banda ilimitado.
6ste tipo de herramientas, al formar parte del propio sistema operativo tiene un elevado nivel de
eficiencia y precisin. Adem&s de ser muy eficiente, es muy sencillo anular su efecto ya que con una simple
lnea, se anulan los efectos producidos.
3( Principios de Funcionamiento
Antes de hablar sobre sintaxis o de explicarles al+n ejemplo, creo conveniente explicar los terminos y
los elementos que hacen a que la oranizacin del )limitador* sea sencilla y eficiente.
6s muy importante tener en claro antes de empezar a limitar alo, saber los limites propios de lo que
queremos limitar, no tendra sentido ajustar el limitador de velocidad de un automvil en 3""7m8h cuando su
velocidad final es de !4"7m8h.... 6n nuestro caso pasa exactamente lo mismo, si contamos con un enlace punto
a punto de 947bps, de nada servir& ajustar el limitador en !3:7bps o en 3;97bps, nuestra lnea seuir&
saturada siempre.
<echa la aclaracin anterior, ya podemos empezar a dar definiciones sobre cuanto ancho de banda
habilitaremos para determinados servicios, usuarios o subnets.
6stablecemos primero el ancho de banda m&ximo disponible en nuestras lneas de transmisin, este
valor puede ser, por ejemplo, de !"#bps $/lase !%. =ueo definimos todos los lmites previstos o /=AS6S. -or
ejemplo hemos definidos de que los diferentes lmites ser&n $sin importar a+n a que corresponde cada lmite%,
;!37bps $/lase 3%, 3;97bps $/lase ,% y 347bps $/lase 4%. /on estos valores tenemos definidas 4 /=AS6S.
6sto sinifica que tendremos alunos servicios, usuarios o subnets, con !#bps, otros con ;!37bps, otros con
3;97bps y los +ltimos con 347bps.
=ueo de definidas las /=AS6S, debemos empezar a definir que corresponder& a cada clase, por
ejemplo, erencia tendr& el m&ximo ancho de banda posible $/lase !%, el correo corporativo ser& de /lase ,,
0nternet /lase 4, 'esarrollo /lase 3, >ideoconferencia /lase !, y el resto de usuarios estar&n limitados a la
/lase 4.
-ara que cada sector o servicio corresponda a una determinada /=AS6 debemos aplicar ?0=.@1S.
<ay muchas formas de hacer esto, por ejemplo se puede hacer trabajando en conjunto con las entradas de las
0-.AA=6S, pero esto ya hace todo un poco mas complejo. #i recomendacin es trabajar slo con los
comandos mencionados anteriormente ya que nos brindan las mismas potencialidades con una facilidad de
implementacin muy superior.
=ueo que tenemos las /=AS6S y los ?0=.@1S, slo nos queda escribir el Script que implemente el
)limitador*.
/reo conveniente explicar la implementacin con un ejemplo de Script que limita diferentes cosas, por
ejemplo, un rupo de usuarios, una subnet y un servicio, dejando as en claro como se implementa cada cosa,
para que lueo ustedes puedan implementarlo a su medida.
4( Eemplo
'escribir brevemente los recursos con los que contamos y como he decidido distribuirlos.
6l limitador se aplicar&, en un servidor =inux por donde pasa todo el tr&fico de 0nternet, videoconferencia
y correo corporativo. 6ste servidor tiene dos placas de red, una externa $eth"% y la otra interna $eth!%. (uestro
proveedor de 0nternet conectado a eth" nos brinda un ancho de banda de !#bps. (uestra red interna est&
confiurada para funcionar a !"#bps m&xima. Adem&s tenemos contratado un enlace punto a punto con una
sucursal de 947bps por el cual viaja tanto, internet, correo corporativo y canales de voz.
(uestra distribucin de direcciones ip y puertos es la siuienteB
a%=a Cerencia forma una subnet con la siuiente numeracinB !D3.!9.3!."834.
b%(uestra sucursal es la subnet !D3.!9.,!."834
c% 6l resto de los usuarios pertenecen a la subnet !D3.!9.!."834
d%6l puerto usado por nuestro proxy de internet es el ,!3:
>amos a definir 4 clases de ancho de bandaB
0% !"#bps
00% 3;9 7bps
000% !3: 7bps
0>% 347bps
Ahora definimos que rupo pertenece a cada clase. Cerencia pertenecer& a la /lase 0, 0nternet
pertenecer& a la /lase 00, el resto de los usuarios ocupar& la /lase 000 y la sucursal ser& parte de la /lase 0>. 6n
el caso de la sucursal, por ejemplo, los servicios de internet y correo corporativo estar&n limitados a 347bps,
dejando el resto para canales de voz y otros servicios que no pasen por el servidor donde instalaremos el
limitador.
6l Script tendra el siuiente contenidoB
EF8bin8bash
E'efinimos la placa de red interna, ya que es la que nos interesa administrar.
'6>Geth!
E'efinimos el camino al comando )tc*, en caso de que no este en el -A.<
./Gtc H este es el caso en el que esta en el -A.<
E'efinimos todos los limites de ancho de banda a utilizar en 7bps.
@A.6!G!"""
@A.63G3;9
@A.6,G!3:
@A.64G34
E 6sta linea elimina toda posible definicon anterior de ?0=.@1S y /=AS6S
I./ qdisc del dev I'6> root 3JK! J8dev8null
E'efinimos las /=AS6S existentes, ademas de la /=AS6 root y la /=AS6 master que son necesarias para el
funcionamiento del script, pero que no debemos modificar.
E/=AS6 root y master
I./ qdisc add dev I'6> root handle !B htb default 9"
I./ class add dev I'6> parent !B classid !B! htb rate IL@A.6!M5bit
E/=AS6S y orden prioridad
E/lAS6 0
I./ class add dev I'6> parent !B! classid !B!" htb rate IL@A.6M5bit ceil IL@A.6M5bit prio !
I./ qdisc add dev I'6> parent !B!" handle !"B sfq perturb !"
E/lAS6 00
I./ class add dev I'6> parent !B! classid !B3" htb rate IL@A.63M5bit ceil IL@A.63M5bit prio 3
I./ qdisc add dev I'6> parent !B3" handle 3"B sfq perturb !"
E/lAS6 000
I./ class add dev I'6> parent !B! classid !B," htb rate IL@A.6,M5bit ceil IL@A.6,M5bit prio ,
I./ qdisc add dev I'6> parent !B," handle ,"B sfq perturb !"
E/lAS6 0>
I./ class add dev I'6> parent !B! classid !B4" htb rate IL@A.64M5bit ceil IL@A.64M5bit prio !
I./ qdisc add dev I'6> parent !B4" handle 4"B sfq perturb !"
ENa est&n las 4 /=AS6S definidas, ahora hay que definir los ?0=.@1S.
E ?0=.@1! $Subnet C6@6(/0A a /=AS6 0%
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip dst !D3.!9.3!."834 flo2id !B!"
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip src !D3.!9.3!."834 flo2id !B!"
E ?0=.@13 $0(.6@(6. a /=AS6 00%
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip dport ,!3: flo2id !B3"
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip sport ,!3: flo2id !B3"
E ?0=.@1, $Subnet @6S.1 OSOA@01S a /=AS6 000%
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip dst !D3.!9.!."834 flo2id !B,"
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip src !D3.!9.!."834 flo2id !B,"
E ?0=.@14 $Subnet SO/O@SA= a /=AS6 0>%
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip dst !D3.!9.,!."834 flo2id !B4"
I./ filter add dev I'6> parent !B protocol ip prio ! u,3 match ip src !D3.!9.,!."834 flo2id !B4"
ENa esta listo para correr, si queremos podemos mostrar las clases y limites establecido $no muestra a quien
pertenece cada subnet o servicio%.
I./ qdisc sho2 dev I'6>
I./ class sho2 dev I'6>
E?in del Script
!( "onclusin
/on este sencillo Script, hemos lorado desarrollar una muy potente herramienta que nos permite
administrar muy eficientemente los recursos con los que disponemos. 'em&s est& decir que recomiendo
firmemente leer los manuales de los comandos utilizados, ya que esto dara una solidez de conocimiento muy
superior, y una posibilidad de ajustar m&s aun el Script a la medida de sus necesidades.
#( $iblio%ra&'a
SuperShaper Script, de Smidsrod /onsultin
httpB88222.smidsrod.no8
Apuntes sobre control de .afico en httpB88222.opalsoft.net8
7ernihan8-i5e $!P:D%, 7ernihan K -i5e, -rentice <all
)ie%o *antoni
produccionQtodosafull.com.ar

Вам также может понравиться