Script de QoS onde estou errando usando TC [RESOLVIDO]

1. Script de QoS onde estou errando usando TC [RESOLVIDO]

Lucas Peregrino
lucas peregrino

(usa Debian)

Enviado em 25/10/2010 - 22:16h

#!/bin/bash
# Controle banda utilizando tc

# Mac das Placas que terao controle de banda
macs=`cat /etc/init.d/mac-l | egrep -v "^[#;]" `;

# A placa de rede que tera o controle de banda
rede="eth0"

# Velocidade para os clientes
velocidade=450kbit

# LIMPANDO TUDO
tc qdisc del dev $rede root

tc qdisc add dev $rede root handle 1:0 htb default 1000

count=1

# Link de Dados por Mac
for MAC in $macs
do
tc class add dev $rede parent 1:0 classid 1:$count htb rate $velocidade
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip dst $MAC flowid 1:$count
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip src $MAC flowid 1:$count
count=`expr $count + 1`
done

quando executo ele so aparece isso.

coloquei permissão para executar os arquivos.

Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"
Illegal "match"



  


2. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 25/10/2010 - 23:32h

Faça um debug no seu script:

# bash -x script.sh


3. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Lucas Peregrino
lucas peregrino

(usa Debian)

Enviado em 26/10/2010 - 08:13h

desculpe pedir Renato mais eu sou leigo nesse ponto pois larguei o Windows tem pouco tempo e passei pro Linux tudo que estou aprendendo esta sendo bem na marra poderia pedir que mestre como ficaria pois não to conseguindo.


4. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/10/2010 - 09:06h

Execute aquele comando q t falei (sem a cerquilha, claro!) e coloque a saída do comando aki no site pra gente v aonde q tá errado.


5. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Lucas Peregrino
lucas peregrino

(usa Debian)

Enviado em 26/10/2010 - 09:13h

fiz a seguinte alteração no script
Original esse funciona
#!/bin/bash
# Controle banda utilizando tc

# Os ip's que entraram no controle de banda
ips='192.168.3.61 192.168.3.62 192.168.3.63 192.168.3.64 192.168.3.65 192.168.3.66 192.168.3.67 192.168.3.68 192.168.3.69'
#ips='/etc/init.d/ips'

# A placa de rede que tera o controle de banda
rede="eth0"

# Velocidade para os clientes
velocidade=450kbit

# LIMPANDO TUDO
tc qdisc del dev $rede root

tc qdisc add dev $rede root handle 1:0 htb default 1000

count=1

# Link de Dados de IP
for IPS in $ips
do
tc class add dev $rede parent 1:0 classid 1:$count htb rate $velocidade
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip dst $IPS flowid 1:$count
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip src $IPS flowid 1:$count
count=`expr $count + 1`
done

Alterado para mac

#!/bin/bash
# Controle banda utilizando tc

# Mac das Placas que terao controle de banda
#macs='/etc/init.d/mac-l'

# A placa de rede que tera o controle de banda
rede="eth0"

# Velocidade para os clientes
velocidade=450kbit

# LIMPANDO TUDO
tc qdisc del dev $rede root

tc qdisc add dev $rede root handle 1:0 htb default 1000

count=1

# Link de Dados por Mac
#for MAC in $macs
# do
# tc class add dev $rede parent 1:0 classid 1:$count htb rate $velocidade
# tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip dst $MAC flowid 1:$count
# tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip src $MAC flowid 1:$count
# count=`expr $count + 1`
# done

ao executar ele da esse erro 2 vezes so

Illegal "match"
Illegal "match"

Motivo pelo qual estou tentado fazer esse tipo de bloqueio pois eu divido a Internet com vizinho ele intende de informática fica alterando os ip para fugir do controle já se eu conseguir colocar pelo mac não importa qual ip ele coloque vai esta restrito aquela quantidade de banda


6. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 26/10/2010 - 09:27h

Tem uma forma d impedir q só alguns endereços MAC possam acessar sua rede d uma forma mais fácil, q é colocando tabelas ARP estáticas. Crie um arquivo chamado /etc/ethers e coloque as linhas dessa forma:

00:11:22:33:44:55 192.168.1.6
01:1b:2a:33:43:52 192.168.1.7
...

Depois vc acrescenta essa linha no seu /etc/rc.local:

arp -f /etc/ethers

Dae toda vez q o server reiniciar, o arp vai ler essa tabela estática e só vão conectar as máquinas q estiverem nessa tabela.


7. Re: Script de QoS onde estou errando usando TC [RESOLVIDO]

Lucas Peregrino
lucas peregrino

(usa Debian)

Enviado em 26/10/2010 - 09:51h

Obrigado Renato com a diga que me deu consegui termina o meu script de proteção da minha vou posta aqui caso um dia alguém precise espero que ajude alguém como me ajudou.

#!/bin/bash
# Controle banda utilizando tc

# Mac apontando para ip especifico da rede.
arp -f /etc/init.d/mac-l

# Os ip's que entraram no controle de banda
ips='192.168.3.61 192.168.3.62 192.168.3.63 192.168.3.64 192.168.3.65 192.168.3.66 192.168.3.67 192.168.3.68 192.168.3.69'

# A placa de rede que tera o controle de banda
rede="eth0"

# Velocidade para os clientes
velocidade=450kbit

# LIMPANDO TUDO
tc qdisc del dev $rede root

tc qdisc add dev $rede root handle 1:0 htb default 1000

count=1

# Link de Dados de IP
for IPS in $ips
do
tc class add dev $rede parent 1:0 classid 1:$count htb rate $velocidade
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip dst $IPS flowid 1:$count
tc filter add dev $rede protocol ip parent 1:0 prio 1 u32 match ip src $IPS flowid 1:$count
count=`expr $count + 1`
done



## Bloqueio de Mac

QoS (){

# Arquivo que contem os mac bloqueados
mac.b=`cat /etc/init.d/mac-b | egrep -v "^[#;]" `;

for macs in $mac.b ; do
# Use a linha abaixo caso não haja nenhum serviço além de tráfego no servidor.
iptables -t filter -A INPUT -m mac --mac-source $macs -j DROP
iptables -t filter -A FORWARD -m mac --mac-source $macs -j DROP
done
}

Após a criação do arquivos de permissão 755 para que ele possa executar depois coloquei o arquivo no rc.local

no meu caso coloquei

cd /etc/init.d/
./QoS
Fim






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts