Ayuda con ancho de banda...
Pedro Silva
pedro.se en gmail.com
Mie Jun 27 11:12:30 CLT 2012
Hola Lista,
Les quería solicitar una ayuda con un tema que tengo, resulta que tengo un
enlace por FO de 10M Nacionales/4Mb Internacionales y por el mismo enlace
usamos un sistema de telefonía IP.
El problema que tengo es que los usuario en la red utilizan todo el ancho
de banda. La idea es poder limitar ese ancho de banda y poder darle mas
prioridad al ancho de banda que se use para la telefonía IP que se
establece a una dirección IP en particular.
Me pueden ayudar con esto, inicialmente lo que deseo hacer es lo siguiente:
Limitar la velocidad de subida y bajada para la Red LAN a un par de megas y
darle mayor prioridad al trafico que va a la dirección IP de la telefonía
IP.
Tengo 2 interfaces de red, eth0 para la LAN y eth1 al ISP
Uso un script que me sirve hasta cierto punto porque limita la velocidad de
la red lan tanto de subida como de bajada, pero no me da la solución para
asignar mas ancho de banda a la IP de la LAN... me pueden ayudar a
modificarlo y que me sirva para lo que necesito, si creen que debo ver el
tema de aumentar la velocidad, no duden en decirme y si ando ultra perdido
también.
#!/bin/bash
# The Ultimate Setup For Your Internet Connection At Home
#
#
# Set the following values to somewhat less than your actual download
# and uplink speed. In kilobits
DOWNLINK=2500
IP=4000
FASTER=3000
UPLINK=2000
DEV=eth0
TC=/sbin/tc
# clean existing down- and uplink qdiscs, hide errors
$TC qdisc del dev $DEV root 2> /dev/null > /dev/null
$TC qdisc del dev $DEV ingress 2> /dev/null > /dev/null
###### uplink
# install root CBQ
$TC qdisc add dev $DEV root handle 1: cbq avpkt 3000 bandwidth 10mbit
# shape everything at $UPLINK speed - this prevents huge queues in your
# DSL modem which destroy latency:
# main class
$TC class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit allot
1500 prio 5 bounded isolated
# high prio class 1:10:
$TC class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit allot
1600 prio 1 avpkt 1000
# bulk and default class 1:20 - gets slightly less traffic,
# and a lower priority:
$TC class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit
allot 1600 prio 2 avpkt 1000
# both get Stochastic Fairness:
$TC qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
$TC qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
# start filters
# TOS Minimum Delay (ssh, NOT scp) in 1:10:
$TC filter add dev $DEV parent 1:0 protocol ip prio 10 u32 match ip tos
0x10 0xff flowid 1:10
# ICMP (ip protocol 1) in the interactive class 1:10 so we
# can do measurements & impress our friends:
$TC filter add dev $DEV parent 1:0 protocol ip prio 11 u32 match ip
protocol 1 0xff flowid 1:10
# To speed up downloads while an upload is going on, put ACK packets in
# the interactive class:
$TC filter add dev $DEV parent 1: protocol ip prio 12 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u16 0x0000 0xffc0 at 2 \
match u8 0x10 0xff at 33 \
flowid 1:20
# rest is 'non-interactive' ie 'bulk' and ends up in 1:20
$TC filter add dev $DEV parent 1: protocol ip prio 13 u32 match ip dst
0.0.0.0/0 flowid 1:20
########## downlink #############
# slow downloads down to somewhat less than the real speed to prevent
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:
$TC qdisc add dev $DEV handle ffff: ingress
# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:
#Con la primer linea de abajo logro que la velocidad de subida no se limite.
$TC filter add dev $DEV parent ffff: protocol ip prio 10 u32 match ip src
200.20.20.0/24 police rate ${IP}kbit burst 3000k drop flowid :1
$TC filter add dev $DEV parent ffff: protocol ip prio 30 u32 match ip src
0.0.0.0/0 police rate ${DOWNLINK}kbit burst 500k drop flowid :1
Desde ya les agradezco su ayuda...
Saludos,
--
Pedro Silva
Más información sobre la lista de distribución Linux