<!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. I have cablemodem to Internet 1024kbit down and 256kbit
up, through eth0. The LAN has eth1 and NAT. </FONT></DIV>
<DIV><FONT face=Arial size=2>I formed the band so that shaping goes by
the eth1 (of the LAN) with bandwidth maximum CEIL=768. </FONT></DIV>
<DIV><FONT face=Arial size=2>But I observe that the traffic sometimes
accelerates and other moments stops. </FONT></DIV>
<DIV><FONT face=Arial size=2>Please, you they could say to me what is bad of
script that I paste below??? </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> </DIV>
<DIV><FONT face=Arial size=2>#Primero borrar todas las bandas que pudiera
haber</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc del dev eth1 root</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 root handle 1: htb default
15</FONT></DIV>
<DIV> </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> </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> </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> </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> </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> </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> </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> </DIV>
<DIV><FONT face=Arial size=2>#Se asocia la cola sfq con la banda
hija</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:11 handle 110: sfq
perturb 10</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:12 handle 120: sfq
perturb 10</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:13 handle 130: sfq
perturb 10</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:14 handle 140: sfq
perturb 10</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>tc qdisc add dev eth1 parent 1:15 handle 150: sfq
perturb 10</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>#Se asocian las marcas que hubiera en iptables
mangle con las bandas respectivas</FONT></DIV>
<DIV> </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> </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> </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> </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> </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> </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> </DIV>
<DIV><FONT face=Arial size=2>#Se dan las reglas iptables para marcar lo que nos
interesa</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p icmp -j MARK
--set-mark 0x1</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -p icmp -j
RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos
Minimize-Delay -j RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos
Minimize-Cost -j RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -m tos --tos
Maximize-Throughput -j RETURN</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes del puerto
seteado</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes al comienzo de conexiones
tcp con SYN flag</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>#Cierra reglas de la tabla prerouting
mangle</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A PREROUTING -j MARK
--set-mark 0x6</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>#Todo lo mismo que lo anterior, pero en OUTPUT,
para trafico generado localmente</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p icmp -j MARK
--set-mark 0x1</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -p icmp -j
RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos
Minimize-Delay -j RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos
Minimize-Cost -j RETURN</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>$IPTABLES -t mangle -A OUTPUT -m tos --tos
Maximize-Throughput -j RETURN</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes del puerto
seteado</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>#Esto prioriza paquetes al comienzo de conexiones
tcp con SYN flag</FONT></DIV>
<DIV> </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> </DIV>
<DIV><FONT face=Arial size=2>#Cierra reglas de la tabla OUTPUT
mangle</FONT></DIV>
<DIV> </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>