-
está assim meu HTB:
placa de rede externa:
#!/bin/bash
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1:0 htb default 50
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1024kbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
tc class add dev eth0 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
tc class add dev eth0 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
tc qdisc add dev eth0 parent 1:10 handle 10: pfifo limit 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev eth0 parent 1:50 handle 50: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5060 0xffff flowid 1:10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 5061 0xffff flowid 1:10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 10000 0xffff flowid 1:10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dport 20000 0xffff flowid 1:10
tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip dport 53 0xffff flowid 1:20
tc filter add dev eth0 parent 1:0 protocol ip prio 3 u32 match ip dport 3389 0xffff flowid 1:30
tc filter add dev eth0 parent 1:0 protocol ip prio 4 u32 match ip dport 80 0xffff flowid 1:40
placa de rede interna:
#!/bin/bash
tc qdisc del dev eth1 root
tc qdisc add dev eth1 root handle 1:0 htb default 50
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1024kbit
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 512kbit prio 1 # voip
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 100kbit ceil 200kbit prio 2 # DNS / ACK / SYN / FIN
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 250kbit ceil 512kbit prio 3 # Terminal service
tc class add dev eth1 parent 1:1 classid 1:40 htb rate 128kbit ceil 300kbit prio 4 # HTTP
tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 400kbit prio 5 # Geral
tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20
tc filter add dev eth1 parent 1:0 protocol ip prio 3 u32 match ip sport 3389 0xffff flowid 1:30
tc filter add dev eth1 parent 1:0 protocol ip prio 4 u32 match ip sport 80 0xffff flowid 1:40
que linhas acrescento em cada placa para ativar o cache full como te passei acima?
-
Na eth1 fazer o seguinte:
remover:
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1024kbit
adicionar:
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 100mbit
Criar regras para o squid:
tc class add dev eth1 parent 1:1 classid 1:60 htb rate 100mbit prio 1
tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip dst-address 10.0.1.254 flowid 1:60
obs: quem determina o filtro eh dst-address
-
muito obg vou testar segunda dia 12 pois entrei de férias mas para adiantar tenho como acessar remoto para fazer testes...tirando o rate 1024kbit que é o total do meu link como vou dividir o link em dois de 512k como te passei nas regras???
e a placa eth0 não precisa fazer nada?
-
Vamos pelo inicio, esta regra:
tc qdisc add dev eth1 root handle 1:0 htb default 50
diz que o que nao tiver classificacao vai ser limitado em 128 kbit e podera chegar a 400kbit se tiver banda livre.
A banda do asterisk vai estar garantida por estas regras:
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5060 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 5061 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 10000 0xffff flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 match ip sport 20000 0xffff flowid 1:10
A questao eh que este tipo de controle de banda eh feito para limitar o upload, soh que ai tem uma questao: como fazer com que os dados da rede interna trafeguem com velocidade plena ?????
neste caso a solucao eh criar uma regra somente para a rede interna, no caso a que contem match ip dst-address.
Na eth0 nao precisa fazer porque nao diz respeito a rede interna, e sim ao trafego direcionado para rede interna. No caso do squid quando esta servindo os clientes o trafego eh da rede interna.
-
quando o meu amigo me passou essas regras ele me disse que para controle do upload era so habilitar as regras na placa eth0.
então a solução seria tirar a regra e adicionar a que vc passou e o controle de banda do asterisk iria cntinuar funcionando? desculpe perguntar muito sobre o HTB é porque não entendo muito dele...
-
Realmente, vendo meu script, quem controla o upload realmente eh a eth0. Mas no caso da regra que passei serve somente para o trafego da rede interna e controle de banda do asterisk tambem.