Caros, após ler alguns tutoriais sobre o tema fiz o script abaixo que serve para regular as prioridades no meu link. A minha idéia foi priorizar o tráfego SIP (VoIP) para o servidor de onde compro os minutos e revendo para os meus clientes, para que as ligações não fiquem com delay.
Abaixo colei o script e gostaria de saber se está correto (espero também ajudar a quem precisa dessas informações).
Meu link: 2 megas
Eth0 interface externa
Eth1 rede interna
#!/bin/sh
#TOS (digo que todos os pacotes marcados com 10 devem ter espera mínima)
iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 10
#CONNMARK (patch-o-matic)
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT
#MARCA P2P (marco com 13 p2p usando layer7)
iptables -A PREROUTING -t mangle -m layer7 --l7proto fasttrack -j MARK --set-mark 13
iptables -A PREROUTING -t mangle -m layer7 --l7proto ares -j MARK --set-mark 13
tem mais, mas a lista é meio longa
##OUTROS SIPS e skype-out
iptables -A PREROUTING -t mangle -d ! 65.70.177.88 -m layer7 --l7proto sip -j MARK --set-mark 12 (todos os SIPs que não o meu marco com 12)
iptables -A PREROUTING -t mangle -m layer7 --l7proto skypeout -j MARK --set-mark 12 (skype para fone fixo tb com 12)
##MEU SIP (marco com 12 todos os pacotes vindos e destinados ao servidor SIP de onde compro minutos)
iptables -A PREROUTING -t mangle -p tcp -d 65.70.177.88 -j MARK --set-mark 10
iptables -A PREROUTING -t mangle -p udp -d 65.70.177.88 -j MARK --set-mark 10
iptables -A PREROUTING -t mangle -p tcp -s 65.70.177.88 -j MARK --set-mark 10
iptables -A PREROUTING -t mangle -p udp -s 65.70.177.88 -j MARK --set-mark 10
#syn flags (marco com 10 tambem os pacotes syn flags)
iptables -t mangle -I PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 10
#HTTP (marco com 11 o que for HTTP)
iptables -A PREROUTING -t mangle -m layer7 --l7proto http -j MARK --set-mark 11
#CONNMARK
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
AI COMECO O HTB:
## CONTROLE DE UPLOAD ETH0
#Criando o ROOT
tc qdisc add dev eth0 root handle 1: htb default 15
tc class add dev eth0 parent 1: classid 1:1 htb rate 2048kbit ceil 2048kbit
#MEU SIP e syn flags (prioridade maxima para o meu SIP e syn flags)
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 256kbit ceil 512kbit prio 0
tc filter add dev eth0 parent 1:0 protocol ip prio 0 handle 10 fw classid 1:10
tc qdisc add dev eth0 parent 1:10 handle 100: sfq perturb 10
##OUTROS SIPS e skype-out (pequena prioridade para outros SIPs e skypeout)
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 64kbit ceil 64kbit prio 5
tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 12 fw classid 1:12
tc qdisc add dev eth0 parent 1:12 handle 120: sfq perturb 10
#P2P (menor prioridade de todas e pouquissima banda)
tc class add dev eth0 parent 1:1 classid 1:13 htb rate 128kbit ceil 128kbit prio 6
tc filter add dev eth0 parent 1:1 protocol ip prio 6 handle 13 fw classid 1:13
tc qdisc add dev eth0 parent 1:13 handle 130: sfq perturb 10
#resto (o que nao for das demais regras é para cair aqui)
tc class add dev eth0 parent 1:1 classid 1:15 htb rate 1600kbit ceil 2048kbit prio 1
tc qdisc add dev eth0 parent 1:15 handle 150: sfq perturb 10
##CONTROLE DE DOWNLOAD ETH1
#Criando o ROOT
tc qdisc add dev eth1 root handle 1: htb default 25
tc class add dev eth1 parent 1: classid 1:1 htb rate 2048kbit ceil 2048kbit
#MEU SIP e syn flags (maior prioridade)
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 256kbit ceil 512kbit prio 0
tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 10 fw classid 1:20
tc qdisc add dev eth1 parent 1:20 handle 200: sfq perturb 10
#HTTP E HTTPS (segunda maior prioridade)
tc class add dev eth1 parent 1:1 classid 1:21 htb rate 1024kbit ceil 2048kbit prio 1
tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 11 fw classid 1:21
tc qdisc add dev eth1 parent 1:21 handle 210: sfq perturb 10
#resto (o que nao for das demais regras cai aqui)
tc class add dev eth1 parent 1:1 classid 1:25 htb rate 512kbit ceil 2048kbit prio 2
tc qdisc add dev eth1 parent 1:25 handle 250: sfq perturb 10
#P2P (maximo 512 e com baixa prioridade)
tc class add dev eth1 parent 1:1 classid 1:23 htb rate 256kbit ceil 512kbit prio 6
tc filter add dev eth1 parent 1:1 protocol ip prio 6 handle 13 fw classid 1:23
Uma coisa: vi em alguns tutoriais que depois de cada regra de marca colocam um j RETURN assim:
iptables -A PREROUTING -t mangle -m layer7 --l7proto http -j MARK --set-mark 11
iptables -A PREROUTING -t mangle -m layer7 --l7proto http j RETURN
E ai, tá certo?
Obrigado!
Fabrício