Editar um controle de banda ativo

1. Editar um controle de banda ativo

Ricardo
rikardo

(usa Debian)

Enviado em 02/03/2010 - 21:57h

olá a todos, estou tentando montar um controle de banda de forma dinâmica aqui para poder usar em conjunto com o nocat.
Pensei em algo assim:
Como estou com um servidor DHCP ativo, quando os clientes fazem login, o nocat passa o IP do cliente e o nome de usuario para um script, assim o script olha a velocidade do cliente em um arquivo e faz o controle em cima do IP indicado.
De início fiz este script assim:

##########SCRIPT##########

#!/bin/bash
# A placa de rede que tera o controle de banda
p_rede="eth0"

USUARIO=$1
IP=$2

echo $IP > /tmp/IP
ID=`cat /tmp/IP | grep $IP | cut -d . -f4`

BANDA=`cat velocidade | grep $USUARIO | cut -d : -f2`
echo "usuario = $USUARIO"
echo "ip = $IP"
echo "id = $ID"
echo "banda = $BANDA"

#APAGA CONTROLE EXISTENTE NO IP INDICADO
tc filter del dev $p_rede pref 1 proto ip parent 1:0 u32 match ip src $IP flowid 1:$ID
tc class del dev $p_rede classid 1:$ID

#CRIA O NOVO CONTROLE
if [[ $BANDA == 0 ]]; then
exit
else
tc class add dev $p_rede parent 1:0 classid 1:$ID htb rate "$BANDA"kbit
tc filter add dev $p_rede protocol ip parent 1:0 prio 1 u32 match ip dst $IP flowid 1:$ID
tc filter add dev $p_rede protocol ip parent 1:0 prio 1 u32 match ip src $IP flowid 1:$ID
fi
##########SCRIPT##########

O problema é que o script está apagando todos os "filter" existentes.
Alguem sabe uma solução para eu apagar somente o filter certo ou para eu editar a banda existente em uma class?

Grato.


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts