[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Limitar ou balancear link



Lucas Paz wrote:

> Galera, bom dia,
>
> tenho um servidor de e-mail e web que está atraz de um firewall,
> acontece que como a maioria do pessoal tem ADSL 2 pessoas conectadas
> consomem toda a banda do link que é de 512kbps
> vc's conhecem alguma maneira de limitar esse acesso, ou seja, deixar a
> pessoa fazer download no maximo a 20KBps ou algo assim?

Se o script anexo for útil, pode ajustar e usar à vontade.

-- 
André Carezia
Eng. de Telecomunicações
Carezia Consultoria - www.carezia.srv.br
#!/bin/sh
#
# André Carezia <andre@carezia.srv.br>

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

IPTABLES="/sbin/iptables"
TC="/sbin/tc"

IFACE=eth0
RATE=512kbit
P_SMTP=25
P_HTTP=80
B_SMTP=64kbit
B_HTTP=64kbit

start_tc() {
 $TC qdisc add dev $IFACE root handle 1: htb default 5
 $TC class add dev $IFACE parent 1: classid 1:1 htb \
     rate $RATE ceil $RATE prio 1
 $TC class add dev $IFACE parent 1: classid 1:5 htb \
     rate 64kbit ceil 64kbit prio 2

 $IPTABLES -t mangle -A POSTROUTING -o $IFACE -p tcp \
     --source-port $P_SMTP -j MARK --set-mark $P_SMTP

 $TC class add dev $IFACE parent 1:1 classid 1:$P_SMTP htb \
     rate $B_SMTP ceil $B_SMTP prio 1
 $TC filter add dev $IFACE parent 1: protocol ip prio 1 \
     handle $P_SMTP fw flowid 1:$P_SMTP

 $IPTABLES -t mangle -A POSTROUTING -o $IFACE -p tcp \
     --source-port $P_HTTP -j MARK --set-mark $P_HTTP

 $TC class add dev $IFACE parent 1:1 classid 1:$P_HTTP htb \
     rate $B_HTTP ceil $B_HTTP prio 1
 $TC filter add dev $IFACE parent 1: protocol ip prio 1 \
     handle $P_HTTP fw flowid 1:$P_HTTP
}

stop_tc() {
 $TC qdisc del dev $IFACE root
 $IPTABLES -t mangle -F
}

case "$1" in
  start)
	echo -n "Iniciando controle de banda..."
	start_tc
        echo " ok"
	;;
  stop)
	echo -n "Desligando controle de banda..."
	stop_tc
        echo " ok"
	;;

  *)
	echo "Usage: $0 {start|stop}"
	exit 1
esac


Reply to: