Faz dias que estou tentando criar essa solução, só que não sei mais o que fazer, eu juntei alguns artigos que li, e implementei tudo em um arquivo, só que ele está dando alguns erros no meu Conectiva 10, e não faço a minima idéia do que possa ser..
Se alguém puder dar uma força eu agradeço...
Esse é o script:
Código :#/bin/bash # Variáveis IPT=/usr/sbin/iptables TC=/sbin/tc USERLIST=`cat /etc/user.list` # Ativa Roteamento echo 1 > /proc/sys/net/ipv4/ip_forward # Firewall case $1 in start) $TC qdisc del dev eth0 root $TC qdisc del dev eth1 root $TC qdisc add dev eth0 root handle 1: htb default 10 $TC qdisc add dev eth1 root handle 1: htb default 10 $TC class add dev eth0 parent 1: classid 1:1 htb rate 1024kbit ceil 10240kbit $TC class add dev eth1 parent 1: classid 1:1 htb rate 1024kbit ceil 10240kbit $TC class add dev eth0 parent 1:1 classid 1:10 htb rate 10240kbit ceil 10240kbit prio 4 $TC qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 5 $TC filter add dev eth0 parent 1:0 protocol ip prio 4 handle 10 fw classid 1:10 $TC class add dev eth1 parent 1:1 classid 1:10 htb rate 10240kbit ceil 10240kbit prio 4 $TC qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 5 $TC filter add dev eth1 parent 1:0 protocol ip prio 4 handle 10 fw classid 1:10 echo "1 - > Erro ?" ID=11 $IPT -F $IPT -t nat -F $IPT -t filter -P FORWARD DROP for USER in $USERLIST; do ADDRESS=`echo $USER | cut -d ';' -f 1` MACADDRESS=`echo $USER | cut -d ';' -f 2` UPDLOAD=`echo $USER | cut -d ';' -f 3` DOWNLOAD=`echo $USER | cut -d ';' -f 4` NOME=`echo $USER | cut -d ';' -f 5` # Libera conexão $IPT -t filter -A FORWARD -d 0/0 -s $ADDRESS -m mac --mac-source $MACADDRESS -j ACCEPT $IPT -t filter -A FORWARD -d $ADDRESS -s 0/0 -j ACCEPT $IPT -t nat -A POSTROUTING -s $ADDRESS -o eth0 -j MASQUERADE $IPT -t filter -A INPUT -s $ADDRESS -d 0/0 -m mac --mac-source $MACADDRESS -j ACCEPT $IPT -t filter -A OUTPUT -s $ADDRESS -d 0/0 -j ACCEPT # Upload $TC class add dev eth0 parent 1:1 classid 1:$ID htb rate $UPLOAD ceil $UPLOAD prio 4 $TC qdisc add dev eth0 parent 1:$ID handle $ID: sfq perturb 5 $TC filter add dev eth0 parent 1:0 protocol ip prio 4 handle $ID fw classid 1:$ID $IPT -t mangle -A FORWARD -s $ADDRESS -j MARK --set-mark $ID # Download $TC class add dev eth1 parent 1:1 classid 1:$ID htb rate $DOWNLOAD ceil $DOWNLOAD prio 4 $TC qdisc add dev eth1 parent 1:$ID handle $ID: sfq perturb 5 $TC filter add dev eth1 parent 1:0 protocol ip prio 4 handle $ID fw classid 1:$ID $IPT -t mangle -A POSTROUTING -d $ADDRESS -j MARK --set-mark $ID echo "$ADDRESS -> $NOME : OK" let "ID=$ID+1" done echo "Iniciado !" ;; stop) $IPT -F $IPT -Z $IPT -t nat -F $IPT -t filter -P FORWARD ACCEPT echo "Parado !" ;; restart) /sbin/extreme stop /sbin/extreme start ;; esac
Ele me retorna esses erros:
Código :RTNETLINK answers: No such file or directory RTNETLINK answers: No such file or directory 1 -> Erro? Illegal "rate" Usage: ... qdisc add ... htb [default N] [r2q N] default minor id of class to which unclassified packets are sent {0} r2q DRR quantums are computed as rate in Bps/r2q {10} debug string of 16 numbers each 0-3 {0} ... class add ... htb rate R1 burst B1 [prio P] [slot S] [pslot PS] [ceil R2] [cburst B2] [mtu MTU] [quantum Q] rate rate allocated to this class (class can still borrow) burst max bytes burst which can be accumulated during idle period {computed} ceil definite upper class rate (no borrows) {rate} cburst burst but for ceil {computed} mtu max packet size we create rate map for {1600} prio priority of leaf; lower are served first {0} quantum how much bytes to serve from leaf at once {use r2q} TC HTB version 3.3 RTNETLINK answers: Invalid argument 192.168.0.1 -> usuario : OK Iniciado !