Tema:
Hola a todos...miren tengo un problema estoy usando CBQ para el control del ancho banda uso este script supuestamente limito el consumo a 256k a la red interna pero nose en donde esa mal ya que una pc tranquilamente me llega a sobrepasar el consumo delimitado....no se si le dan una chequeadita para que me sugieran donde esta la falla.. :?
Nota:estoy usando centos 4.4
#!/bin/sh
IPTABLES=/sbin/iptables
TC=/sbin/tc
CBQ=/sbin/cbq.init
OK="\033[1;0m [ \033[00;32mOK \033[1;0m]\033[0m"
echo -e "Reglas de Control de Ancho de Banda: $OK"
$CBQ stop
# ===>> Control Ingreso de Paquetes de la Red <<=== #
$IPTABLES -t mangle -A PREROUTING -j MARK -p tcp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A INPUT -j MARK -p tcp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A OUTPUT -j MARK -p tcp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A PREROUTING -j MARK -p udp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A INPUT -j MARK -p udp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A OUTPUT -j MARK -p udp -s mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A PREROUTING -j MARK -p tcp -s mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A INPUT -j MARK -p tcp -s mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A OUTPUT -j MARK -p tcp -s mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A PREROUTING -j MARK -p udp -s mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A INPUT -j MARK -p udp -s mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A OUTPUT -j MARK -p udp -s mi_ip_privada/24 --set-mark 2
# ===>> Control Egreso de Paquetes de la Red <<=== #
$IPTABLES -t mangle -A PREROUTING -j MARK -p tcp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A INPUT -j MARK -p tcp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A OUTPUT -j MARK -p tcp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A PREROUTING -j MARK -p udp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A INPUT -j MARK -p udp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A OUTPUT -j MARK -p udp -d mi_ip_publica --set-mark 1
$IPTABLES -t mangle -A PREROUTING -j MARK -p tcp -d mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A INPUT -j MARK -p tcp -d mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A OUTPUT -j MARK -p tcp -d mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A PREROUTING -j MARK -p udp -d mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A INPUT -j MARK -p udp -d mi_ip_privada/24 --set-mark 2
$IPTABLES -t mangle -A OUTPUT -j MARK -p udp -d mi_ip_privada/24 --set-mark 2
# ===>> Control de Ancho de Banda a 256Kbit <<=== #
$TC qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8
$TC qdisc add dev eth1 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8
$TC class add dev eth0 parent 1:0 classid 1:1 est 1sec 2sec cbq bandwidth 10Mbit rate 256Kbit allot 1514 cell 8 weight 1 prio 1 maxburst 20 avpkt 1000 bounded
$TC class add dev eth1 parent 1:0 classid 1:2 est 1sec 2sec cbq bandwidth 10Mbit rate 256Kbit allot 1514 cell 8 weight 1 prio 1 maxburst 20 avpkt 1000 bounded
$TC filter add dev eth0 protocol ip handle 1 fw classid 1:1
$TC filter add dev eth1 protocol ip handle 2 fw classid 1:2
Comentarios
Me parece que estas marcando
Me parece que estas marcando mal los paquetes, prueba lo siguiente:
lan="192.168.0.0/24"
# Ingreso de paquetes a la red
$IPTABLES -t filter -A FORWARD -s $ip -i eth1 -d 0/0 -o eth0 -j MARK --set-mark 1
# Egreso de paquetes de la red
$IPTABLES -t filter -A FORWARD -d $ip -o eth1 -s 0/0 -i eth0 -j MARK --set-mark 2
# el resto...
$TC qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8
$TC qdisc add dev eth1 root handle 2: cbq bandwidth 10Mbit avpkt 1000 cell 8
$TC class add dev eth0 parent 1:0 classid 1:1 est 1sec 2sec cbq bandwidth 10Mbit rate 256Kbit allot 1514 cell 8 weight 1 prio 1 maxburst 20 avpkt 1000 bounded
$TC class add dev eth1 parent 2:0 classid 2:1 est 1sec 2sec cbq bandwidth 10Mbit rate 256Kbit allot 1514 cell 8 weight 1 prio 1 maxburst 20 avpkt 1000 bounded
$TC filter add dev eth0 protocol ip handle 1 fw classid 1:1
$TC filter add dev eth1 protocol ip handle 2 fw classid 2:1
A mi me ha funcionado bien con el htb, debería funcionar tambien con el cbq, en cuanto a el "handle 1" debería funcionar como tu tienes el mismo "1" para subida y bajada ya que son distintas interfaces de red, pero me he acostumbrado a ponerles diferente "1 y 2"
Bye
Cogito Ergo Sum
------------

Cogito Ergo Sum
Ok gracias voy a probar
Ok gracias voy a probar algunos scripts que veo aca .... y haber si me paso a htb que segun observo le dan mas importancia......
Juank
Correcto esta mal marcado y
Correcto esta mal marcado y debes separar las redes en dos clases diferentes una que sea 1,2 y la ota 3,4. Espro me comprendas.
Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/
Gracias voy a probar
Gracias voy a probar !!!!!!!!!!!!!!! ... ademas vi un script bastante interesante aca publicado por usted... segun su experiencia que me recomienda mas cbq o htb???
Juank
Te recomiendo más HTB ya
Te recomiendo más HTB ya que este es una "evolución" o mejora del algoritmo de CBQ.
Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/
monkito.. yo tengo un
monkito.. yo tengo un problema similar con mis archivos segmentadores.. veo q tienes en tu archivo detallado paquetes de entrada y salida de la red... crees q me puedas ayudar publicando tu script cbq completo para poder ajustarlo a mi red.. ??.. gracias
All right...
Aqui va:
#!/bin/sh
#
OK="\033[1;0m [ \033[00;32mOK \033[1;0m]\033[0m"
echo -e "ANCHO DE BANDA: $OK"
### VARIABLES ###
WAN="0/0"
DEVWAN="eth0"
DEVLAN="eth1"
TC=/sbin/tc
IPTABLES="/sbin/iptables -t mangle"
HTB=/usr/bin/htb
ANY=0/0
$HTB stop
### ---------------- FLUSH DE REGLAS ----------------- ###
$TC qdisc del dev $DEVWAN root handle 1: htb
$TC qdisc del dev $DEVLAN root handle 2: htb
$IPTABLES -F
$IPTABLES -X
### ---------------- CREANDO CLASE ROOT -------------- ###
$TC qdisc add dev $DEVWAN root handle 1: htb default 97 r2q 1
$TC qdisc add dev $DEVLAN root handle 2: htb default 98 r2q 1
### ----------------- CLASES PADRES ---------------------------------------- ###
$TC class add dev $DEVWAN parent 1: classid 1:100 htb rate 256Kbit ceil 256Kbit
$TC class add dev $DEVLAN parent 2: classid 2:100 htb rate 256Kbit ceil 256Kbit
#ICMP tienen prioridad (5Mb) (marcas por defecto)
$IPTABLES -A INPUT -i eth1 -s 0/0 -p icmp -j MARK --set-mark 97
$IPTABLES -A OUTPUT -o eth1 -d 0/0 -p icmp -j MARK --set-mark 98
#$IPTABLES -A OUTPUT -p icmp -j MARK --set-mark 97
#$IPTABLES -A FORWARD -p icmp -j MARK --set-mark 97
#$IPTABLES -A POSTROUTING -p icmp -j MARK --set-mark 97
#$IPTABLES -A PREROUTING -p icmp -j MARK --set-mark 97
#$IPTABLES -A OUTPUT -p icmp -j MARK --set-mark 98
#$IPTABLES -A FORWARD -p icmp -j MARK --set-mark 98
#$IPTABLES -A POSTROUTING -p icmp -j MARK --set-mark 98
#$IPTABLES -A PREROUTING -p icmp -j MARK --set-mark 98
# Canal 001 => 128-C [8:1]
RATE="16Kbit"
MAX="128Kbit"
IPs="192.168.0.11
192.168.0.12
192.168.0.13
192.168.0.14
192.168.0.15
192.168.0.16
192.168.0.17
192.168.0.18
"
for IP in $IPs; do
$IPTABLES -A FORWARD -s $IP -d $ANY -o $DEVWAN -i $DEVLAN -j MARK --set-mark 1
$IPTABLES -A FORWARD -d $IP -s $ANY -i $DEVWAN -o $DEVLAN -j MARK --set-mark 2
done
$TC class add dev $DEVWAN parent 1:100 classid 1:1 htb rate $RATE ceil $MAX
$TC class add dev $DEVLAN parent 2:100 classid 2:1 htb rate $RATE ceil $MAX
$TC filter add dev $DEVWAN parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:1
$TC filter add dev $DEVLAN parent 2:0 protocol ip prio 2 handle 2 fw flowid 2:1
# Canal 002 => 128-A [1:1]
RATE="64Kbit"
MAX="96Kbit"
IPs="192.168.0.6"
for IP in $IPs; do
$IPTABLES -A FORWARD -s $IP -d $ANY -o $DEVWAN -i $DEVLAN -j MARK --set-mark 3
$IPTABLES -A FORWARD -d $IP -s $ANY -i $DEVWAN -o $DEVLAN -j MARK --set-mark 4
done
$TC class add dev $DEVWAN parent 1:100 classid 1:2 htb rate $RATE ceil $MAX
$TC class add dev $DEVLAN parent 2:100 classid 2:2 htb rate $RATE ceil $MAX
$TC filter add dev $DEVWAN parent 1:0 protocol ip prio 1 handle 3 fw flowid 1:2
$TC filter add dev $DEVLAN parent 2:0 protocol ip prio 2 handle 4 fw flowid 2:2
#### ----------- LINEA DE CLASE Y FILTRO DE CLASE POR DEFECTO ------------ ####
$TC class add dev $DEVWAN parent 1:100 classid 1:97 htb rate 5Mbit ceil 5Mbit quantum 640
$TC class add dev $DEVLAN parent 2:200 classid 2:98 htb rate 5Mbit ceil 5Mbit quantum 640
$TC filter add dev $DEVWAN parent 1:0 protocol ip prio 1 handle 97 fw flowid 1:97
$TC filter add dev $DEVLAN parent 2:0 protocol ip prio 1 handle 98 fw flowid 2:98
iptables-save > /etc/sysconfig/iptables
Tengo 256Kbps y lo divido en dos canale, uno de 8:1(clientes home) y otro de 1:1(cyber)..
Cogito Ergo Sum
------------

Cogito Ergo Sum