<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2668" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>I copied and tried to adapt to my necessities the 
excellent script of Pedro Larroy, but I am inexperienced in QoS and I have 
doubts.&nbsp; I have&nbsp;cablemodem to Internet 1024kbit down and 256kbit 
up,&nbsp;through&nbsp;eth0. The LAN has&nbsp;eth1 and NAT.&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2>I formed the band so that shaping goes by 
the&nbsp;eth1 (of the LAN) with bandwidth maximum CEIL=768.&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2>But I observe that the traffic&nbsp;sometimes 
accelerates&nbsp;and other moments&nbsp;stops.&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2>Please, you they could say to me what is bad of 
script that I paste&nbsp;below???&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2>Thanks for its patience.</FONT></DIV>
<DIV><FONT face=Arial size=2>----------paste 
script-------------------------------------------------</FONT></DIV>
<DIV><FONT face=Arial size=2>CEIL=768</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Primero borrar todas las bandas que pudiera 
haber</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc del dev eth1 root</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Se crea la banda principal root 1, cuyos paquetes 
por defecto van a la banda 1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 root handle 1: htb default 
15</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1: classid 1:1 htb 
rate ${CEIL}kbit ceil ${CEIL}kbit</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:10 htb 
rate 270kbit ceil 270kbit prio 0</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:11 htb 
rate 270kbit ceil ${CEIL}kbit prio 1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:12 htb 
rate 68kbit ceil ${CEIL}kbit prio 2</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:13 htb 
rate 68kbit ceil ${CEIL}kbit prio 2</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:14 htb 
rate 34kbit ceil ${CEIL}kbit prio 3</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc class add dev eth1 parent 1:1 classid 1:15 htb 
rate 100kbit ceil ${CEIL}kbit prio 1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Se asocia la cola sfq con la banda 
hija</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:11 handle 110: sfq 
perturb 10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:12 handle 120: sfq 
perturb 10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:13 handle 130: sfq 
perturb 10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:14 handle 140: sfq 
perturb 10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:15 handle 150: sfq 
perturb 10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Se asocian las marcas que hubiera en iptables 
mangle con las bandas respectivas</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
1 handle 1 fw classid 1:10</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
2 handle 2 fw classid 1:11</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
3 handle 3 fw classid 1:12</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
4 handle 4 fw classid 1:13</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
5 handle 5 fw classid 1:14</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>tc filter add dev eth1 protocol ip parent 1:0 prio 
6 handle 6 fw classid 1:15</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Se dan las reglas iptables para marcar lo que nos 
interesa</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p icmp -j MARK 
--set-mark 0x1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p icmp -j 
RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Minimize-Delay -j MARK --set-mark 0x1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Minimize-Delay -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Minimize-Cost -j MARK --set-mark 0x5</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Minimize-Cost -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Maximize-Throughput -j MARK --set-mark 0x6</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos 
Maximize-Throughput -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes del puerto 
seteado</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp 
--sport 80 -j MARK --set-mark 0x2<BR>$IPTABLES -t mangle -A PREROUTING -p tcp -m 
tcp --sport 80 -j RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p udp -m udp 
--sport 80 -j MARK --set-mark 0x2<BR>$IPTABLES -t mangle -A PREROUTING -p udp -m 
udp --sport 80 -j RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp 
--sport 54661 -j MARK --set-mark 0x6<BR>$IPTABLES -t mangle -A PREROUTING -p tcp 
-m tcp --sport 54661 -j RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p tcp -m 
tcp --sport 54662 -j MARK --set-mark 0x6<BR>$IPTABLES -t mangle -A PREROUTING -p 
tcp -m tcp --sport 54662 -j RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p tcp 
-m tcp --sport 56881 -j MARK --set-mark 0x6<BR>$IPTABLES -t mangle -A PREROUTING 
-p tcp -m tcp --sport 56881 -j RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p 
tcp -m tcp --sport 54711 -j MARK --set-mark 0x6<BR>$IPTABLES -t mangle -A 
PREROUTING -p tcp -m tcp --sport 54711 -j RETURN<BR>$IPTABLES -t mangle -A 
PREROUTING -p udp -m udp --sport 54665 -j MARK --set-mark 0x6<BR>$IPTABLES -t 
mangle -A PREROUTING -p udp -m udp --sport 54665 -j RETURN<BR>$IPTABLES -t 
mangle -A PREROUTING -p udp -m udp --sport 54672 -j MARK --set-mark 
0x6<BR>$IPTABLES -t mangle -A PREROUTING -p udp -m udp --sport 54672 -j 
RETURN<BR>$IPTABLES -t mangle -A PREROUTING -p udp -m udp --sport 56881 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A PREROUTING -p udp -m udp --sport 56881 
-j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes al comienzo de conexiones 
tcp con SYN flag</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p tcp -m tcp 
--tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1<BR>$IPTABLES -t mangle -A 
PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Cierra reglas de la tabla prerouting 
mangle</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -j MARK 
--set-mark 0x6</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Todo lo mismo que lo anterior, pero en OUTPUT, 
para trafico generado localmente</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p icmp -j MARK 
--set-mark 0x1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p icmp -j 
RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Minimize-Delay -j MARK --set-mark 0x1</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Minimize-Delay -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Minimize-Cost -j MARK --set-mark 0x5</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Minimize-Cost -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Maximize-Throughput -j MARK --set-mark 0x6</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos 
Maximize-Throughput -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes del puerto 
seteado</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 
80 -j MARK --set-mark 0x2<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 
80 -j RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 80 -j MARK 
--set-mark 0x2<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 80 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54661 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54661 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54662 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54662 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 56881 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 56881 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54711 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp --sport 54711 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 54665 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 54665 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 54672 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 54672 -j 
RETURN<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 56881 -j MARK 
--set-mark 0x6<BR>$IPTABLES -t mangle -A OUTPUT -p udp -m udp --sport 56881 -j 
RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes al comienzo de conexiones 
tcp con SYN flag</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p tcp -m tcp 
--tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1<BR>$IPTABLES -t mangle -A 
OUTPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#Cierra reglas de la tabla OUTPUT 
mangle</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -j MARK --set-mark 
0x3</FONT></DIV>
<DIV><FONT face=Arial size=2>--------------------------end 
paste----------------------------------------------</FONT></DIV></BODY></HTML>